共計(jì) 4422 個(gè)字符,預(yù)計(jì)需要花費(fèi) 12 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下如何構(gòu)建 Ceph,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
基本簡(jiǎn)介
Ceph 是一種為優(yōu)秀的性能、可靠性和可擴(kuò)展性而設(shè)計(jì)的統(tǒng)一的、分布式文件系統(tǒng)。
由來
其命名和 UCSC(Ceph 的誕生地)的吉祥物有關(guān),這個(gè)吉祥物是“Sammy”,一個(gè)香蕉色的蛞蝓,就是頭足類中無殼的軟體動(dòng)物。這些有多觸角的頭足類動(dòng)物,是對(duì)一個(gè)分布式文件系統(tǒng)高度并行的形象比喻。
Ceph 最初是一項(xiàng)關(guān)于存儲(chǔ)系統(tǒng)的 PhD 研究項(xiàng)目,由 Sage Weil 在 University of California, SantaCruz(UCSC)實(shí)施。
開發(fā)目標(biāo)
簡(jiǎn)單定義為以下 3 項(xiàng):
可輕松擴(kuò)展到數(shù) PB 容量
支持多種工作負(fù)載的高性能(每秒輸入 / 輸出操作 [IOPS] 和帶寬)
高可靠性
但是,這些目標(biāo)之間會(huì)互相競(jìng)爭(zhēng)(例如,可擴(kuò)展性會(huì)降低或者抑制性能或者影響可靠性)。Ceph 的設(shè)計(jì)還包括保護(hù)單一點(diǎn)故障的容錯(cuò)功能,它假設(shè)大規(guī)模(PB 級(jí)存儲(chǔ))存儲(chǔ)故障是常見現(xiàn)象而不是例外情況。
它的設(shè)計(jì)并沒有假設(shè)某種特殊工作負(fù)載,但包括了適應(yīng)變化的工作負(fù)載,并提供最佳性能的能力。它利用 POSIX 的兼容性完成所有這些任務(wù),允許它對(duì)當(dāng)前依賴 POSIX 語義(通過以 Ceph 為目標(biāo)的改進(jìn))的應(yīng)用進(jìn)行透明的部署。
系統(tǒng)架構(gòu)
Ceph 生態(tài)系統(tǒng)架構(gòu)可以劃分為四部分:
Clients:客戶端(數(shù)據(jù)用戶)
cmds:Metadata server cluster,元數(shù)據(jù)服務(wù)器(緩存和同步分布式元數(shù)據(jù))
cosd:Object storage cluster,對(duì)象存儲(chǔ)集群(將數(shù)據(jù)和元數(shù)據(jù)作為對(duì)象存儲(chǔ),執(zhí)行其他關(guān)鍵職能)
cmon:Cluster monitors,集群監(jiān)視器(執(zhí)行監(jiān)視功能)
內(nèi)容源自百科:https://baike.baidu.com/item/CEPH/1882855
操作過程
CEPH 環(huán)境配置
192.168.27.210 master(ceph-deploy)
192.168.27.211 client1 osd0 mds1、mon1
192.168.27.212 client2 osd1 mds2、mon2
192.168.27.213 client3 osd2 mds3、mon3
主機(jī)名
hostnamectl set-hostname master
hostnamectl set-hostname client1
hostnamectl set-hostname client2
hostnamectl set-hostname client3
映射主機(jī)名:
192.168.27.210 master
192.168.27.211 client1
192.168.27.212 client2
192.168.27.213 client3
確認(rèn)節(jié)點(diǎn)間映射關(guān)系的聯(lián)通性:
ping -c 3 master
ping -c 3 client1
ping -c 3 client2
ping -c 3 client3
提示:由于提前做了 SSH 免登陸,這里把步驟省了,新裝需要每臺(tái)都需要做一次。
每個(gè)節(jié)點(diǎn)關(guān)閉防火墻和 selinux
#systemctl stop firewalld
#systemctl disable firewalld
#sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
#setenforce 0
每個(gè)節(jié)點(diǎn)安裝和配置 NTP(官方推薦的是集群的所有節(jié)點(diǎn)全部安裝并配置 NTP,需要保證各節(jié)點(diǎn)的系統(tǒng)時(shí)間一致。沒有自己部署 ntp 服務(wù)器,就在線同步 NTP)
#yum install ntp ntpdate ntp-doc -y
#systemctl restart ntpd
systemctl status ntpd
每個(gè)節(jié)點(diǎn)準(zhǔn)備 yum 源
刪除默認(rèn)的源,國外的比較慢
#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
準(zhǔn)備磁盤(實(shí)際操作也可以省,只要磁盤沒問題直接安裝都沒問題無需要此步驟)
fdisk /dev/sdb
parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%
mkfs.xfs /dev/sdb –f
blkid /dev/sdb #用 ansible 直觀的看下
部署階段(admin 節(jié)點(diǎn)上使用 ceph-deploy 快速部署)
安裝 ceph-deploy
sudo yum update -y sudo yum install ceph-deploy -y
創(chuàng)建 cluster 目錄
[root@master ~]# mkdir -pv /data/idc-cluster
mkdir: 已創(chuàng)建目錄 /data/idc-cluster
創(chuàng)建集群(后面跟集群成員節(jié)點(diǎn)名稱, 這里 master 節(jié)點(diǎn)只做 CEPH-DEPLOY 使用)
[root@master idc-cluster]# ceph-deploy new client1 client2 client3
在 ceph.conf 文件中添加紅色項(xiàng)并保存
[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
重新推送配置信息到各結(jié)點(diǎn):
[root@master idc-cluster]# ceph-deploy –overwrite-conf config push master client1 client2 client3
初始化集群:
ceph-deploy mon create-initial
添加 OSD 到集群
準(zhǔn)備 OSD(使用 prepare 命令)
[root@master idc-cluster]# ceph-deploy osd prepare client1:/dev/sdb client2:/dev/sdb client3:/dev/sdb
激活 OSD(注意由于 ceph 對(duì)磁盤進(jìn)行了分區(qū),/dev/sdb 磁盤分區(qū)為 /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
創(chuàng)建文件系統(tǒng)
先查看管理節(jié)點(diǎn)狀態(tài),默認(rèn)是沒有管理節(jié)點(diǎn)的。
[root@master idc-cluster]# ceph mds stat
e1:
[root@master idc-cluster]#
創(chuàng)建管理節(jié)點(diǎn)(master 結(jié)點(diǎn)作為管理節(jié)點(diǎn))
[root@master idc-cluster]# ceph-deploy mds create master
再次查看管理節(jié)點(diǎn)狀態(tài),發(fā)現(xiàn)已經(jīng)在啟動(dòng)中
[root@master idc-cluster]# ceph mds stat
e2:, 1 up:standby
創(chuàng)建 pool,pool 是 ceph 存儲(chǔ)數(shù)據(jù)時(shí)的邏輯分區(qū), 它起到 namespace 的作用
先查看下:
ceph osd lspools
新創(chuàng)建的 ceph 集群只有 rdb 一個(gè) pool。這時(shí)需要?jiǎng)?chuàng)建一個(gè)新的 pool
[root@master idc-cluster]# ceph osd pool create cephfs_data 128 # 后面的數(shù)字是 PG 的數(shù)量
pool cephfs_data created
再查看下有了:
[root@master idc-cluster]# ceph osd pool create cephfs_metadata 128 #創(chuàng)建 pool 的元數(shù)據(jù)
pool cephfs_metadata created
再次查看 pool 狀態(tài):
ceph fs new myceph cephfs_metadata cephfs_data
檢查 mds 管理節(jié)點(diǎn)狀態(tài)
[root@master idc-cluster]# ceph mds stat
查看集群狀態(tài)有警報(bào):
解決方案
在配置文件中,調(diào)大集群的此選項(xiàng)的告警閥值;方法如下,在 mon 節(jié)點(diǎn)的 ceph.conf(/etc/ceph/ceph.conf)配置文件中添加:
vi /etc/ceph/ceph.conf
[global]
…….
mon_pg_warn_max_per_osd = 666
推送配置
重啟 monitor 服務(wù):
systemctl restart ceph-mon.target
1、客戶端掛載使用 cephfs:
[root@BDDB ceph]# ceph-fuse -m 192.168.27.211:6789 /ceph/cephsys
2、使用內(nèi)核驅(qū)動(dòng)程序掛載 CephFs
[root@BDDB ~]# mount -t ceph 192.168.27.213:6789:/ /ceph/cephsys/ -o name=admin,secretfile=/etc/ceph/admin.secret
存放文件效果:
看完了這篇文章,相信你對(duì)“如何構(gòu)建 Ceph”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝各位的閱讀!