[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: хранение /home на сервере (coda vs fscache)



Спасибо за советы пришедшие в рассылку и на почту.

Ответ пока не найден.

Для начала попробовал поставить drbd, т.к. выглядит посовременнее и есть в ядрах.

Но так и не понял - можно ли его использовать для поставленной задачи - с возможностью работать в оффлайн.

Сейчас drbd отлично работает в primary/primary mode. Если создать новый ресурс "drbdadm create-md r0" и запустить два сервера - изменения сделанные на любом отображаются на всех.

Если же завершить работу одного из серверов, а на другом внести изменения, то primary/primary уже не заработает, будет disconnect.

Подружить их можно или сделав один secondary:
drbdadm secondary r0
drbdadm -- --discard-my-data connect r0
и на другом перезапустить коннект:
drbdadm connect r0

или разрушив один из ресурсов с помощью:
"drbdadm create-md r0"

во втором случае при "/etc/init.d/drbd start" произойдет синхронизация и оба опять будут primary/primary.

В документации пока не нашел, можно ли на обоих машинах работать с диском в оффлайн и синхронизировать их в primary/primary так, что бы использовались более новые файлы независимо от источника - расчитан ли drbd на такую работу ?

Как настраивалось:
-------------------------------------
На обоих машинах
dd if=/dev/zero of=disk.img bs=300M count=1
(из них на метаданные нужно 128 мег, так что bs=100M не заработает).
losetup /dev/loop0 disk.img
sudo drbdadm create-md r0
sudo modprobe drbd
/etc/init.d/drbd start

cat /proc/drbd
ls -lah /dev/drbd0

на одной:
drbdadm -- --overwrite-data-of-peer primary all

mkfs.ext3 /dev/drbd0

на обоих:
mount -t ext3 /dev/drbd0  /mnt/drbd
----------------------------------------

(порядок мог быть немного другим, т.к. не спервого раза удалось настроить.)

Конфиг одинаковый.
(Два параметра become-primary-on both; и allow-two-primaries; были закомментированы при первоначальной настройке)

----------------------------------------
global {
    usage-count yes;
}
common {
  syncer { rate 10M;  csums-alg algorithm; }

  protocol C;
  startup { wfc-timeout 0; degr-wfc-timeout 120; become-primary-on both; }
  disk    { on-io-error detach; }
  net     { timeout 60; connect-int 10; ping-int 10;
            max-buffers 2048; max-epoch-size 2048;.
            shared-secret "secret_here";
            allow-two-primaries;
          }
}
resource r0 {
  on laptop {
    device /dev/drbd0;
    disk /dev/loop0;
    address 192.168.101.2:7788;
    meta-disk internal;
  }
  on server.com {
    device /dev/drbd0;
    disk /dev/loop0;
    address 192.168.101.1:7788;
    meta-disk internal;
  }
}




--
Sincerely,
	Nicholas


Reply to: