Декластеризация сервера MSCS Windows 2003 + SQL2005

image

Вітаю всіх.

У даній статті я опишу свій досвід по перетворенню «залізного» кластера MSCS у віртуальний сервер.

Наш кластер працював з 2008 року, завдань накопичилося багато, в тому числі критичних, а підняти новий сервер було нереально. До того ж зношене обладнання ось-ось повинно було вийти з ладу. Для нас вихід був тільки один — віртуалізація сервери в наш ЦОД, на VMware. Причому для мене було поставлено завдання — піти від кластеризації. Вивчивши купу інформації в мережі, підходящою покрокової інструкції я не знайшов, тому вирішив скласти свою.

Початковий стан було наступне:

  • Кластер MSCS на Windows 2003 Enterprise edition SP2. Дві ноди в режимі Active\Passive;
  • SQL Server 2005 Standard Edition, що працює в кластерному режимі;
  • Кілька WWW/FTP-сайтів на IIS, не в кластерному режимі. На кожен з 32 Web-сайтів по одному IP Address кластерним ресурсу. Грубо кажучи, на мережеву карту навішувалися додаткові IP. Сайти працювали тільки в інтрамережі;
  • 9 логічних дисків з даними, 152 File Share ресурсів, всі дані зберігаються на дисковому масиві;
  • Налаштований планувальник завдань, через нього запускалися деякі специфічні для нашої галузі програми.
Для попередньої підготовки і тестування сервера ми створили віртуальну «лабораторію».
В ізольовану віртуальну мережу ми підключили три машини: віртуальна копія активної ноди кластера, віртуальна копія контролера домену і звичайна машина з Windows 7, на якій ми всі будемо тестувати. Заздалегідь були сконвертированы в VMDK кілька дисків з базами SQL, www/ftp-сайтами, мережевими папками, кворум диск.

Запускаємо машини, налаштовуємо мережеві карти з такими ж TCP/IP параметрами, як і в реальній мережі. Підключаємо диски до нашого сервера, призначаємо відповідні букви, перезавантажуємося. Після цього кластер повинен запуститися. До речі кажучи, у режимі одного ноди кластер відразу заробив, але нам він більше не потрібен, тим більше є ризик, що така конфігурація буде працювати некоректно у віртуальному середовищі.

Тепер потрібно зберегти налаштування мережевої карти і параметри мережевих ресурсів, т. к. після видалення кластерної служби їх доведеться відновлювати вручну. Я заздалегідь підготував dump TCP/IP налаштувань за допомогою команди netsh. Мережеві ресурси я планував створювати заново, командою «net share». Можливо, є спосіб зробити бекап налаштувань мережевих куля, але я його не знайшов.

Отже, у нас є файл ip.cfg і shares.txt(список команд net share). Робимо Snapshot, для того щоб відкотитися назад у разі невдачі.

Починаємо декластеризацию

  1. Після запуску віртуальної копії другий вузол кластера буде вже недоступний. Видаляємо його командою Evict Node.

    image

    Може виникнути таке повідомлення, тут без варіантів, натискаємо ОК.

    image
  2. Далі налаштовуємо SQL. Нам потрібно, щоб він запускався в звичайному режимі. В інструкціях, знайдених в інтернеті, пропонують робити копії баз даних, видаляти кластеризованный Instance, потім встановлювати Standalone Instance. Я знайшов спосіб простіше, через реєстру:
    Видаляємо гілки

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\Cluster
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.2\Cluster

    image

    Змінюємо ключі

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\Setup\SqlCluster = 0
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.2\Setup\SqlCluster = 0

    image

    У SQL Server configuration manager ставимо сервіси на автозапуск.

    image
  3. Включаємо служби WWW Publishing Service, Task Scheduler на автозапуск. Раніше вони запускалися вручну тільки на активній ноде.

    image

    image

  4. Видаляємо останню ноду з кластера. Після цього такі кластерні ресурси як IP address і File Share видаляються з системи безповоротно.

    image

  5. Щоб користувачі потім змогли нормально працювати з мережними папками, знову робимо редагування реєстру:
    В розділі реєстру HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters
    додаємо параметр DWORD «DisableStrictNameChecking», зі значенням 1

    image

  6. Відновлюємо налаштування мережі:
    Netsh exec c:\ip.cfg

  7. Відновлюємо мережеві ресурси з текстового файлу shares.txt. Просто копіюємо команди і вставляємо в cmd. Я пробував зробити bat-нік, але там виникала проблема з відображенням російських символів в описах ресурсів.

  8. Перезавантажуємо сервер. Після цього перевіряємо роботу всіх ftp, www-, share-ресурсів у нашій лабораторії.

Якщо все в порядку, значить віртуальний сервер готовий до переходу в звичайну мережу.

Коротко про перехід

Нюанси тут можуть бути різні, але принцип один: потрібно відключити залізний кластер, перенести ресурси і налаштування на новий сервер і включити його. В моєму випадку ресурси — це IP-адреси, логічні диски з даними, мережеві кулі.
Ми не стали повністю видаляти залізний кластер з мережі і AD, щоб у разі неуспіху можна було все повернути назад.

Наші дії:

  1. Відключається від мережі і від дисків залізний кластер. IP адреси звільняються.
  2. Загальний обсяг даних — 1,5 Тб, тому відразу перекласти всі диски в VMDK не вийде, інформація постійно оновлюється. Ми вирішили тимчасово підключити їх до віртуального сервера як RDM, тим самим зменшивши час простою під час переходу. Як показав досвід, краще підключати їх на вимкнену машину. Після запуску, на ці диски потрібно призначити такі ж букви, як на старому кластері, у нас, наприклад, бази SQL-сервера запускалися з диска S.
  3. Включаємо віртуальний сервер в загальну мережу, перезавантажуємо.


Після перезавантаження коректно заробили FTP, WWW сервіси, SQL. На всі дії пішло трохи менше години.
Через деякий час з'явився глюк з мережевими кулями, коли деякі користувачі не можуть зайти на них за старим імені кластера. Можливі варіанти виправлення:

  1. Перевірити виконання пункту 5 інструкції.
  2. Видалити старі записи на WINS-сервері для кластерного імені
  3. При розгортанні кластера MSCS, AD крім облікових записів першої та другої ноди, створюється третя обліковий запис з ім'ям кластера: її опис — «cluster Server virtual network name account». З цієї потрібно зробити disable.
  4. DNS зроблений аліас по імені кластера на першу ноду.
Зараз віртуальний сервер працює справно. Ніяких глюків не спостерігається. Тепер можна спокійно відсвяткувати Новий Рік версії 2015. Всім дякую за увагу.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.