|
|
' M3 a: u) p8 b/ Ynova evacuate 80b8a5ff-5082-4864-b05e-5766c144d2b4 openstack-controller3 o/ h& z4 d5 u$ r! Y
7 k, L1 @4 n4 B/ G! J7 H9 {
0 Y& @9 f( _9 [7 \$ Y
Live Migrate部分2 n" Q! V+ D0 T
修改nova.conf
. |" ~9 E2 z# @: P1 i' D4 v修改配置文件nova.conf0 v( D% ^7 \+ ]. p
stack@controller:~$ view /etc/nova/nova.conf 1 l' u2 K- u: s% Y
[vnc]
5 D" T1 o) W. A2 K3 B: i#vncserver_listen = 127.0.0.1server_listen=0.0.0.0% p) s |) y6 D
重启计算服务
% f$ J& U5 K: s$ @% N) x0 nroot@controller:~# systemctl restart devstack@n*, e! A3 Z+ L9 @8 H
配置hosts文件
2 D0 X0 O) s6 o5 q5 S配置个计算节点hosts文件,使之能相互识别主机名
: r+ [: e6 e: Y2 A groot@controller:/# more /etc/hosts& M% L0 m! c) n$ Z
# M9 o' M5 [: E免密访问& ^& l1 o) P% `# d8 h. q* K% P% p
各计算节点的root用户能免密访问应用用户stack3 W6 W% l4 ~+ s' |* e
root@controller:/# ssh-keygen -t rsa
. J1 e% N+ F5 _. p2 I% D+ ?root@controller:~# ssh-copy-id -i /root/.ssh/id_rsa.pub stack@172.27.34.38- O5 G4 n: f; x+ D$ }
密码测试
! s) _2 U4 b I/ S) ]3 [ Droot@controller:~# ssh stack@172.27.34.38/ X, M! I2 A1 z
libvirt配置5 Q3 r2 S: Q0 K0 V% [, @ m+ G1 n
本次实验无需对/etc/default/libvirt-bin和/etc/libvirt/libvirtd.conf文件进行额外配置,采用默认qemu+ssh方式传输。
3 N# N: l6 t) l |8 u验证连通性. Y6 Y d: f% ^' {* `' T; w: K
root@controller:~# virsh -c qemu+ssh://stack@openstack-computer/system list --all# [/ d2 g. `6 W7 A
配置nfs服务& V1 P! j: ^: C. g4 R. S
nfs服务器配置
0 ~7 E# U1 X. i[root@centos7 ~]# mkdir -p /opt/stack/data/nova/instances
; t' W1 C! X9 T: R6 V: _[root@centos7 ~]# chmod -R 777 /opt/stack/data/nova/instances
$ L2 {% ^( k5 ^5 M[root@centos7 ~]# view /etc/exports
3 ^) n: u/ Z) E. D0 p/opt/stack/data/nova/instances *(rw,sync,fsid=0,no_root_squash)# ?7 Q/ i/ H: W- c" q. W1 b% I9 ^
[root@centos7 ~]# exportfs -r/ y+ K8 e. a/ T! y) |/ n9 Q
[root@centos7 ~]# exportfs -v
0 ^7 D) m3 j& S M6 S/ \: c" I; Z! Y9 a/opt/stack/data/nova/instances, J4 X+ ^! k# T
<world>(sync,wdelay,hide,no_subtree_check,fsid=0,sec=sys,rw,secure,no_root_squash,no_all_squash)
2 p; D; w: v+ M) A: F# b客户端挂载
8 B2 i; d5 b% V/ j5 c+ _- V) i" e各计算节点都执行如下操作
5 }6 o9 w, {8 W: Y; E安装nfs软件; B' Y3 ?0 T' a! b/ A% Z( T, ^
root@controller:~# apt-get install nfs-common -y7 ?% T9 K+ b4 z o* O' v/ W p7 [
测试共享目录
7 V- ~, W0 l: x9 q" Qroot@controller:~# showmount -e 172.27.9.181
, ^& e! S, s( [- x. UExport list for 172.27.9.181:( I F3 E, g; S- T0 u
/opt/stack/data/nova/instances *' S- S$ a! W, [* Y$ n) y" B
挂载1 i' b5 s, E# L: p
root@controller:~# mount -t nfs 172.27.9.181:/opt/stack/data/nova/instances /opt/stack/data/nova/instances
! b2 F# \- e$ E) w0 D U2 u' C开启自动挂载) y2 x7 T8 C! m, G& R! s
root@controller:~# view /etc/rc.local
2 L8 Q& P/ z. |. T' pmount -t nfs 172.27.9.181:/opt/stack/data/nova/instances /opt/stack/data/nova/instances4 A l) C4 v+ V1 ~% b- I
nfs搭建详见:Centos7下NFS服务器搭建及客户端连接配置$ Q* E! D7 E' O4 ~
Live Migrate; B" q6 E6 o( d6 N; N5 N }
查看准备迁移的实例
. C. i& g$ c6 m/ \( a0 I& R6 f B
, @; q$ Z( T; J# e4 l9 a2 ^# @该实例迁移前位于controller节点,为验证是热迁移,cirros01开启ping服务' L: Y0 m8 }$ J/ l
, _# U% G/ E/ t
开始迁移
, t/ h8 K2 y: E9 f. n5 `4 w/ B4 W E
目标节点选择computer,由于是共享存储方式实现本实验,不勾选‘块设备迁移’选项。" I% q: n# f: h# C( P) r
迁移
+ e" n9 P5 F* L! N& K' a9 j. q; z5 E: G& W" F7 x; B
迁移完成
- r! y& e$ r- v' ^, @3 @3 V! `8 @+ U+ U2 |$ _! a
实例由controller节点成功迁移至computer节点0 d& T* g7 c! ~, o
" j- @$ S$ H; i7 wping服务在迁移过程中未中断。
* T3 m) g: L$ M7 ^7 V命令方式
+ l6 D& Z) b L5 lroot@controller:~# nova live-migration d0d5bc75-da89-46a8-be79-1e2639f9eaf8 openstack-controller
/ o+ ^, {7 \# J8 }$ H* i9 _d0d5bc75-da89-46a8-be79-1e2639f9eaf8为实例id,openstack-controller为目标计算节点。; d2 y9 E) z7 W; j/ a3 J1 X3 d5 Y: o
日志分析
$ L% M/ E, j" m2 c查看实例id和req id
. }9 k& B! r( P/ m3 e- o2 Y查看实例id和req id以便于日志定位2 j7 }- v$ o6 O: y$ v
) N& ]" _7 Y0 Q/ ?% B( L源节点nova-api发送消息
! s* P) O* ~. ~+ X8 b6 I9 s$ e2 Proot@controller:~# journalctl -f --unit devstack@n-api.service
& s. T; N3 {0 y( }* R7 d目标节点迁移准备! P& x6 B( {7 r) Q
# E% Z' C9 C M* U. G
源节点暂停实例启动迁移7 K9 v. {1 v% Q
% a4 O- N' t9 U: \目标节点恢复实例2 K% x/ a; f' V
4 b5 w( ?& H$ N1 q' W( w源节点完成迁移并释放资源
( E* b6 X7 _9 ]! |+ M; M5 Y* ~' y9 c9 A/ o: W+ ?& c+ q: H% G
Evacuate部分 `, g7 v2 P7 i% C0 L6 d& H3 z
关闭计算节点openstack-computer
6 E5 U, \: k+ qroot@computer:~/.ssh# init 0: B7 B6 R% v/ y) L4 c; Z- y: [# s% n; `
查看计算节点状态1 K5 {; M/ R( g& A; I5 r
7 K, M8 d, x% P& \$ o
查看实例名和所属计算节点名" {# b9 C; m5 H! x8 F; |9 L
root@controller:~# nova list --fields id,name,status,instance_name,host0 ?0 D u/ G! t8 a4 P
执行evacuate 9 n8 r" ?% O" E' N" @0 G
root@controller:~# nova evacuate 80b8a5ff-5082-4864-b05e-5766c144d2b4 openstack-controller# a8 g: c+ o9 L2 C1 U9 v, l
将实例80b8a5ff-5082-4864-b05e-5766c144d2b4由计算节点openstack-computer迁移至openstack-controller/ W. ]7 u7 ]! O% Q% j
如果同主机做evacuate操作会报错:The target host can't be the same one,如果结算节点未宕机就迁移,则报错:Compute service of openstack-computer is still in use
, L/ X0 g# J. U8 q& _& W6 |. _
- M Y6 @" ^6 S$ W) A) |& ZEvacuate操作完成, W! E/ x4 O! M" R
登陆实例2 m+ i4 ]! Q: |' o) w+ W- H
% _* F0 c4 s# l& T2 A8 }( q# B
实例恢复后密码、ip、主机名都不变。. a! _$ m) f7 ]* c
日志分析
0 d: d3 {" l# N2 g$ z" m* J5 Onova-api% F' n) g8 G; Y- j2 A
5 C: e( e' F/ ?2 z1 v4 jnova-scheduler ^4 Y" q, b$ e0 Y+ L! Q! l3 e
/ P7 ^+ W- a# D. w% j
nova-computer
! J" e! b/ ^! }4 l( w' s1 X
! |9 x& e# K& |3 D X- g |
|