1. 程式人生 > >OpenStack在線遷移

OpenStack在線遷移

acs gcd sge vim net yml ica dmr std

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

技術分享
[email protected]:~# 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)
[email protected]
/* */:~# 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 

開機自動掛載:

技術分享
[email protected]
*/:/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). # # <file system> <mount point> <type> <options> <dump> <pass> 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
[email protected]:/var/log/libvirt/qemu# mount -a
[email protected]:~# 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

確認進程已啟動

[email protected]:~# 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目錄權限:

技術分享
[email protected]:~# 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}‘
技術分享
[email protected]:~# 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    
[email protected]:~#  nova-manage vm list |grep compute1 |awk ‘{print $1}‘
vm002
技術分享

要查看需要遷移的實例vm001實例的名字

技術分享
[email protected]:~# 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                           |
+--------------------------------------+------------------------------------------------------------+
[email protected]:~# nova show 190364a5-a5a7-4e5d-8f46-6c43fb5c3446 |grep instance_name
| OS-EXT-SRV-ATTR:instance_name        | instance-00000036                                          |
[email protected]:~# nova show 190364a5-a5a7-4e5d-8f46-6c43fb5c3446 |grep instance_name | awk ‘{print $4}‘
instance-00000036
技術分享

控制節點執行:

[email protected]:~# nova-manage host list
host                            zone                
controller                      internal       
compute1                        nova           
compute2                        nova   

查看可用的計算節點:

技術分享
[email protected]:~# 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
技術分享

查看目標節點資源:

[email protected]:~# 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

遷移成功,沒有輸出

[email protected]:~# nova live-migration 190364a5-a5a7-4e5d-8f46-6c43fb5c3446 compute2
[email protected]:~# 

遷移成功,再看虛擬機vm002運行在了compute2節點

技術分享
[email protected]:~# 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
技術分享

技術分享

技術分享

OpenStack在線遷移