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

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

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

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

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

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

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