reloca.toby XServer

reloca.to/Інструкції

Переїзд сервера до іншого хостера

Той самий переїзд, про який думають, коли кажуть «треба переїжджати»: сервер стоїть в одного провайдера, має стояти в іншого, і ніхто не хоче збирати його наново з пам'яті. Ось процедура від початку до кінця.

Що переїжджає, а що ні

Переїжджає вся встановлена система: розділи, md RAID і LVM, файлові системи з їхніми UUID, кожен пакет, кожен конфіг, cron-завдання, сертифікати, скрипти, які хтось лишив у /opt три роки тому. Нічого не перевстановлюється, і список програм писати не треба.

Не переїжджає адреса. Новий сервер стоїть в іншій мережі зі своїм IP, тож DNS доведеться перемкнути після переїзду. Ліцензії, прив'язані до MAC або machine id, теж потребують уваги: machine id перенесена система зберігає, а мережева карта в неї нова.

Що потрібно

  • Новий сервер, завантажений у Live OS. В XServer це пункт меню завантаження в панелі; утиліта працює там, на новій машині.
  • Старий сервер, доступний по ssh під root. Він може працювати у своїй системі або теж бути в Live. Утиліта визначить сама.
  • Мережа між ними. Працює все від 100 Мбіт і вище; чим швидше, тим коротше.

Доступ до панелі старого провайдера, бекап і згода будь-кого не потрібні. Від старого боку треба лише прочитати диск по ssh.

Переїзд крок за кроком

Зайдіть на новий сервер і поставте утиліту. Потрібні пакети вона дотягне сама.

ssh -A root@НОВИЙ-СЕРВЕР
curl -fsSL reloca.to | bash

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

reloca.to -n root@СТАРИЙ-IP

План — це текстовий файл, який можна прочитати і виправити: розмітка нового диска, який том копіюється блочно, а який пофайлово, які UUID зберігаються, що змінюється у fstab і в мережевій конфігурації. Якщо там написано щось несподіване, дізнатися про це варто саме зараз, а не коли диск уже записаний.

Коли все виглядає правильно, запускайте переїзд.

reloca.to root@СТАРИЙ-IP

Перед першим записом утиліта друкує, що на цільовому диску зараз, і просить ввести його ім'я та розмір з екрана. Рефлекторне «так» не зітре не той диск. Далі вона розмічає, копіює, доробляє копію в chroot і проганяє десятки перевірок; перезавантажитися дозволяє лише зелена перевірка.

Поки воно копіює

Утиліта живе в сесії tmux, тому обрив ssh нічого не вартий: зайдіть знову і виконайте reloca.to -s attach. Прогрес і оцінка друкуються по кожному тому, а том, що впав, можна повторити окремо: -o redo=4 -s transfer.

Тривалість — це обсяг даних, поділений на канал. Півгодини для невеликого сервера на швидкому каналі, кілька годин для терабайта на повільному. Старий сервер увесь цей час обслуговує користувачів, якщо ви обрали on-line режим.

Перемикання і шлях назад

Остання фаза знімає старий сервер з мережі й вантажить новий у перенесену систему. Тримайте відкритою консоль нового сервера: перше завантаження видно лише там.

Якщо щось не так, шлях назад — це старий сервер. Його лише читали, ніколи не писали, тож на ньому все, що було. Увімкніть, поверніть DNS, і нічого не втрачено. Тому ж утиліта відмовляється перезавантажуватися після невдалої перевірки: код 3 означає, що диск записаний, але система не підніметься, тож усуньте причину і повторіть reloca.to -s verify.

Після переїзду

  • Перемкніть DNS на нову адресу. Знизьте TTL за добу наперед, і перемикання займе хвилини.
  • Перевірте, що було прив'язано до старого IP: правила фаєрволів деінде, білі списки в платіжних сервісів, репутація пошти.
  • Потримайте старий сервер кілька днів. Це ще один рахунок і відкат, якому не потрібне відновлення з бекапу.

Усі опції утиліти з їхніми значеннями за замовчуванням — у довіднику опцій.

Спробуйте на своєму переїзді

Утиліта безкоштовна, сухий прогін не змінює нічого, а старий сервер лише читається.

curl -fsSL reloca.to | bash

Усі опції