设为首页 收藏本站
查看: 1342|回复: 0

[经验分享] OpenStack在线迁移

[复制链接]

尚未签到

发表于 2015-4-11 13:13:12 | 显示全部楼层 |阅读模式
  OpenStack迁移需要将虚拟机创建运行在共享存储上才可以进行迁移。

一、配置共享存储

1、环境
  OpenStack三个节点icehouse-gre模式部署一文部署了的OpenStack环境。
  IP如下:
  controller:10.1.101.11
  network:10.1.101.21
  compute:10.1.101.31
  compute2:10.1.101.41
  确保环境配置正确。
  修改各个节点的nova.conf中vncserver_listen为:
  vncserver_listen = 0.0.0.0

2、安装NFS服务器
  由于迁移需要用到共享存储,我们在controller节点配置一个被所有计算节点共同使用的共享存储。这里使用NFS服务。
  NFS服务了解更多可参考:NFS(Network File System)服务配置和使用
  controller节点:
  第一步,安装nfs服务



# apt-get install nfs-kernel-server nfs-common
  第二步,创建一个目录作为nfs服务挂载的目录



# mkdir /var/nfs-storage
  第三步,配置/etc/exports



root@controller:~# cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#

/var/nfs-storage  *(rw,sync,fsid=0,no_root_squash)
root@controller:~# exportfs -rv
3、在compute和comput1两个计算节点挂载NFS目录
  Note:
  a、挂载点必须是nova.conf配置文件中state_path=/var/lib/nova指定的目录,两个计算节点目录必须一致。
  b、建议在配置前先删除计算节点的所有实例,不然会造成僵尸实例的产生。
  确保计算节点有执行和查找目录的权限:
  chmod o+x /var/lib/nova/instances
  安装nfs服务



#  apt-get install nfs-kernel-server nfs-common
  开机自动挂载:



root@compute1:/var/log/libvirt/qemu# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#               
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/xvda1 during installation
UUID=0c681b37-97ed-4d10-bd79-8d5931c443f8 /               ext4    errors=remount-ro 0       1
# swap was on /dev/xvda5 during installation
UUID=9e2efc1b-ef13-4b7c-b616-34d2a62f04ea none            swap    sw              0       0
10.1.101.11:/var/nfs-storage  /var/lib/nova/instances nfs  defaults 0 0
root@compute1:/var/log/libvirt/qemu# mount -a
root@compute1:~# df -k
Filesystem                   1K-blocks    Used Available Use% Mounted on
/dev/xvda1                    19478204 2754448  15711276  15% /
udev                           2530276       4   2530272   1% /dev
tmpfs                           512512     224    512288   1% /run
none                              5120       0      5120   0% /run/lock
none                           2562556       0   2562556   0% /run/shm
cgroup                         2562556       0   2562556   0% /sys/fs/cgroup
10.1.101.11:/var/nfs-storage  19478528 3164672  15301632  18% /var/lib/nova/instances

二、修改所有计算节点libvirt
  第一步,修改/etc/libvirt/libvirtd.conf 【注意该目录还有一个libvirt.conf,不要弄错了】
改前:#listen_tls = 0
  改后:listen_tls = 0
  改前:#listen_tcp = 1
  改后:listen_tcp = 1
  改前:#auth_tcp = "sasl"
  改后:auth_tcp = "none"
  第二步,修改/etc/default/libvirt-bin
  改前:libvirtd_opts="-d"
  改后:libvirtd_opts="-d -l"
  第三步,去掉 /etc/libvirt/qemu.conf 中以下三行注释



vnc_listen = "0.0.0.0"
user = "root"
group = "root"
  第四步,重启libvirt-bin



service libvirt-bin restart
  确认进程已启动



root@compute1:~# ps -ef |grep libvirt
root      9518     1  0 Jan20 ?        00:01:23 /usr/sbin/libvirtd -d -l
  重启nova-compute服务



service nova-compute restart
  到此配置成功!注意/var/lib/nova/instances目录权限:



root@compute1:~# ll /var/lib/nova/
total 36
drwxr-xr-x  9 nova nova 4096 Jan 20 15:40 ./
drwxr-xr-x 42 root root 4096 Jan 20 13:59 ../
drwxr-xr-x  2 nova nova 4096 May 15  2014 buckets/
drwxr-xr-x  6 nova nova 4096 Jan  6 17:15 CA/
drwxr-xr-x  2 nova nova 4096 May 15  2014 images/
drwxr-xr-x  6 nova root 4096 Jan 20 17:06 instances/
drwxr-xr-x  2 nova nova 4096 May 15  2014 keys/
drwxr-xr-x  2 nova nova 4096 May 15  2014 networks/
drwxr-xr-x  2 nova nova 4096 May 15  2014 tmp/
三、测试迁移
  把compute1的虚拟机迁移到compue2上,先看compute1上有哪些虚拟机

# nova-manage vm list | grep compute_one | awk '{print $1}'



