基于CentOS 7 x86_64
可參考:https://blog.csdn.net/dylloveyou/article/details/79054120
一食茎、簡單介紹
Ceph的部署模式下主要包含以下幾個類型的節(jié)點
? Ceph OSDs: A Ceph
OSD 進程主要用來存儲數(shù)據(jù)鲫寄,處理數(shù)據(jù)的replication,恢復(fù)脱柱,填充褒纲,調(diào)整資源組合以及通過檢查其他OSD進程的心跳信息提供一些監(jiān)控信息給Ceph Monitors . 當Ceph Storage Cluster 要準備2份數(shù)據(jù)備份時,要求至少有2個Ceph OSD進程的狀態(tài)是active+clean狀態(tài) (Ceph 默認會提供兩份數(shù)據(jù)備份).
? Monitors: Ceph
Monitor 維護了集群map的狀態(tài)咱旱,主要包括monitor map, OSD map, Placement Group (PG) map, 以及CRUSH map. Ceph 維護了 Ceph Monitors, Ceph OSD Daemons, 以及PGs狀態(tài)變化的歷史記錄 (called an
“epoch”).
? MDSs: Ceph
Metadata Server (MDS)存儲的元數(shù)據(jù)代表Ceph的文件系統(tǒng) (i.e., Ceph Block
Devices 以及Ceph Object Storage 不適用 MDS). Ceph Metadata Servers 讓系統(tǒng)用戶可以執(zhí)行一些POSIX文件系統(tǒng)的基本命令更鲁,例如ls,find 等.
二、節(jié)點規(guī)劃
節(jié)點規(guī)劃
主機名IP角色ceph版本
Server-200192.168.100.200Admin/monitorjewel
Server-201192.168.100.201Osd,/dev/sdb,/dev/sdc,/dev/sddjewel
Server-202192.168.100.202Osd,/dev/sdb,/dev/sdc,/dev/sddjewel
Server-203192.168.100.203Osd,/dev/sdb,/dev/sdc,/dev/sddjewel
三呵晨、預(yù)部署
配置各所有節(jié)點hosts
192.168.100.200server-200
192.168.100.201server-201
192.168.100.202server-202
192.168.100.203server-203
關(guān)閉防火墻和selinux, 確保時間一致
所有節(jié)點安裝ntpd魏保,確保時間一致
更新yum 為國內(nèi)阿里源
#rm -rf/etc/yum.repos.d/*.repo
#wget -O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo
#wget -O/etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-7.repo
#sed -i'/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo
#sed -i's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
#sed -i'/aliyuncs/d' /etc/yum.repos.d/epel.repo
#yum clean all
#yum makecache fast
admin節(jié)點 安裝部署工具 ceph-deploy
#yum installhttp://mirrors.163.com/ceph/rpm-jewel/el7/noarch/ceph-deploy-1.5.38-0.noarch.rpm
所有節(jié)點創(chuàng)建cephd用戶熬尺,并確保 管理節(jié)點 ssh秘鑰無密碼登錄,添加sudo權(quán)限
#echo "cephdALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephd
測試沒有問題谓罗,接下來粱哼,修改 ceph-deploy 管理節(jié)點上的 ~/.ssh/config 文件,這樣無需每次執(zhí)行 ceph-deploy 都要指定 –username cephd 檩咱。這樣做同時也簡化了 ssh 和 scp 的用法揭措。
$vim .ssh/config
Host server-200
Hostnameserver-200
Usercephd
Host server-201
Hostnameserver-201
Usercephd
Host server-202
Hostnameserver-202
Usercephd
Host server-203
Hostnameserver-203
Usercephd
$chmod 600.ssh/config
確保網(wǎng)絡(luò)暢通~
經(jīng)過上邊一系列的預(yù)檢設(shè)置后,我們就可以開始Ceph 存儲集群搭建了刻蚯,集群結(jié)構(gòu)為 admin-node (ceph-deploy绊含、Monitor)、node1(osd.1)芦倒、node2(osd.2)艺挪。首先要提一下的是,如果我們在安裝過程中出現(xiàn)了問題兵扬,需要重新操作的時候麻裳,例如想清理我搭建的這個集群的話,可以使用以下命令器钟。
#
ceph-deploy (admin-node) 上執(zhí)行
清理配置
#ceph-deploypurgedata server-200 server-201 server-202 server-203
#ceph-deployforgetkeys
清理 Ceph 安裝包
#ceph-deploypurge server-200 server-201 server-202 server-203
四津坑、部署集群
[if !supportLists]1.[endif]安裝ceph
我們需要通過admin?ceph-deploy在各個節(jié)點安裝ceph
$ceph-deploy installserver-200 server-201 server-202 server-203
如果安裝失敗,可以手動安裝
#vim /etc/yum.repos.d/ceph.repo
[Ceph]
name=Cephpackages for $basearch
baseurl=http://download.ceph.com/rpm-jewel/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
[Ceph-noarch]
name=Cephnoarch packages
baseurl=http://download.ceph.com/rpm-jewel/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
[ceph-source]
name=Cephsource packages
baseurl=http://download.ceph.com/rpm-jewel/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
[ceph]
name=Cephpackages for $basearch
baseurl=http://download.ceph.com/rpm-jewel/el7/$basearch
enabled=1
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-noarch]
name=Cephnoarch packages
baseurl=http://download.ceph.com/rpm-jewel/el7/noarch
enabled=1
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-source]
name=Cephsource packages
baseurl=http://download.ceph.com/rpm-jewel/el7/SRPMS
enabled=0
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
#yum install snappyleveldb gdisk python-argparse gperftools-libs
#yum install ceph
[if !supportLists]2.????[endif]創(chuàng)建集群傲霸,因暫只使用一個monitor疆瑰,所以這里只初始admin監(jiān)控節(jié)點
#su - cephd
$mkdir ceph-cluster
$cd ceph-cluster
$ceph-deploy new server-200
[if !supportLists]3.[endif]添加監(jiān)控器
$ceph-deploy ?mon create server-200
$ceph-deploy moncreate-initial
執(zhí)行完畢后,會在當前目錄下生成一系列的密鑰環(huán)昙啄,應(yīng)該是各組件之間訪問所需要的認證信息吧
到此穆役,ceph monitor 已經(jīng)成功啟動了。接下來需要創(chuàng)建 OSD 了梳凛,OSD 是最終數(shù)據(jù)存儲的地方耿币,這里我們準備了兩個 OSD 節(jié)點,分別為 osd.0 和 osd.1韧拒。官方建議為 OSD 及其日志使用獨立硬盤或分區(qū)作為存儲空間
$ceph-deploy osdprepare server-201:sdb:/dev/sdd server-201:sdc:/dev/sdd server-202:sdb:/dev/sddserver-202:sdc:/dev/sdd server-203:sdb:/dev/sdd server-203:sdc:/dev/sdd
$ceph-deploy osdactivate server-201:sdb1:/dev/sdd1 server-201:sdc1:/dev/sdd2server-202:sdb1:/dev/sdd1 server-202:sdc1:/dev/sdd2 server-203:sdb1:/dev/sdd1server-203:sdc1:/dev/sdd2
也可以考慮同步配置到其他節(jié)點淹接,這樣其他節(jié)點也可以查看
$ceph-deploy admin server-200server-201 server-202 server-203
$sudo chmod +r/etc/ceph/ceph.client.admin.keyring
$ceph -s