reloca.toby XServer

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

З VPS на виділений сервер

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

Що насправді змінюється під системою

VPS і виділений сервер відрізняються тим, що Linux помічає під час завантаження і більше ніде: контролер дисків, імена дисків, мережева карта і прошивка. Усе, що вище, — пакети, конфігурація і дані — не має думки про те, на чому воно працює.

  • Диски перестають бути vda і стають sda або nvme0n1. Усе, що у fstab чи в завантажувачі називає пристрій замість UUID, зламалося б, тому копія зберігає UUID, і імена перестають мати значення.
  • Драйвер virtio поступається справжньому контролеру, який має бути в initramfs, інакше ядро взагалі не дістанеться кореня.
  • Прошивка може відрізнятися: багато VPS — це BIOS там, де залізо UEFI, або навпаки.
  • Мережева карта нова, з новим MAC і часто з новим ім'ям.

Усе це утиліта робить на фазі доробки: збирає initramfs із драйверами нового контролера, ставить grub під ту прошивку, яка в цілі справді є, перейменовує основний інтерфейс на eth0 і прив'язує його до нового MAC, а решту системи не чіпає.

Як завести VPS у переїзд

Якщо VPS працює далі, на ньому готувати не треба нічого: утиліта читає його диски по ssh просто під навантаженням, і це on-line режим. Якщо копіювати зупиненим, потрібен Live OS, і для VPS є два шляхи.

curl -fsSL reloca.to/live | bash

Ця команда перезавантажує машину просто в Live через kexec, зберігаючи адресу. Там, де kexec не працює (Hyper-V, Azure і кілька хмар), підключіть reloca.to/live.iso через консоль провайдера або панель VPS і виберіть у меню full.

Переїзд

На новому сервері, завантаженому в Live OS:

ssh -A root@НОВИЙ-СЕРВЕР
curl -fsSL reloca.to | bash
reloca.to -n root@IP-VPS      # план, нічого не пишеться
reloca.to root@IP-VPS

Два диски в новому сервері й немає апаратного RAID? Зберіть дзеркало заодно:

reloca.to -d /dev/sda,/dev/sdb -o raid=1 root@IP-VPS

Утиліта розкладе пари md RAID1 послот, поставить завантажувач на обидва диски й додасть mdadm у перенесену систему, якщо його там не було. VPS з одним диском стає сервером, який переживає втрату одного.

Що кусається на цьому маршруті

  • cloud-init. VPS, поставлений із хмарного образу, несе його, і при першому завантаженні він перепише мережу і, можливо, ім'я хоста. Утиліта типово вимикає його роботу з мережею та іменем; -o cloudinit=keep, якщо є причина лишити.
  • Менший диск. Новий сервер не зобов'язаний бути більшим. Якщо дані влазять, корінь їде пофайлово у свіжу файлову систему з тим самим UUID і можливостями, і завантажувач нічого не помічає.
  • Ліцензії та білі списки. IP змінюється, тож усе, що прив'язане до нього, треба оновити: правила фаєрволів деінде, платіжні сервіси, репутація пошти.
  • Перше завантаження. Дивіться його на консолі нового сервера. У VPS була консоль у панелі, у виділеного сервера це BMC, і лише там видно перший старт.

Усі опції, що керують розміткою, — у довіднику опцій.

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

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

curl -fsSL reloca.to | bash

Усі опції