當你要縮小集群規模或者處理壞盤時,你就需要通過刪除osd來實現,但是在刪除之前你要確保集群不會達到full的狀態。
雖然社群的文件給出了刪除乙個osd的步驟(並且也能夠work,但是它不是最好的方案,因為這其中會涉及到兩次資料遷移,即在執行『ceph osd out osd.x'和『ceph osd crush remove osd.x『時。標記乙個osd out會使得它上面的pg重新臨時remap到另外的osd上,當然有些時候會出現不能找到osd來存放,這主要取決於你的crushmap如何設計。而將乙個osd從crush中remove出去,則會使得它的pg永久性的map的另外的osd上。那麼如何才能避免這兩次資料遷移呢?
這要看你要刪除什麼樣的osd:
1正常的osd,那麼你可以遵循以下步驟,
1)ceph osd crush reweight osd.x 0.0
... 等待平衡結束....
2)ceph osd out osd.x
3)service ceph stop osd.x
4)ceph osd crush remove osd.x
5)ceph auth del osd.x
6)ceph osd rm osd.x
這麼做的目的是,先將osd的crush 權重調整為0,則osd可以參與到資料重建過程。
2有問題的osd,則可以按照社群的文件來操作,只是在ceph osd out osd.x之後要立馬執行ceph osd crush remove osd.x,而不要等待平衡結束。
Ceph刪除OSD上乙個異常object
ceph裡面的資料是以物件的形式儲存在osd當中的,有的時候因為磁碟的損壞或者其它的一些特殊情況,會引起集群當中的某乙個物件的異常,那麼我們需要對這個物件進行處理 在物件損壞的情況下,啟動osd有的時候都會有問題,那麼通過rados rm的方式是沒法傳送到這個無法啟動的osd的,也就無法刪除,所以需...
4個實施持續測試的「最佳實踐」
開發是乙個有趣的大事件,因為我們處於傳統測試與現代和持續測試之間的邊界,正在從乙個大型的筒倉式的結構轉型到乙個新的架構。之前的組織架構包含了開發團隊和集中測試團隊,瓶頸和延期不斷的在這兩個團隊間交替進行著。這種新架構由小型,自管理和自給自足的團隊組成,它們頻繁發布軟體,使用持續整合工具自動化,並管理...
shell 指令碼程式設計的10 個最佳實踐
每乙個在unix linux上工作的程式設計師可能都擅長shell指令碼程式設計。但大家解決問題的方式卻不盡相同,這要取決於對專業知識的掌握程度 使用命令的種類 看待問題的方式等等。對於那些處在shell指令碼程式設計初級階段的程式設計師來說,遵循一些恰當的做法可以幫助你更快 更好的學習這些程式設計...