Neutron/MigrationFromNovaNetwork/HowTo
< Neutron
概述
本 wiki 描述了将服务器从 Nova 网络迁移到 Neutron 的逐步过程。
在进行实际迁移过程之前,强烈建议先执行 如何测试迁移过程 中描述的步骤来测试迁移过程。
TODO - 在此处填写迁移过程脚本 -
如何测试迁移过程
以下部分旨在让读者在实际迁移现有服务器(虚拟机)之前尝试迁移过程。
在本节中,我们使用 Nova 网络创建虚拟机,然后执行迁移步骤将其迁移到 Neutron 网络。此测试过程使用 devstack 执行。
注意:在进行迁移过程之前,请确保您的系统满足 先决条件
- 在 devstack 目录中应用 devstack 补丁。此补丁允许同时使用 Nova 和 Neutron 网络
- Restack
-
execute unstack.sh followed by stack.sh
-
- 在 /opt/stack/python-novaclient 目录中应用 novaclient 补丁
- 从 github 拉取 Neutron 迁移补丁
- 现在使用 nova boot 命令创建几个服务器(虚拟机)
-
nova boot --flavor=<flavor-id> --image=<Image-id> vm1
-
- 验证虚拟机是否已创建并且处于活动状态
-
nova list
-
- 现在修改 nova.conf 以使用 neutron - 如下所示
- network_api_class = nova.network.neutronv2.api.API
- firewall_driver = nova.virt.firewall.NoopFirewallDriver
- service_neutron_metadata_proxy = True
- security_group_api = neutron
- neutron_migrating = True
- [neutron]
- url = http://<host-ip>:9696
- region_name = RegionOne
- admin_tenant_name = service
- auth_strategy = keystone
- admin_auth_url = http://<host-ip>:35357/v2.0
- admin_password = <password>
- admin_username = neutron
- 重启 Nova
-
restart n-cpu and n-api services
-
- 创建 Neutron 网络和子网。如果您未使用 devstack 创建的网络,则只需要这样做。
- 通过发出以下命令将虚拟机从 Nova 网络迁移到 Neutron
-
nova migration-to-neutron <vm-id> <neutron-net-id>
- 请注意,在迁移过程中,无法启动其他虚拟机。
-
- 迁移所有服务器(虚拟机)后,禁用迁移。通过以下方式更新 /etc/nova/nova.conf 来完成此操作
-
neutron_migrating = True
-
- 重启 Nova
-
restart n-cpu and n-api services
-
- 现在您可以启动其他服务器(虚拟机)。这些将在 Neutron 网络中启动
先决条件
在开始迁移过程之前,请确保满足以下要求
- libvirt 库应为版本 1.2.5。要升级此库,请按照 此处 描述的步骤操作
- python-libvirt 也应为版本 1.2.5。升级 libvirt 应自动执行此操作。如果由于某种原因未升级,请按照 此处 描述的步骤升级此库
升级 libvirt 库
使用以下步骤升级 libvirt 库
使用“virsh --version”检查当前版本。如果当前版本为 1.2.5,请跳过本节的其余部分,否则继续
- 从 此处 下载并解压 libvirt 版本 1.2.5
- 如果尚未安装,请安装 pkg-config
- 如果尚未安装,请安装 libnl-dev
- 按照以下步骤配置 libvirt
- ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc
- make
- sudo make install
- 重启 libvirt 服务
- 通过执行“virsh --version”来验证版本,以确保正确安装了库
- 使用以下内容更新 /etc/libvirt/libvirtd.conf
unix_sock_group = "libvirtd"
unix_sock_rw_perms = "0770"
auth_unix_ro = "none"
auth_unix_rw = "none"
升级 python-libvirt 库
请注意,python-libvirt 版本必须与 libvirt 版本匹配。使用以下步骤升级 python-libvirt 库
- 从 此处 下载并解压 python-libvirt 版本 1.2.5
- 按照以下步骤安装 python-libvirt
- python setup.py build
- sudo python setup.py install