пятница, 21 декабря 2018 г.

DRBD не синхронизирует данные

  На двух Linux-ах установлен DRBD. Делал этот DRBD синхронизацию папки между этими двумя серверами. Делал хорошо и долго, пока однажды первичный сервер DRBD-кластера выключили. И обнаружили, что на вторичном сервере папка с устаревшими данными. Синхронизация уже давно не работала.
  Состояние синхронизации по команде "cat /proc/drbd" показывало на первичном сервере:

cs:StandAlone ro:Primary/Unknown ds:UpToDate/DUnknown   r-----
  На вторичном:
cs:StandAlone ro:Secondary/Unknown ds:UpToDate/DUnknown   r-----
  DRBD-службы на обоих сервера друг друга не видели.


  Нам повезло, что в данной ситуации было понятно, что актуальные данные находятся на первичном, а устаревшие на вторичном сервере.
  В следующих командах имя drbd-ресурса - "www". У вас будет ваше. На сервере с устаревшими данными я ввел команды:
/sbin/drbdadm secondary www
/sbin/drbdadm -- --discard-my-data connect www

  После этого на сервере с актуальными данными:

/sbin/drbdadm connect www

  Далее вывод "cat /proc/drbd" показал более оптимистичную картину


cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
    ns:7980308 nr:0 dw:85803144 dr:23838472 al:38233 bm:634 lo:19 pe:23 ua:25 ap:0 ep:1 wo:b oos:12416804
        [======>.............] sync'ed: 39.2% (12124/19908)M
        finish: 0:17:21 speed: 11,900 (11,192) K/sec


  Синхронизация пошла. Тут видно, что синхронизация запустилась, и в данный момент из 19909МБ скопировано 39.2%. По окончании процесса состояние было уже:

cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
  Папки на обоих серверах были идентичны