Powerchute network shutdown

Питання забезпечення безперебійного енергопостачання серверів стоїть досить гостро в будь-якій організації - будь то невелика контора або датацентр з сотнями стійок. Якщо в другому випадку в надзвичайних ситуаціях з подачею електроенергії із зовнішніх джерел в роботу включаються генератори. які можуть забезпечити в деяких варіантах кілька діб автономної роботи (в залежності від запасу палива) без втручання ззовні, то в першому варіанті все навантаження при відключенні електрики лягає на джерела безперебійного живлення. Все б нічого, але ось тільки основні завдання ДБЖ - вирівнювання напруги і забезпечення часу роботи від батареї в мінімальному поданні трохи більше часу виключення самого повільного сервера. Хтось може посперечатися, але все ж ДБЖ не призначені для забезпечення довготривалої (кілька годин і більше) роботи серверів в ситуації відсутності електрики, для цього придумали генератори. Однак покупка генератора, обладнання для нього окремої площадки, прокладка електромережі для більшості організацій є непідйомним сценарієм, та й, треба визнати, абсолютно не потрібним.

В такому випадку виникає необхідність автоматичного відключення серверів до того моменту, коли батареї ДБЖ розрядяться повністю. Теоретично це можна зробити вручну, але навіть якщо у вас всього кілька серверів, це буде не дуже зручно і швидко. Ситуація стане серйозною проблемою, якщо у вас багато серверів або ІБП завантажені до рівня, близького до свого максимального (в цьому випадку зазвичай вони пропрацюють не більше 5-7 хвилин, якщо брати в розрахунок середньостатистичний ДБЖ без додаткових батарейних блоків). Та й при ручному відключенні хтось повинен моніторити ситуацію 24/7, що теж нереально.

На допомогу приходить PowerChute Network Shutdown1 від APC (далі по тексту PCNS). Ця утиліта призначена для виконання різних сценаріїв (найчастіше звичайне коректне виключення серверів) при виникненні будь-яких подій в колі електроживлення. Працює вона спільно з UPS Network Management Card 22 (далі по тексту UPS NMC), яка по суті є платою розширення для різних ДБЖ. Рішення, звичайно ж, можна застосувати тільки для безперервного живлення від APC.

У статті я планую розповісти про свій особистий досвід при роботі з обладнанням, описаним вище. Більшість моментів щодо встановлення та налаштування обладнання я опущу, оскільки вважаю їх опис позбавимо - в мережі дуже багато докладних аматорських інструкцій, крім того, супровідна література до всіх продуктів APC доступна в повному обсязі і всі моменти експлуатації розписані вкрай докладно.

Отже, до моменту конфігурації автоматичного відключення серверів у мене було таке обладнання:

2) Встановлена ​​і налаштована плата мережевого управління до ДБЖ: AP9630 4;

3) Локальна мережа, в якій знаходяться плата мережевого управління і цільові сервери.

Основна складність настройки полягає в тому, що потрібно точно собі уявляти як буде працювати система. Найбільше запитань виникає на сценарії завершення роботи серверів, в офіційному керівництві розглядаються різні варіанти відключення і в кінцевому рахунку вони представляються як красиві діаграми. Багато разів прочитавши ці приклади, я виробив для себе наступний алгоритм настройки всієї системи:

1) Визначте максимальний час роботи ДБЖ при відключеному харчуванні і повному навантаженні. У мене воно дорівнювало 12-14 хвилинах, оскільки навантаження була неповна;

2) Розділіть всі сервери на два списки (можна і на 3, та хоч на 10, але це ускладнить конфігурацію) - критично важливі для організації сервери (хоча б один контролер домену, поштовий сервер, файлове сховище і т.п.) і сервери , які можна безболісно відключити (обкатувальні сервери, WSUS, доп. контролери домену і т.п. у кожного своє);

3) Для кожної групи серверів визначте час їх роботи після відключення вхідного харчування ДБЖ. Для важливих серверів постарайтеся максимально продовжити час роботи, тобто відключайте їх в саму останню чергу (у мене це 5 хвилин). Забезпечити це можна тільки відключенням маловажних серверів якомога раніше (я зупинився на 30 секундах).

Далі залишається тільки перейти до налаштувань встановлених агентів PCNS. Для фізичних серверів і хостів віртуалізації налаштування будуть трохи відрізнятися - на хостах віртуалізації потрібно встановити час затримки для виключення або міграції віртуальних машин:

Powerchute network shutdown

В іншому все ідентичне, інші настройки я залишив за замовчуванням.

Переходимо до пункту меню Configure Events. нам потрібно перша подія - UPS On Battery (ІБП працює від батареї, тобто вхідна напруга або впало до нуля, або занадто низька для нормальної роботи), відразу праворуч від нього в стовпці Shutdown натискаємо на значок шестерінки (у мене відображається галочка, оскільки я вже налаштував дію при роботі від батареї). Виставляємо потрібне вам значення в секундах. Для себе я визначив його в 300 секунд. Тобто після закінчення цього часу система почне вимикатися, але віртуальним машинам буде надано додатковий час для завершення роботи (його ми вказали в налаштуваннях Shutdown Settings).

Powerchute network shutdown

Після цього саме час протестувати як все працює на реальну ситуацію. Для цього я окремо зімітував відключення живлення - просто висмикнув кабель живлення з ДБЖ. Через 30 секунд у мене почали вимикатися другорядні хости віртуалізації і фізичні сервери, через 5 хвилин почали заглушатись віртуальні машини на важливих інфраструктурних серверах, коли вони вимкнулися, хости віртуалізації затихли і в серверній запанувала тиша ...

На поточний момент я можу дати кілька рекомендацій з налаштування. Вони можуть здатися очевидними, але все ж я їх опишу. Хто знає, може бути через деякий час з голови їх витіснить інша інформація, а досвід все ж корисний.

1) Сплануйте установку CPNS на ваших серверах: далеко не кожна операційна система підтримується. Потрібно також вирішити що робити з віртуальними машинами на базі unix-систем, можливо доведеться писати вручну скрипти, щоб заглушити їх коректним чином. З малопоширеними збірками і, наприклад, системами для NAS (той же Openfiler) можуть бути серйозні проблеми на увазі повної відсутності їх підтримки;

2) Не пошкодуйте додаткового часу для виключення віртуальних машин. Ви повинні розуміти, що коли все виртуалки почнуть звертатися до жорстких дисків, їх швидкодія різко знизиться і час завершення роботи значно збільшиться;

3) Чи не намагайтеся вичавити з вашого дідуся ДБЖ повний максимум. Нехай ваші віртуальні машини і сервери завершать роботу трохи раніше, ніж ДБЖ розрядиться повністю. Так навіть якщо він розрядиться всього лише на 50%, що тут такого? Ваша основна завдання не протримати сервери включеними якомога довше, а коректним чином завершити їх роботу, врешті-решт. Також врахуйте, що з часом ваш ДБЖ на батареях буде працювати все менше і менше, оскільки вони мають зносу, а це вже серйозна причина, щоб залишити достатній «запас міцності» за часом;

4) Обов'язково протестуйте сценарій відключення. Не пошкодуйте одного вихідного і проведіть тестування відключення серверів і віртуальних машин при реальному відключенні електрики. Я проводив це раннім суботнім ранком з секундомірів в руці;

На цьому все. Можете дорікати мене за велику кількість «води», але в цій статті я постарався максимально докладно описати думки і логіку прийняття рішень, адже мануали зможе прочитати будь-який, а особистий досвід на дорозі не валяється.

Схожі статті