Linux----CEPH集群部署与扩容

实验环境

  • 三台服务器配置
主机名 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中

发布了78 篇原创文章 · 获赞 5 · 访问量 2563

猜你喜欢

转载自blog.csdn.net/qq397750142/article/details/105224290