Ceph FAQ 總結(jié)

Ceph FAQ 總結(jié)

生產(chǎn)環(huán)境如何部署Ceph

1. 在kubernetes系統(tǒng)中使用CephCSI時(shí),是Fuse好棚放,還是KernelMod好?

由于容器在技術(shù)文件系統(tǒng)層面不存在隔離馅闽,而kubernetes中pod運(yùn)行時(shí)kubelet組件
依賴(lài)各種fs相關(guān)的工具加載和檢測(cè)文卷飘蚯,因此Ceph產(chǎn)生系統(tǒng)異常時(shí),會(huì)影響整個(gè)工作節(jié)點(diǎn)福也。
因此推薦CephCSI部署是mount方式改為fuse局骤,提升系統(tǒng)穩(wěn)定性。

2. CephFS有沒(méi)有必要部署為多活(MDS)模式暴凑,還需要做其他哪些準(zhǔn)備峦甩?

由于CephFS單活模式下,一個(gè)MDS服務(wù)管理整個(gè)文件系統(tǒng)樹(shù)现喳,部分文件出錯(cuò)會(huì)拖累整個(gè)
文件系統(tǒng)凯傲,因此在條件允許的情況下盡量部署多活(MDS)模式。此外嗦篱,建議做好metadata
pool的數(shù)據(jù)備份冰单,

3. 編排工具使用cephadm和rook哪個(gè)更好,他們之間有什么區(qū)別灸促?

cephadm是ceph項(xiàng)目自帶的編排工具诫欠,部署Ceph這個(gè)組件時(shí)可以通過(guò)修改配置腳本的方式使得各個(gè)節(jié)點(diǎn)的物理資源得到更加充分的利用,并且當(dāng)前版本已經(jīng)使用docker容器來(lái)運(yùn)行ceph組件浴栽,對(duì)比傳統(tǒng)的ansible等運(yùn)維工具更貼合如今的潮流荒叼;rook-ceph則是第三方團(tuán)隊(duì)為ceph打造的編碼工具,更貼合kubernetes業(yè)務(wù)典鸡,可以使用云原生的可觀測(cè)組件被廓,對(duì)容器、日志椿每、網(wǎng)絡(luò)等基礎(chǔ)設(shè)施進(jìn)行更好的監(jiān)控伊者,它更適應(yīng)云上的編排環(huán)境,它將ceph組件運(yùn)行在kubernetes的容器中间护,后續(xù)使用中可依據(jù)云廠(chǎng)商提供的富容器增加系統(tǒng)的安全性和健壯性。

問(wèn)題處理

1.客戶(hù)端掛載ceph查看的容量與實(shí)際容量不符挖诸?如何解決osd之間數(shù)據(jù)不均衡問(wèn)題汁尺?

此問(wèn)題一般是由于部分OSD使用率遠(yuǎn)高于其他OSD的使用率導(dǎo)致,屬于數(shù)據(jù)平衡性問(wèn)題的一種多律。
利用osd utilization命令優(yōu)化平衡性即可痴突。

ceph osd reweight-by-utilization

2.如何解決osd crash down以后系統(tǒng)中的報(bào)警搂蜓?

ceph crash  archive-all

3.如何解決ceph集群恢復(fù)速度慢的問(wèn)題?

# 僅考慮數(shù)據(jù)恢復(fù)辽装,不考慮數(shù)據(jù)訪(fǎng)問(wèn)速度
ceph tell 'osd.*' injectargs --osd_max_backfills 32
ceph tell 'osd.*' injectargs --osd_recovery_max_active_hdd 16
ceph tell 'osd.*' injectargs --osd_recovery_max_active_ssd 64
ceph tell 'osd.*' injectargs --osd_recovery_sleep_hdd 0
ceph tell 'osd.*' injectargs --osd_backfill_scan_min 32

# 恢復(fù)兼容性能模式
ceph tell 'osd.*' injectargs --osd_max_backfills 8
ceph tell 'osd.*' injectargs --osd_recovery_max_active_hdd 4
ceph tell 'osd.*' injectargs --osd_recovery_max_active_ssd 16
ceph tell 'osd.*' injectargs --osd_recovery_sleep_hdd 0.0001
ceph tell 'osd.*' injectargs --osd_recovery_max_single_start 8

# 生產(chǎn)環(huán)境
ceph tell 'osd.*' injectargs --osd_max_backfills 4
ceph tell 'osd.*' injectargs --osd_recovery_max_active_hdd 4
ceph tell 'osd.*' injectargs --osd_recovery_max_active_ssd 16
ceph tell 'osd.*' injectargs --osd_recovery_sleep_hdd 0.01
ceph tell 'osd.*' injectargs --osd_recovery_max_single_start 4

