您好,登錄后才能下訂單哦!
小編給大家分享一下如何構建Ceph,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
基本簡介
Ceph是一種為優秀的性能、可靠性和可擴展性而設計的統一的、分布式文件系統。
由來
其命名和UCSC(Ceph 的誕生地)的吉祥物有關,這個吉祥物是 “Sammy”,一個香蕉色的蛞蝓,就是頭足類中無殼的軟體動物。這些有多觸角的頭足類動物,是對一個分布式文件系統高度并行的形象比喻。
Ceph 最初是一項關于存儲系統的 PhD 研究項目,由 Sage Weil 在 University of California, SantaCruz(UCSC)實施。
開發目標
簡單定義為以下3項:
可輕松擴展到數 PB 容量
支持多種工作負載的高性能(每秒輸入/輸出操作[IOPS]和帶寬)
高可靠性
但是,這些目標之間會互相競爭(例如,可擴展性會降低或者抑制性能或者影響可靠性)。Ceph 的設計還包括保護單一點故障的容錯功能,它假設大規模(PB 級存儲)存儲故障是常見現象而不是例外情況。
它的設計并沒有假設某種特殊工作負載,但包括了適應變化的工作負載,并提供最佳性能的能力。它利用 POSIX 的兼容性完成所有這些任務,允許它對當前依賴 POSIX 語義(通過以 Ceph 為目標的改進)的應用進行透明的部署。
系統架構
Ceph 生態系統架構可以劃分為四部分:
Clients:客戶端(數據用戶)
cmds:Metadata server cluster,元數據服務器(緩存和同步分布式元數據)
cosd:Object storage cluster,對象存儲集群(將數據和元數據作為對象存儲,執行其他關鍵職能)
每個節點安裝和配置NTP(官方推薦的是集群的所有節點全部安裝并配置 NTP,需要保證各節點的系統時間一致。沒有自己部署ntp服務器,就在線同步NTP)
#yum install ntp ntpdate ntp-doc -y
#systemctl restart ntpd
systemctl status ntpd
每個節點準備yum源
刪除默認的源,國外的比較慢
#yum clean all
#mkdir /mnt/bak
#mv /etc/yum.repos.d/* /mnt/bak/
下載阿里云的base源和epel源
#wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
添加ceph源
#vim /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=0
priority =1
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
gpgcheck=0
priority =1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS
gpgcheck=0
priority=1
準備磁盤(實際操作也可以省,只要磁盤沒問題直接安裝都沒問題無需要此步驟)
fdisk /dev/sdb
parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%
mkfs.xfs /dev/sdb –f
blkid /dev/sdb #用ansible直觀的看下
部署階段(admin節點上使用ceph-deploy快速部署)
安裝ceph-deploy
sudo yum update -y && sudo yum install ceph-deploy -y
創建cluster目錄
[root@master ~]# mkdir -pv /data/idc-cluster
mkdir: 已創建目錄 "/data/idc-cluster"
創建集群(后面跟集群成員節點名稱,這里master節點只做CEPH-DEPLOY使用)
[root@master idc-cluster]# ceph-deploy new client1 client2 client3
在ceph.conf文件中添加紅色項并保存
[root@client2 ceph]# cat ceph.conf
[global]
fsid = d5a5f367-97d2-45a5-8b6b-b462bd65fe3d
mon_initial_members = client1, client2, client3
mon_host = 192.168.27.211,192.168.27.212,192.168.27.213
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd_pool_default_size= 3
public_network = 192.168.27.0/22
重新推送配置信息到各結點:
[root@master idc-cluster]# ceph-deploy --overwrite-conf config push master client1 client2 client3
初始化集群:
ceph-deploy mon create-initial
添加OSD到集群
準備OSD(使用prepare命令)
[root@master idc-cluster]# ceph-deploy osd prepare client1:/dev/sdb client2:/dev/sdb client3:/dev/sdb
激活OSD(注意由于ceph對磁盤進行了分區,/dev/sdb磁盤分區為/dev/sdb1)
[root@master idc-cluster]# ceph-deploy osd activate client1:/dev/sdb1 client2:/dev/sdb1 client3:/dev/sdb1
[root@master idc-cluster]# ceph-deploy admin master client1 client2 client3
創建文件系統
先查看管理節點狀態,默認是沒有管理節點的。
[root@master idc-cluster]# ceph mds stat
e1:
[root@master idc-cluster]#
創建管理節點(master結點作為管理節點)
[root@master idc-cluster]# ceph-deploy mds create master
再次查看管理節點狀態,發現已經在啟動中
[root@master idc-cluster]# ceph mds stat
e2:, 1 up:standby
創建pool,pool是ceph存儲數據時的邏輯分區,它起到namespace的作用
先查看下:
ceph osd lspools
新創建的ceph集群只有rdb一個pool。這時需要創建一個新的pool
[root@master idc-cluster]# ceph osd pool create cephfs_data 128 #后面的數字是PG的數量
pool 'cephfs_data' created
再查看下有了:
[root@master idc-cluster]# ceph osd pool create cephfs_metadata 128 #創建pool的元數據
pool 'cephfs_metadata' created
再次查看pool狀態:
ceph fs new myceph cephfs_metadata cephfs_data
檢查mds管理節點狀態
[root@master idc-cluster]# ceph mds stat
查看集群狀態有警報:
解決方案
在配置文件中,調大集群的此選項的告警閥值;方法如下,在mon節點的ceph.conf(/etc/ceph/ceph.conf)配置文件中添加:
vi /etc/ceph/ceph.conf
[global]
.......
mon_pg_warn_max_per_osd = 666
推送配置
重啟monitor服務:
systemctl restart ceph-mon.target
1、客戶端掛載使用cephfs:
[root@BDDB ceph]# ceph-fuse -m 192.168.27.211:6789 /ceph/cephsys
2、使用內核驅動程序掛載CephFs
[root@BDDB ~]# mount -t ceph 192.168.27.213:6789:/ /ceph/cephsys/ -o name=admin,secretfile=/etc/ceph/admin.secret
存放文件效果:
看完了這篇文章,相信你對“如何構建Ceph”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。