ceph 資料修復 均衡速度測試

2021-08-28 05:46:26 字數 2551 閱讀 1577

以副本環境的資料均衡為例,以下需要注意:

cosbench支援命令列。進入cosbench目錄,用./cli.sh 來開始、結束任務

[root@node-105-84 ~]# cd 0.4.2.c4/

[root@node-105-84 0.4.2.c4]# ./cli.sh

usage: ./cli.sh - action:

- : submit configuration and start workload

- : cancel workload

- : check status

- anonymous:[email protected]:19088 by default

在上傳大物件的測試中,有觀測到到達預定資料量,之後資料減少的情況。可檢視到gc list中有等待gc的物件。

懷疑因上傳物件有5g以上大小,multipart上傳導致。測試中應排除該部分gc物件的影響,等待或加快gc完成。

radosgw-admin gc list -n client.radosgw.node-105-80

radosgw-admin gc list --include-all -n client.radosgw.node-105-80

radosgw-admin gc process -n client.radosgw.node-105-80

ceph daemon /var/run/ceph/ceph-client.radosgw.node-105-80.1477.94595294014400.asok config show | grep _gc_

注:根據查到的gc引數來理解gc過程

[root@node-105-84 0.4.2.c4]# cat /etc/ceph/ceph.conf |grep scrub

osd scrub begin hour = 0

osd scrub end hour = 5

osd_scrub_chunk_max = 2

osd_scrub_chunk_min = 1

關閉晚上的scrub或者避免在0-5點間測試

ceph osd pool set noscrub true

ceph osd pool set nodeep-scrub true

(1)radosgw-admin bucket stats --bucket=bucket1  --name client.radosgw.node-*

(2)寫入大物件個數還可用s3cmd ls s3://bucket1 |wc -l得到。寫入小物件個數由於到達了百萬級別,ls可能超時。

由於寫入小物件小於512k,可直接等於rados物件數。其實可通過ceph df檢視資料池中的物件得到。比如:

site.rgw.buckets.data.rep2      6      1116g     50.14         1024g     9577008

(1)粗略統計(注:本方法只針對於2副本;gc會影響統計結果;對於乙個pg,可能多個副本發生遷移,乙個pg上的資料量沒有乘以遷移的副本數,導致結果不準確)

步驟:①統計資料遷移前pg的分布

ceph pg dump pgs|awk '' |sort >>/root/oldpg  #這裡記錄的分別是,pg名,object數,pg上的資料量,以及pg的acting osd。

②統計資料遷移後pg的分布

ceph pg dump pgs|awk '' |sort >>/root/newpg

③對比前後pg變化

vimdiff  /root/oldpg /root/newpg #檢視是否有pg上的資料量發生變化或者乙個pg是否只有乙個副本發生位置變化

③計算遷移量

diff -y /root/oldpg /root/newpg --suppress-common-lines|awk 'beginend' 來進行統計,這裡的單位是位元組

(2)相對精確的統計

理論①:對於乙個pg,可能多個副本發生遷移,乙個pg上的資料量乘以遷移的副本數可得到準確結果。

參見:理論② :刪除osd.1,對比前後pg分布,可能不止分布在osd.1上的pg發生了遷移。已驗證。

綜合①②可通過記錄pg前後變化來計算遷移量。可編寫指令碼計算。

理論③:參見  ,對於不同的刪除osd的方式,資料遷移量不同。當前我們的方式為第一種,stop osd 、out osd(發生資料遷移)、crush remove osd(發生資料遷移) 、add osd(發生資料遷移)。未驗證。

推論:對於不同操作場景,比如:磁碟壞了(stop osd、out osd)、磁碟壞了資料已經修復完成後刪除(remove osd)、磁碟壞了資料已經修復完成後重建(remove osd+add osd)、當前osd為in+up進行刪除(stop、out、crush remove)、當前osd為in+up進行重建(stop、out、crush remove、add),遷移的資料量是不同的。

6、善用excel公式計算時間和速度

=round((h5-g5) * 1440,1)

=round((f2/1024/1024/i2/60),1)

ceph 資料均衡

參考 問題的提出 在ceph集群中,當有新的osd 新增到集群中,會導致資料移動以達到資料均衡,資料的移動只在舊的osd和新新增的osd之間移動,還是舊有的osd之間也有資料移動?上次ceph社群交流,有人提到,當有100個osd時,新增osd,舊有的osd之間會有劇烈的資料移動 目前做了乙個實驗,...

記一次ceph的故障修復 20160408

ceph的在正常執行的時候基本不會出現故障,出現故障一般在變動的時候,具體有下面幾種可能出現的情形 以上這些操作過程中是最可能出現異常的情形,並不是一定會出問題,以上問題除了網路和磁碟問題出現的異常是基本無法避免外,其他出現的時候,一般是非正常操作引起的,也就是我通常認為的人為事故,這個一般出現在操...

SQLSERVER 資料修復

先執行 dbcc checkdb 資料名稱 找出資料有問題的表 再執行下面的命令 declare dbname varchar 255 set dbname 資料名稱 exec sp dboption dbname,single user true dbcc checktable 有問題的表名 re...