4.如何修復(fù)有問(wèn)題的pg帮碰?

ceph health detail
# ...
# pg 65.168 is incomplete, acting [12,5,10] (reducing pool aifs-data0 min_size from 2 may help; search ceph.com/docs for 'incomplete')
# ...

# 修復(fù)pg
ceph pg scrub 65.168
ceph pg deep-scrub 65.168
ceph pg repair 65.168

# 修復(fù)pg所對(duì)應(yīng)的osd
ceph osd repair 12
ceph osd repair 5
ceph osd repair 10

5.如何手動(dòng)移動(dòng)pg從osd1到osd2?

ceph osd pg-upmap-items a.b 1 2

6.如何暫停Ceph中正在運(yùn)行的服務(wù)拾积,進(jìn)行調(diào)試或是優(yōu)化殉挽?

# 備份當(dāng)前配置
ceph osd set noout
kubectl get deployment rook-ceph-osd-$i -n rook-ceph > rook-ceph-osd-$i.yaml

# 服務(wù)暫停
kubectl -n rook-ceph patch deployment rook-ceph-osd-$i --type='json' -p '[{"op":"remove", "path":"/spec/template/spec/containers/0/livenessProbe"}]'
kubectl -n rook-ceph patch deployment rook-ceph-osd-$i -p '{"spec": {"template": {"spec": {"containers": [{"name": "osd", "command": ["sleep", "infinity"], "args": []}]}}}}'

#服務(wù)恢復(fù)
kubectl apply --replace -f rook-ceph-osd-$i.yaml
ceph osd unset noout

7.如果關(guān)閉一些ceph集群后臺(tái)執(zhí)行的任務(wù)

#
ceph osd set noout
#ceph osd unset noout
ceph osd set nocovery
#ceph osd unset nocovery
ceph osd set noscrub
#ceph osd unset noscrub
ceph osd set nodeep-scrub
#ceph osd unset nodeep-scrub
ceph osd set nobackfill
#ceph osd unset nobackfill

8. 如何解決部分pg調(diào)用ceph osd force-create-pg并且經(jīng)過(guò)長(zhǎng)期等待仍無(wú)法重建的問(wèn)題?

9. 如何解決pg長(zhǎng)期處于unknown狀態(tài)拓巧?

# 重建pg對(duì)象
ceph osd force-create-pg a.b

# 當(dāng) force create 無(wú)效時(shí)執(zhí)行下面的命令
ceph osd pg-temp a.b 1 10 14
ceph osd pg-upmap a.b 1 10 14

10. 如何顯示更詳盡的日志以方便調(diào)試和追蹤問(wèn)題

ceph tell osd.0 injectargs --debug-osd 0/5
ceph tell mon.a injectargs --debug-osd 0/5
ceph tell mds.a injectargs --debug-osd 0/5

11.如何打開(kāi)和關(guān)閉本地ceph調(diào)試日志斯碌?

echo "module libceph +p" >/sys/kernel/debug/dynamic_debug/control
echo "module ceph +p" >/sys/kernel/debug/dynamic_debug/control

echo "module libceph -p" >/sys/kernel/debug/dynamic_debug/control
echo "module ceph -p" >/sys/kernel/debug/dynamic_debug/control

12. 修改解決因?yàn)閞ook ceph operator重置后的monitor集群后secret和configmap中mon_host不匹配的問(wèn)題?

mon_host=$(kubectl -n rook-ceph get svc rook-ceph-mon-b -o jsonpath='{.spec.clusterIP}')
kubectl -n rook-ceph patch secret rook-ceph-config -p '{"stringData": {"mon_host": "[v2:'"${mon_host}"':3300,v1:'"${mon_host"':6789]", "mon_initial_members": "'"${good_mon_id}"'"}}'

13.如何解決CephFS MDS服務(wù)無(wú)法進(jìn)入active狀態(tài)的問(wèn)題肛度?

# Session table
cephfs-table-tool cephfs:all reset session
# SnapServer
cephfs-table-tool cephfs:all reset snap
# InoTable
cephfs-table-tool cephfs:all reset inode
# Journal
cephfs-journal-tool --rank cephfs:all journal reset
# Root inodes ("/" and MDS directory)
cephfs-data-scan init --force-init

14.CephFS Monitor出現(xiàn)容量報(bào)警傻唾。

