Прямая миграция KVM на две машины с сохранением статического IP-адреса гостевого моста.

446
amir mohamad hatami

На каждом из двух компьютеров с Ubuntu я установил KVM и создал несколько виртуальных машин. Все виртуальные машины на каждом ПК должны видеть друг друга, поэтому я не мог использовать частный IP-адрес, назначенный им KVM и AFAIK, который требует создания моста, чтобы их IP-адреса были видны друг другу. Эти две машины связаны друг с другом с помощью маршрутизатора.

Теперь я хочу перенести одну из этих виртуальных машин с одной стороны на другую. Но IP-адрес, который определяется вначале, должен быть постоянным. Можно ли сделать живую миграцию с этими условиями? Если нет, или вы знаете другие лучшие способы сделать это, пожалуйста, сообщите.

0
Определите «живой». Как вы собираетесь перенести состояние виртуальной машины с одного хоста на другой? Это нормально, чтобы приостановить, а затем передать, а затем возобновить? Если да, вы можете сохранить тот же IP-адрес, и виртуальная машина должна воспринимать передачу как короткое прерывание сетевого подключения. dirkt 6 лет назад 0
У KVM есть известное определение для живой миграции, и оно отличается от других типов миграции. Вы можете увидеть здесь больше https://www.linux-kvm.org/page/Migration amir mohamad hatami 6 лет назад 0
* Передача Ethernet-пакета «Я здесь», чтобы объявить о новом местоположении сетевых карт. * Похоже, они уже позаботились о переносе IP-адресов ... почему бы просто не попробовать? dirkt 6 лет назад 0
Я просто волнуюсь за мост. Я знаю, что основной IP-адрес можно сохранить, но я не уверен в IP-адресе моста. Глядя на слайд здесь https://www.slideshare.net/ShivamSingh249/live-vm-migration на странице 37 Я сомневаюсь, работает это или нет amir mohamad hatami 6 лет назад 0

1 ответ на вопрос

0
suraj singh

Живая миграция - это процесс перемещения работающей виртуальной машины (ВМ) с одного физического сервера на другой, не нарушая доступность виртуальной машины для пользователей. Целью динамической миграции виртуальной машины является обеспечение возможности обслуживания или обновления виртуальной машины без каких-либо простоев пользователей виртуальной машины во время миграции. Живая миграция также известна как плавная живая миграция, когда конечный пользователь не видит заметных простоев во время процесса миграции.

Требование:

  1. Поддержка аппаратной виртуализации.
  2. Используйте процессоры от одного производителя. Например, все AMD или все Intel.
  3. Принадлежит либо к одному домену Active Directory, либо к доменам, которые доверяют друг другу.
  4. Виртуальные машины должны быть настроены на использование виртуальных жестких дисков или виртуальных дисков Fibre Channel (без физических дисков).

Обзор:

  1. Произведена настройка живой миграции. На этапе настройки динамической миграции исходный сервер создает соединение с целевым сервером. Это соединение передает данные конфигурации виртуальной машины на конечный сервер. Скелетная виртуальная машина настроена на конечном сервере, а память выделена для целевой виртуальной машины.

  2. Страницы памяти передаются от исходного узла к целевому узлу. На втором этапе динамической миграции память, выделенная для мигрирующей виртуальной машины, копируется по сети на конечный сервер. Эта память называется «рабочим набором» переносимой виртуальной машины. Страница памяти составляет 4 КБ.

  3. Измененные страницы переносятся. Третий этап динамической миграции - это процесс копирования памяти, который дублирует оставшиеся измененные страницы памяти для «тестовой виртуальной машины» на конечном сервере. Исходный сервер передает состояние процессора и устройства виртуальной машины на конечный сервер.

  4. Дескриптор хранилища перемещается с исходного сервера на конечный сервер. На четвертом этапе динамической миграции управление хранилищем, связанным с «тестовой виртуальной машиной», например любыми файлами виртуального жесткого диска или физическим хранилищем, подключенным через виртуальный адаптер Fibre Channel, передается на сервер назначения.

  5. Виртуальная машина подключена к сети на конечном сервере. На пятом этапе динамической миграции конечный сервер теперь имеет обновленный рабочий набор для «тестовой виртуальной машины», а также доступ к любому хранилищу, используемому «тестовой виртуальной машиной». На этом этапе «тестирование виртуальной машины» машина ».

  6. Чистка сети происходит. На последнем этапе динамической миграции перенесенная виртуальная машина работает на конечном сервере. В этот момент сообщение отправляется сетевому коммутатору. Это сообщение приводит к тому, что сетевой коммутатор получает новые MAC-адреса перенесенной виртуальной машины, чтобы сетевой трафик к «тестовой виртуальной машине» и обратно мог использовать правильный порт коммутатора.

