Мы застряли, пытаясь заставить кардиостимулятор работать с DRBD, и, попробовав различные альтернативы, не можем заставить наш "drbd1" смонтировать и получить некоторые ошибки.
ПРИМЕЧАНИЕ: мы пытаемся заставить кардиостимулятор работать с существующей настройкой LVM с шифрованием RAID1 - это невозможно или «просто плохая идея»? Мы думали, что нам нужны потенциальные преимущества локального RAID на каждом устройстве, а также Internet RAID и отказоустойчивость, предоставляемые DRBD / pacemaker. Мы используем Debian Squeeze. По разным инструкциям мы отключили инициализацию загрузки DRBD (update-rc.d -f drbd remove
) и установите фильтр LVM на filter = [ "a|drbd.*|", "r|.*|" ]
.
К вашему сведению - мы закомментировали монтирование LVM «/ dev / vg2 / vserverLV» в нашем fstab, и, похоже, нам постоянно нужно это делать, чтобы избежать ошибки загрузки.
Мы думаем, что DRBD работает до тех пор, пока мы не добавим этапы управления ритмом (т.е. «dev / drbd1» монтируется при загрузке; мы можем перемещать связанные данные с server1 на server2 туда и обратно, хотя для этого нужно использовать командную строку). Мы видели в сети различные утверждения, которые предполагают, что целесообразно использовать "mapper" в drbd.conf. Кроме того, если мы начнем с настройки Pacemaker для простого переключения IP при отказе, он будет работать (то есть без ошибок, мы можем пропинговать через адрес аварийного переключения), но перестанет работать, когда мы добавим примитивы DRBD и связанные операторы. Наше подозрение (кроме, может быть, «вы не можете сделать это с существующим RAID») заключается в том, что мы используем неправильный оператор «disk» в нашем drbd.conf, хотя мы перепробовали множество альтернатив, и это тот же drbd .conf мы используем перед добавлением в Pacemaker, и, похоже, на этом этапе он работает.
Наконец, хотя различные операторы конфигурации относятся к «vservers», мы еще не дошли до попытки добавить какие-либо данные на устройства DRBD, кроме нескольких текстовых файлов, которые исчезли после выполнения нашей работы с «crm».
Любая помощь приветствуется!
КОНФИГИ / ЖУРНАЛЫ
А) 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;
}
}
Б) Конфигурация кардиостимулятора
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"
В) 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
Г) Смонтировать (без "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
FYI В нашем зашифрованном, RAID, LVM, md0 - это загрузка RAID, md1 зашифрован и включает ОС в «vg1» с логическими томами для /, home, swap, use, var и tmp. md1 зашифрован и включает «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. Для этого не требуется дополнительных настроек или специальных фильтров LVM. Просто укажите логический том в конфигурации drbd в качестве резервного диска. видеть: http://www.drbd.org/users-guide/s-lvm-lv-as-drbd-backing-dev.html
Вывод RA: (p_drbd_r1: 0: start: stdout) 27 февраля 06:36:23 server1 lrmd: [1705]: info: Вывод RA: (p_drbd_r1: 0: start: stderr) Не удается открыть устройство '/ dev / vg2 / vserverLV ': нет такого файла или каталога
Вышеупомянутая ошибка в журнале показывает, что DRBD не может найти и подключиться к своему резервному диску. Скорее всего, это связано с тем, что ваши фильтры LVM не позволяют активировать эту группу томов при загрузке.
Верните свои фильтры LVM по умолчанию и удалите'primitive vg2 ocf:heartbeat:LVM
(а также ограничения порядка и размещения, которые ссылаются на него), поскольку vg2 необходимо активировать до запуска DRBD. Не кластером и не после DRBD.
Что касается использования зашифрованного тома в качестве резервного диска DRBD, это действительно не проблема, если он разблокирован и активен до того, как DRBD попытается к нему подключиться. Это означает либо запрос ключа / кодовой фразы при загрузке, либо использование чего-то вроде crypttab, чтобы сделать это автоматически. Важно отметить, что это шифрование происходит под DRBD, и поэтому трафик репликации по-прежнему отправляется открытым текстом. Таким образом, вы можете использовать vpn для трафика репликации, если он также должен быть зашифрован.
В журналах вы можете увидеть, что он пытается смонтировать файловую систему, прежде чем у него появится возможность продвинуть ресурс DRBD. Это не удается, поскольку вы не можете получить доступ к устройству DRBD, если оно не является основным.
Некоторые ограничения по порядку и размещению должны вас исправить.
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.