root@controller:~# nova-manage vm list
instance   node            type       state      launched                   image     kernel    ramdisk    project    user       zone       index
vm001      compute2        m1.tiny    active     2015-01-20 08:30:21        a1de861a-be9c-4223-9a7a-cf5917489ce9                     60a10cd7a61b493d910eabd353c07567 be1db0d2fd134025accd2654cfc66056 nova       0   
vm002      compute1        m1.tiny    active     2015-01-20 08:55:02        a1de861a-be9c-4223-9a7a-cf5917489ce9                     60a10cd7a61b493d910eabd353c07567 be1db0d2fd134025accd2654cfc66056 nova       0   
root@controller:~#  nova-manage vm list |grep compute1 |awk '{print $1}'
vm002
  要查看需要迁移的实例vm001实例的名字



root@controller:~# nova show 190364a5-a5a7-4e5d-8f46-6c43fb5c3446
+--------------------------------------+------------------------------------------------------------+
| Property                             | Value                                                      |
+--------------------------------------+------------------------------------------------------------+
| OS-DCF:diskConfig                    | AUTO                                                       |
| OS-EXT-AZ:availability_zone          | nova                                                       |
| OS-EXT-SRV-ATTR:host                 | compute1                                                   |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | compute1                                                   |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000036                                          |
| OS-EXT-STS:power_state               | 1                                                          |
| OS-EXT-STS:task_state                | -                                                          |
| OS-EXT-STS:vm_state                  | active                                                     |
| OS-SRV-USG:launched_at               | 2015-01-20T08:55:02.000000                                 |
| OS-SRV-USG:terminated_at             | -                                                          |
| accessIPv4                           |                                                            |
| accessIPv6                           |                                                            |
| config_drive                         |                                                            |
| created                              | 2015-01-20T08:54:04Z                                       |
| flavor                               | m1.tiny (1)                                                |
| hostId                               | af2b0609eb984606e572ddc5135b10b0d992dc73a5f9cc581f01baec   |
| id                                   | 190364a5-a5a7-4e5d-8f46-6c43fb5c3446                       |
| image                                | cirros-0.3.2-x86_64 (a1de861a-be9c-4223-9a7a-cf5917489ce9) |
| key_name                             | -                                                          |
| metadata                             | {}                                                         |
| name                                 | vm002                                                      |
| os-extended-volumes:volumes_attached | []                                                         |
| progress                             | 0                                                          |
| security_groups                      | default                                                    |
| status                               | ACTIVE                                                     |
| tenantA-Net network                  | 10.0.0.29, 10.1.101.83                                     |
| tenant_id                            | 60a10cd7a61b493d910eabd353c07567                           |
| updated                              | 2015-01-20T08:55:03Z                                       |
| user_id                              | be1db0d2fd134025accd2654cfc66056                           |
+--------------------------------------+------------------------------------------------------------+
root@controller:~# nova show 190364a5-a5a7-4e5d-8f46-6c43fb5c3446 |grep instance_name
| OS-EXT-SRV-ATTR:instance_name        | instance-00000036                                          |
root@controller:~# nova show 190364a5-a5a7-4e5d-8f46-6c43fb5c3446 |grep instance_name | awk '{print $4}'
instance-00000036
  控制节点执行:



root@controller:~# nova-manage host list
host                            zone               
controller                      internal      
compute1                        nova           
compute2                        nova   
  查看可用的计算节点:



root@controller:~# nova-manage service list
Binary           Host                                 Zone             Status     State Updated_At
nova-cert        controller                           internal         enabled    :-)   2015-01-20 08:57:09
nova-consoleauth controller                           internal         enabled    :-)   2015-01-20 08:57:10
nova-scheduler   controller                           internal         enabled    :-)   2015-01-20 08:57:11
nova-conductor   controller                           internal         enabled    :-)   2015-01-20 08:57:08
nova-compute     compute1                             nova             enabled    :-)   2015-01-20 08:57:13
nova-compute     compute2                             nova             enabled    :-)   2015-01-20 08:57:05
nova-compute     controller                           nova             enabled    XXX   2015-01-19 06:52:42
  查看目标节点资源:



root@controller:~# nova-manage service describe_resource compute2
HOST                              PROJECT     cpu mem(mb)     hdd
compute2        (total)                         2    2997      18
compute2        (used_now)                      1    1024       1
compute2        (used_max)                      1     512       1
compute2                 60a10cd7a61b493d910eabd353c07567       1     512       1
  迁移成功,没有输出



root@controller:~# nova live-migration 190364a5-a5a7-4e5d-8f46-6c43fb5c3446 compute2
root@controller:~#
  迁移成功,再看虚拟机vm002运行在了compute2节点



root@controller:~# nova-manage vm list
instance   node            type       state      launched                   image     kernel    ramdisk    project    user       zone       index
vm001      compute2        m1.tiny    active     2015-01-20 08:30:21        a1de861a-be9c-4223-9a7a-cf5917489ce9                     60a10cd7a61b493d910eabd353c07567 be1db0d2fd134025accd2654cfc66056 nova       0   
vm002      compute2        m1.tiny    active     2015-01-20 08:55:02        a1de861a-be9c-4223-9a7a-cf5917489ce9                     60a10cd7a61b493d910eabd353c07567 be1db0d2fd134025accd2654cfc66056 nova       0


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-55977-1-1.html 上篇帖子: 我所了解的 IBM、京东、携程、eBay 的 OpenStack 云 下篇帖子: 叫板OpenStack:用Docker实现私有云
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表