安装ceph-ansible

本文档中,ceph-ansible的安装路径在“/home”路径下。
安装ceph-ansible
支持在线和离线两种安装方式,都仅需在ceph1上进行操作。
方法一:在线方式安装
- 安装Ansible。
- CentOS 7.6
1
yum -y install ansible
- openEuler 20.03
1
pip3 install ansible==2.9
- CentOS 7.6
- 安装ceph-ansible。
- 确保环境上安装了git,可通过以下方式安装。
1
yum -y install git
- 配置“http.sslVerify”参数为“false”,跳过系统证书。
1
git config --global http.sslVerify false
- 下载ceph-ansible。
1
git clone -b stable-4.0 https://github.com/ceph/ceph-ansible.git --recursive
- 确保环境上安装了git,可通过以下方式安装。
方法二:离线方式安装
- 安装Ansible。
- CentOS 7.6
1
yum -y install ansible
- openEuler 20.03
1
pip3 install ansible
- CentOS 7.6
- 解压ceph-ansible。
1
unzip /home/ceph-ansible-stable-4.0.zip
安装ceph-ansible依赖
支持在线和离线两种安装方式,都仅需在ceph1上进行操作。
方法一:在线方式安装
- 安装python3-pip。
1
yum install -y python3-pip
- 创建并进入“ceph-ansible”目录。
1 2
mkdir /home/ceph-ansible/ cd /home/ceph-ansible/
- 检查并安装需要的软件版本。
1
pip3 install -r requirements.txt
方法二:离线方式安装
- 安装python3-pip。
1
yum install -y python3-pip
- 创建并进入“ceph-ansibl”e目录。
1 2
mkdir /home/ceph-ansible/ cd /home/ceph-ansible/
- 安装需要的依赖包。
1
yum install -y python-netaddr
- 检查并安装需要的软件版本。
1
pip3 install -r requirements.txt
解决环境依赖问题
- 解决rpm_key依赖问题。
- 解决grafana依赖问题。
创建服务节点配置列表
在ceph-ansible目录内新建hosts文件。
1 | vi /home/ceph-ansible/hosts
|
并添加如下内容:
该操作用于定义集群中的主机,以及每个主机在Ceph集群中扮演的角色。可根据整个集群的需要在集群节点上部署相应的应用。
各参数意义如表1所示。
修改ceph-ansible配置文件
在Ansible部署时,必须传递相应的playbook给ansible-playbook命令。需要修改相应的playbook名称,然后修改对应的内容,使之满足集群部署的要求。
使用ceph-ansible提供的Ansible变量用来设置Ceph集群的配置。
所有选项及默认配置放在“group_vars”目录下,每种Ceph进程对应相关的配置文件。
1 2 3 4 5 6 7 8 | cd /home/ceph-ansible/group_vars/ cp mons.yml.sample mons.yml cp mgrs.yml.sample mgrs.yml cp mdss.yml.sample mdss.yml cp rgws.yml.sample rgws.yml cp osds.yml.sample osds.yml cp clients.yml.sample clients.yml cp all.yml.sample all.yml |

all.yml.sample是应用于集群所有主机的特殊配置文件。
添加ceph.conf配置参数
“all.yml”文件中,“ceph_conf_overrides”变量可用于覆盖ceph.conf中已配置的选项,或是增加新选项。
进入“all.yml”文件,修改“ceph_conf_overrides”这个参数。
1 | vim all.yml
|
1 2 3 4 5 6 7 8 | ceph_conf_overrides: global: osd_pool_default_pg_num: 64 osd_pool_default_pgp_num: 64 osd_pool_default_size: 2 mon_max_pg_per_osd: 3000 mon: mon_allow_pool_create: true |
定义OSD
osds.yml支持两种方式设置OSD(object storage device)盘、WAL(write ahead log)盘和DB(data base)盘。
方法一:ceph-volume lvm batch方式
修改groups_vars路径下的osds.yml文件,根据需要指定“devices”,“dedicated_devices”和“bluestore_wal_devices”中的设备:
- devices表示系统中的数据盘,可以与osds_per_device选项结合,设置每个磁盘上创建的OSD数量。
- dedicated_devices即block.db。
- bluestore_wal_devices即block.wal。
- dedicated_devices和bluestore_wal_devices的磁盘不能为相同磁盘。
- dedicated_devices和bluestore_wal_devices可以包含一个或多个磁盘。
- 系统会根据devices中的磁盘数量,以及osds_per_device,将dedicated_devices和bluestore_wal_devices下的磁盘进行均分。

单个OSD的block.db大于等于50GB,否则可能会以为block.db过小而安装报错。
方法二:ceph-volume,从逻辑卷中创建osd
修改groups_vars路径下的osds.yml文件,根据需要指定lvm_volumes属性下的所有OSD设备,包含几种不同的组合场景:
- 只指定数据盘。
- 指定数据盘+WAL。
- 指定数据盘+WAL+DB。
- 指定数据盘+DB。
- 创建对应的vg。
1
/usr/sbin/vgcreate --yes -s 1G ceph-data /dev/sdd
创建名称为ceph-data的vg,-s指定创建逻辑卷的基本单位。
- 基于vg创建lv。
1
/usr/sbin/lvcreate -l 300 -n osd-data2 ceph-data
在ceph-data上创建名称为osd-data2的大小为300G的lv。
- 确认lv创建情况。
1
lvs
1 2 3 4 5 6 7 8 9 10 11
[root@ceph1 ceph-ansible-stable-4.0.bak]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home centos -wi-ao---- 839.05g root centos -wi-ao---- 50.00g swap centos -wi-a----- 4.00g osd-data1 ceph-data -wi-ao---- 300.00g osd-data2 ceph-data -wi-ao---- 300.00g osd-db1 ceph-db -wi-ao---- 100.00g osd-db2 ceph-db -wi-ao---- 100.00g osd-wal1 ceph-wal -wi-ao---- 50.00g osd-wal2 ceph-wal -wi-ao---- 50.00g
- 创建对应的vg。
以下为创建两个OSD,每个OSD都包含DB和WAL盘的场景:
关闭chrony

关闭chrony的操作仅需在openEuler操作系统下进行,CentOS操作系统请跳过此部分内容。
- 进入“roles/ceph-infra/tasks/setup_ntp.yml”。
1
vim /home/ceph-ansible/roles/ceph-infra/tasks/setup_ntp.yml
- 注释chrony相关内容。