В вики Proxmox есть страница, где описаны различные сценарии миграции, но на момент написания она не охватывает миграцию физической Linux-машины (или контейнера LXC/LXD) в контейнер PVE (LXC). Я открыл тикет с просьбой обновить эту страницу инструкциями, как эти, которые я здесь размещаю, на случай, если обновление страницы затянется или они решат не документировать этот процесс. Этот процесс стоит документировать где-нибудь публично, так как мне потребовалось несколько дней экспериментов, чтобы избежать разных проблем и прийти к рабочему методу.
Миграция Linux-инсталляции в контейнер Proxmox VE LXC:
Войдите в систему, которую хотите перенести в PVE-контейнер, от имени root и сначала остановите все работающие сервисы, такие как веб-серверы или базы данных, например, `systemctl stop apache2`, `systemctl stop mysql` и т.д. Вам нужно быть root (или запускать команды с sudo), чтобы `tar` мог правильно получить доступ ко всем файлам и заархивировать их с помощью команд, таких как:
```
# cd /
# tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz /
```
Опция `tar -p` критически важна для сохранения прав доступа к файлам.
Скопируйте этот tarball в директорию кэша шаблонов контейнеров на PVE-сервере, которая по умолчанию находится по адресу `/var/lib/vz/template/cache`. Затем вы можете создать новый контейнер, используя этот tarball в качестве шаблона, через веб-интерфейс или с помощью `pct`. Если вы выберете веб-интерфейс PVE для создания нового контейнера, обязательно снимите флажок «Непривилегированный контейнер» (вкладка «Общие параметры»), иначе вы, скорее всего, столкнетесь с проблемами прав собственности на файлы.
Создание нового привилегированного i386 контейнера на ZFS хранилище с ID контейнера 101 с помощью `pct` может выглядеть так:
```
# pct create 101 local:vztmpl/backup.tar.gz -arch i386 -hostname your.hostname.here -onboot 1 -rootfs local-zfs:300 -memory 4096 -cores 2
```
Обратите внимание, что эта команда не настраивает сеть. Я активирую сеть после создания контейнера через веб-интерфейс Proxmox.
Миграция Linux-инсталляции в контейнер Proxmox VE LXC:
Войдите в систему, которую хотите перенести в PVE-контейнер, от имени root и сначала остановите все работающие сервисы, такие как веб-серверы или базы данных, например, `systemctl stop apache2`, `systemctl stop mysql` и т.д. Вам нужно быть root (или запускать команды с sudo), чтобы `tar` мог правильно получить доступ ко всем файлам и заархивировать их с помощью команд, таких как:
```
# cd /
# tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz /
```
Опция `tar -p` критически важна для сохранения прав доступа к файлам.
Скопируйте этот tarball в директорию кэша шаблонов контейнеров на PVE-сервере, которая по умолчанию находится по адресу `/var/lib/vz/template/cache`. Затем вы можете создать новый контейнер, используя этот tarball в качестве шаблона, через веб-интерфейс или с помощью `pct`. Если вы выберете веб-интерфейс PVE для создания нового контейнера, обязательно снимите флажок «Непривилегированный контейнер» (вкладка «Общие параметры»), иначе вы, скорее всего, столкнетесь с проблемами прав собственности на файлы.
Создание нового привилегированного i386 контейнера на ZFS хранилище с ID контейнера 101 с помощью `pct` может выглядеть так:
```
# pct create 101 local:vztmpl/backup.tar.gz -arch i386 -hostname your.hostname.here -onboot 1 -rootfs local-zfs:300 -memory 4096 -cores 2
```
Обратите внимание, что эта команда не настраивает сеть. Я активирую сеть после создания контейнера через веб-интерфейс Proxmox.