Следующие переменные могут влиять на скорость живой миграции:

• Количество измененных страниц на виртуальной машине, которую нужно перенести - чем больше количество измененных страниц, тем дольше виртуальная машина будет оставаться в состоянии миграции.

• Доступная пропускная способность сети между исходным и целевым серверами.

• Конфигурация оборудования исходного и конечного серверов.

• Загрузка на исходном и конечном серверах.

• Доступная пропускная способность (сеть или Fibre Channel) между серверами и общим хранилищем.

ШАГИ:

  1. Создание хранилища пулов NFS. Пулы NFS - это ресурсы хранения, предоставляемые хостами OVP, которые используются виртуальными машинами для целей хранения.

    1.1 Настройка каталога NFS Pool. Создайте каталог пула.

    # mkdir -p /export/x86-64-kvm-guest-pool 

    Отредактируйте / etc / exports, чтобы добавить соответствующую строку экспорта.

    # cat /etc/exports /export/x86-64-kvm-guest-pool *(rw,no_subtree_check,insecure,no_root_squash) 

    Скажите серверу NFS перезагрузить файл конфигурации экспорта.

    # exportfs –a 

    1.2 Подключиться к гипервизору QEMU.

    # virsh connect qemu:///system 

    1.3 Загрузите файл конфигурации для пула NFS.

    Перед загрузкой файла конфигурации рекомендуется убедиться, что переменная POOL_HOST содержит полное имя, а не локальное имя, например localhost. Использование полностью определенных имен позволяет виртуальным машинам находить необходимые ресурсы хранения, даже если они переносятся на разные хосты OVP.

    # cat xmlDir/x86-64-kvm-guest-pool.xml  <pool type="netfs"> <name>x86-64-kvm-guest-pool</name> <source> <host name='HOST_NAME'/> <dir path='/export/x86-64-kvm-guest-pool/'/> </source> <target> <path>/export/images/</path> </target> </pool> # virsh pool-define xmlDir/x86-64-kvm-guest-pool.xml 

    ПРИМЕЧАНИЕ. Создание всех файлов примеров со значениями по умолчанию.

     # libvirt-xml-examples # ls x86-64-kvm-guest-glusterfs-qcow2.xml x86-64-kvm-guest-local-qcow2.xml x86-64-kvm-guest-nfs-qcow2.xml x86-64-kvm-guest-pool x86-64-kvm-guest-glusterfs-raw.xml x86-64-kvm-guest-local-raw.xml x86-64-kvm-guest-nfs-raw.xml x86-64-kvm-guest-pool.xml 

    1.4 Запустите пул хранения

     # virsh pool-start x86-64-kvm-guest-pool 

    Примечание: virsh - это инструмент интерфейса командной строки для управления гостевыми виртуальными машинами и гипервизором. Инструмент командной строки virsh построен на API управления libvirt и работает как альтернатива команде qemu-kvm и графическому приложению virt-manager.

    1.5 Создайте том хранения в пуле хранения x86-64-kvm-guest-pool.

     # virsh vol-create-as x86-64-kvm-guest-pool x86-64-kvm-guest-vda.raw 10G --format raw 
  2. Запуск виртуальной машины на исходном сервере.

    2.1 Создание Linux-моста для сетевого подключения к виртуальной машине

     brctl addbr <BRIDGE_NAME> ifconfig <INTERFACE_NAME> 0.0.0.0 promisc up brctl addif <BRIDGE_NAME> <INTERFACE_NAME> ifconfig <BRIDGE_NAME> <BRIDGE_IP> up 

    2.2 Отредактируйте файл конфигурации виртуальной машины.

     # cp x86-64-kvm-guest-nfs-raw.xml <NAME_FOR_CONF_FILE>.xml #vim <NAME_FOR_CONF_FILE>.xml  <domain type='kvm'> <name>L2_VM2</name> -name for VM ………  <cpu mode='custom' match='exact'> <model fallback='allow'>Conroe</model> <topology sockets='1' cores='3' threads='1'/> - assign vcpus to VM </cpu>  ……..  <devices> <emulator>/usr/bin/kvm</emulator> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='….*iso' startupPolicy='optional'> - mention ISO file </source> <target dev='hdc' bus='ide'/> <readonly/> <serial></serial> <boot order='1'/> <alias name='ide0-1-0'/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> 

    …… .. -. Назначить здесь хранилище, созданное в разделе 1.5 VDA …… .. - назначить имя для моста, созданного в разделе 2.1 -, уникальное для каждой виртуальной машины

    2.3 Запустить виртуальную машину.

    2.3.1. Подключение к гипервизору QEMU.

     # virsh connect qemu:///system 

    2.3.2 Загрузите файл конфигурации виртуальной машины.

     #virsh define xmlDir/x86-64-kvm-guest-nfs-raw.xml - created in section 2.2 

    2.3.3 Запустить ВМ.

    Это первая загрузка виртуальной машины для загрузки образа установщика. Установите гостевой образ.

     #virsh start VM_NAME 

    Убедитесь, что машина работает. #virsh list Id Name State -------------------------------------------- -------- 8 x86-64-kvm-guest работает может получить доступ к графическому интерфейсу виртуальной машины с помощью сеанса vnc: - порт 5900 vnc.

    2.4.4. После успешного внедрения ОС. Отредактируйте файл конфигурации виртуальной машины.

     <devices> <emulator>/usr/bin/kvm</emulator> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='….*iso' startupPolicy='optional'> - remove ISO file name . </source> <target dev='hdc' bus='ide'/> <readonly/> <serial></serial> <boot order='1'/> <alias name='ide0-1-0'/> 

    Выполните шаг, указанный в разделе 2.3, чтобы запустить виртуальную машину.

  3. Миграция виртуальной машины.

    В этом упражнении предполагается, что виртуальная машина x86-64-kvm-guest работает на узле OVP SOURCE_HOST и должна быть перенесена в реальном времени на узел OVP TARGET_HOST. Прежде чем приступить к работе с этим разделом, убедитесь, что обе машины доступны друг другу.

    3.1 Создайте мост с тем же именем в TARGET_HOST, которое было создано в разделе 2.1.

    3.2 Включите общий пул NFS на TARGET_HOST.

     # scp xmlDir/x86-64-kvm-guest-pool.xml root@TARGET_HOST_IP:xmlDir. 

    Следуйте разделу 1.3 и 1.4 раздела Target_HOST.

    3.3 На SOURCE_HOST запустите миграцию.

     # virsh migrate  --live \ --p2p \ // interface name used for migration --verbose \ --x86-64-kvm-guest \ qemu+tcp://TARGET_HOST/system 

    Верфий, если миграция прошла успешно. Запустите команду на TARGET_HOST.

     #virsh list Id Name State ---------------------------------------------------- 8 x86-64-kvm-guest running 
Если вы копируете ответ откуда-то (например, с https://knowledge.windriver.com/en-us/000_Products/000/010/040/060/010/000_Wind_River_Linux_Open_Virtualization_Profile%2C_Virtual_Node_User%27s_Guide%250_0.0 ) вы должны указать источник в своем посте. Также попробуйте лучше скопировать форматирование. Scott 6 лет назад 0
В любом случае мой вопрос заключается в том, может ли он сохранить статический IP или нет amir mohamad hatami 6 лет назад 0
Да, IP для перенесенной ВМ остаются прежними. suraj singh 6 лет назад 0
Спасибо, я предложил изменить форматирование. Однако нужно ли создавать несколько мостов для каждой виртуальной машины, которой у меня есть, или одного моста будет достаточно? amir mohamad hatami 6 лет назад 0
только один мост необходим для исходного и целевого компьютера с одинаковым именем suraj singh 6 лет назад 0