Как выполнить миграцию памяти в LXC /LXD, чтобы я мог выполнить живую миграцию с одного хоста на другой
Как выполнить перенастройку памяти для переноса в LXC /LXD, чтобы я мог выполнить живую миграцию с одного хоста на другой? Как настроить миграцию дообрезки в CRIU?
1 ответ
Предварительная миграция памяти для Live-миграции с CRUI
Динамическая миграция контейнеров Linux между хостами (есть скрипт миграции), LXC и CRUI:
Вы должны были собрать и установить последнюю версию (>= 1.3.1) CRIU.
LXC upstream начал интегрировать поддержку контрольных точек / восстановления через инструмент lxc-checkpoint. Эта функциональность была в последней выпущенной версии LXC---LXC 1.1.0, вы можете установить LXC 1.1.0 или проверить версию для разработки в Ubuntu, выполнив:
sudo add-apt-repository ppa:ubuntu-lxc/daily
sudo apt-get update
sudo apt-get install lxc
И добавьте следующие строки (как указано выше) в конфигурацию контейнера LXC:
cat | sudo tee -a /var/lib/lxc/u1/config << EOF
# hax for criu
lxc.console = none
lxc.tty = 0
lxc.cgroup.devices.deny = c 5:1 rwm
EOF
контрольная точка контейнера:
lxc-checkpoint -s -D /tmp/checkpoint -n u1
На этом этапе состояние контейнера сохраняется в /tmp/checkpoint, а файловая система - в /var/lib/lxc/u1/rootfs. Вы можете восстановить контейнер, выполнив:
lxc-checkpoint -r -D /tmp/checkpoint -n u1
PS: Вы можете сделать живую миграцию для процессов:
Дамп Возьмите задачи, которые вы собираетесь перенести, и перенесите их в какое-то место, спрашивая criu
оставить их в остановленном состоянии после сброса:
criu dump --tree <pid> --images-dir <path-to-existing-directory> --leave-stopped
Каталог, в который вы помещаете изображения, может находиться в общей файловой системе, если вы ее используете. В этом случае вы можете пропустить шаг Копирование и перейти к Восстановлению.
Копировать Скопировать изображения в узел назначения:
scp -r <path-to-images-dir> <dst>:/<path-to-images>
Восстановление Перейти к узлу назначения и восстановить приложения из изображений на нем:
criu restore --tree <pid> --images-dir <path-to-images>