找回密码
 注册
查看: 17|回复: 1

openstack evucate疏散虚机命令

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2025-2-18 09:55:33 | 显示全部楼层 |阅读模式
openstack evucate疏散虚机命令/ @" E) N+ t. @) j' p; V

6 ]5 V. i0 L  M9 b. l* a! _5 m9 y. s* h
如何使用evacuate,使用evacuate功能可以通过nova命令行工具来实现,管理员可以通过物理机发生宕机时通过命令行执行evacuate操作,指定要evacuate的虚机和目标主机,系统会自动将虚机迁移到目标主机上$ T" l7 y( Q3 B. j

: S$ O; L. C$ P+ x例如:. |0 g9 V8 W3 ]4 A3 [! K& t
使用nova 命令进行evacuate
# \  i+ M$ v% jnova evacuate <instance_id>  <hostname>3 j* A& ^4 n0 M3 W" E. J
8 {, a) E& o6 g# O
使用openstack 命令
2 t# ^& H+ @* K- b9 Nopenstack server evacuate <instance_id> --target <target_host>
# V- z/ J0 K* H0 r, w& Y) i& i7 Q0 {( g
<instance_id>:需要撤离的虚机的uuid ID。# i$ p# d% W' x% T, u1 n+ D3 M
--target <target_host> : 迁移到目标计算节点名。1 D! Q. v' m1 \) W. N
例如:
! Z$ B" Y1 p& c* h4 M' _; Copenstack server evacuate dde200ld-klsl-sskc-2135   --target compute2
6 N9 {- a0 ]+ B- Y" c% q1 }. i) A  }: [% x8 b

# R: V% \* o- a6 \* r2 y- p- G/ b自动evacuate功能4 |# X' Z) A/ q! c! R6 S
在手动方式疏散外,Openstack还提供了自动evacuate功能,可以在物理主机宕机时将自动将该主机上的虚机迁移到其他主机上。
* s/ S: O6 w- T2 i' P配置参数:
# V- w" P, S4 }4 X: X1 ]在nova.conf 配置文件中增加以下参数:
- o! S# @# l1 bauto_evacuate = True
7 i+ o. R/ Y7 D9 t6 u' k
4 o( z! d1 b3 W8 z% X- _5 f

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2025-2-18 09:56:52 | 显示全部楼层
Openstack组件间的HA/ ?+ `- R+ L! m' e! [: o2 n
官方提供了2种配置方案主从模式(Active/Passive)和双活(Active/Active)。
4 X' N; A# a0 d2 A8 I6 n! u实现(Active/Passive)需要借助于pacemaker来实现自身服务的HA机制 ,(即通过注册成为pacemaker的一个resource,然后将自身的行为交由pacemaker来进行管理),用来提高可靠性。而(Active/Active)模式则是使用了HAproxy来进行负载均衡的管理,用来提高性能。而在实际部署过程中,通常需要将两种模式根据实际业务的情况来进行考量配置。例如,对于访问比较密集的api服务配置为(Active/Active)来实现负载均衡,但是需要用第三方工具来保证服务的可靠。而对数据库等数据重要组件则使用(Active/Passive)来保证数据的高可靠性。8 n. a# v) C% V& R5 k
: |7 h4 E% A$ t2 D5 Y5 x+ K) d
Openstack VM的HA) @  ^, Y9 ^$ h/ o2 k
到目前为止并没有一个完整的使用说明。但是从目前实现的功能来看,Openstack自身已经具备了一些HA的功能。7 U0 @0 @/ T! v1 C
1.在nova中提供了Evacuate命令来实现,将VM从失败的Compute节点在目标节点上rebuild。这一功能的实现需要依赖源节点和目标节点间有共享存储。
1 t5 c( W1 y* n: j8 d- Q$ b6 E1 ]2.在VM的HA当中,对于Compute节点是否故障的判断需要非常的精细,目前在Openstack中每个nova-compute服务启动时都会启动一个定时器,定期的将心跳写入到数据库中,这样可以从控制节点方便的知道Compute节点的状态。# b: }7 Z- x: h/ X9 G, g1 N6 s
& g4 i; `& Q0 |
但是Openstack仅仅拥有这些弄能还不足以完成对VM HA功能的完美支持。8 D! K3 ?0 x9 J; ~' V4 O
1.只是通过nova-compute服务来确定Compute节点的状态时不可靠的,例如仅仅是nova-compute服务失效,或者网络闪断时,也会造成心跳的过期,从而对是否进行HA不能进行准确的判断。因此需要通过其他方式来确保准确获得节点的状态。
- X/ L; N: u8 Y, x' m5 W2.Openstack没有对VM进行加锁,因此在进行Evacuate命令时,会出现脑裂(同一个disk启动多个VM的情况)。
! M( s$ i% M" c3 D5 D3.对于需要保护的虚拟机需要提供一个列表,用来表明哪些VM是用来保护的。目前的Evacuate命令会奖失败主机上的所有虚拟机无差别进行rebuild这样的实现也是不太合理的。
+ D/ ?1 p4 j% e" A0 e5 q1 `: K- Z4 `( q- w! R
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 04:26 , Processed in 0.019117 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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