ceph安裝步驟1完成之後,即可進行該步驟的操作。
本文中以對sas池進行操作為例。
一、建立ceph pool 。
1. 計算每個池所需要的pg數目。
在建立池之前,首先需要計算pg數目(簡單來說,pg就是負責管理物件都儲存在哪些osd上)。計算公式如下:
pg 數目= (osd數目 x 100) / 副本數(如果是糾刪碼池,則除以k與m的和),計算的結果取大於這個值並且最接近的2的冪。(例如,如果計算得到pg數目為600,則設定的pool的pg數目應為1024)。
如果在同樣的一些osd上要建立多個池,則每個池的pg數目需要再除以池的數量。
2.建立pool。
2.1 建立池的命令如下:
ceph osd pool create
其中pgpnumber=pgnumber,pgnumber即為上一步得到的pg數目。
此命令建立的池為副本池,並且預設為三副本池。
2.2 如果想要修改副本數量,比如將三副本改為二副本,則使用以下命令(ceph要求副本數或k+m的和必須小於等於osd數目):
ceph osd pool set sas size 2
2.3 如果想要檢視某乙個池的副本數量,則使用以下命令:
ceph osd pool get sas size
2.4 如果想要建立乙個糾刪碼池,則使用以下命令:
首先建立乙個糾刪碼規則,設定k、m值(此處建立乙個名為abc的規則,k=2,m=1),糾刪碼規則可同時建立多個,
ceph osd erasure-code-profile setabck=2 m=1 runleset-failure-domain=host
然後建立糾刪碼池:
ceph osd pool create sas 256 256 erasureabc
二、刪除池。
在建立池後,由於種種原因,可能需要將池刪掉,刪除池使用以下命令:
ceph osd pool delete sas sas --yes-i-really-really-mean-it
三、配置crush map。
通過配置crush map,使得pool知道自己可以使用哪些osd。
首先,通過以下命令建立crush map :
ceph osd getcrushmap -o raw_map
crushtool -d raw_map -o decode_map
建立完成後,開啟crush map, crush map中包含以下幾部分內容:
1. 生成crush map時,自動生成的三部分:
(1)tunable
# begin crush map
tunable choose_local_tries 0
tunable choose_local_fallback_tries 0
tunable choose_total_tries 50
tunable chooseleaf_descend_once 1
tunable chooseleaf_vary_r 1
tunable chooseleaf_stable 1
tunable straw_calc_version 1
tunable allowed_bucket_algs 54
(2) device
# devices
device 0 osd.0 class hdd
device 1 osd.1 class hdd
device 2 osd.2 class ssd
device 3 osd.3 class hdd
device 4 osd.4 class hdd
device 5 osd.5 class ssd
device 6 osd.6 class hdd
device 7 osd.7 class hdd
device 8 osd.8 class ssd
(3) type
# types
type 0 osd
type 1 host
type 2 chassis
type 3 rack
type 4 row
type 5 pdu
type 6 pod
type 7 room
type 8 datacenter
type 9 region
type 10 root
2. 需要手動編輯的部分
(1)host
# buckets
host ceph-admin
其中,ceph-admin為配置的主機名,每一台主機都需要配置這個部分。
id 為負整數,只需要保證每個id都不同即可。
id -2 class hdd 和id -3 class ssd 表明該host節點包含ssd和hdd兩種硬碟。
alg straw2和hash 0與資料平衡分配有關。
item osd.0 weight 0.019 表明該host節點包含osd.0這一磁碟,並且磁碟容量為0.019t。
(2)root
root sas
root需要包含需要建池的所管理的所有host節點,並且表明節點總容量大小。
(3)rule
# rules
rule sas
至此,crush map配置完成,然後,通過以下命令使crush map的配置生效。
crushtool -c decode_map -o crush_map
ceph osd setcrushmap -i crush_map
ceph osd pool set sas crush_rule sas
至此,ceph pool配置完成。
ceph儲存系統
ceph is a unified,distributed storage system designed for excellent performance,reliability and scalability.也即,ceph是一種為優秀的效能 可靠性和可擴充套件性而設計的統一的 分布式的儲存系...
ceph安裝總結
你有沒有想過,簡單的在集群的機器上裝ceph,不做任何處理它就能元件集群嗎?當然不可能。那麼ceph集群裡的節點是如何與其他節點通訊呢,有兩點 1.要作為集群的一員,你肯定要是某種角色,mon,osd,mds,mgr甚至client都行。所以安裝ceph是必須的。然後,與集群通訊,就需要知道集群是誰...
ceph儲存 ceph集群osd故障自我檢測
心跳是用於osd節點間檢測對方是否故障的,以便及時發現故障節點進入相應的故障處理流程。故障檢測需要在故障的發現時間和心跳帶來的負載之間做權衡,如果心跳頻率太高則過多的心跳報文會影響系統效能,如果心跳頻率過低則會延長發現故障節點的時間,從而影響系統的可用性。在大規模部署的場景中,如果任意兩個osd節點...