Скопіюйте хост Linux на нове обладнання


13

Мені потрібно зробити хост для розміщення міграцій зі старого обладнання на нове обладнання. Зокрема, від HP BL460G7 до HP BL460G8. І старий, і новий сервери мають накопичувачі 2,5 "2,5 ГБ і налаштовані на RAID1. Я можу дозволити собі 30 хвилин простою на сервері.

Для міграції є чотири сервери, найменший має 120 Гб, виділений у логічному обсязі, а найбільший - 510 Гб. Три сервери працюють RHEL5, а один працює RHEL6.

Я ламав свій мозок про те, як це зробити протягом заданих строків і не руйнуючи ОС та критичні дані.

Єдина моя думка така:

  • видаліть один диск зі старого сервера (сервер увімкнено)
  • видаліть обидва диски з нового сервера (сервер вимкнено)
  • вийміть привід G7 з Caddy і відкладіть
  • вийміть диск G8 з Caddy та встановіть у G7 caddy
  • встановити диск G8 в Caddy G7 на старий сервер
  • зачекайте, поки контролер RAID відновить масив RAID1
  • коли завершено відключення старого сервера
  • видалити диск G8 у Caddy G7
  • встановити привід G8 в Caddy G8 та вставити в G8 (встановлений один привід)
  • завантаження сервера G8
  • дочекайтеся завантаження ОС
  • коли ОС завантажиться, вставити залишився накопичувач
  • дочекайтеся відновлення масиву RAID

Це звучить здорово?

EDIT: RHEL5 - RHEL5.10, а RHEL6 - RHEL6.6

Я також мав би зазначити, що дві системи є частиною кластера гарячих чотирьох вузлів, який робить майже постійну реплікацію "подій" програми (її частини критичної інфраструктурної системи). У нас є резервні копії, але ми використовуємо їх лише у випадку повного збою системи.

Попередні тестування показали, що максимум 'dd' між системами приблизно 50MBps, що занадто повільно.

EDIT: Я збирався покластися на kudzu, щоб забрати та розібратися зі змінами обладнання.


Які конкретні версії RHEL5 та RHEL6 використовуються?
ewwhite

Відповів редагувати
користувач1174838

Не намагайтеся встановити диски G7 всередині сервера Gen8 - там змінилося більше, ніж просто у фізичному лотку.
Chopper3

Навмисне погіршення RAID з важливими даними про нього не здається гарним планом.
kasperd

Відповіді:


18

Слід зазначити, що в залежності від розподілу можуть бути необхідні й інші кроки. Найбільше водіїв (спасибі за вказівку на @ewwhite).

  1. Завантажте новий сервер з livecd / usb.
  2. Підготуйте розділи та завантажувальний блок на нових дисках.
    • Залежно від налаштування, це можна зробити, скопіювавши MBR / завантажувальний блок.
  3. Зробіть файлові системи.
  4. Зробіть rsync зі старого сервера на новий.
    • Можливо, ви захочете зробити це ще раз, щоб побачити, скільки часу триватиме наступна rsync - якщо триватиме менше 30 хвилин.
    • Настав час, коли ви можете спробувати, якщо завантажуються нові системи. Будьте обережні, щоб не викликати будь-яких IP (або інших) конфліктів.
  5. Вимкнення всіх служб, які записували б у файлову систему
    • Переважно перезавантажте файл livecd / usb
  6. Знову поверніть дані Rsync зі старого сервера на новий
  7. Перезавантажте новий сервер і використовуйте його

Зробивши це таким чином, у вас все ще є непошкоджений оригінальний сервер, тому якщо щось піде не так, є простий шлях назад. Але для цього потрібні певні знання (grub / rsync / розділи), тому я пропоную зробити попередню роботу та тестування заздалегідь, перш ніж робити це в прямому ефірі.


Насправді існують різниці драйверів між двома платформами, тому важливо знати, які незначні випуски RHEL він використовує.
ewwhite

Ага так, я не повинен відповідати на що-небудь, що стосується дистрибуції підприємств ... Вибачте, але ...
Фокс

@Fox: Не змінено популярним попитом. Ваша відповідь хороша.
Свен

1
@ user1174838 це не повинно бути перешкодою ... Єдина проблема, яку я побачив, - це дуже велика кількість невеликих файлів.
Фокс

