实验环境
- 三台服务器配置
主机名 | IP地址 | 内存 | 硬盘 | 系统 |
ceph1 | NAT:192.168.179.150 仅主机:192.168.100.11 |
2G | 系统盘:20 OSD盘:500G |
centos7.4(1708) |
ceph2 | NAT:192.168.179.152 仅主机:192.168.100.12 |
2G | 系统盘:20 OSD盘:500G |
centos7.4(1708) |
ceph3 | NAT:192.168.179.146 仅主机:192.168.100.13 |
2G | 系统盘:20 OSD盘:500G |
centos7.4(1708) |
集群部署操作
- 三个节点都操作
- 配置主机名
hostnamectl set-hostname ceph1
hostnamectl set-hostname ceph2
hostnamectl set-hostname ceph3
- 配置hosts映射文件
192.168.100.11 ceph1
192.168.100.12 ceph2
192.168.100.13 ceph3
- 关闭防火墙和核心防护
systemctl stop firewalld
setenforce 0
- 配置仅主机模式网卡(三台服务器操作相同,IP不同)
配置ssh密钥免交互(三台服务器操作相同,,相互配置免秘钥登录)
- 如ceph1服务器配置
ssh-keygen -t rsa
一直回车生成公钥和私钥
ssh-copy-id -i 192.168.100.11
输入root密码
ssh-copy-id -i 192.168.100.12
输入root密码
ssh-copy-id -i 192.168.100.13
输入root密码
搭建YUM源
- 开启yum缓存(最后制作镜像包)
vi /etc/yum.conf
keepcache=1
- 配置YUM源(三个节点都操作)
安装工具
yum install -y wget curl
- 备份本机的源
cd /etc/yum.repos.d/
mkdir yum.bak
mv C* yum.bak
- 下载centos源和epel源
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
- 编辑ceph的源
vi ceph.repo
[ceph]
name=Ceph packages for
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
更新源
yum -y update
配置时钟同步
- ceph0配置时间服务器
yum install -y ntpdate ntp
clock -w ##把当前系统时间保存到CMOS中
vi /etc/ntp.conf
#原有的内容删除,添加一下内容
driftfile /var/lib/ntp/drift
restrict default nomodify
restrict 127.0.0.1
restrict ::1
restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap fudge 127.127.1.0 stratum 10
server 127.127.1.0
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
开启ntp服务
systemctl start ntpd
- ceph2配置同步客户端
yum install -y ntpdate
ntpdate ceph1 ##同步ceph1的时间
制定周期性计划
crontab -e
*/5 * * * * /usr/bin/ntpdate 192.168.100.11 >> /var/log/ntpdate.log
重启周期性计划服务
systemctl restart crond
- ceph3配置同步客户端
yum install -y ntpdate
ntpdate ceph1 ##同步ceph1的时间
制定周期性计划
crontab -e
*/5 * * * * /usr/bin/ntpdate 192.168.100.11 >> /var/log/ntpdate.log
重启周期性计划服务
systemctl restart crond
CEPH集群搭建
- 在ceph1上安装管理工具和ceph软件包
mkdir /etc/ceph
yum install -y python-setuptools ceph-deploy ceph
- ceph2安装ceph软件包
mkdir /etc/ceph
yum install -y ceph
- ceph3安装ceph软件包
mkdir /etc/ceph
yum install -y ceph
- 在ceph1上创建mon监控(暂时监控ceph1和ceph1,ceph3留作扩容)
cd /etc/ceph/
ls
rbdmap
ceph-deploy new ceph1 ceph2
输入yes
ls
ceph-deploy mon create-initial ##初始化mon,并且收取密钥
ls
- 在ceph1上创建osd,(暂时制作ceph1和ceph2,ceph3留作osd扩容)
cd /etc/ceph/ ##必须进入这个目录,调用ceph.conf文件
ceph-deploy osd create --data /dev/sdb ceph1
ceph-deploy osd create --data /dev/sdb ceph2
- 下发密钥到ceph01、ceph02,且添加权限
在ceph1服务器上操作
cd /etc/ceph/
ceph-deploy admin ceph1 ceph2
chmod +x ceph.client.admin.keyring
在ceph2服务器上操作
chmod +x /etc/ceph/ceph.client.admin.keyring
CEPH集群的扩容操作以及数据恢复
- 登录ceph01,将ceph03上的磁盘,添加到ceph集群中作为osd
在ceph1服务器上操作
ceph-deploy osd create --data /dev/sdb ceph3
- 登录ceph1做内部通信设置,并且下发给ceph2、ceph3
vim /etc/ceph/ceph.conf
[global]
fsid = 3ed6bb6e-969b-468d-862e-14e0879d1934
mon_initial_members = ceph1, ceph2, ceph3
mon_host = 192.168.100.11,192.168.100.12,192.168.100.13
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
将文件下发
ceph-deploy --overwrite-conf admin ceph2 ceph3
登录ceph3,添加密钥权限
cd /etc/ceph
chmod +x ceph.client.admin.keyring
添加mon服务
ceph-deploy mon add ceph3
重写mon服务
ceph-deploy --overwrite-conf config push ceph1 ceph2 ceph3
重启mon服务
systemctl restart ceph-mon.target
- 查看集群状态
模拟企业生产环境中OSD数据恢复
ceph osd out osd.2 ##移除osd.2
ceph osd crush remove osd.2 ##删除osd.2
ceph auth del osd.2 ##删除osd.2的认证(权重)
ceph osd down osd.2 ##停止osd.2d的使用
查看此时集群的状态
[root@ceph1 ceph]# ceph -s
cluster:
id: bcbc14b9-919c-45ea-a0b9-fc8bb63d1abf
health: HEALTH_WARN
no active mgr
services:
mon: 3 daemons, quorum ceph1,ceph2,ceph3
mgr: no daemons active
osd: 3 osds: 3 up, 2 in
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 0 B used, 0 B / 0 B avail
pgs:
[root@ceph1 ceph]# ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 1.99799 root default
-3 0.99899 host ceph1
0 hdd 0.99899 osd.0 up 1.00000 1.00000
-5 0.99899 host ceph2
1 hdd 0.99899 osd.1 up 1.00000 1.00000
-7 0 host ceph3
2 0 osd.2 up 0 1.00000
ceph osd rm osd.2 ##彻底删除osd.2
- 恢复osd到集群中,登录到ceph3中