起搏器DRBD安装问题

我们一直在试图让起搏器与DRBD一起工作,并尝试了各种替代方法,无法让我们的“drbd1”挂载并获得一些错误。

注意:我们试图让起搏器与现有的encryptionRAID1 LVM设置一起工作 – 这是不可能的还是一个“简单的坏主意”? 我们认为我们会喜欢每个盒子上本地RAID的潜在优势,以及DRBD / pacemaker提供的互联网RAID和故障转移。 我们正在使用Debian Squeeze。 根据不同的说明,我们已经禁用DRBD启动初始化( update-rc.d -f drbd remove ),并将LVM过滤filter = [ "a|drbd.*|", "r|.*|" ]设置为filter = [ "a|drbd.*|", "r|.*|" ] filter = [ "a|drbd.*|", "r|.*|" ]

仅供参考 – 我们已经在我们的fstab中注释了LVM安装“/ dev / vg2 / vserverLV”,并且似乎一直需要这样做以避免启动错误。

我们认为DRBD的工作原理是直到我们join了心脏起搏器的步骤(例如,“dev / drbd1”在引导时加载;我们可以将相关的数据从server1移动到server2,尽pipe需要使用命令行来完成)。 我们已经看到了networking上的各种表述,表明在drbd.conf中使用“映射器”选项是可行的。 另外,如果我们将Pacemakerconfiguration为简单的IP故障转移,那么可以工作(即没有错误,我们可以通过故障转移地址ping),但是当我们添加DRBD主体和相关语句时停止工作。 我们的怀疑(也许“你不能用现有的RAID做这个”)是我们在我们的drbd.conf中使用了错误的“磁盘”声明,虽然我们已经尝试了很多替代方法,这也是一样的drbd在添加Pacemaker之前,我们使用.conf,似乎在这一点上工作。

最后,尽pipe各种configuration语句引用了“vserver”,但是我们还没有尝试向DRBD设备添加任何数据,除了一些自从做“crm”工作以来已经消失的文本文件以外。

任何帮助感激!

CONFIGS /日志

A)drbd.conf

 global { usage-count no; } common { syncer { rate 100M; } } resource r1 { protocol C; startup { wfc-timeout 15; degr-wfc-timeout 60; } device /dev/drbd1 minor 1; disk /dev/vg2/vserverLV; meta-disk internal; on server1 { address 192.168.1.129:7801; disk /dev/vg2/vserverLV; } on server2 { address 192.168.1.128:7801; disk /dev/vg2/vserverLV; } net { cram-hmac-alg sha1; shared-secret "secret"; after-sb-0pri discard-younger-primary; #discard-zero-changes; after-sb-1pri discard-secondary; after-sb-2pri call-pri-lost-after-sb; } } 

B)起搏器configuration

 crm configure show node server1 node server2 primitive app_ip ocf:heartbeat:IPaddr \ params ip="192.168.1.152" \ op monitor interval="30s" primitive drbd ocf:linbit:drbd \ params drbd_resource="r1" \ op start interval="0" timeout="240" \ op stop interval="0" timeout="100" \ op monitor interval="59s" role="Master" timeout="30s" \ op monitor interval="60s" role="Slave" timeout="30s" primitive fs_vservers ocf:heartbeat:Filesystem \ params device="/dev/drbd1" directory="/vservers" fstype="ext4" \ op start interval="0" timeout="60" \ op stop interval="0" timeout="120" primitive vg2 ocf:heartbeat:LVM \ params volgrpname="vg2" exclusive="true" \ op start interval="0" timeout="30" \ op stop interval="0" timeout="30" group lvm app_ip vg2 fs_vservers ms ms_drbd drbd \ meta master-node-max="1" clone-max="2" clone-node-max="1" globally-unique="false" notify="true" target-role="Master" location drbd_on_node1 ms_drbd \ rule $id="drbd_on_node1-rule" $role="master" 100: #uname eq server1 colocation vserver-deps inf: ms_drbd:Master lvm order app_on_drbd inf: ms_drbd:promote lvm:start property $id="cib-bootstrap-options" \ dc-version="1.0.9-74392a28b7f31d7ddc86689598bd23114f58978b" \ cluster-infrastructure="openais" \ expected-quorum-votes="2" \ stonith-enabled="false" \ no-quorum-policy="ignore" 

C)crm结果(有错误)

 Last updated: Wed Feb 27 19:05:57 2013 Stack: openais Current DC: server1 - partition with quorum Version: 1.0.9-74392a28b7f31d7ddc86689598bd23114f58978b 2 Nodes configured, 2 expected votes 2 Resources configured. ============ Online: [ server2 server1 ] Migration summary: * Node server2: drbd:1: migration-threshold=1000000 fail-count=1000000 * Node server1: drbd:0: migration-threshold=1000000 fail-count=1000000 Failed actions: drbd:1_start_0 (node=server2, call=8, rc=-2, status=Timed Out): unknown exec error drbd:0_start_0 (node=server1, call=6, rc=-2, status=Timed Out): unknown exec error 

