CephFS 如何恢復(fù)損毀的Metadata Pool

  1. 模擬數(shù)據(jù)損毀
# 刪除所有 metadata 中的數(shù)據(jù)
$ for i in `rados -p cephfs.a.meta ls`; rados -p cephfs.a.meta rm $i; done

# 查看集群狀態(tài)
$ ceph -s
  cluster:
    id:     399aa358-dc80-4bed-a957-7e27f8943b67
    health: HEALTH_WARN
            1 filesystem is degraded
            insufficient standby MDS daemons available

  services:
    mon: 3 daemons, quorum a,b,c (age 31h)
    mgr: x(active, since 31h)
    mds: 1/1 daemons up
    osd: 3 osds: 3 up (since 31h), 3 in (since 11d)

  data:
    volumes: 0/1 healthy, 1 recovering
    pools:   4 pools, 81 pgs
    objects: 136 objects, 5.5 MiB
    usage:   3.0 GiB used, 300 GiB / 303 GiB avail
    pgs:     81 active+clean

# 查看 fs 狀態(tài)
$ ceph fs status
a - 0 clients
=
RANK      STATE      MDS  ACTIVITY   DNS    INOS   DIRS   CAPS
 0    replay(laggy)   a                0      0      0      0
     POOL        TYPE     USED  AVAIL
cephfs.a.meta  metadata  1095k  98.9G
cephfs.a.data    data    14.3M  98.9G
  1. 創(chuàng)建 recovery fs 從 data pool 中恢復(fù)一個(gè)可用的備份文件系統(tǒng)拆火。
# 首先仅胞,將現(xiàn)有的文件系統(tǒng)停止,以防止對數(shù)據(jù)池的進(jìn)一步修改亥贸。卸載所有客戶端朵锣。
$ ceph fs fail a

# 接下來,創(chuàng)建一個(gè)恢復(fù)文件系統(tǒng),我們將在其中填充由原始數(shù)據(jù)池支持的新元數(shù)據(jù)池渣锦。
$ ceph osd pool create cephfs_recovery_meta
$ ceph fs new cephfs_recovery cephfs_recovery_meta cephfs.a.data  --recover --allow-dangerous-metadata-overlay

# 恢復(fù)過程中我們將關(guān)閉MDS硝岗,因?yàn)槲覀儾幌Mc元數(shù)據(jù)池進(jìn)一步交互。
$ ceph fs fail cephfs_recovery

# 接下來袋毙,我們將重置MDS創(chuàng)建的初始元數(shù)據(jù):
$ cephfs-table-tool cephfs_recovery:0 reset session
$ cephfs-table-tool cephfs_recovery:0 reset snap
$ cephfs-table-tool cephfs_recovery:0 reset inode
$ cephfs-journal-tool --rank cephfs_recovery:0 journal reset --force

# 現(xiàn)在從數(shù)據(jù)池中恢復(fù)元數(shù)據(jù)池:
$ cephfs-data-scan init --force-init --filesystem cephfs_recovery --alternate-pool cephfs_recovery_meta
$ cephfs-data-scan scan_extents --alternate-pool cephfs_recovery_meta --filesystem a cephfs.a.data
$ cephfs-data-scan scan_inodes --alternate-pool cephfs_recovery_meta --filesystem a --force-corrupt cephfs.a.data
$ cephfs-data-scan scan_links --filesystem cephfs_recovery

# (注意型檀,配置也可以是全局設(shè)置的,也可以是通過ceph.conf文件設(shè)置的听盖。)現(xiàn)在胀溺,允許MDS加入恢復(fù)文件系統(tǒng):
$ ceph fs set cephfs_recovery joinable true

# 最后,運(yùn)行前向清除以修復(fù)統(tǒng)計(jì)信息媳溺。確保您有一個(gè)MDS正在運(yùn)行并發(fā)出:
$ ceph fs status # get active MDS
$ ceph tell mds.<id> scrub start / recursive repair
  1. 嘗試恢復(fù)文件系統(tǒng)月幌,成功者則流程結(jié)束碍讯,不成功繼續(xù)第4)步
$ cephfs-journal-tool --rank=a:0 event recover_dentries list --alternate-pool cephfs_recovery_meta


$ ceph fs status
a - 0 clients
=
RANK  STATE   MDS     ACTIVITY     DNS    INOS   DIRS   CAPS
 0    active   c   Reqs:    0 /s    13     16     12      0
     POOL        TYPE     USED  AVAIL
cephfs.a.meta  metadata   207k  98.9G
cephfs.a.data    data    14.3M  98.9G
cephfs_recovery - 0 clients
===============
RANK  STATE   MDS     ACTIVITY     DNS    INOS   DIRS   CAPS
 0    active   b   Reqs:    0 /s    10     13     12      0
        POOL            TYPE     USED  AVAIL
cephfs_recovery_meta  metadata  96.0k  98.9G
   cephfs.a.data        data    14.3M  98.9G
