drbd оба узла противоречивы, и устарели, как исправить?

Это установка, которую я унаследовал, и она действительно старая (работает drbd 8.3). Я старался drbdadm connect drbd0, drbdadm primary -f drbd0, но все возвращается с Need access to UpToDate data,

Я предполагаю, что это из-за непоследовательности.

[root@node-01 ~]# drbd-overview
  0:drbd0  StandAlone Secondary/Unknown   Inconsistent/Outdated r-----
  1:drbd1  Connected  Secondary/Secondary UpToDate/UpToDate     C      r-----

[root@node-02 ~]# drbd-overview
  0:drbd0  WFConnection Secondary/Unknown   Inconsistent/DUnknown C r-----
  1:drbd1  Connected    Secondary/Secondary UpToDate/UpToDate     C r-----

Как я могу это исправить, не разбирая данные на нём?

Когда я сделал drbdadm connect drbd0 системный журнал говорит:

block drbd0: conn( StandAlone -> Unconnected )
block drbd0: Starting receiver thread (from drbd0_worker [6860])
block drbd0: receiver (re)started
block drbd0: conn( Unconnected -> WFConnection )
block drbd0: Handshake successful: Agreed network protocol version 96
block drbd0: conn( WFConnection -> WFReportParams )
block drbd0: Starting asender thread (from drbd0_receiver [21821])
block drbd0: data-integrity-alg: <not-used>
block drbd0: drbd_sync_handshake:
block drbd0: self AA586D9040BXXXX:7DF55F42BF95XXXX:7DF45F42BF95XXXX:DC31D449C727XXXX bits:416 flags:0
block drbd0: peer 7DF55F42BF9XXXX:0000000000000000:DC31D449C727EE27:DC30D449C727XXXX bits:416 flags:0
block drbd0: uuid_compare()=1 by rule 70
block drbd0: I shall become SyncSource, but I am inconsistent!
block drbd0: conn( WFReportParams -> Disconnecting )
block drbd0: error receiving ReportState, l: 4!
block drbd0: asender terminated
block drbd0: Terminating asender thread
block drbd0: Connection closed
block drbd0: conn( Disconnecting -> StandAlone )
block drbd0: receiver terminated
block drbd0: Terminating receiver thread

1 ответ

Решение

Ни один узел не имеет UpToDate данные, поэтому DRBD не сможет перейти Primary без некоторого убеждения. Вам нужно будет заставить узел в Первичном.

Какой узел, на котором вы запускаете следующую команду, должен стать SyncSource, поэтому убедитесь, что вы выбрали верный узел с хорошими данными.

drbdadm -- --overwrite-data-of-peer primary <resource>

Если вы не уверены, я бы disconnect ресурс на обоих узлах, так что они оба StandAloneвыполните команду выше на одном узле, продвиньте этот узел в Primary, а затем проверить данные. Затем повторите на другом узле. Как только вы узнаете, где находятся хорошие данные, вы можете понизить обе стороны и разрешить разделенный мозг в правильном направлении, сказав жертве разделенного мозга отказаться от своих данных, используя: drbdadm -- --discard-my-data connect <resource>и просто подключив выжившего с расщепленным мозгом: drbdadm connect <resource>,

Надеюсь, это поможет!

Другие вопросы по тегам