[WRN] MON_DISK_BIG: mons a,b,c,d,e are using a lot of disk space
    mon.a is 18 GiB >= mon_data_size_warn (15 GiB)
    mon.b is 17 GiB >= mon_data_size_warn (15 GiB)
    mon.c is 18 GiB >= mon_data_size_warn (15 GiB)
    mon.d is 18 GiB >= mon_data_size_warn (15 GiB)
    mon.e is 18 GiB >= mon_data_size_warn (15 GiB)

排查此問(wèn)題是需要觀察集群是否處于HEALTH_OK狀態(tài),如果是的則使用‘解決辦法1’承耿,如果不是則需要進(jìn)入問(wèn)題排查流程

1.解決辦法1:使mon進(jìn)入數(shù)據(jù)壓縮模式

ceph tell mon.* compact

2.解決辦法2: 下鄉(xiāng)正在產(chǎn)生預(yù)警的OSD

ceph osd.* down

3.解決辦法3: 增大報(bào)警閾值

ceph config set global mon_data_size_warn 30GiB

15.Ceph Cluster Monitor出現(xiàn)Slow OPS報(bào)警冠骄。

[WRN] SLOW_OPS: 10319 slow ops, oldest one blocked for 736 sec, daemons [mon.c,mon.d,mon.e,mon.h] have slow ops.

如果出現(xiàn)Monintor處于正常工作狀態(tài)中時(shí)不存在大量讀寫(xiě)的情況,暫停正在進(jìn)行數(shù)據(jù)同步的客戶(hù)端加袋,依次排查其他組件是否出現(xiàn)報(bào)警或者頻繁的重啟及上電猴抹。

16.Ceph 出現(xiàn)Operator修改了Mon列表如何處理。

修改ConfigMap rook-ceph-csi-config rook-ceph-mon-endpoints
修改Secret rook-ceph-config

17.CephFS 如何進(jìn)行Metadata數(shù)據(jù)修復(fù)

# Worker 0
for i in {0..3}; do cephfs-data-scan scan_extents --worker_n $i --worker_m 16 <data pool>
# Worker 1
for i in {4..7}; do cephfs-data-scan scan_extents --worker_n $i --worker_m 16 <data pool>
# Worker 2
for i in {8..11}; do cephfs-data-scan scan_extents --worker_n $i --worker_m 16 <data pool>
# Worker 3
for i in {12..15}; do cephfs-data-scan scan_extents --worker_n $i --worker_m 16 <data pool>

# Worker 0
for i in {0..3}; do cephfs-data-scan scan_inodes --worker_n $i --worker_m 16 <data pool>
# Worker 1
for i in {4..7}; do cephfs-data-scan scan_inodes --worker_n $i --worker_m 16 <data pool>
# Worker 2
for i in {8..11}; do cephfs-data-scan scan_inodes --worker_n $i --worker_m 16 <data pool>
# Worker 3
for i in {12..15}; do cephfs-data-scan scan_inodes --worker_n $i --worker_m 16 <data pool>

# Worker 0
for i in {0..3}; do  cephfs-data-scan scan_links --worker_n $i --worker_m 16
# Worker 1
for i in {4..7}; do cephfs-data-scan scan_links --worker_n $i --worker_m 16
# Worker 2
for i in {8..11}; do cephfs-data-scan scan_links --worker_n $i --worker_m 16
# Worker 3
for i in {12..15}; do cephfs-data-scan scan_links --worker_n $i --worker_m 16

# 如何在Rook命名空間下查看data scan的執(zhí)行進(jìn)度
kg po -n rook-ceph | grep rook-ceph-tools | awk '{ print $1; }' | xargs -I{} kubectl exec -ti {} -- ps aux | grep cephfs-data-scan

18. CephFS 如何為MetadataPool配置額外的備份锁荔?

# 首先蟀给,應(yīng)該刪除現(xiàn)有的文件系統(tǒng)(如果還沒(méi)有刪除的話(huà)),以防止對(duì)數(shù)據(jù)池的進(jìn)一步修改阳堕。卸載所有客戶(hù)端跋理,然后標(biāo)記文件系統(tǒng)失敗:
ceph fs fail <fs_name>

# 接下來(lái),創(chuàng)建一個(gè)恢復(fù)文件系統(tǒng)恬总,我們將在其中填充由原始數(shù)據(jù)池支持的新元數(shù)據(jù)池前普。
ceph fs flag set enable_multiple true --yes-i-really-mean-it
ceph osd pool create cephfs_recovery_meta
ceph fs new cephfs_recovery recovery <data_pool> --allow-dangerous-metadata-overlay