1
І не забувайте про це чудове рішення, що подвійний rsync мінімізує час простою на сервері: оскільки більшість даних передається на запущеному сервері, друга rsync (на сервісі, що не працює) копіює лише останні відмінності.
peterh

6

Дві речі:

  • Я б створив нові та rsync дані.
  • Мабуть, ваш час простою / вікно здається занадто коротким. 30 хвилин можуть працювати в конкретних ситуаціях, але чи не слід ВИ диктувати реалістичну вимогу простою, виходячи з того, що потрібно для того, щоб реально виконати роботу?

В залежності від даних , що міститься в кожному сервері, кількість даних , в великій кількості , і ваша ініціалізація схема, може мати сенс встановити необхідну ОС на новому Gen8 ProLiant і синхронізувати налаштування та інші частини даних в точці , де можна заморозити дані.

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

Я роблю такі типи переходів часто. З подібними установками Linux вам рідко потрібно більше, ніж точний список пакетів (це легко можна отримати через Yum або RPM), каталоги конфігурації (наприклад /etc) та ваші розділи даних. Якщо у вас ще немає системи забезпечення швидкого старту, ви можете скористатися /root/anaconda-ks.cfgфайлом, щоб отримати уявлення про те, як була побудована система G7.

Відповісти на ваше запитання про просто переміщення дисків на основі конкретних версій RHEL, які ви згадали, це абсолютно можливо. Ви можете переміщати диски / кадді, і метадані HP Smart Array сумісні між контролерами P410 та P420, які можуть бути у ваших системах. Однак я б цього не зробив без повного оновлення прошивки накопичувачів та компонентів у новій системі.


Кілька справді хороших коментарів у цій темі, дякую всім. Я збираюся повернутися до прем’єр-міністра та попросити збільшити вікно змін.
користувач1174838

1

Якщо ваша попередня версія ОС вміє обробляти нове обладнання (в основному RAID-контролер), ви можете спробувати CloneZilla .

Щоб перевірити, чи можна переходити з одного обладнання на інше, ви можете передавати всі дані зі старого на новий сервер, виконуючи деякі хитрощі з dd.

Завантажте новий сервер з живим дистрибутивом, як SystemRescueCD , конфігуруйте з IP-адресою та командою dd на зразок цього:

nc -l 8000 | dd of=/dev/sda

На поточному сервері виконати

dd if=/dev/sda | nc ${newserverip} 8000

Це дозволить зробити необроблену копію / dev / sda вашого сервера на новий сервер / dev / sda. Таким чином ви можете виконати тест без простоїв на своєму початковому сервері та не беручи на себе нульових ризиків.


2
Якщо ви залишите процеси, що працюють на старому сервері, які записують у файли на старому диску, особливо на сервери баз даних та подібні, великі шанси на те, що це призведе до пошкодженої (скопійованої) файлової системи та пошкодження даних у ваших (скопійованих) файлах. Ніколи не вводьте необроблений диск, якщо він не змінений або встановлений лише для читання.
Гунтрам Блом підтримує Моніку

@GuntramBlohm Я знаю, це просто перевірити, чи можете ви клонувати старий сервер на новий, без простою часу. Після тестування ви можете клонувати сервер, звичайно відключивши його або зупинивши ключові послуги.
альфамікевиктор

CloneZilla та пов'язані з ними методи копіювання даних між системами займуть більше 30 хвилин.
користувач1174838

0

Керівник проекту відхилив мій запит на збільшення вікна відключення.

Запропонована процедура, викладена у запитанні, добре працювала в тестуванні. Простой був менше 20 хвилин. Я використовував утиліту hpacucli для моніторингу прогресу на G7, а потім на Gen8, це було дуже корисно для цього.

Я ще маю це зробити з гніву, але, як було зазначено, це добре працювало при тестуванні RHEL 5.10 на BL460G7 до BL460 Gen8.

Я не оновлював прошивку.

Початкова повторна синхронізація RAID1 в G7 зайняла трохи більше години. Повторна синхронізація в Gen8 зайняла менше 50 хвилин. Це стосувалося мене, але я не зміг знайти жодних проблем.

Ще раз дякую за всі корисні коментарі та пропозиції.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.