Lustre的Failover 可用性的实现是将硬件或软件进行复制,当其中的一台出现故障,另一台可以顶替出故障的机器的工作。我们所说的“Failover”是指这样的一种方法:当主服务器失效时,能够自动的将它的应用和资源切换到从服务器。Failover对应用来说是透明的。 Lustre的Failover需要两个节点(一个Failover对),它们连接到一个共享存储介质。Lustre支持元数据和对象存储的Failover。 Lustre提供一个文件系统资源。Lustre支持在服务器级别的Failover。Lustre没有提供系统组件级别的工具集,而这些确实完全实现Failover(失效节点检测、电源控制等)所需要的,这些工具集可以从第三方得到。例如Heart beat。 硬件的需求是:一个连接到共享存储体(物理存储,例如SAN、NAS、硬件RAID、SCSI、FC等)的服务器对。共享的存储体在两个节点来看,应该是一样的,即有相同的物理LUN。而物理存储级别的高可用,推荐使用RAID来避免驱动器级别的失效。 为得到一个全自动的高可用Lustre,需要电源管理和HA软件,用来提供: 1. 资源防护:物理存储避免同时被两个节点访问。 2. 资源控制:使启动和停止Lustre进程成为Failover的一部分,维护集群状态等。 3. 健康监控:校验硬件和网络的可用,并反映给Lustre。 为实现正确的资源防护,Heartbeat软件必须能够完全停掉服务器或者断开其与共享存储设备的连接。绝对不要让两个活动的节点访问相同的分区,否则将导致数据的毁坏。当Heartbeat软件检测到一个服务器失效了,它将调用一个进程来停掉失效节点;然后在第二台主机上启动Lustre。HA软件通过一个脚本来控制Lustre资源。为达这个目的,CFS提供了这样的一个脚本/etc/init.d/lustre。 为达Failover的目的,提供Lustre资源的服务器将被配置成主/从对。Failover可以通过lconf来手动实现。当执行lconf --cleanup --failover命令时,磁盘设备将被设置为只读。这将允许第二个节点使用相同的磁盘。这是软件Failover,此时主从节点都是健康的且是联网的。而硬件Failover则是指关掉一台服务器的电源。 Lustre Failover的实现需要电源管理,远程电源控制,HA软件。 配置Failover对有两种方式:active/active和active/passive。Active的节点正常提供服务,passive节点平时是空闲的,当失效时自动转换为active来提供服务。在使用共享存储的两个节点上,可以实现的Failover配置是: Active/passive Active/active 他们的区别是:active/passive中两个节点使用共享存储的一个分区,每一个时刻只有一个节点提供服务,同一个节点访问磁盘。Active/active中的共享存储体必须分成两个分区,两个节点在一个分区看来,都是active/passive的,即一个节点访问一个分区,另一个节点作为该分区的passive节点。 Failover在配置上的体现: Active/passive: lmc --add ost --ost ost1 --failover --node nodeA --lov lov1 --dev /dev/sda1 lmc --add ost --ost ost1 --failover --node nodeB --lov lov1 --dev /dev/sda1 |
Active/active: lmc --add ost --ost ost1 --failover --node nodeA --group nodeA --lov lov1 --dev /dev/sda1 lmc --add ost --ost ost1 --failover --node nodeB --lov lov1 --dev /dev/sda1 lmc --add ost --ost ost2 --failover --node nodeA --lov lov1 --dev /dev/sdb1 lmc --add ost --ost ost2 --failover --node nodeB --group nodeB --lov lov1 --dev /dev/sdb1 |
由于MDS和OSS的Failover原理一样,在这里我只进行了MDS的Failover。
|