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>
,
Надеюсь, это поможет!