kilo版openstack云主机动态热迁移

原创
2016/07/29 14:24
阅读数 586

一、背景

kilo版本的openstack,后台存储使用的ceph

修改配置前

以admin的身份登录dashboard,进行实例热迁移的操作,迁移test1实例

 

 

虽然显示正在迁移,但是过了一小会发现机器还是属于bdc216,并没有迁移成功。

 

 

二、修改配置

 

test1的id为:

2907c778-3e30-4012-ab2c-ab43dcca1ea0

进入216机器找到test1的配置文件目录:

# cd /var/lib/nova/instances/

[root@bdc216 instances]# ls

0a287498-27a9-4755-ac70-afb4d6c0151b  2907c778-3e30-4012-ab2c-ab43dcca1ea0  _base  compute_nodes  locks

以实例id作为目录,进入改目录

# cd 2907c778-3e30-4012-ab2c-ab43dcca1ea0/

# ls

console.log  libvirt.xml

里面放了该实例的配置文件,其实就是kvm的xml配置文件

 

2.1  迁移条件

OpenStack 调用底层的 libvirt 来完成动态迁移。虚拟机的迁移,其实就是数据的转移。libvirt 提供了隧道化的数据传输(libvirt tunnelled transport)方式来完成数据转移。

检查两台计算节点

216和218之间的传输通道是否连通

在216上执行:

# virsh -c qemu+tcp://bdc218/system

error: failed to connect to the hypervisor

error: unable to connect to server at 'bdc218:16509': Connection refused

发现并不连通。

 

修改libvirt的配置文件

# vi /etc/sysconfig/libvirtd

放开注释

LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf

LIBVIRTD_ARGS="--listen"

 

修改/etc/libvirt/libvirtd.conf 

# vi /etc/libvirt/libvirtd.conf 

listen_tls = 0

listen_tcp = 1
 
tcp_port = "16509"

listen_addr = "0.0.0.0"

auth_tcp = "none"

 

如果开了防火墙,还得打开端口16509

 

重启服务:

# systemctl restart libvirtd

# systemctl status libvirtd 

● libvirtd.service - Virtualization daemon

   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)

   Active: active (running) since Fri 2016-07-29 11:52:49 CST; 5s ago

     Docs: man:libvirtd(8)

           http://libvirt.org

 Main PID: 24396 (libvirtd)

   CGroup: /system.slice/libvirtd.service

           └─24396 /usr/sbin/libvirtd --listen


Jul 29 11:52:49 bdc218 systemd[1]: Starting Virtualization daemon...

Jul 29 11:52:49 bdc218 systemd[1]: Started Virtualization daemon.

 

 

切换至216机器上再次连接

[root@bdc216 instances]# virsh -c qemu+tcp://bdc218/system

Welcome to virsh, the virtualization interactive terminal.


Type:  'help' for help with commands

       'quit' to quit


virsh # 

 

连接成功。

 

再次进行实例热迁移

 

再次查看,发现主机已经显示为bdc218了

 

2.2 进一步测试

 

添加两台云主机test3、test4

查看当前页面情况

 

 

现在216上只有一台云主机,检查

[root@bdc216 ~]# cd /var/lib/nova/instances/

[root@bdc216 instances]# ls

0a287498-27a9-4755-ac70-afb4d6c0151b  _base  compute_nodes  locks


[root@bdc216 instances]# virsh list

 Id    Name                           State

----------------------------------------------------

 2     instance-00000002              running

 

 

检查218:

[root@bdc218 instances]# ls

1d27d243-4ad0-499e-8963-ccbf6096361c  7d070fdf-ec6f-4ae6-9de1-856739492b21  compute_nodes  locks

[root@bdc218 instances]# virsh list                  

 Id    Name                           State

----------------------------------------------------

 10    instance-0000000a              running

 11    instance-00000009              running

dashboard页面点击把218上的两台虚拟机都迁移到216上,迁移结束后查看

218上:instances目录和kvm中都没有了

[root@bdc218 instances]# ls

compute_nodes  locks

[root@bdc218 instances]# virsh list

 Id    Name                           State

----------------------------------------------------

 

216上:发现218上的instances目录下配置文件以及kvm里的虚拟机都迁移过来了

[root@bdc216 instances]# ls

0a287498-27a9-4755-ac70-afb4d6c0151b  1d27d243-4ad0-499e-8963-ccbf6096361c  7d070fdf-ec6f-4ae6-9de1-856739492b21  _base  compute_nodes  locks

[root@bdc216 instances]# virsh list

 Id    Name                           State

----------------------------------------------------

 2     instance-00000002              running

 9     instance-0000000a              running

 10    instance-00000009              running

 

最后页面检查

 

感谢以下参考链接:

http://www.ibm.com/developerworks/cn/cloud/library/1508_wangyx_openstacklivemigrate/

https://www.chenyudong.com/archives/libvirt-connect-to-libvirtd-with-tcp-qemu.html

展开阅读全文
打赏
1
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
1
分享
返回顶部
顶部