升級(jí)前,先做哪些確認(rèn))
分布式存儲(chǔ)升級(jí)前先做哪些確認(rèn)分布式存儲(chǔ)升級(jí)的難點(diǎn)常在新舊節(jié)點(diǎn)共存而不是二進(jìn)制替換本身。升級(jí)計(jì)劃應(yīng)先回答三個(gè)問題協(xié)議是否兼容、未完成的日志如何處理、元數(shù)據(jù)是否可以讀回。沒有答案就不應(yīng)開始滾動(dòng)發(fā)布。三項(xiàng)確認(rèn)第一列出新舊節(jié)點(diǎn)可協(xié)商的協(xié)議版本、特性位和拒絕行為。未知字段是否忽略、是否會(huì)被轉(zhuǎn)發(fā)、舊節(jié)點(diǎn)收到新命令時(shí)怎么處理都要用混合版本集群驗(yàn)證。第二檢查日志、快照與 checkpoint 的格式演進(jìn)。升級(jí)不應(yīng)依賴“集群恰好沒有未提交日志”。需要明確新節(jié)點(diǎn)讀取舊格式、舊節(jié)點(diǎn)遇到新格式以及中途中斷后恢復(fù)的行為。第三確認(rèn)存儲(chǔ)元數(shù)據(jù)變更的前向與回退邊界。涉及不可逆格式時(shí)先將代碼升級(jí)與格式激活拆開格式激活后不再承諾降回舊版本文檔中應(yīng)寫明這一點(diǎn)。發(fā)布與回退按副本、分片或故障域分批升級(jí)確保每一步都保有可用副本。讀寫雙路徑只在確有兼容需求時(shí)使用且要定義沖突處理與關(guān)閉時(shí)間無期限雙寫往往會(huì)把短期兼容變成長(zhǎng)期負(fù)擔(dān)。回退開關(guān)可以停止新功能或切回舊路由但不能掩蓋格式已升級(jí)的事實(shí)。發(fā)布前應(yīng)演練節(jié)點(diǎn)重啟、領(lǐng)導(dǎo)者切換、網(wǎng)絡(luò)隔離和磁盤空間緊張并記錄恢復(fù)步驟。升級(jí)不是一次操作是一段可暫停、可觀察、邊界明確的過程。