D)安装(没有“dev / drbd1”)。

 /dev/mapper/vg1-root on / type ext4 (rw,errors=remount-ro) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) /dev/md0 on /boot type ext4 (rw) /dev/mapper/vg1-home on /home type ext4 (rw) /dev/mapper/vg1-tmp on /tmp type ext4 (rw) /dev/mapper/vg1-usr on /usr type ext4 (rw) /dev/mapper/vg1-var on /var type ext4 (rw) fusectl on /sys/fs/fuse/connections type fusectl (rw) 

E)fstab

 # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/mapper/vg1-root / ext4 errors=remount-ro 0 1 # /boot was on /dev/md0 during installation UUID=25829c6c-164c-4a1e-9e84-6bab180e38f4 /boot ext4 defaults 0 2 /dev/mapper/vg1-home /home ext4 defaults 0 2 /dev/mapper/vg1-tmp /tmp ext4 defaults 0 2 /dev/mapper/vg1-usr /usr ext4 defaults 0 2 /dev/mapper/vg1-var /var ext4 defaults 0 2 #/dev/mapper/vg2-vserverLV /vservers ext4 defaults 0 2 /dev/mapper/vg1-swap none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/scd1 /media/cdrom1 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 

F)fdisk -l

仅供参考在我们的encryptionRAID,LVM中,md0是RAID引导,md1是encryption的,包含“vg1”中带有/,home,swap,use,var和tmp逻辑卷的操作系统。 md1是encryption的,包括“vg2”,我们从一个逻辑卷“vserversLV”和安装点“vservers”开始。

 Disk /dev/sda: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0007c7a2 Device Boot Start End Blocks Id System /dev/sda1 * 1 61 487424 fd Linux raid autodetect Partition 1 does not end on cylinder boundary. /dev/sda2 61 1885 14648320 fd Linux raid autodetect /dev/sda3 1885 3101 9765888 fd Linux raid autodetect Disk /dev/sdb: 203.9 GB, 203928109056 bytes 255 heads, 63 sectors/track, 24792 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0008843c Device Boot Start End Blocks Id System /dev/sdb1 * 1 61 487424 fd Linux raid autodetect Partition 1 does not end on cylinder boundary. /dev/sdb2 61 1885 14648320 fd Linux raid autodetect /dev/sdb3 1885 3101 9765888 fd Linux raid autodetect Disk /dev/md0: 499 MB, 499109888 bytes 2 heads, 4 sectors/track, 121853 cylinders Units = cylinders of 8 * 512 = 4096 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/md1: 15.0 GB, 14998757376 bytes 2 heads, 4 sectors/track, 3661806 cylinders Units = cylinders of 8 * 512 = 4096 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x08040000 Disk /dev/md2: 9999 MB, 9999147008 bytes 2 heads, 4 sectors/track, 2441198 cylinders Units = cylinders of 8 * 512 = 4096 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x08040000 Disk /dev/dm-0: 15.0 GB, 14997704704 bytes 255 heads, 63 sectors/track, 1823 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/dm-1: 3997 MB, 3997171712 bytes 255 heads, 63 sectors/track, 485 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/dm-2: 1996 MB, 1996488704 bytes 255 heads, 63 sectors/track, 242 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/dm-3: 1996 MB, 1996488704 bytes 255 heads, 63 sectors/track, 242 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/dm-4: 3997 MB, 3997171712 bytes 255 heads, 63 sectors/track, 485 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/dm-5: 1996 MB, 1996488704 bytes 255 heads, 63 sectors/track, 242 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/dm-6: 499 MB, 499122176 bytes 255 heads, 63 sectors/track, 60 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/dm-7: 9998 MB, 9998094336 bytes 255 heads, 63 sectors/track, 1215 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 

