|
|
8 O- o5 B( l6 B# o. Q+ L b2 P4 R* H8 Inova evacuate 80b8a5ff-5082-4864-b05e-5766c144d2b4 openstack-controller
5 ]* D3 c/ u/ P4 Q# x, T
2 ?/ H D ~4 Q* T7 B6 \4 \
4 A* @) o6 M5 k/ v3 x3 K$ {* e% DLive Migrate部分9 `% y8 E! B6 Y, ^* D; [8 U3 J
修改nova.conf" m. I' g: s" J0 h
修改配置文件nova.conf/ l1 ~; I; V J
stack@controller:~$ view /etc/nova/nova.conf
9 y1 L- O: b/ h# p1 c; G4 d& B[vnc]) }3 V3 ~" o- p, M; i4 ?, \7 C) G
#vncserver_listen = 127.0.0.1server_listen=0.0.0.01 I* b* W& S# R; A) a/ k* s6 [
重启计算服务. Z' A( C2 \* {$ @4 t
root@controller:~# systemctl restart devstack@n*
3 Y7 ]) O! E; n# Z8 [配置hosts文件
4 v) P' P; |8 _2 t配置个计算节点hosts文件,使之能相互识别主机名, b5 O' O# C E" r3 `
root@controller:/# more /etc/hosts
5 m8 j# v2 n' K0 F" R) a, n- L5 {! U
免密访问5 h' Y. q# }/ y( h9 x& f" D& x5 k
各计算节点的root用户能免密访问应用用户stack7 {1 y+ C- q4 V
root@controller:/# ssh-keygen -t rsa
% o$ m/ V5 Y' N0 croot@controller:~# ssh-copy-id -i /root/.ssh/id_rsa.pub stack@172.27.34.38* w. ~2 x; |5 ]! }
密码测试# u' c" P C3 z$ ~6 u% U$ i
root@controller:~# ssh stack@172.27.34.38
+ j8 P: M% S; ]9 H% [* p1 ^libvirt配置/ q: \$ w: \; Y2 v3 [
本次实验无需对/etc/default/libvirt-bin和/etc/libvirt/libvirtd.conf文件进行额外配置,采用默认qemu+ssh方式传输。
/ H* a8 D, g* j9 h& y8 v验证连通性
8 ^) [* L! I( f& s3 a! ?: @- k$ Xroot@controller:~# virsh -c qemu+ssh://stack@openstack-computer/system list --all
+ t+ J8 K1 j! I1 s# I, T* s配置nfs服务+ ?$ s' d8 y1 a. k0 I
nfs服务器配置8 k7 q7 L4 R' t, o5 Q4 n
[root@centos7 ~]# mkdir -p /opt/stack/data/nova/instances9 c2 I8 J: E- l' `9 h
[root@centos7 ~]# chmod -R 777 /opt/stack/data/nova/instances- M4 c7 ]( b2 V0 }- W
[root@centos7 ~]# view /etc/exports; v1 s* ]" d. N6 N# C$ Z! g& z% M
/opt/stack/data/nova/instances *(rw,sync,fsid=0,no_root_squash)
: }3 ~5 S4 M9 J0 O" k- @4 R# j[root@centos7 ~]# exportfs -r' X5 X6 ~+ J/ M& K+ l2 d
[root@centos7 ~]# exportfs -v$ @3 P% Y/ t# D3 B, v1 ~* s
/opt/stack/data/nova/instances
4 @7 k& n6 g% X& ^& T( D <world>(sync,wdelay,hide,no_subtree_check,fsid=0,sec=sys,rw,secure,no_root_squash,no_all_squash). ^7 c7 r( n9 f& n4 r* D* C
客户端挂载6 a3 y7 a7 e, x5 H: @9 S
各计算节点都执行如下操作8 `: o3 X2 T5 P, \. ~
安装nfs软件9 V0 {$ Q T- r
root@controller:~# apt-get install nfs-common -y
& C* P7 [$ n9 U0 G# n7 d测试共享目录
4 v# j6 I) ^( u+ Troot@controller:~# showmount -e 172.27.9.181
2 G/ _) `5 }$ E# _" m' rExport list for 172.27.9.181:
: \' Z X, |! B9 x5 v/opt/stack/data/nova/instances *, ~/ I& i7 z& }9 C2 h
挂载0 z h& W" E! Z. g7 c5 H
root@controller:~# mount -t nfs 172.27.9.181:/opt/stack/data/nova/instances /opt/stack/data/nova/instances% k; e! ]* S# ]# f. V. n) L: s, A
开启自动挂载
) X; Y) Z2 J; c3 `. ~/ }$ F* k4 vroot@controller:~# view /etc/rc.local
# E& O/ Z2 f8 u8 W! s6 g+ Amount -t nfs 172.27.9.181:/opt/stack/data/nova/instances /opt/stack/data/nova/instances* b% K( ~3 w3 E# [
nfs搭建详见:Centos7下NFS服务器搭建及客户端连接配置
( R( p; U" J6 u# _Live Migrate( L1 Y' |& R3 F
查看准备迁移的实例& D' Q9 z8 {! n
/ p- g |$ H" k. J' Q4 ]
该实例迁移前位于controller节点,为验证是热迁移,cirros01开启ping服务
& j+ [0 a" o3 q! c1 N2 ^& k( i- h; P& f% g& S: z
开始迁移2 B3 M l2 M" J9 b G k
9 j- {3 I Z# e
目标节点选择computer,由于是共享存储方式实现本实验,不勾选‘块设备迁移’选项。
1 ?+ y0 h0 V5 u: h( W" B迁移
$ M: j2 K& c4 I1 T: J) j" c- \! g8 H
迁移完成
- h4 K+ G7 `3 ]% p+ Q9 x' U4 h( I* O' c) q* {
实例由controller节点成功迁移至computer节点. p+ d0 [) A# U* b! w0 }+ B. }$ g
5 D/ _. F' b4 H3 U% G8 i1 C
ping服务在迁移过程中未中断。: ^: M/ S! ]8 p1 k4 @: |( f9 Q
命令方式( |/ h, q Y e7 l- u0 l
root@controller:~# nova live-migration d0d5bc75-da89-46a8-be79-1e2639f9eaf8 openstack-controller
+ y7 l) H8 d! D+ l- V+ P Sd0d5bc75-da89-46a8-be79-1e2639f9eaf8为实例id,openstack-controller为目标计算节点。
* e( r8 d( i" _/ Y' B( Y* l日志分析; o V8 W+ b% U2 e2 n" x
查看实例id和req id; C- t6 [6 C4 |6 J- G, L
查看实例id和req id以便于日志定位; h8 k0 i) q. z( Q
1 {, \& {* R1 E* I
源节点nova-api发送消息. i4 K, i7 p. S. ^8 x6 B& E; E
root@controller:~# journalctl -f --unit devstack@n-api.service) f# J; m! c- I' {$ v: t0 @
目标节点迁移准备" j' E% F2 W* z1 K
8 X, f: k9 E. D3 r( `$ B' y' f
源节点暂停实例启动迁移
" A" A. H K! ]+ @/ Z0 Y
0 V/ {% v# }4 o" z3 m3 i/ y6 B目标节点恢复实例7 f$ C, U2 a6 n0 S1 y
8 Y5 q) x k! U V' ~; s* D
源节点完成迁移并释放资源
# A. O# x$ H) G0 b+ L
, V1 y; g( T3 q# YEvacuate部分# G, c1 ?1 B( p1 i+ Y
关闭计算节点openstack-computer
0 u2 [$ \+ r2 v; c: Q+ ~1 Yroot@computer:~/.ssh# init 0' Y8 u, V w$ `4 [+ ]4 ~: }
查看计算节点状态
6 Z) E& q' J' m& E h4 i, C; ]( G( \+ d
查看实例名和所属计算节点名
' F3 [+ L" C, y$ f4 ?2 oroot@controller:~# nova list --fields id,name,status,instance_name,host
B" _% h/ a5 l" |+ U3 O; W: \6 `* r执行evacuate 7 R9 C. T# X& s6 }4 u
root@controller:~# nova evacuate 80b8a5ff-5082-4864-b05e-5766c144d2b4 openstack-controller/ ?: m1 o, q8 \& H$ K& g
将实例80b8a5ff-5082-4864-b05e-5766c144d2b4由计算节点openstack-computer迁移至openstack-controller- k- j3 \6 G$ Q/ [
如果同主机做evacuate操作会报错:The target host can't be the same one,如果结算节点未宕机就迁移,则报错:Compute service of openstack-computer is still in use& y( e y4 F% m3 E+ L& B) ^! c
. y; x" [- @1 Z' Z+ e; K( G/ BEvacuate操作完成( ]# J0 ~7 F7 P: W0 g) W
登陆实例
5 G& B1 s) f$ c- D4 u# g' W( t; z9 m$ Z+ }& ^
实例恢复后密码、ip、主机名都不变。
& S- e! Q$ X4 z# j8 q8 }日志分析 P6 S5 c1 p- Z% h
nova-api
: n; A/ o# M8 V$ p8 ^- U6 F
" A& I5 }* ~) L* p0 qnova-scheduler
% V+ h" p4 G; f4 \; f7 x
Y+ k0 ~3 f2 b% c M$ {/ enova-computer( s; J \1 M1 z( i& z- D
% C: `! `* I+ I+ |% O
|
|