Назад | Перейти на главную страницу

DRBD на диске с существующей файловой системой, которая занимает все место

В настоящее время я пытаюсь смоделировать среду через 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-устройств.