Як ми заново збирали сервери в американському Цоді з Росії

Сьогодні ми хотіли розповісти вам про те, як наші хлопці за три години підвищили продуктивність кластера для тестування в 4 рази, просто «помізкувавши».

image

Upd. Цей пост це — НЕ МАСШТАБНЕ ТЕСТУВАННЯ — це реальна історія з практики з кумедними моментами. Ми підвищили щільність ВМок в 4 рази, якщо ви очікуєте побачити порівняльне тестування, графіки і аналіз продуктивності, вам не сюди. Тут сьогодні швидше душевний чтиво.

Зробимо кілька ремарок, щоб було зрозуміло, звідки у нашої теми «ноги ростуть». Особливість роботи Virtuozzo полягає в тому, що відділ розробки і всі програмісти знаходяться в Москві (спадщина SWsoft та нашої альма-матер, Фізтеху), а головний офіс – у Сіетлі (США). Але для сьогоднішнього посту це важливо лише тому, що наш HPC-кластер для тестування є також у США, а основні «замовники» тестових завдань – в Москві. І не дивлячись на весь віддалений доступ, це могло б бути проблемою, адже між цими двома точками – 11 часових поясів, і коли робочий день починається в Сіетлі, він закінчується в Москві, а значить поміняти щось на серверах фізично — непросто.

image

Запустили, але не ув'язнили
Але давайте предметно: щоб тестувати нові версії Virtuozzo був запущений великий кластер з 10 машин, на якому ми встановили нашу систему віртуалізації, а на рівні ВМ – знову завантажуємо наш софт для численних тестових прогонів. Незважаючи на постійний моніторинг цього процесу з боку інженерів-розробників, більше 99% навантаження на кластер створюють автоматизовані боти, які прагнуть запустити якомога більше підзадач тестування в кожен момент часу.

Кластер був запущений відносно недавно, і на майданчику ЦОД, де ми орендуємо місце, немає постійного персонал Virtuozzo. І начебто це не повинно бути проблемою – все ж можна зробити віддалено… ну крім фізичної реконфігурування, а саме в ньому і виникла потреба у наших хлопців, так як у нас виходило запускати тільки 5-7 вкладених ВМ, коли хотілося набагато більше.

Виявилося, що 10 серверів з процесорами Xeon L5640 і Xeon X5650 можуть взяти на себе досить високе навантаження, навіть з урахуванням того, що на них працює система зберігання даних Virtuozzo Storage. Але ось розподіл пам'яті і дисків між ними було проведено без урахування майбутніх завдань, а встановлені додаткові мережеві карти не могли забезпечити приріст продуктивності, так як стояли просто «не там, де потрібно».

image

Проаналізувавши кластер, ми зрозуміли, що даремно не склали попередню модель роботи при його збиранні, тому що:

  1. Трафік доступу до ВМ користувачів (в основному ботів) перемішувався з трафіком системи зберігання, забиваючи канал
  2. Віртуальні машини безглуздо запускалися на ноди з малим об'ємом ОЗУ, перевантажуючи їх
  3. Додаткові мережеві карти просто простоювали через відсутність правил перерозподілу трафіку
Щоб перемогти все це неподобство, було вирішено перебудувати ряд серверів за наступними правилами:

— Встановити 2 (або 4 для серверів з VZ Storage) мережеві карти у всіх серверах
— Сервери з менш потужними процесорами вставити самі ємкі диски і об'єднати додаткові мережеві інтерфейси (для VZ Storage) в бонди
— Сервери з більш потужними процесорами вставити менш ємні диски, але максимум ОЗУ.

Від Брайтон біч до Дерибасівської
Щоб провести цю «рокіровку», потрібен був «свій чоловік» в Сіетлі, і ним став наш колега Кирило Колышкин. Він за щастя мав доступ в ЦОД, і, хоча не був адміністратором кластера, був радий нам допомогти.

Ми засіли в кінці робочого дня з повною готовністю до роботи, але Кирило застряг у пробці і дістався до ЦОДу лише у 20-30 по Москві. П'ятниця, вечір, хочеться додому, але працювати треба. І ми починаємо в загальному чаті обговорювати, що і куди потрібно встановити.

«Я звідки знаю, як? Я в даному випадку виконую роль залізного інженера, я в ваших системах нічого не розумію», — одна з найважливіших фраз нашого інженера.

Так, він працював наосліп і за вказівкою, тому у нас було кілька дуже цікавих моментів. Щоб не псувати відчуття від процесу, наведемо просто витримки бесід з чату, в якому варилася вся каша:

kir [9:15 PM] я впустив пару болтів, хотів у кого-небудь запитати, де їх можна знайти тут
[9:15] ладно, сам пошукаю
[9:30] продовжую шукати болтики
[9:40] фіг з ними, з болтиками

[9:19] хлопці, я вдарився головою об сервер
[9:19] піду зупиню кров
[9:19] (це не жарт)

Паралельно ми дізналися багато нового про наших системах, які спокійно стоять в США:

kir [9:51 PM] У машини 118 гнутий рейлінг праворуч, трохи на ногу мені не впав, ледве поставив назад
apershin [9:52 PM] там на вході каски не видавали ?)) як на небезпечних виробництвах )))
kir [9:52 PM] він там по суті на одній половині висить, точніше лежить на попередньому

Без гумору, звичайно, в такій ситуації не можна, але один раз ми навіть переборщили. Все ж чат-то був незахищений…

Alexandr: американці — знову ці шалені російські хакери щось тут затівають — напевно атаку на штаб Хілларі ))))
apershin [11:05 PM] Ща ми допишемся, там за Кіром приїдуть )))

Кирило, звичайно, дуже хотів уже піти з серверної і перестати займатися справами, які до нього фактично ніяк не відносяться:

[11:41] Я готовий звідси отчаливать
[11:42] скажи мені, коли можна буде
[11:42] А той час обіду вже давно минуло
[11:45] Дядьку, а дядечко
[1:11] же не манж па сис жюр


image
«kir [10:47] коротше всі гвинти у мене на візку»

Кілька годин і результат
Але відпустити Кирила занадто рано ми не могли, тому що не всі відразу запрацювало. Виявилося, що у нас більше мережевих карт, ніж ми думали, виявилося, що не всі кабелі працювали добре і, нарешті, з'ясувалося, що на серверах є різні налаштування BIOS, і деякі з них просто не стали перезавантажиться після зміни конфігурації.

Ми перевіряли лінки, міняли патч-корди, заново ставили систему, і в результаті ближче до першої години ночі по Москві відпустили Кирила з забитою ногою, пошкодженої головою і голодним шлунком розбиратися зі своїми робочими питаннями (обід-то він вже пропустив, так що відбувся легким перекусом).

Що ми отримали в результаті – так це більш продуктивний кластер для тестування: замість 5-7 виртуалок в кожному оточенні ми змогли запускати 15-20 штук. При цьому Storage працював на окремій мережі через виділений комутатор, не заважаючи запитам ботів і користувачів. Так, наша команда довела свою згуртованість, а сервери стали працювати значно ефективніше за рахунок оптимального розподілу компонентів. Так що не бійтеся віддаленої роботи з серверами – головне, щоб на місці був надійний чоловік, який не боїться ні травм, ні голоду.
Джерело: Хабрахабр

0 коментарів

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