wiki:technical:proxmox:openvz_kvm
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| wiki:technical:proxmox:openvz_kvm [2024/09/14 15:29] – Diman | wiki:technical:proxmox:openvz_kvm [2025/02/03 00:13] (текущий) – [Миграция] Diman | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== Миграция из контейнера (openvz, lxc) в KVM ====== | ====== Миграция из контейнера (openvz, lxc) в KVM ====== | ||
| + | ===== Подготовка к миграции ===== | ||
| + | На целевом сервере следует создать виртуалку со схожими с контейнером параметрами и загрузиться в linux live CD (GRML). Размечаем диск одним разделом и создаем на нем файловую систему (рекомендуется **ext3**). Также | ||
| + | |||
| + | ===== Миграция ===== | ||
| <code bash> | <code bash> | ||
| + | # Монтируем диск на сервере с KVM | ||
| mount /dev/sda1 /mnt | mount /dev/sda1 /mnt | ||
| + | # Копируем данные из источника (с ноды openvz или из другого контейнера) | ||
| rsync -aAX --info=progress2 root@ovz_node:/ | rsync -aAX --info=progress2 root@ovz_node:/ | ||
| - | mount /dev/sda1 /mnt | + | |
| + | # После завершения копирования монтируем все, что требуется для работы | ||
| + | # и переходим в гостевую ОС системы | ||
| + | # | ||
| mount --bind /proc /mnt/proc | mount --bind /proc /mnt/proc | ||
| mount --bind /dev /mnt/dev | mount --bind /dev /mnt/dev | ||
| Строка 14: | Строка 23: | ||
| chroot /mnt bash | chroot /mnt bash | ||
| + | # Заменяем fstab | ||
| echo '/ | echo '/ | ||
| - | # resov.conf | + | |
| + | # resolv.conf | ||
| + | # | ||
| rm / | rm / | ||
| echo ' | echo ' | ||
| - | # ubuntu | + | # |
| - | # ubuntu 20.04 | + | # Установка ядра - ищем самое свежее |
| + | # Для некоторых ОС ниже см. рабочие примеры установки ядра | ||
| + | # | ||
| + | |||
| + | # ubuntu | ||
| + | # Ставим свежее ядро | ||
| + | |||
| + | apt install -y linux-image-generic linux-headers-generic | ||
| + | |||
| + | # Можно поискать требуемое ядро | ||
| apt search linux-image | grep generic | grep -v unsigned | apt search linux-image | grep generic | grep -v unsigned | ||
| + | |||
| + | # И установить именно его | ||
| + | # ubuntu 22.04 | ||
| + | apt install -y linux-image-6.8.0-40-generic linux-headers-generic | ||
| + | |||
| + | # ubuntu 20.04 | ||
| apt install -y linux-image-5.4.0-99-generic linux-headers-generic | apt install -y linux-image-5.4.0-99-generic linux-headers-generic | ||
| + | |||
| + | # debian 10,11,12 | ||
| + | |||
| + | apt install -y linux-image-amd64 linux-headers-amd64 grub2 | ||
| # debian 11 | # debian 11 | ||
| Строка 28: | Строка 59: | ||
| apt install -y linux-image-5.10.0-31-amd64 linux-headers-5.10.0-31-amd64 grub2 | apt install -y linux-image-5.10.0-31-amd64 linux-headers-5.10.0-31-amd64 grub2 | ||
| + | # Исправление GRUB | ||
| vi / | vi / | ||
| Строка 33: | Строка 65: | ||
| GRUB_CMDLINE_LINUX=" | GRUB_CMDLINE_LINUX=" | ||
| - | vi / | + | ### |
| - | eth0 | + | # конфигурируем сеть. у меня виртуалка получает IP по |
| + | ## | ||
| echo '### https:// | echo '### https:// | ||
| Строка 47: | Строка 80: | ||
| update-initramfs -u | update-initramfs -u | ||
| + | |||
| + | </ | ||
| + | |||
| + | в непонятных случаях помогает скрипт в кроне: | ||
| + | <code bash> | ||
| + | |||
| + | #!/bin/bash | ||
| + | |||
| + | iptables -F | ||
| + | iptables -X | ||
| + | iptables -P INPUT ACCEPT | ||
| + | iptables -P OUTPUT ACCEPT | ||
| + | ifconfig eth0 inet 91.194.3.25 | ||
| + | ip r a default via 91.194.3.126 dev eth0 | ||
| + | systemctl > / | ||
| + | service ssh restart | ||
| + | </ | ||
| + | |||
| + | ===== Особенности переноса данных на выделенные серверы ===== | ||
| + | При переносе данных с виртуальных машин и выделенных серверов на выделенные серверы следует до начала переноса создать разметку на дисках целевого сервера, | ||
| + | ==== Копирование данных ==== | ||
| + | |||
| + | <code bash> | ||
| + | # | ||
| + | # Исключение лишних директорий и файлов при копировании. | ||
| + | # | ||
| + | |||
| + | rsync -aAX --info=progress2 --exclude={' | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Установка загрузчика, | ||
| + | |||
| + | <code bash> | ||
| + | |||
| + | mount /dev/sdXY /mnt | ||
| + | mount /dev/sdXX / | ||
| + | |||
| + | for i in /dev /dev/pts /proc /sys /run; do mount -B $i /mnt$i; done | ||
| + | |||
| + | chroot / | ||
| + | |||
| + | grub-install /dev/sdX | ||
| + | update-grub | ||
| + | exit | ||
| + | |||
| + | # EFI | ||
| + | mount -t efivarfs none / | ||
| + | |||
| </ | </ | ||
wiki/technical/proxmox/openvz_kvm.1726316980.txt.gz · Последнее изменение: — Diman
