手动搭建适合已经使用自动部署工具成功搭建了集群,想加深对ceph理解的同学,手动搭建ceph可以更灵活的配置ceph集群,现在就开始吧!!
一.环境准备
1.服务器配置:
三台centos 7.5(1804)服务器
ip:192.168.10.17(node1),
192.168.10.18(node2),
192.168.10.19(node3)
系统内核:3.10.0-862.el7.x86_64
cpu:2
内存:4g
硬盘:2块硬盘(100GB,50GB)
网卡:1
2.关闭防火墙
分别在三台服务器上执行:
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
3.关闭seLinux
分别在三台服务器上执行:
vim /etc/selinux/config
sentenforce 0
二.软件安装
1.在线安装
略
2.离线安装(离线包链接https://download.csdn.net/download/qq_33218245/11454740,使用的是mimic13.2.4 是一个稳定的版本)
2.1.安装ntp(时间同步)
进入到本地rpm包所在目录,使用yum安装本地ntp
cd cephRpm/ntp-4.2.6/28/
yum localinstall *.rpm -y
执行ntpq --version查看版本,显示如下则表示安装成功
2.2安装ceph
进入到本地rpm包所在目录,使用yum安装本地ceph
cd cephRpm/ceph-mimic-13.2.4/
yum localinstall *.rpm -y
执行ceph --version查看版本,显示如下则表示安装成功
至此,三台服务器均已安装ntp与ceph,下面进入正题,搭建ceph分布式存储集群
三.搭建集群
1.创建ceph配置文件
生成集群id
uuidgen
创建简单的ceph.conf
vim /etc/ceph/ceph.conf
[global]
fsid = e0c74cdd-0fb2-4568-9216-848965f1581e
mon_initial_members =node1,node2,node3
mon_host = 192.168.10.17,192.168.10.18,192.168.10.19
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd pool default size = 2
rgw frontends =civetweb port=7480
public_network = 192.168.10.0/24
rbd_default_features = 1
mon clock drift allowed = 2
mon clock drift warn backoff = 30
osd_crush_update_on_start = false
[mon]
mon allow pool delete = true
2.创建密钥
sudo ceph-authtool --create-keyring /etc/ceph/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
sudo ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
sudo ceph-authtool --create-keyring /var/lib/ceph/bootstrap-mds/ceph.keyring --gen-key -n client.bootstrap-mds --cap mon 'profile bootstrap-mds'
sudo ceph-authtool --create-keyring /var/lib/ceph/bootstrap-mgr/ceph.keyring --gen-key -n client.bootstrap-mgr --cap mon 'profile bootstrap-mgr'
sudo ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd'
sudo ceph-authtool --create-keyring /var/lib/ceph/bootstrap-rgw/ceph.keyring --gen-key -n client.bootstrap-rgw --cap mon 'profile bootstrap-rgw'
3.导入密钥
sudo ceph-authtool /etc/ceph/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
sudo ceph-authtool /etc/ceph/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-mds/ceph.keyring
sudo ceph-authtool /etc/ceph/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-mgr/ceph.keyring
sudo ceph-authtool /etc/ceph/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
sudo ceph-authtool /etc/ceph/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-rgw/ceph.keyring
4.将ceph.conf和所有密钥拷贝到所有的服务器节点上并修改所有配置文件的权限
4.1拷贝密钥
scp /etc/ceph/ceph.conf [email protected]:/etc/ceph
scp /etc/ceph/ceph.mon.keyring [email protected]:/etc/ceph
scp /etc/ceph/ceph.client.admin.keyring [email protected]:/etc/ceph
scp /var/lib/ceph/bootstrap-mds/ceph.keyring [email protected]:/var/lib/ceph/bootstrap-mds/
scp /var/lib/ceph/bootstrap-mgr/ceph.keyring [email protected]:/var/lib/ceph/bootstrap-mgr/
scp /var/lib/ceph/bootstrap-osd/ceph.keyring [email protected]:/var/lib/ceph/bootstrap-osd/
scp /var/lib/ceph/bootstrap-rgw/ceph.keyring [email protected]:/var/lib/ceph/bootstrap-rgw/
4.2 修改权限为755
chmod 755 -R /etc/ceph/
chmod 755 -R /var/lib/ceph/
chown -R ceph:ceph /etc/ceph
chown -R ceph:ceph /var/lib/ceph
5.添加mon
5.1创建monmap
monmaptool --create --add node1 192.168.10.17 --add node2 192.168.10.18 --add node3 192.168.10.19 --fsid e0c74cdd-0fb2-4568-9216-848965f1581e /etc/ceph/monmap
5.2创建mon
在mon节点上执行(这里我将3台节点都作为mon
scp /etc/ceph/monmap [email protected]:/etc/ceph
sudo -u ceph mkdir /var/lib/ceph/mon/ceph-node1
sudo -u ceph ceph-mon --mkfs -i node1 --monmap /etc/ceph/monmap --keyring /etc/ceph/ceph.mon.keyring
systemctl start ceph-mon@node1
5.3 更新monmap
ceph mon getmap -o /etc/ceph/monmap
5.4 查看集群状态
ceph -s
显示有3个mon 分别为node1 node2 node3
6.添加mgr
将所有mon节点都作为mgr节点
ceph auth get-or-create mgr.node1 mon 'allow *' osd 'allow *' mds 'allow *'
mkdir /var/lib/ceph/mgr/ceph-node1
ceph auth get mgr.node1 -o /var/lib/ceph/mgr/ceph-node1/keyring
chown -R ceph:ceph /var/lib/ceph/mgr
ceph-mgr -i node1
systemctl start ceph-mgr@node1
ceph -s 查看,现在有3个mgr了,一个激活,2个备用
7.添加osd
最好使用一块裸盘作为osd,每个节点使用一块硬盘作为osd,我这里使用的是/dev/xvdb
ceph-volume lvm create --data /dev/xvdb
使用ceph -s 查看,现在已经有3个osd了
使用ceph osd tree 查看,没有创建clush map,是因为我在ceph.conf配置文件中将自动创建crush map设置为了false,这样可以创建自己想要的crush map,就是这个参数osd_crush_update_on_start = false。
到这里,ceph的一个简单的搭建流程就结束了,是不是很简单呢,关于crush map配置和存储池创建,块设备,对象存储,文件存储,就下次再写吧。。