Эту установку я унаследовал, и она действительно устарела (работает с 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>
.
Надеюсь, это поможет!