环境
ceph版本:(luminous或jewel)
OS: centos 7.5(虚拟机)
准备工作
- 修改主机名和ip地址为一下内容
ceph101: 192.168.56.101
ceph102: 192.168.56.102
ceph103: 192.168.56.103
- 做域名解析
cat /etc/hosts
192.168.56.101 ceph101
192.168.56.102 ceph102
192.168.56.103 ceph103
- 关闭selinux并开放默认通信端口
因为Ceph Monitors之间默认使用 **6789** 端口通信, OSD之间默认用 **6800:7300**这个范围内的端口通信,因此我们需要开放端口或者禁用防火墙。
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
禁用selinux
sudo vim /etc/selinux/config
SELINUX=disabled
sudo setenforce 0
- NTP同步时间
sudo yum install ntp -y
sudo start ntpd.service
sudo enable ntpd.service
- 安装ceph-deploy
sudo yum install ceph-deploy -y
开始搭建集群
- 指定安装版本并配置使用国内源
Luminous版的源:
export CEPH_DEPLOY_REPO_URL=http://mirrors.163.com/ceph/rpm-luminous/el7
export CEPH_DEPLOY_GPG_URL=http://mirrors.163.com/ceph/keys/release.asc
Jewel版的源:
yum clean all
rm -rf /etc/yum.repos.d/*.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sed -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo
sed -i '/aliyuncs/d' /etc/yum.repos.d/epel.repo
sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
vim /etc/yum.repos.d/ceph.repo
添加以下内容:
[ceph]
name=ceph
baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/noarch/
gpgcheck=0
- 创建集群和monitor(至少一个)
mkdir ceph-cluster && cd ceph-cluster
ceph-deploy new ceph101 ceph102 ceph103
- 安装ceph软件包
ceph-deploy install --release luminous ceph101 ceph102 ceph103
- 部署初始化mon 和 准备keys
ceph-deploy mon create-initial
- 配置admin key 到每个节点
ceph-deploy admin ceph101 ceph102 ceph103
- 增加osd并激活
ceph-deploy --overwrite-conf osd prepare ceph101:/dev/sdc ceph102:/dev/sdc ceph103:/dev/sdc
ceph-deploy --overwrite-conf osd activate ceph101:/dev/sdc1 ceph102:/dev/sdc1 ceph103:/dev/sdc1
- 检查集群状态
ceph health
HEALTH_OK
ceph -s
cluster 6e9752bb-0ee5-8338-c0ec-6b388a8d477f
health HEALTH_OK
monmap e1: 2 mons at {docker-rancher-client1=10.142.246.3:6789/0,docker-rancher-server=10.142.246.2:6789/0}
election epoch 8, quorum 0,1 docker-rancher-server,docker-rancher-client1
osdmap e18: 4 osds: 4 up, 4 in
flags sortbitwise
pgmap v182: 64 pgs, 1 pools, 0 bytes data, 0 objects
281 GB used, 3455 GB / 3936 GB avail
64 active+clean
至此,集群部署完毕。
环境清理
如果中途部署失败了,不必删除ceph客户端,只需要在每个节点上执行如下指令即可将环境清理至刚安装完ceph客户端时的状态!
ps aux|grep ceph |awk '{print $2}'|xargs kill -9
ps -ef|grep ceph
#确保此时所有ceph进程都已经关闭!!!如果没有关闭,多执行几次。
umount /var/lib/ceph/osd/*
rm -rf /var/lib/ceph/osd/*
rm -rf /var/lib/ceph/mon/*
rm -rf /var/lib/ceph/mds/*
rm -rf /var/lib/ceph/bootstrap-mds/*
rm -rf /var/lib/ceph/bootstrap-osd/*
rm -rf /var/lib/ceph/bootstrap-rgw/*
rm -rf /var/lib/ceph/tmp/*
rm -rf /etc/ceph/*
rm -rf /var/run/ceph/*
常用命令
查看集群状态
ceph health 集群健康状况
ceph status / ceph -s 集群状态
ceph df 集群空间利用情况
ceph -w 监控集群运行情况
mon&osd启动方式
#monitor start/stop/restart
#ceph-1为各个monitor所在节点的主机名。
systemctl start ceph-mon@ceph-1.service
systemctl restart ceph-mon@ceph-1.service
systemctl stop ceph-mon@ceph-1.service
#OSD start/stop/restart
#0为该节点的OSD的id,可以通过`ceph osd tree`查看
systemctl start/stop/restart ceph-osd@0.service
查看MON状态
ceph mon stat MON概况
ceph mon_status MON详细情况
ceph mon dump 监视器运行图
ceph quorum_status 法定数量监视器状态
查看OSD状态
ceph osd tree OSD目录树
ceph osd stat OSD运行图概况
ceph osd dump OSD运行图详情
ceph osd perf OSD性能概况
ceph osd df OSD空间利用情况
查看存储池状态
rados df 集群及存储池空间利用情况
ceph osd lspools 存储池列表
部署MON节点
ceph-authtool --create-keyring
ceph-authtool --import-keyring
monmaptool --create
ceph-mon --mkfs
删除MON节点
ceph mon remove
部署OSD节点——两种方式,实现一种即可
1
ceph-disk prepare
ceph-disk activate
---------------------------
2
ceph osd create
ceph-osd
ceph auth add
ceph osd crush add
删除OSD节点
ceph osd out
ceph osd crush remove
ceph auth del
ceph osd rm
其他
ceph osd crush reweight 调整OSD权重
添加存储池
ceph osd pool create
删除存储池
ceph osd pool delete
其他
ceph osd pool rename 存储池改名
ceph osd pool mksnap 创建快照
ceph osd pool rmsnap 删除快照
ceph osd pool set / get 设置/查看参数