跳转到: 导航, 搜索

Neutron/MigrationFromNovaNetwork/HowTo

概述

本 wiki 描述了将服务器从 Nova 网络迁移到 Neutron 的逐步过程。
在进行实际迁移过程之前,强烈建议先执行 如何测试迁移过程 中描述的步骤来测试迁移过程。


TODO - 在此处填写迁移过程脚本 -


如何测试迁移过程

以下部分旨在让读者在实际迁移现有服务器(虚拟机)之前尝试迁移过程。

在本节中,我们使用 Nova 网络创建虚拟机,然后执行迁移步骤将其迁移到 Neutron 网络。此测试过程使用 devstack 执行。

注意:在进行迁移过程之前,请确保您的系统满足 先决条件


  1. 在 devstack 目录中应用 devstack 补丁。此补丁允许同时使用 Nova 和 Neutron 网络
  2. Restack
        execute unstack.sh followed by stack.sh      
  3. 在 /opt/stack/python-novaclient 目录中应用 novaclient 补丁
  4. 从 github 拉取 Neutron 迁移补丁
  5. 现在使用 nova boot 命令创建几个服务器(虚拟机)
        nova boot --flavor=<flavor-id> --image=<Image-id>  vm1      
  6. 验证虚拟机是否已创建并且处于活动状态
        nova list          
  7. 现在修改 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
  8. 重启 Nova
        restart n-cpu and n-api services      
  9. 创建 Neutron 网络和子网。如果您未使用 devstack 创建的网络,则只需要这样做。
  10. 通过发出以下命令将虚拟机从 Nova 网络迁移到 Neutron
        nova migration-to-neutron <vm-id> <neutron-net-id>         
    请注意,在迁移过程中,无法启动其他虚拟机。
  11. 迁移所有服务器(虚拟机)后,禁用迁移。通过以下方式更新 /etc/nova/nova.conf 来完成此操作
        neutron_migrating = True        
  12. 重启 Nova
        restart n-cpu and n-api services      
  13. 现在您可以启动其他服务器(虚拟机)。这些将在 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