亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

PG incomplete處理流程

2023-09-13 06:52:41
320
0

Step1:避免集群內再次發生不可控的映射變化和數據遷移。

當發(fa)現(xian)有PG處于incomplete狀態之后,首先依次(ci)執行下述(shu)操作,避(bi)免集群內再次(ci)發(fa)生不可控的映射(she)變化和數據遷移。

1. 執行(xing)以(yi)下命令(ling),使集群內(nei)數據處于靜止(zhi)狀態,不能遷移

ceph osd set noout, ceph osd set nobackfill, ceph osd set norecover

2. 關閉所有OSD節點的(de)agent,避免OSD自(zi)動拉起(qi)

systemctl stop csp-agent.target

3. 記錄下來(lai)當時PG的詳細信息,如果有多(duo)個PG,每個PG都先query一(yi)次(ci)到文件

ceph pg  query > pgxxx.query

Step2:將incomplete PG所屬pool的min_size降到K值。

檢查incomplete PG所屬pool,如果是(shi)EC的pool,先嘗試將(jiang)pool的min_size降低到(dao)K值,比如K:M為4:2,則(ze)降低到(dao)4,但不能(neng)小于4。若pool是(shi)多副(fu)本pool,則(ze)跳過此步驟(zou)。

ceph osd pool set  min_size
ceph osd unset nobackfill
ceph osd unset norecover
等待數據修復,直至恢復正常,或者沒有數據可恢復為止

Step3: EC pool有數據不能恢復的情況處理

經過Step2的(de)修復后(hou),EC pool可能存在(zai)(zai)(zai)有(you)數據(ju)(ju)不(bu)能恢復的(de)情況,原(yuan)因可能是剩余的(de)incomplete PG無法找(zhao)夠K個數據(ju)(ju)片,這些丟失的(de)數據(ju)(ju)片很可能在(zai)(zai)(zai)以前的(de)映射中落在(zai)(zai)(zai)別的(de)OSD上,此(ci)時(shi)需要用下述命令來查找(zhao)數據(ju)(ju)片所在(zai)(zai)(zai)OSD。多(duo)副本pool跳過此(ci)步(bu)驟。

for dir in `ll /var/lib/ceph/osd/|awk '{print $9}'`;
do echo $dir;
ceph-objectstore-tool --data-path /var/lib/ceph/osd/$dir --type bluestore --op list-pgs|grep   ;
done

例(li)如PG映射是[5,12,24,32,42,55],其(qi)中本應(ying)在(zai)osd24的數據片落(luo)在(zai)了osd26上,對(dui)應(ying)pg及shard為2.1s2 (EC的pg會分為多個shard,2.1s0 - 2.1s5,分別順(shun)序對(dui)應(ying)[5,12,24,32,42,55]),則需要將osd26上對(dui)應(ying)的分片先(xian)導出,然后再導入osd24。操作如下(xia):

1. 首先停止osd.24和(he)osd.26,進行osd bluestore操作(zuo)時,需要先停止OSD,

2. 導出pg分片

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-26/ --type bluestore --pgid 2.1s2 --op export --file 2.1s2export
3. 步驟2中導出的pg分片導入osd.24
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-24/ --type bluestore --op import --file 2.1s2export
4. 標記osd.24的數據片已修復完成
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-24/ --type bluestore --pgid 2.1s2 --op mark-complete

5. 按照上述步驟(zou)將(jiang)盡量(liang)多的pg分片找到并搬(ban)到對應的OSD

6. 最(zui)后啟動osd.24和osd.26,PG即可自動完成(cheng)peering,進入recovery_wait狀態

step4 : 多副本pool的incomplete修復

與EC不同之處在于,PG不會分片,但pg可能有多份數據在多個OSD,這些OSD可能是pg映射到的OSD,也可能是其它的OSD。
這種情況下,需要人工確定權威副本,可以通過比較object個數和pg log的方式來確定。
1. 查看object個數
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-26/ --type bluestore --pgid 2.5 --op list|wc -l
2. 導出pg log
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-26/ --type bluestore --pgid 2.5 --op log > pg2.5-osd26.log
3. 比如確定權威副本在OSD.24上,而pg映射在[14, 25, 66],則需要從osd.24上導出pg數據
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-24/ --type bluestore --pgid 2.5 --op export --file 2.5export
4. 將此文件scp到osd.14所在主機,導入到osd.14中
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-14/ --type bluestore --pgid 2.5 --op remove --force
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-14/ --type bluestore --op import --file 2.5export
5. 標記osd.14的數據片已修復完成
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-24/ --type bluestore --pgid 2.5 --op mark-complete
6. 刪除osd.25和osd.66的PG
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-25/ --type bluestore --pgid 2.5 --op remove --force
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-66/ --type bluestore --pgid 2.5 --op remove --force
7. 啟動OSD,等待PG進入recovery_wait狀態

Step5 : 所有incomplete PG都消除掉incomplete狀態之后,打開recovery

ceph osd unset nobackfill
ceph osd unset norecover
等待PG recovery完成,修復過程結束。
0條評論
0 / 1000
jackLin
2文章數(shu)
0粉(fen)絲(si)數(shu)
jackLin
2 文章(zhang) | 0 粉(fen)絲
jackLin
2文章數
0粉絲數(shu)
jackLin
2 文(wen)章 | 0 粉絲
原(yuan)創

