В настоящее время я пытаюсь смоделировать среду через XEN. Я установил две системы debian с такой схемой FS:
cltest1:/etc# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda2 6.0G 417M 5.2G 8% / tmpfs 257M 0 257M 0% /lib/init/rw udev 10M 16K 10M 1% /dev tmpfs 257M 4.0K 257M 1% /dev/shm
Хост cltest2 идентичен.
Вот мой drbd.conf
global { minor-count 1; } resource mysql { protocol C; syncer { rate 10M; # 10 Megabytes } on cltest1 { device /dev/drbd0; disk /dev/xvda2; address 192.168.1.186:7789; meta-disk internal; } on cltest2 { device /dev/drbd0; disk /dev/xvda2; address 192.168.1.187:7789; meta-disk internal; } }
Я не создавал файловую систему на drbd0
Запуск DRBD через сценарий init.d выдает ошибки:
Starting DRBD resources: [ d(mysql) /dev/drbd0: Failure: (114) Lower device is already claimed. This usually means it is mounted. [mysql] cmd /sbin/drbdsetup /dev/drbd0 disk /dev/xvda2 /dev/xvda2 internal --set-defaults --create-device failed - continuing!
Запуск: drbdadm create-md mysql дает:
cltest1:/etc# drbdadm create-md mysql md_offset 6442446848 al_offset 6442414080 bm_offset 6442217472 Found ext3 filesystem which uses 6291456 kB current configuration leaves usable 6291228 kB Device size would be truncated, which would corrupt data and result in 'access beyond end of device' errors. You need to either * use external meta data (recommended) * shrink that filesystem first * zero out the device (destroy the filesystem) Operation refused. Command 'drbdmeta /dev/drbd0 v08 /dev/xvda2 internal create-md' terminated with exit code 40 drbdadm aborting
Насколько я понимаю, все мои проблемы из-за того, что у меня нет нераспределенного дискового пространства на xvda2.
Какие у меня варианты Кроме сжатие ФС и подключение отдельного физического диска? Разве метаданные нельзя хранить в файле в локальной файловой системе?
drbd может иногда подбирать «существующие» файловые системы, даже если одна из них не подключена к системе. Вы могли бы dd if=/dev/zero of=/dev/xvda2
(и Ctrl-C через несколько секунд), и он очистит раздел, который раньше мог содержать файловую систему.
Вы не должны монтировать диск с файловой системой любого формата; В Ubuntu, используя gparted, я указал / dev / xvda2 на «очищенный» раздел. и выполнение той же команды устраняет указанную выше ошибку.
1) Обратите внимание на комментарий womble
2) Параметры для метаданных DRBD (все должны быть блочными устройствами AFAIK)
А) Внутренний - подходит для устройства, которое никогда не использовалось (не ваша ситуация)
Б) «Внешний» - отдельный раздел / диск, это также может быть Ramdisk, но ваши метаданные будут исчезать между циклами включения питания.
Так что вы можете
A) Перестройте систему с другими разделами и используйте drbd с самого начала на разделах данных
Б) Используйте Ramdisk, который исчезает между перезагрузками
C) Добавьте накопитель (USB, eSATA, внутренний и т. Д.) Для метаданных.
Удачи - DRBD - это хорошо.
Я не хватаюсь за то, что вы пытаетесь сделать. cltest1 и cltest2 никогда не будут работать одновременно?
Почему вы хотите зеркалировать корневые файловые системы между этими двумя системами?
Вы запускаете cltest1 и cltest2 на одном оборудовании?
Для drbd-meta-device: поместите его на собственный LV. На том LV используйте индексацию. например
мета-диск / dev / VG / drbd_meta [1]; Следующий drbd может использовать индекс 2 на том же LV. Таким образом, вы можете использовать LV с 1 ГБ для многих DRBD-устройств.