部署环境

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集群

  1. 部署ceph的方式有多种,如 ceph-ansible,最新的cephadm ,参见官网文档 https://docs.ceph.com/projects/ceph-deploy/en/latest/
1、 配置yum源
  1. [Ceph]
  2. name=Ceph packages
  3. baseurl=http://mirrors.163.com//ceph/rpm-15.2.5/el7/x86_64/
  4. enabled=1
  5. gpgcheck=0
  6. type=rpm-md
  7. [Ceph-noarch]
  8. name=Ceph noarch packages
  9. baseurl=http://mirrors.163.com//ceph/rpm-15.2.5/el7/noarch
  10. enabled=1
  11. gpgcheck=0
  12. type=rpm-md
  13. [ceph-source]
  14. name=Ceph source packages
  15. baseurl=http://mirrors.163.com//ceph/rpm-15.2.5/el7/SRPMS
  16. enabled=1
  17. gpgcheck=0
  18. type=rpm-md
2、在ceph管理节点安装ceph-deploy
  1. #先查看ceph-deploy版本
  2. yum search ceph-deploy --show-duplicates
  3. #安装ceph-deploy
  4. yum install -y ceph-deploy

ceph-deploy是通过ssh来安装部署ceph组件的,所以要配置管理节点到其他节点的ssh免密配置,且ceph集群是通过主机名进行通信的,所以还需要配置hosts或者dns。

3、安装ceph软件包
  1. #所有节点都需要安装
  2. yum install ceph ceph-deploy python-setuptools python2-subprocess32 ceph-common
  3. # 以下python包需要安装,否则部署完ceph集群后,检查集群状态会报 restful 不可用
  4. sudo pip3 install pecan werkzeug
4、配置hosts
  1. #配置主机名,ceph使用短主机名进行互联,可以用hostname -s 查看短主机名并加入到 /etc/hosts文件中,短主机名不可使用纯数字
  2. 172.16.0.202 ceph1
  3. 172.16.0.203 ceph2
  4. 172.16.0.204 ceph3
5、添加ceph用户
  1. useradd cephadm && chown cephadm.cephadm cephadm
  2. #ceph需要使用sudo,所以需要配置sudo
  3. echo "cephadm ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/ceph && chmod 0440 /etc/sudoers.d/ceph
  4. #注释 /etc/sudoer 的 Defaults requiretty,否则后面部署会失败
  5. mkdir /data/myceph && chown -R cephadm.cephadm /data/myceph
  6. su - cephadm
  7. cd /data/myceph
6、配置ssh
  1. #管理节点生成sshkey
  2. ssh-keygen
  3. ssh-copy-id ceph2
  4. ssh-copy-id ceph3

开始部署ceph集群

1、部署Mon
  1. cd /data/myceph
  2. #mon节点,可以写第一个,也可以写多个
  3. ceph-deploy new ceph1 ceph2 ceph3
  4. ceph-deploy install --no-adjust-repos ceph1 ceph2 ceph3 [--cluster-network 172.16.0.0/16] [--public-network 172.16.0.0/16]
  5. 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使用的网络(只有一块网卡不要指定该项目,否则报错)
(两个网络不能使用相同的网段)

  1. #在管理节点以cephadm用户运行
  2. setfacl -m u:cephadm:r /etc/ceph/ceph.client.admin.keyring
2、部署mgr

L版本之后Ceph,必须要有一个mgr节点,所以我们在管理节点执行:

  1. ceph-deploy mgr create ceph1 ceph2 ceph3
  2. cp ceph.client.admin.keyring,ceph.conf /etc/ceph
3、部署OSD
  1. ceph-deploy osd create ceph1 --data /dev/xvdb
  2. ceph-deploy osd create ceph2 --data /dev/xvdb
  3. ceph-deploy osd create ceph3 --data /dev/xvdb
4、复制配置文件
  1. ceph-deploy admin ceph1 ceph2
5、创建一个存储池,要想使用ceph的存储功能,必须先创建存储池
  1. #ceph osd pool create pool_name [<pg_num:int>] [<pgp_num:int>] [replicated|erasure]
  2. ceph osd pool create mypool 100 100
  3. #pg 和pgp 计算方式
  4. pg=OSD × 100 / replicated
  5. pgp=pg
  6. pool pg=OSD × 100 / replicated / pool count
  7. pgp=pg
  1. 启动 新创建的 pool
  2. ecph osd pool application enable mypool [cephfs,rbd,rgw]
文档更新时间: 2020-11-23 20:29   作者:张尚