搭建背景
由于centos8不再使用ntp提供NTP服务,且pacific/el8不再支持ceph-deploy,因此再centos8下搭载pacific与以往的搭载方式有所不同。
我在mac与windows下分别使用Virtual Box与VMware分别各搭载了一套三节点的集群,除了第一部分虚拟机创建有略微不同,其余步骤完全相同。
Centos8镜像地址
yum源仓库地址
虚拟机部署
这里首先只处理一台虚拟机,ceph安装完成后可以再克隆出集群中其他的虚拟机。
-
使用vmware或者virtual box新建虚拟机,虚拟机配置两张网卡:
对于vmware,一张网卡使用桥接模式,用于访问外网,一张网卡使用仅主机模式,作为集群局域网;
对于virtualbox,一张网卡使用NAT模式访问外网,一张使用仅主机(only-host)模式(virtualbox仅主机模式需要先新建网络) -
添加两块以上硬盘,/dev/sda作为系统盘,其余盘作为数据盘,后续做osd设备使用
-
选择centos8镜像,以上硬件信息配置完成后,启动虚拟机进行部署,可以选择不含GUI的server进行部署;网络配置页面,开启两张网卡,仅主机模式的网卡手动添加静态ip
vmware配置如图所示:
yum源配置
- 配置cep.repo
[ceph]
name=ceph
baseurl=https://mirrors.aliyun.com/ceph/rpm-pacific/el8/x86_64/
gpgcheck=0
priority=1
[ceph-noarch]
name=cephnoarch
baseurl=https://mirrors.aliyun.com/ceph/rpm-pacific/el8/noarch/
gpgcheck=0
priority=1
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-pacific/el8/SRPMS
enabled=0
gpgcheck=1
priority=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
这里使用了阿里镜像仓库,每个baseurl取自对应ceph版本目录的地址,地址附在文章最上方,针对其他版本的ceph选择对应url即可:
2. 配置epel相关repo
1)安装 epel 配置包
sudo dnf install epel-release -y2)将 repo 配置中的地址替换为阿里云镜像站地址
sed -i ‘s|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|’ /etc/yum.repos.d/epel*
sed -i ‘s|^metalink|#metalink|’ /etc/yum.repos.d/epel*
3.更新centos8对应repo
具体repo名称以环境中实际的文件名为准
wget -O /etc/yum.repos.d/CentOS-Linux-BaseOS.repo https://mirrors.aliyun.com/repo/Centos-8.repo
4.更新yum
yum makecache
yum update
TIPS:执行到这里建议给虚拟机打个快照
ceph安装
在yum配置完成,更新成功后,这里只需要正常安装ceph即可:
yum install ceph -y
NTP服务与防火墙等配置
- 开启NTP服务。由于centos8的NTP服务是通过chrony提供的,因为开启NTP方式和centos7不同:
#修改chrony.conf文件
vi /etc/chrony.conf
#注释 pool 2.centos.pool.ntp.org iburst,加入新的的时间服务器:
server 210.72.145.44 iburst
server ntp.aliyun.com iburst
#重启服务
systemctl restart chronyd.service
systemctl enable chronyd.service
2. 关闭防火墙等
systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i ‘s/SELINUX=.*/SELINUX=disable/’ /etc/selinux/conf
setenforce 0
- 关闭当前虚拟机,执行克隆虚拟机操作,注意不要选择引用模式,要完整克隆
- 修改各虚拟机的主机名称以及网络配置(重启生效)
分别修改每一台虚拟机的主机名(如node1, node2, node3)
hostnamectl set-hostname node1
修改克隆出来的主机的网络配置(仅主机模式网卡的静态ip,因为是完全克隆,所以刚克隆出来每台主机ip相同)
- 修改各主机的hosts文件
将集群中所有主机名 ip信息写入每台虚拟机的hosts文件
vi /etc/hosts
node1 192.168.94.128
node2 192.168.94.129
node3 192.168.94.130
部署ceph集群
这步操作仅在一个节点执行即可。
由于pacific的el8中不再有ceph-deploy包,因此不再支持使用ceph-deploy部署集群,需要使用cephadm:
1.安装cephadm
dnf install -y cephadm
2.指定一个主机部署bootstrap,这里选用第一个节点
cephadm bootstrap --mon-ip 192.168.94.128
部署完成提示如下:
可以通过以上信息访问ceph的web页面,注意https协议,进入页面提示不安全,在浏览器任意地方键入thisisunsafe即可访问。修改原始密码后可以进入dashborad:
至此ceph集群部署完毕。
其余(OSD创建等)
#该命令会启动docker,进入CLI页面,以下操作均在cephadm shell中执行
cephadm shell
- 添加其他主机
这里可以看到我执行命令添加node2,提示错误。
需要首先生成公钥写入ceph.pub文件,然后将该公钥文件复制给其他所有主机。
复制完成后再执行ceph orch host add命令即可。
[ceph: root@ceph1 ceph]# ceph orch host add node2 --labels=mon
Error EINVAL: Failed to connect to ceph2 (ceph2).
Please make sure that the host is reachable and accepts connections using the cephadm SSH key
To add the cephadm SSH key to the host:
> ceph cephadm get-pub-key > ~/ceph.pub
> ssh-copy-id -f -i ~/ceph.pub root@ceph2
- 增加osd
前面部署虚拟机时说到,每台虚拟机挂载两块以上的盘,因为除了系统盘,其他盘要用作osd。这里我每个虚拟机多挂了一块sdb。后续关闭虚拟机后再添加硬盘也可以。
ceph orch daemon add osd node1:/dev/sdb
ceph orch daemon add osd node2:/dev/sdb
ceph orch daemon add osd node3:/dev/sdb
- 启动存储池
web页面可以创建存储池,创建完成后指定为rbd应用,就可以在这个存储池中创建rbd硬盘了。
启用存储池
ceph osd pool application enable pool2 rbd
删除存储池,首先开启删除权限
ceph daemon mon.node1 config set mon_allow_pool_delete true
ceph osd pool rm pool1 pool1 --yes-i-really-really-mean-it
进入cephadm shell后,可以通过ceph官方文档提供的命令执行相关操作:
cephadm相关操作指令
至此ceph集群搭建完成。