STANDBY MDS
     a
  1. 利用 recovery fs 恢復(fù)原來已經(jīng)被損毀的 metadata pool
# 確保整個(gè)過程文件系統(tǒng)處于關(guān)閉狀態(tài)
ceph fs fail a
ceph fs set a joinable false

# 接下來悬蔽,我們將重置MDS創(chuàng)建的初始元數(shù)據(jù)
cephfs-table-tool a:0 reset session
cephfs-table-tool a:0 reset snap
cephfs-table-tool a:0 reset inode
cephfs-journal-tool --rank a:0 journal reset --force

# 利用數(shù)據(jù)池和已經(jīng)創(chuàng)建好的recovery fs恢復(fù)元數(shù)據(jù)池
cephfs-data-scan init --force-init --filesystem a --alternate-pool cephfs.a.meta
cephfs-data-scan scan_extents --alternate-pool cephfs.a.meta --filesystem cephfs_recovery cephfs.a.data
cephfs-data-scan scan_inodes --alternate-pool cephfs.a.meta --filesystem cephfs_recovery --force-corrupt cephfs.a.data
cephfs-data-scan scan_links --filesystem a

# (注意,配置也可以是全局設(shè)置的捉兴,也可以是通過ceph.conf文件設(shè)置的蝎困。)現(xiàn)在,允許MDS加入恢復(fù)文件系統(tǒng):
$ ceph fs set a joinable true

# 最后倍啥,運(yùn)行前向清除以修復(fù)統(tǒng)計(jì)信息禾乘。確保您有一個(gè)MDS正在運(yùn)行并發(fā)出:
$ ceph fs status # get active MDS
$ ceph tell mds.<id> scrub start / recursive repair
a - 0 clients
=
RANK  STATE   MDS     ACTIVITY     DNS    INOS   DIRS   CAPS
 0    active   c   Reqs:    0 /s    13     16     12      0
     POOL        TYPE     USED  AVAIL
cephfs.a.meta  metadata   207k  98.9G
cephfs.a.data    data    14.3M  98.9G
cephfs_recovery - 0 clients
===============
RANK  STATE   MDS     ACTIVITY     DNS    INOS   DIRS   CAPS
 0    active   b   Reqs:    0 /s    10     13     12      0
        POOL            TYPE     USED  AVAIL
cephfs_recovery_meta  metadata  96.0k  98.9G
   cephfs.a.data        data    14.3M  98.9G
STANDBY MDS
     a

刪除 recovery fs 和 metadata pool

$ ceph fs fail cephfs_recovery
$ ceph fs rm cephfs_recovery --yes-i-really-mean-it
$ ceph osd pool cephfs_recovery_meta cephfs_recovery_meta --yes-i-really-really-mean-it
$ ceph fs status
RANK  STATE   MDS     ACTIVITY     DNS    INOS   DIRS   CAPS
 0    active   c   Reqs:    0 /s    13     16     12      0
     POOL        TYPE     USED  AVAIL
cephfs.a.meta  metadata   207k  98.9G
cephfs.a.data    data    14.3M  98.9G
STANDBY MDS
     a
     b

更多技術(shù)分享瀏覽我的博客:

https://thierryzhou.github.io

本文由mdnice多平臺(tái)發(fā)布

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市虽缕,隨后出現(xiàn)的幾起案子始藕,更是在濱河造成了極大的恐慌,老刑警劉巖氮趋,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伍派,死亡現(xiàn)場離奇詭異,居然都是意外死亡剩胁,警方通過查閱死者的電腦和手機(jī)诉植,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昵观,“玉大人晾腔,你說我怎么就攤上這事“∪” “怎么了灼擂?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長觉至。 經(jīng)常有香客問我剔应,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任领斥,我火速辦了婚禮嫉到,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘月洛。我一直安慰自己何恶,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布嚼黔。 她就那樣靜靜地躺著细层,像睡著了一般。 火紅的嫁衣襯著肌膚如雪唬涧。 梳的紋絲不亂的頭發(fā)上疫赎,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音碎节,去河邊找鬼捧搞。 笑死,一個(gè)胖子當(dāng)著我的面吹牛狮荔,可吹牛的內(nèi)容都是我干的胎撇。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼殖氏,長吁一口氣:“原來是場噩夢啊……” “哼晚树!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起雅采,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤爵憎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后婚瓜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宝鼓,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年闰渔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了席函。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冈涧,死狀恐怖茂附,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情督弓,我是刑警寧澤营曼,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站愚隧,受9級(jí)特大地震影響蒂阱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一录煤、第九天 我趴在偏房一處隱蔽的房頂上張望鳄厌。 院中可真熱鬧,春花似錦妈踊、人聲如沸了嚎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽歪泳。三九已至,卻和暖如春露筒,著一層夾襖步出監(jiān)牢的瞬間呐伞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國打工慎式, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伶氢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓瞬捕,卻偏偏與公主長得像鞍历,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子肪虎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容