# 恢復(fù)文件系統(tǒng)從一個(gè)MDS秩開(kāi)始,它將用一些元數(shù)據(jù)初始化新的元數(shù)據(jù)池壹堰。
# 這對(duì)于引導(dǎo)恢復(fù)是必要的拭卿。但是,現(xiàn)在我們將關(guān)閉MDS贱纠,因?yàn)槲覀儾幌Mc元數(shù)據(jù)池進(jìn)一步交互峻厚。
ceph fs fail cephfs_recovery

# 接下來(lái),我們將重置MDS創(chuàng)建的初始元數(shù)據(jù):
cephfs-table-tool cephfs_recovery:all reset session
cephfs-table-tool cephfs_recovery:all reset snap
cephfs-table-tool cephfs_recovery:all reset inode


# 現(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 <fs_name> <data_pool>
cephfs-data-scan scan_inodes --alternate-pool cephfs_recovery_meta --filesystem <fs_name> --force-corrupt <data_pool>
cephfs-data-scan scan_links --filesystem cephfs_recovery

# 恢復(fù)后谆焊,部分恢復(fù)目錄的統(tǒng)計(jì)信息會(huì)不正確惠桃。確保參數(shù) mds_verify_scatter 
# 和 mds_debug_scatterstat 設(shè)置為false(默認(rèn)值),防止MDS檢查統(tǒng)計(jì)信息:
ceph config rm mds mds_verify_scatter
ceph config rm mds mds_debug_scatterstat

# (注意,配置也可以是全局設(shè)置的辜王,也可以是通過(guò)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

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

https://thierryzhou.github.io

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市汹来,隨后出現(xiàn)的幾起案子续膳,更是在濱河造成了極大的恐慌,老刑警劉巖俗慈,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姑宽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡闺阱,警方通過(guò)查閱死者的電腦和手機(jī)炮车,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)酣溃,“玉大人瘦穆,你說(shuō)我怎么就攤上這事∩尥悖” “怎么了扛或?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)碘饼。 經(jīng)常有香客問(wèn)我熙兔,道長(zhǎng),這世上最難降的妖魔是什么艾恼? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任住涉,我火速辦了婚禮,結(jié)果婚禮上钠绍,老公的妹妹穿的比我還像新娘舆声。我一直安慰自己,他們只是感情好柳爽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布媳握。 她就那樣靜靜地躺著,像睡著了一般磷脯。 火紅的嫁衣襯著肌膚如雪蛾找。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,598評(píng)論 1 305
  • 那天争拐,我揣著相機(jī)與錄音腋粥,去河邊找鬼晦雨。 笑死架曹,一個(gè)胖子當(dāng)著我的面吹牛隘冲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绑雄,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼展辞,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了万牺?” 一聲冷哼從身側(cè)響起罗珍,我...
    開(kāi)封第一講書(shū)人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎脚粟,沒(méi)想到半個(gè)月后覆旱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡核无,尸身上長(zhǎng)有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
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赌厅。 院中可真熱鬧穷绵,春花似錦、人聲如沸特愿。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)揍障。三九已至目养,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間毒嫡,已是汗流浹背癌蚁。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人努释。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓碘梢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親伐蒂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子煞躬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

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

  • ceph簡(jiǎn)介 Ceph是一個(gè)分布式存儲(chǔ)系統(tǒng),誕生于2004年逸邦,是最早致力于開(kāi)發(fā)下一代高性能分布式文件系統(tǒng)的項(xiàng)目恩沛。隨...
    愛(ài)吃土豆的程序猿閱讀 6,026評(píng)論 0 21
  • 概述 Ceph是一個(gè)分布式存儲(chǔ)系統(tǒng),誕生于2004年缕减,最早致力于開(kāi)發(fā)下一代高性能分布式文件系統(tǒng)的項(xiàng)目雷客。隨著云計(jì)算的...
    梅_梅閱讀 3,628評(píng)論 0 6
  • 一、Ceph簡(jiǎn)介: Ceph是一種為優(yōu)秀的性能桥狡、可靠性和可擴(kuò)展性而設(shè)計(jì)的統(tǒng)一的搅裙、分布式文件系統(tǒng)。ceph 的統(tǒng)一體...
    WickJohn閱讀 2,056評(píng)論 0 9
  • 一总放、概述 Ceph是一個(gè)分布式存儲(chǔ)系統(tǒng)呈宇,誕生于2004年,最早致力于開(kāi)發(fā)下一代高性能分布式文件系統(tǒng)的項(xiàng)目局雄。隨著云計(jì)...
    魏鎮(zhèn)坪閱讀 49,417評(píng)論 3 54
  • Ceph概述 [toc] 分布式文件系統(tǒng) 分布式文件系統(tǒng)( Distributed File Syste ) 是指...
    Kokoronashi閱讀 2,374評(píng)論 0 0