- 积分
- 16840
在线时间 小时
最后登录1970-1-1
|

楼主 |
发表于 2025-2-18 09:56:52
|
显示全部楼层
Openstack组件间的HA6 C' ?1 V% D D H
官方提供了2种配置方案主从模式(Active/Passive)和双活(Active/Active)。
W; q# i. ?# E实现(Active/Passive)需要借助于pacemaker来实现自身服务的HA机制 ,(即通过注册成为pacemaker的一个resource,然后将自身的行为交由pacemaker来进行管理),用来提高可靠性。而(Active/Active)模式则是使用了HAproxy来进行负载均衡的管理,用来提高性能。而在实际部署过程中,通常需要将两种模式根据实际业务的情况来进行考量配置。例如,对于访问比较密集的api服务配置为(Active/Active)来实现负载均衡,但是需要用第三方工具来保证服务的可靠。而对数据库等数据重要组件则使用(Active/Passive)来保证数据的高可靠性。
0 z4 T( z/ t% g$ v, O' C2 m/ w* l
$ b3 b+ P1 D& \$ ~Openstack VM的HA" K) e) w- `$ _1 i8 g
到目前为止并没有一个完整的使用说明。但是从目前实现的功能来看,Openstack自身已经具备了一些HA的功能。
! F6 O' B2 S, S7 B3 t1 D1.在nova中提供了Evacuate命令来实现,将VM从失败的Compute节点在目标节点上rebuild。这一功能的实现需要依赖源节点和目标节点间有共享存储。, y1 V0 e. X' k R! r7 M$ \6 _, c
2.在VM的HA当中,对于Compute节点是否故障的判断需要非常的精细,目前在Openstack中每个nova-compute服务启动时都会启动一个定时器,定期的将心跳写入到数据库中,这样可以从控制节点方便的知道Compute节点的状态。
) J6 i5 B3 @! h1 w5 O! W2 e2 T: q7 _/ @) u, J: z
但是Openstack仅仅拥有这些弄能还不足以完成对VM HA功能的完美支持。" A9 u3 L6 A; ]) t3 n) Z" e1 t
1.只是通过nova-compute服务来确定Compute节点的状态时不可靠的,例如仅仅是nova-compute服务失效,或者网络闪断时,也会造成心跳的过期,从而对是否进行HA不能进行准确的判断。因此需要通过其他方式来确保准确获得节点的状态。
: n+ Q- C( F+ R, U9 L( }2.Openstack没有对VM进行加锁,因此在进行Evacuate命令时,会出现脑裂(同一个disk启动多个VM的情况)。
" W5 T# D7 Y/ y3.对于需要保护的虚拟机需要提供一个列表,用来表明哪些VM是用来保护的。目前的Evacuate命令会奖失败主机上的所有虚拟机无差别进行rebuild这样的实现也是不太合理的。
5 ~+ r. P. \! S6 w$ O. S4 |" O' k4 v4 r: i5 m0 P7 f
|
|