文章目录
- 环境规划
- 节点初始化设置
- ssh免密
- 主机名解析
- 时间同步
- 关闭防火墙
- 部署ceph
- 下载ceph-ansible
- 修改配置文件
- 执行部署
- 验证集群状态
- 扩容mon节点
- 扩容osd节点
环境规划
总共9个节点,3个mon节点,6个osd节点,每个osd节点3块50G的osd磁盘
主机名 | os | 角色 | public_ip | cluster_ip | osd磁盘 |
---|---|---|---|---|---|
ceph-mon-01.linux.io | ubuntu20.04 | mon/mgr/deploy-node | 192.168.122.33 | 192.168.200.2 | |
ceph-mon-02.linux.io | ubuntu20.04 | mon/mgr | 192.168.122.34 | 192.168.200.2 | |
ceph-mon-03.linux.io | ubuntu20.04 | osd | 192.168.122.35 | 192.168.200.2 | |
ceph-osd-01.linux.io | ubuntu20.04 | osd | 192.168.122.36 | 192.168.200.2 | vdb/vdc/vdd |
ceph-osd-02.linux.io | ubuntu20.04 | osd | 192.168.122.37 | 192.168.200.2 | vdb/vdc/vdd |
ceph-osd-03.linux.io | ubuntu20.04 | osd | 192.168.122.38 | 192.168.200.2 | vdb/vdc/vdd |
ceph-osd-04 .linux.io | ubuntu20.04 | osd | 192.168.122.39 | 192.168.200.2 | vdb/vdc/vdd |
ceph-osd-05.linux.io | ubuntu20.04 | osd | 192.168.122.40 | 192.168.200.2 | vdb/vdc/vdd |
ceph-osd-06.linux.io | ubuntu20.04 | osd | 192.168.122.41 | 192.168.200.2 | vdb/vdc/vdd |
节点初始化设置
ssh免密
配置mon-01到所有节点的ssh免密
for i in {33..41};do ssh-copy-id 192.168.122.$i;done
主机名解析
在所有主机的/etc/hosts添加以下解析
192.168.122.33 ceph-mon-01.linux.io ceph-mon-01
192.168.122.34 ceph-mon-02.linux.io ceph-mon-02
192.168.122.35 ceph-mon-03.linux.io ceph-mon-03
192.168.122.36 ceph-osd-01.linux.io ceph-osd-01
192.168.122.37 ceph-osd-02.linux.io ceph-osd-02
192.168.122.38 ceph-osd-03.linux.io ceph-osd-03
192.168.122.39 ceph-osd-04.linux.io ceph-osd-04
192.168.122.40 ceph-osd-05.linux.io ceph-osd-05
192.168.122.41 ceph-osd-06.linux.io ceph-osd-06
时间同步
设置mon-01作为时间同步服务器,其他节点同步mon-01时间
在所有节点安装chrony
apt -y install chrony
修改mon-01节点chrony配置
# cat /etc/chrony/chrony.conf |grep -Ev '^#'
server ntp.aliyun.com iburst
keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift
logdir /var/log/chrony
allow 192.168.122.0/24
maxupdateskew 100.0
rtcsync
makestep 1 3
修改其它节点chrony配置
# cat /etc/chrony/chrony.conf |grep -Ev '^#'
server 192.168.122.33 iburst
keyfile /etc/chrony/chrony.keys
driftfile /var/lib/chrony/chrony.drift
logdir /var/log/chrony
maxupdateskew 100.0
rtcsync
makestep 1 3
所有节点启动chrony服务
systemctl restart chrony.service
验证时间同步状态
chronyc sources -v
关闭防火墙
ufw disable
部署ceph
下载ceph-ansible
ceph-ansible项目地址:https://github.com/ceph/ceph-ansible
ceph-ansible官方文档:https://docs.ceph.com/projects/ceph-ansible/en/latest/
安装Ceph Pacific需要使用ceph-asible stable-6.0分支,同时ceph-asible stable-6.0对ansible的版本要求是2.10往上
wget https://github.com/ceph/ceph-ansible/archive/refs/heads/stable-6.0.zip -O ceph-ansible-stable-6.0.zip
unzip ceph-ansible-stable-6.0.zip
cd ceph-ansible-stable-6.0
pip install -r requirements.txt #这一步会安装ansible和其它依赖
修改配置文件
定义主机清单inventroy文件
cd ceph-ansible-stable-6.0/
vim hosts #暂时只包含1个mon和5个osd节点,剩余的节点用于后边扩容测试
#################
[mons]
ceph-mon-01
[mgrs]
ceph-mon-0[1:3]
[osds]
ceph-osd-0[1:5]
[monitoring]
ceph-mon-0[1:3]
####################
修改ceph部署过程中需要使用的配置参数
cd ceph-ansible-stable-6.0/
cp group_vars/all.yml.sample group_vars/all.yml
cp osds.yml.sample osds.yml
vim group_vars/all.yml #ceph全局配置参数
#######################
---
dummy:
mon_group_name: mons
osd_group_name: osds
rgw_group_name: rgws
mds_group_name: mdss
iscsi_gw_group_name: iscsigws
mgr_group_name: mgrs
monitoring_group_name: monitoring
#ceph安装方式设置,详细解释可以参考官网文档https://docs.ceph.com/projects/ceph-ansible/en/latest/installation/non-containerized.html
ceph_origin: repository
ceph_repository: community
ceph_mirror: https://mirrors.tuna.tsinghua.edu.cn/ceph/ #ceph安装源
ceph_stable_key: https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc
ceph_stable_release: pacific #ceph版本
ceph_stable_repo: "{{ ceph_mirror }}/debian-{{ ceph_stable_release }}"
monitor_interface: enp1s0 #ceph-mon节点服务监听网卡
monitor_address_block: 192.168.122.0/24 #ceph-mon节点服务监听地址所在网段
ip_version: ipv4
public_network: 192.168.122.0/24 #public-netework子网
cluster_network: 192.168.200.0/24 #cluster-network子网
osd_objectstore: bluestore #osd使用的存储后端
dashboard_enabled: True #启用ceph-dashboard
dashboard_admin_user: admin #ceph-dashboard用户名和密码
dashboard_admin_password: Admin@123
grafana_admin_user: admin #grafana用户名和密码
grafana_admin_password: admin
#######################
vim group_vars/osds.yml #osd相关配置参数
########################
---
dummy:
devices: #每个节点上用作osd的磁盘
- /dev/vdb
- /dev/vdc
- /dev/vdd
osd_auto_discovery: false #关闭osd自动发现
#########################
执行部署
cd ceph-ansible-stable-6.0/
cp site.yml.sample site.yaml
ansible-playbook -i hosts site.yaml
等待playbook执行完成且无报错即可
验证集群状态
再mon-01节点执行ceph -s查看集群状态
这里存在一个警告,执行下面的命令,禁用mon节点不安全模式即可消除
ceph config set mon auth_allow_insecure_global_id_reclaim false
登录ceph-dashboard,https://192.168.122.33:8443
扩容mon节点
修改hosts文件,将新的mon节点,加入到对应的组中
cd ceph-ansible-stable-6.0/
vim hosts
##################
[mons]
ceph-mon-01
ceph-mon-02 #添加
ceph-mon-03 #添加
[mgrs]
ceph-mon-01
ceph-mon-02
ceph-mon-03
[osds]
ceph-osd-0[1:5]
[monitoring]
ceph-mon-0[1:3]
###################
执行扩容
cd ceph-ansible-stable-6.0/
ansible-playbook -i hosts infrastructure-playbooks/add-mon.yml
等待playbook执行完成后,查看集群状态,可以看到新的mon节点已经添加进去
扩容osd节点
修改hosts文件,将新的mon节点,加入到对应的组中
cd ceph-ansible-stable-6.0/
vim hosts
##################
[mons]
ceph-mon-01
ceph-mon-02
ceph-mon-03
[mgrs]
ceph-mon-01
ceph-mon-02
ceph-mon-03
[osds]
ceph-osd-0[1:5]
ceph-osd-06 #添加
[monitoring]
ceph-mon-0[1:3]
###################
执行扩容
cd ceph-ansible-stable-6.0/
ansible-playbook -vv -i hosts site.yaml --limit ceph-osd-06
等待playbook执行完成后,查看集群状态,可以看到新的osd已经添加进去