cephfs的mds元資料的冷熱備

2021-08-29 09:50:47 字數 1244 閱讀 9540

這是mds新手入門篇,主要內容講述mds冷備,熱備區別和重放的關係。我們只討論單active mds的情況

一,mds的冷備

1, 我們用ceph-deploy mds create 建立乙個mds, 這時候會有乙個active的mds作為檔案系統的元資料快取來為檔案系統提供服務,mds快取了dentry,並且以lru演算法的快取淘汰方式把dentry快取在了記憶體中。我們可以設定mds的日誌log為 20/20 (命令:ceph tell mds.[name] injectargs '--debug_mds 20/20'),然後再日誌中檢視cur的值來檢視lru鍊錶的長度。

2,如果我們在其他主機上又建立乙個mds,預設是冷備的。建立好2個mds 後如下圖,乙個 active的mds,乙個standy的mds

3,我們檢視冷備mds的日誌後發現,冷備的mds,基本上不做任何事情,只呼叫handle_mds_beacon()這個函式

我們檢視一下這個函式內容,發現這個standy mds的函式基本上只和monitor維護乙個心跳的動作,其他啥也不做

4, 我們這時候把active mds 關掉,這時候standy mds,就會變成active mds,再檢視日誌發現之前的standy mds也就是現在的active mds在一直執行replay操作,因為之前做standy  mds的時候是沒有快取lru資料的,這時候他要把之前快取的lru資料讀進來。

總結:這就是冷備,備份的mds,只起到乙個程序備份的作用,並不備份lru元資料。主備程序保持心跳關係,一旦主的mds掛了,備份mds replay()元資料到快取,當然這需要消耗一點時間。

二,mds的熱備

1, 我們首先建立乙個mds,預設是 active mds。 我們再建立乙個mds,預設為備份mds,我們在備份mds啟動的時候,指定他為熱備。

--hot-standby

start as a hot standby for mds .

命令為:ceph-mds -i [mds_name] --hot-standby 0

其中0為主mds的rank值

建立後,結果如下:

這個備份mds不僅僅叫standby 了,而叫:standby-replay。

我們看看這個熱備的mds執行什麼操作。

發現熱備的mds在時時刻刻做replay的操作。也就是說除了程序備份,他的元資料快取還時時刻刻的與主mds保持同步。

2,當 active mds掛掉後,熱備的mds直接變成主mds,並且沒有replay()的操作,元資料快取大小和主mds保持一致

cephFS的建立和使用

cephfs是ceph的檔案系統,可以通過核心掛載和fuse掛載兩種方式。1.建立mds 先需要mds守護程序執行的節點啟動mds程序,執行如下操作 mkdir p var lib ceph mds ceph ceph1 ceph auth get or create mds.ceph1 mon a...

快速統計cephfs目錄下的資料量

用於快速統計cephfs目錄下存放的資料量 getfattr d m ceph.dir.m表示匹配模式 使用了getfattr命令,來獲取檔案系統給出的擴充套件屬性 getfattr d m ceph.dir.mnt cephfs getfattr d m ceph.dir.mnt cephfs d...

資料表的冷備份

在資料操作之中,有可能有些使用者不會進行事務的提交,那麼在這種情況下很可能無法進行完整的備份操作,而所謂的冷備份指的就是在閉資料庫例項的情況下進行資料庫備份操作的實現。如果要進行冷備份,則需要備份出資料庫中的一些幾個核心內容 從實際的oracle的部署來講,所有的檔案為了達到io的平衡操作,要分別儲...