Ceph卷實時遷移

2021-10-08 23:26:51 字數 2770 閱讀 2650

rbd卷可以在同一群集內的不同池之間或不同卷格式和布局之間實時遷移。 啟動後,源卷將被深層複製到目標卷,拉出所有快照歷史記錄,並有選擇地保留到源卷父級的任何鏈結,以幫助保持稀疏性。

使用新的目標卷時,此複製過程可以在後台安全地執行。 當前需要在準備遷移之前暫時停止使用源卷。 這有助於確保使用卷的客戶端已更新為指向新的目標卷。

注意

卷實時遷移需要ceph nautilus版本或更高版本。 krbd核心模組目前不支援實時遷移。

實時遷移過程包括三個步驟:

準備遷移:初始步驟將建立新的目標卷,並交叉鏈結源卷和目標卷。 與分層卷相似,嘗試讀取目標卷中未初始化的擴充套件塊將在內部將讀取重定向到源卷,並且寫入目標中的未初始化擴充套件塊將在內部將重疊的源卷塊深層複製到目標卷。

執行遷移:這是將所有初始化塊從源卷深度複製到目標的後台操作。此步驟可以在客戶端主動使用新目標卷時執行。

完成遷移:後台遷移過程完成後,即可提交或中止遷移。 提交遷移將刪除源卷和目標卷之間的交叉鏈結,並刪除源卷。 中止遷移將刪除交叉鏈結,並刪除目標卷。

通過執行rbd migration prepare命令來啟動實時遷移過程,並提供源和目標卷:

$ rbd migration prepare migration_source [migration_target]
rbd migration prepare命令接受與rbd create命令相同的所有可選布局,從而可以更改不可變的卷磁碟布局。 如果目標只是更改磁碟布局,並保留原始卷名稱,則可以跳過migration_target。

在準備實時遷移之前,必須停止使用源卷的所有客戶端。如果準備步驟發現任何正在執行的客戶端以讀/寫模式開啟卷,則該步驟將失敗。準備步驟完成後,可以使用新的目標卷名稱重啟客戶端。嘗試使用源卷名稱重啟客戶端將導致失敗。

rbd status命令將顯示實時遷移的當前狀態:

$ rbd status migration_target

watchers: none

migration:

source: rbd/migration_source (5e2cba2f62e)

destination: rbd/migration_target (5e2ed95ed806)

state: prepared

請注意,源卷將被移至rbd**站,以避免在遷移過程中錯誤使用:

$ rbd info migration_source

rbd: error opening image migration_source: (2) no such file or directory

$ rbd trash ls --all

5e2cba2f62e migration_source

準備實時遷移後,必須將源卷中的卷塊複製到目標卷中。 這是通過執行rbd migration execute命令來完成的:

$ rbd migration execute migration_target

image migration: 100% complete...done.

rbd status命令還將提供有關遷移塊深度複製過程進度的反饋:

$ rbd status migration_target

watchers:

watcher=1.2.3.4:0/3695551461 client.123 cookie=123

migration:

source: rbd/migration_source (5e2cba2f62e)

destination: rbd/migration_target (5e2ed95ed806)

state: executing (32% complete)

一旦實時遷移完成了將所有資料塊從源卷複製到目標的深度複製,就可以提交遷移:

$ rbd status migration_target

watchers: none

migration:

source: rbd/migration_source (5e2cba2f62e)

destination: rbd/migration_target (5e2ed95ed806)

state: executed

$ rbd migration commit migration_target

commit image migration: 100% complete...done.

如果migration_source卷是乙個或多個轉殖的父捲,則在確保所有後代轉殖卷均未使用後,需要指定–force選項。

$ rbd trash list --all
如果要還原準備或執行步驟,請執行rbd migration abort命令以還原遷移過程:

$ rbd migration abort migration_target

abort image migration: 100% complete...done.

中止遷移將導致目標卷被刪除,並恢復對原始源卷的訪問:

$ rbd ls

migration_source

關於卷遷移的整理

最近在學習hp unix,發現hp unix中卷的遷移過程和其它的如linux,aix有些不同,所以抽空將三種作業系統的操作步驟做了個整理 linux 在redhat linux中lvm資訊是同時儲存在磁碟上和 etc lvm.conf裡,可以通過vgexport命令來實現vg的遷移。vgexpor...

Docker遷移資料卷,遷移容器詳解 測試通過

最近工作上有需求要遷移現在docker上的容器和資料到新的伺服器上,但網上搜了很多部落格,真正實用且有效的寥寥無幾,最後自己爬了不少坑乾掉了這個需求,寫部落格記錄一下操作過程,希望後來的小夥伴能夠少走些彎路 接下來的操作根據mongodb資料庫的遷移舉例 docker inspect mongo m...

簡單的統計剩餘ceph遷移時間

由於遷移忽快忽慢,需要知道大概的遷移的時間,做了乙個簡單的統計指令碼,可能不准,大概能夠知道在什麼範圍內 bin sh while 2 1 do start ceph s grep pgs grep mis awk cut d f 1 sleep 5 end ceph s grep pgs grep...