PG incomplete處理流程

2023-09-13 06:52:41
320
0

Step1:避免集群內再次發生不可控的映射變化和數據遷移。

當發(fa)(fa)現(xian)有PG處(chu)于incomplete狀態之后,首先依(yi)次執(zhi)行下述操作,避免(mian)集(ji)群內再次發(fa)(fa)生不可控的映射變化和(he)數(shu)據遷移(yi)。

1. 執行以下(xia)命令,使集群內數據處于(yu)靜(jing)止狀態,不能遷(qian)移

ceph osd set noout, ceph osd set nobackfill, ceph osd set norecover

2. 關閉所有(you)OSD節(jie)點的agent,避(bi)免OSD自動拉起

systemctl stop csp-agent.target

3. 記錄下來當時PG的(de)詳細信息(xi),如果有多個PG,每個PG都先query一次到文件

ceph pg  query > pgxxx.query

Step2:將incomplete PG所屬pool的min_size降到K值。

檢查incomplete PG所屬pool,如果(guo)是EC的pool,先嘗試將pool的min_size降低到K值(zhi),比(bi)如K:M為4:2,則降低到4,但不能(neng)小于4。若pool是多副本pool,則跳過此步(bu)驟。

ceph osd pool set  min_size
ceph osd unset nobackfill
ceph osd unset norecover
等待數據修復,直至恢復正常,或者沒有數據可恢復為止

Step3: EC pool有數據不能恢復的情況處理

經過Step2的(de)修復(fu)后,EC pool可能(neng)存(cun)在(zai)有數(shu)據不能(neng)恢復(fu)的(de)情況,原因可能(neng)是剩余的(de)incomplete PG無法找(zhao)夠K個數(shu)據片(pian)(pian),這些(xie)丟失的(de)數(shu)據片(pian)(pian)很可能(neng)在(zai)以前的(de)映(ying)射(she)中落(luo)在(zai)別的(de)OSD上,此時需要用下述(shu)命令來查找(zhao)數(shu)據片(pian)(pian)所在(zai)OSD。多副(fu)本(ben)pool跳過此步驟。

for dir in `ll /var/lib/ceph/osd/|awk '{print $9}'`;
do echo $dir;
ceph-objectstore-tool --data-path /var/lib/ceph/osd/$dir --type bluestore --op list-pgs|grep   ;
done

例(li)如PG映射是(shi)[5,12,24,32,42,55],其(qi)中本應(ying)在osd24的數據片(pian)落在了osd26上,對應(ying)pg及shard為2.1s2 (EC的pg會分為多個shard,2.1s0 - 2.1s5,分別順序對應(ying)[5,12,24,32,42,55]),則(ze)需要將osd26上對應(ying)的分片(pian)先導出,然后再導入osd24。操作如下:

1. 首先(xian)停止osd.24和(he)osd.26,進行osd bluestore操作時,需要先(xian)停止OSD,

2. 導出pg分片

ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-26/ --type bluestore --pgid 2.1s2 --op export --file 2.1s2export
3. 步驟2中導出的pg分片導入osd.24
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-24/ --type bluestore --op import --file 2.1s2export
4. 標記osd.24的數據片已修復完成
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-24/ --type bluestore --pgid 2.1s2 --op mark-complete

5. 按(an)照上述步驟將(jiang)盡量多的pg分片找到(dao)并搬到(dao)對應的OSD

6. 最后(hou)啟動(dong)osd.24和osd.26,PG即可自動(dong)完(wan)成peering,進入recovery_wait狀態

step4 : 多副本pool的incomplete修復

與EC不同之處在于,PG不會分片,但pg可能有多份數據在多個OSD,這些OSD可能是pg映射到的OSD,也可能是其它的OSD。
這種情況下,需要人工確定權威副本,可以通過比較object個數和pg log的方式來確定。
1. 查看object個數
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-26/ --type bluestore --pgid 2.5 --op list|wc -l
2. 導出pg log
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-26/ --type bluestore --pgid 2.5 --op log > pg2.5-osd26.log
3. 比如確定權威副本在OSD.24上,而pg映射在[14, 25, 66],則需要從osd.24上導出pg數據
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-24/ --type bluestore --pgid 2.5 --op export --file 2.5export
4. 將此文件scp到osd.14所在主機,導入到osd.14中
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-14/ --type bluestore --pgid 2.5 --op remove --force
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-14/ --type bluestore --op import --file 2.5export
5. 標記osd.14的數據片已修復完成
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-24/ --type bluestore --pgid 2.5 --op mark-complete
6. 刪除osd.25和osd.66的PG
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-25/ --type bluestore --pgid 2.5 --op remove --force
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-66/ --type bluestore --pgid 2.5 --op remove --force
7. 啟動OSD,等待PG進入recovery_wait狀態

Step5 : 所有incomplete PG都消除掉incomplete狀態之后,打開recovery

ceph osd unset nobackfill
ceph osd unset norecover
等待PG recovery完成,修復過程結束。
文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0