对于普通的块存储,可使用LVM进行管理,将一个或多个物理块存储设备转换为一个或多个逻辑块存储设备,实现对块设备空间灵活有效的管理利用。
由SAN提供的块设备支持同时挂载在多个物理节点下,形成共享块存储,此时可使用LVM集群管理模式,解决对多节点共享块存储的管理利用问题。
在LVM集群管理模式下,调用LVM命令时将使用lvmlockd服务或clvmd服务协调对共享存储的访问。
对于lvmlockd服务,当LVM 用于多个主机共享的设备时,lvmlockd服务将使用分布式锁提供以下能力:
1、协调LVM元数据的读写;
2、验证LVM元数据的缓存;
3、防止并发激活逻辑卷。
lvmlockd使用的分布式锁由外部锁管理器实现,可支持以下两种:
1、sanlock:在LVM存储中的硬盘上放置锁;
2、dlm:使用网络通信和集群管理器。
执行以下步骤可开启LVM集群管理模式(此处使用lvmlockd服务,使用sanlock作为锁管理器)。
安装lvm2-lockd及sanlock:
# yum install lvm2-lockd sanlock
在/etc/lvm/lvm.conf修改以下配置项:
locking_type = 1
use_lvmlockd = 1
在/etc/lvm/lvmlocal.conf为每个节点设置不同的host_id:
host_id = xx
启动lvm2-lockd及sanlock:
# systemctl start lvm2-lockd && systemctl enable lvm2-lockd
# systemctl start sanlock && systemctl enable sanlock
创建集群管理模式的卷组:
# vgcreate --shared <vg_name> <dev_path>
启用卷组(各个节点均需执行):
# vgcreate --lock-start
此后基于该卷组创建的卷均为集群管理模式。集群管理模式下的卷默认仅支持在一个节点下激活挂载(通过一个排它锁控制,lvchange -a ey),也可设置为支持多个节点下激活挂载(使用共享锁控制,lvchange -a sy)。但需注意,精简配置池及基于精简配置池创建的卷不支持设置共享锁,无法同时在多个节点进行管理和挂载。