Инструкция по переносу ВПС с jail на KVM

Вопросы касающиеся настройки, функционирования виртуальных серверов
Правила форума
1. Один вопрос - одна тема. Не надо задавать в той же теме другие вопросы.
2. Не пишите в чужих темах, если ваша проблема не имеет отношения к обсуждаемой.
3. Давайте полное описание проблемы - имя сайта, имя сервера, учётная запись, способ воспроизведения, скриншот ошибки.
4. Пароли выкладывать в форум - НЕ НАДО
Ответить
lissyara
Site Admin
Сообщения: 6464
Зарегистрирован: 2009-09-19, 22:04:41

Инструкция по переносу ВПС с jail на KVM

Сообщение lissyara »

всё можно сделать по ssh, безо всяких LiveCD

из Jail /etc/rc.conf достаём строчки касающиеся конфигурирования сети

Код: Выделить всё

 defaultrouter="91.227.18.1"
ifconfig_vtnet0="inet 91.227.18.18 netmask 255.255.255.0" 
fsck_y_enable="YES"
ядро нужной версии, отсуствующее в jail, кладём заранее, пока виртуалка всё ещё в jail (так прощще, меньше перезагрузок)
(само ядро я взял из самого маленького дистра нужной версии - директория /boot/kernel)
также, заранее вносим строчки в rc.conf и доводим fstab до такой кондиции:

Код: Выделить всё

# Device        Mountpoint      FStype  Options Dump    Pass
/dev/vtbd0p3    /               ufs     rw      1       1
/dev/vtbd0p2    none            swap    sw      0       0
/dev/acd0       /cdrom          cd9660  ro,noauto 0     0
linprocfs       /proc           linprocfs rw    0       0
tmpfs           /tmp            tmpfs   rw      0       0
fdesc           /dev/fd         fdescfs rw      0       0
в свежезаинсталленой голой виртуалке на KVM, вырубаем свап

Код: Выделить всё

 swapoff /dev/gpt/swap
разбиваем его как файловую систему

Код: Выделить всё

newfs /dev/gpt/swap
монтируем

Код: Выделить всё

mount -o async /dev/gpt/swap /mnt/
размер небольшой:

Код: Выделить всё

root@v75086:/ # df -h | grep swap
/dev/gpt/swap      469M    8.0k    431M     0%    /mnt
root@v75086:/ # 
сносим отладочные файлы ядра

Код: Выделить всё

rm -f /boot/kernel/*.symbols
сносим софт наставленный в виртуалку

Код: Выделить всё

rm -rf /usr/local
получаем места впритирку....

Код: Выделить всё

root@v75086:/var # df -h
Filesystem         Size    Used   Avail Capacity  Mounted on
/dev/gpt/rootfs     15G    453M     13G     3%    /
devfs              1.0k    1.0k      0B   100%    /dev
/dev/gpt/swap      469M    8.0k    431M     0%    /mnt
root@v75086:/var # 
надо ещё чёнить снести...

Код: Выделить всё

rm -rf /rescue/*
в принципе, модули ядра тоже не нужны

Код: Выделить всё

root@v75086:/boot/kernel # kldstat 
Id Refs Address            Size     Name
 1    1 0xffffffff80200000 1611638  kernel
root@v75086:/boot/kernel # 
поэтому сносим

Код: Выделить всё

root@v75086:/boot/kernel # rm -f /boot/kernel/*.ko
получаем:

Код: Выделить всё

root@v75086:/boot/kernel # df -h
Filesystem         Size    Used   Avail Capacity  Mounted on
/dev/gpt/rootfs     15G    369M     13G     3%    /
devfs              1.0k    1.0k      0B   100%    /dev
/dev/gpt/swap      469M    8.0k    431M     0%    /mnt
root@v75086:/boot/kernel # 
до копирования, доводим до такого состояния fstab

Код: Выделить всё

root@v75086:/ # cat /etc/fstab 
# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/gpt/swap           /               ufs     rw      1       1
переносим содержимое большого раздела на маленький

Код: Выделить всё

root@v75086:/boot/kernel # cd / && tar --one-file-system --create --file=- * | (cd /mnt/; tar -xvf -)
перезагружаемся и после перезагрузки получаем такой интересный фокус:

Код: Выделить всё

root@v75086:~ # df -h
Filesystem       Size    Used   Avail Capacity  Mounted on
/dev/gpt/swap    469M    402M     29M    93%    /
devfs            1.0k    1.0k      0B   100%    /dev
root@v75086:~ # 
т.е. ядро у нас загрузилось с /dev/gpt/rootfs а сам мир примонтировался с /dev/gpt/swap

форматируем корневой раздел

Код: Выделить всё

newfs /dev/gpt/rootfs 
включаем софтапдейты

Код: Выделить всё

root@v75086:~ # tunefs -n enable /dev/gpt/rootfs
tunefs: soft updates set
root@v75086:~ # 
монтируем его в /mnt

Код: Выделить всё

root@v75086:~ # mount /dev/gpt/rootfs /mnt/
root@v75086:~ # df -h
Filesystem         Size    Used   Avail Capacity  Mounted on
/dev/gpt/swap      469M    402M     29M    93%    /
devfs              1.0k    1.0k      0B   100%    /dev
/dev/gpt/rootfs     15G    8.0k     13G     0%    /mnt
root@v75086:~ # 
заходим на машину-источник и копируем по сети содержимое дисков tar'ом с jail на KVM

Код: Выделить всё

cd /; tar --create --file=- .cshrc .profile * | ssh 91.227.18.11 "(cd /mnt; tar xvf -)"
(медленно - пару мегабайт в секунду.... поэтому заранее слетует вычистить весь мусор типа старых логов, архиви и т.п. текущие логи тоже лучше обнулить, снести содержимое директории /rescue)


не забываем про правку fstab и rc.conf - иначе вам светит однопользовательский режим и ковыряния через VNC или LiveCD!
Убей их всех! Бог потом рассортирует...
Ответить