#IO Fencing
一个共享集群数据库由一份持久化在共享存储上的数据库文件和多个对等的、可读写的成员服务器组成。当某些成员服务器异常时(如私网网络隔离、存储网络I/O异常等),在根据投票仲裁的结果更新集群成员关系前需要通过特定的方法防止已被集群驱逐的非法成员服务器继续修改数据文件,从而确保数据一致和安全,这个过程被称为I/O Fencing。
YCS提供多种I/O Fencing方法,每个fence类型对应一个整型类型码。若使用yasboot部署共享集群,yasboot会自动为用户选择最优的fence类型。若有需要,用户也可根据部署环境的硬件配置情况和业务场景对RTO的要求在集群部署后按需谨慎修改,修改前请仔细阅读相关fence类型的文档说明,并执行其要求的硬件能力检测脚本以确认硬件能力满足要求。
在途I/O保护算法:不依赖硬件能力,兼容性强,安全性和RTO稍差。类型码:0。
基于SCSI持久预留的I/O Fencing:需要共享存储设备支持SCSI持久预留命令,安全性和RTO最优。类型码:1。
# 配置方法
共享集群的fence类型可通过ycsctl set_ycr命令修改。
命令格式:ycsctl set_ycr FENCE_TYPE <类型码>
注意事项:该命令仅可静态执行,需要停止集群所有服务器并重启生效;若类型码不等于0,请确保YCSRA进程在每个服务器上都已启动,否则请参考ycsrootagent工具手动sudo拉起。
# 状态查询
共享集群的fence状态可通过ycsctl show fence命令查询。
命令格式:ycsctl show fence
注意事项:该命令需要YCSRA在线以提供查询服务。
# 常见问题
配置和使用过程中可能遇到的常见问题按fence类型记录在相应的子页面。

