我有两个节点,每个有20个HDD(相同的大小)。 两个节点都configuration了2个VG,每个VG都是使用10个磁盘创build的。 1个VG被称为SAN第二个被称为NAS。
Node1-将提供nfs服务,nfs数据将保存在NAS vg上,名为nfs的LV(在node2上看起来相同)。 VG SAN将成为节点2上的SAN VG的备份。
Node2-将提供SAN服务,数据将保留在LV上。 每个lv代表一个lun和使用targetcli,我从每个lv创build块设备。 所以根据一个lun的请求,我创build一个具有所需大小的LV,并使用这个新创build的LV在targetcli中创build一个backstore(blockdevice)。
VG NAS也存在于节点2上,用于备份来自节点1的NAS VG的数据。 备份的数据不应该有问题:我想过使用drbd将数据从每个节点备份到另一个节点,所以最终每个节点1将备份节点2,反之亦然。 有了NAS VG,我可以,因为它只有一个LV,它是静态的。 问题是,在我不断创buildLV的SAN VG上会发生什么? 将drbd创build他们在另一边以及备份的结果? 如果没有,那么我怎样才能始终保持这些VG相同,即当我在节点2上创build一个LV时,它将自动在节点1上创build?
顺便说一句 – 两个节点上的操作系统是centos7.1
非常感谢您的帮助!
DRBD可以使用任何块设备,因为它支持磁盘; LVM或物理磁盘本身将与DRBD一起使用。 此外,DRBD还创build了一个新的虚拟块设备,如果您愿意,您可以将其用作LVM的物理卷。 在DRBD已经升级到Primary之后,在DRBD上创build的任何LV或VG都可以在对等节点上激活。
您需要调整LVM筛选器以获取DRBD设备上的LVM签名,并在/etc/lvm/lvm.conf禁用LVM筛选器caching。
filter = [“a | /dev/sd.* |”,“a | /dev/drbd.* |”,“r |。* |”] write_cache_state = 0
这样做之后,您应该可以使用“DRBD之上和之下”的LVM。 创build要用作DRBD后备磁盘的LVM(假定sdb1是物理驱动器); 在两个节点上执行这些步骤:
#pvcreate / dev / sdb1 物理卷“/ dev / sdb1”已成功创build #vgcreate vg_drbd_back / dev / sdb1 卷组“vg_drbd_back”已成功创build #lvcreate --name r0 --size 100G vg_drbd_back 逻辑卷“r0”已创build
在两个节点上为r0创buildDRBDconfiguration:
资源r0 {
设备/ dev / drbd0;
磁盘/ dev / vg_drbd_back / r0;
元磁盘内部;
在host-a {address xxxx:7789; }
在host-b {address xxxx:7789; }
}
通过创build元数据并在两个节点上启动设备来初始化DRBD,然后select一个节点升级为Primary( – 仅用于初始同步)。
然后,在主节点上,在DRBD设备上创buildPV,VG和LVM签名:
#pvcreate / dev / drbd0 物理卷“/ dev / drbd0”已成功创build #vgcreate vg_drbd_front / dev / drbd0 卷组“vg_drbd_front”已成功创build #lvcreate - 名称drbd_lvm0 --size 30G vg_drbd_front 创build逻辑卷“drbd_lvm0” #lvcreate - 名称drbd_lvm1 --size 40G vg_drbd_front 创build逻辑卷“drbd_lvm1”
要手动故障切换LVM,您需要先停用主服务器上的卷组,然后才能将其降级为辅助:
#vgchange -an vg_drbd_front 卷组“vg_drbd_front”中的0个逻辑卷现在处于活动状态 #drbdadm secondary r0
然后在同行上,宣传DRBD并激活卷组:
#drbdadm小学r0 #vgchange -ay vg_drbd_front 卷组“vg_drbd_front”中的2个逻辑卷现在处于活动状态
当然,如果您想使用Pacemaker自动执行此操作,则需要使用LVM资源代理来处理指定VG的激活/停用:
#pcs资源描述ocf:心跳:LVM
另外,在LINBIT网站上有很多好的(免费的)技术指南和其他资源可能对您的集群有帮助: http : //www.linbit.com
编辑:添加了以下有关禁用“lvmmetad”的部分。
CentOS 7默认使用'lvmetad'。 您需要禁用两个节点上的filter才能按上面的configuration工作。
在/etc/lvm/lvm.conf设置use_lvmetad = 0 ,然后通过systemd停止lvm2-lvmmetad的服务和套接字:
#systemctl stop lvm2-lvmetad.service #systemctl stop lvm2-lvmetad.socket
你说备份,但drbd立即复制,不算作一个传统的离线备份。 它更像是RAID 1.还需要复制您在其他地方关心的数据,不容易被意外删除命令等。
drbd不会复制块设备上的所有内容,包括LVM和文件系统元数据。 您需要集群LVM来处理多个节点上的设备。 如果你这样做,是的LV可以出现在任一节点。 红帽支持这个作为Pacemaker HA集群资源。 他们的逻辑卷pipe理员pipe理指南可以让你开始。
另一种方法是build立像glusterfs这样的分布式存储系统。 这不使用clvm,但允许分布式复制卷。 这在节点本地文件系统上build立了一种特定types的共享文件系统。 相反,drbd上的clvm会在复制块磁盘设备上build立群集文件系统。