部署环境
ceph version: 15.2.5
system version: centos7.2
node: ceph1 172.16.0.202 mon mgr osd mds ceph-deploy
node: ceph2 172.16.0.203 mon mgr osd mds
node: ceph3 172.16.0.204 mon mgr osd mds
如果使用ceph 对象存储,则需要部署 rgw
如果使用ceph cephfs,则需要部署mds
如果使用ceph rbd,不需要额外部署
准备使用ceph-deploy来部署 ceph集群
部署ceph的方式有多种,如 ceph-ansible,最新的cephadm ,参见官网文档 https://docs.ceph.com/projects/ceph-deploy/en/latest/
1、 配置yum源
[Ceph]
name=Ceph packages
baseurl=http://mirrors.163.com//ceph/rpm-15.2.5/el7/x86_64/
enabled=1
gpgcheck=0
type=rpm-md
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.163.com//ceph/rpm-15.2.5/el7/noarch
enabled=1
gpgcheck=0
type=rpm-md
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.163.com//ceph/rpm-15.2.5/el7/SRPMS
enabled=1
gpgcheck=0
type=rpm-md
2、在ceph管理节点安装ceph-deploy
#先查看ceph-deploy版本
yum search ceph-deploy --show-duplicates
#安装ceph-deploy
yum install -y ceph-deploy
ceph-deploy是通过ssh来安装部署ceph组件的,所以要配置管理节点到其他节点的ssh免密配置,且ceph集群是通过主机名进行通信的,所以还需要配置hosts或者dns。
3、安装ceph软件包
#所有节点都需要安装
yum install ceph ceph-deploy python-setuptools python2-subprocess32 ceph-common
# 以下python包需要安装,否则部署完ceph集群后,检查集群状态会报 restful 不可用
sudo pip3 install pecan werkzeug
4、配置hosts
#配置主机名,ceph使用短主机名进行互联,可以用hostname -s 查看短主机名并加入到 /etc/hosts文件中,短主机名不可使用纯数字
172.16.0.202 ceph1
172.16.0.203 ceph2
172.16.0.204 ceph3
5、添加ceph用户
useradd cephadm && chown cephadm.cephadm cephadm
#ceph需要使用sudo,所以需要配置sudo
echo "cephadm ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/ceph && chmod 0440 /etc/sudoers.d/ceph
#注释 /etc/sudoer 的 Defaults requiretty,否则后面部署会失败
mkdir /data/myceph && chown -R cephadm.cephadm /data/myceph
su - cephadm
cd /data/myceph
6、配置ssh
#管理节点生成sshkey
ssh-keygen
ssh-copy-id ceph2
ssh-copy-id ceph3
开始部署ceph集群
1、部署Mon
cd /data/myceph
#mon节点,可以写第一个,也可以写多个
ceph-deploy new ceph1 ceph2 ceph3
ceph-deploy install --no-adjust-repos ceph1 ceph2 ceph3 [--cluster-network 172.16.0.0/16] [--public-network 172.16.0.0/16]
ceph-deploy mon create-initial
—no-adjust-repos 不指定该项目,会修改你的ceph yum源,内网或者国内部署最好使用该项目
—cluster-network 172.16.0.0/16 ceph集群使用的网络 (只有一块网卡不要指定该项目,否则报错)
—public-network 172.16.0.0/16 cephclient使用的网络(只有一块网卡不要指定该项目,否则报错)
(两个网络不能使用相同的网段)
#在管理节点以cephadm用户运行
setfacl -m u:cephadm:r /etc/ceph/ceph.client.admin.keyring
2、部署mgr
L版本之后Ceph,必须要有一个mgr节点,所以我们在管理节点执行:
ceph-deploy mgr create ceph1 ceph2 ceph3
cp ceph.client.admin.keyring,ceph.conf /etc/ceph
3、部署OSD
ceph-deploy osd create ceph1 --data /dev/xvdb
ceph-deploy osd create ceph2 --data /dev/xvdb
ceph-deploy osd create ceph3 --data /dev/xvdb
4、复制配置文件
ceph-deploy admin ceph1 ceph2
5、创建一个存储池,要想使用ceph的存储功能,必须先创建存储池
#ceph osd pool create pool_name [<pg_num:int>] [<pgp_num:int>] [replicated|erasure]
ceph osd pool create mypool 100 100
#pg 和pgp 计算方式
pg=OSD数 × 100 / replicated
pgp=pg
pool pg=OSD数 × 100 / replicated / pool count
pgp=pg
启动 新创建的 pool
ecph osd pool application enable mypool [cephfs,rbd,rgw]
文档更新时间: 2020-11-23 20:29 作者:张尚