G)系统日志摘录

 Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) Command ' Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) drbdsetup Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) 1 Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) disk Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) /dev/vg2/vserverLV Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) /dev/vg2/vserverLV Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) internal Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) --set-defaults Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) --create-device Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) ' terminated with exit code 20 Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) drbdadm attach r1: exited with code 20 Feb 27 06:36:22 server1 drbd[2329]: ERROR: r1: Called drbdadm -c /etc/drbd.conf --peer server2 up r1 Feb 27 06:36:22 server1 drbd[2329]: ERROR: r1: Exit code 1 Feb 27 06:36:22 server1 drbd[2329]: ERROR: r1: Command output: Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stdout) Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) Can not open device '/dev/vg2/vserverLV': No such file or directory Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) Command 'drbdsetup 1 disk /dev/vg2/vserverLV Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) /dev/vg2/vserverLV internal --set-defaults --create-device' terminated with exit code 20#012drbdadm attach r1: exited with code 20 Feb 27 06:36:22 server1 drbd[2329]: ERROR: r1: Called drbdadm -c /etc/drbd.conf --peer server2 up r1 Feb 27 06:36:22 server1 drbd[2329]: ERROR: r1: Exit code 1 Feb 27 06:36:22 server1 drbd[2329]: ERROR: r1: Command output: Feb 27 06:36:22 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stdout) Feb 27 06:36:23 server1 lrmd: [1705]: info: RA output: (p_drbd_r1:0:start:stderr) Can not open device '/dev/vg2/vserverLV': No such file or directory 

看来您可能正在遵循有关如何将DRBD用作LVM的物理磁盘的指南或说明。 但是,您要做的是将LVM用作DRBD的后备磁盘。 为此,不需要额外的configuration或特殊的LVMfilter。 只需简单地将drbdconfiguration中的逻辑卷指定为后备磁盘即可。 请参阅: http : //www.drbd.org/users-guide/s-lvm-lv-as-drbd-backing-dev.html

RA输出:(p_drbd_r1:0:start:stdout)Feb 27 06:36:23 server1 lrmd:[1705]:info:RA输出:(p_drbd_r1:0:start:stderr)无法打开设备'/ dev / vg2 / vserverLV':没有这样的文件或目录

日志中的上述错误显示DRBD无法find并附加到其备份磁盘。 这很可能是由于您的LVMfilter阻止了此卷组在启动时被激活。

将LVMfilter恢复为默认状态,并在DRBD启动之前移除'primitive vg2 ocf:heartbeat:LVM (以及引用它的顺序和托pipe约束),因为vg2需要激活。 不是由群集而是在DRBD之后。

至于使用encryption的卷作为DRBD的后备磁盘,只要在DRBD试图连接到DRBD之前解锁并激活它,这就不是问题了。 这意味着要么在启动时提示密钥/密码,要么使用类似crypttab的东西自动执行此操作。 需要注意的是,这种encryption是在DRBD下发生的,因此复制stream量仍然是明文。 所以如果需要encryption的话,你可能还想使用一个vpn作为复制stream量。


您可以在日志中看到它正试图安装文件系统,然后才有机会提升DRBD资源。 由于您不能访问DRBD设备,因此会失败,除非它是主要的。

一些订购和托pipe限制应该解决你的问题。

 crm(live)configure# colocation fs_with_drbd_master inf: fs_vservers ms_drbd:Master crm(live)configure# order fs_after_drbd inf: ms_drbd:promote fs_vservers:start 

DRBD也在起搏器的控制之下,所以不要在启动时启动。 起搏器将在停车时处理起步。 所以, "update-rc.d -f drbd remove"就是你想要的。 文件系统也一样。 由于文件系统现在由起搏器控制,请不要将其包含在您的fstab中。