CEPH集群的部署以及扩容操作

目录

一.实验环境分析

二.集群部署操作

三.CEPH集群的扩容操作以及数据恢复

四.CEPH的常规维护命令


一.实验环境分析

主机名 IP地址 内存 硬盘 系统
ceph01

NAT:192.168.43.101/24

VM1:192.168.100.11/24

2G

系统盘:20G

OSD盘:500G

centos7.4(1708)
ceph02

NAT:192.168.43.102/24

VM1:192.168.100.12/24

2G

系统盘:20G

OSD盘:500G

centos7.4(1708)
ceph03

NAT:192.168.43.103/24

VM1:192.168.43.13/24

2G

系统盘:20G

OSD盘:500G

centos7.4(1708)

二.集群部署操作

基础环境配置(三个节点都操作)

  • 配置主机名
hostnamectl set-hostname ceph01
hostnamectl set-hostname ceph02
hostnamectl set-hostname ceph03
  • 配置hosts映射文件
vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.11  ceph01
192.168.100.12  ceph02
192.168.100.13  ceph03
  • 关闭防火墙和核心防护
systemctl stop firewalld
setenforce 0
  • 配置网络(以ceph02为例)
[root@ceph02 network-scripts]# cat ifcfg-ens36
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens36"
DEVICE="ens36"
ONBOOT="yes"
IPADDR="192.168.100.12"
PREFIX="24"
GATEWAY="192.168.100.1"
IPV6_PRIVACY="no"
[root@ceph02 network-scripts]# 

##VM1网卡是和物理机相匹配
##重启网卡之后确保IP地址能够正常使用
##且能够ping通 www.baidu.com
  • 配置ssh密钥免交互
ssh-keygen(执行此条命令,一直回车下去)
ssh-copy-id root@ceph01
ssh-copy-id root@ceph02
ssh-copy-id root@ceph03

##操作完成之后最好测试一下

配置YUM源(三个节点都操作)

  • 开启yum缓存(最后制作镜像包)
vi /etc/yum.conf
keepcache=1
  • 备份本机的源
cd /etc/yum.repos.d
mkdir backup
mv C* backup
  • 下载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

##注意如果是最小化安装需要yum一下安装工具,再备份之前
yum install wget curl -y
  • 编辑ceph的源
cd /etc/yum.repos.d
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 update -y

配置时钟同步

  • ceph01配置时间服务器
[root@ceph01 ~]# yum install -y ntpdate ntp

[root@ceph01 ~]# ntpdate ntp1.aliyun.com
30 Mar 20:54:47 ntpdate[56630]: adjust time server 120.25.115.20 offset 0.012804 sec
[root@ceph01 ~]# 

[root@ceph01 ~]# clock -w        ##把当前系统时间保存到CMOS中
[root@ceph01 ~]# vi /etc/ntp.conf 
[root@ceph01 ~]# cat /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
[root@ceph01 ~]# systemctl start ntpd
  • ceph02配置同步客户端
[root@ceph02 ~]# yum install -y ntpdate
[root@ceph02 ~]# ntpdate ceph01        ##同步ceph01的时间
30 Mar 21:05:41 ntpdate[88782]: adjust time server 192.168.100.11 offset 0.026245 sec
[root@ceph02 ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@ceph02 ~]# crontab -l        ##定制周期性计划表
*/5 * * * * /usr/bin/ntpdate 192.168.100.11 >> /var/log/ntpdate.log
[root@ceph02 ~]# systemctl restart crond
[root@ceph02 ~]# 
  • ceph03配置同步客户端
[root@ceph03 ~]# yum install ntpdate -y
[root@ceph03 ~]# ntpdate ceph01
30 Mar 21:08:47 ntpdate[88537]: adjust time server 192.168.100.11 offset 0.003575 sec
[root@ceph03 ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@ceph03 ~]# crontab -l
**/5 * * * * /usr/bin/ntpdate 192.168.100.11 >> /var/log/ntpdate.log
[root@ceph03 ~]# systemctl restart crond
[root@ceph03 ~]# 

CEPH集群搭建

  • 在ceph01上安装管理工具和ceph软件包
mkdir /etc/ceph
yum install -y python-setuptools ceph-deploy ceph
  • ceph02安装ceph软件包
[root@ceph02 ~]# mkdir /etc/ceph
[root@ceph02 ~]# yum install -y ceph
  • ceph03安装ceph软件包
[root@ceph03 ~]# mkdir /etc/ceph
[root@ceph03 ~]# yum install -y ceph
  • 在ceph01上创建mon监控(暂时监控ceph01和ceph02,ceph03留作扩容)

[root@ceph01 ~]# cd /etc/ceph/
[root@ceph01 ceph]# ls
rbdmap
[root@ceph01 ceph]# ceph-deploy new ceph01 ceph02
[root@ceph01 ceph]# ls
ceph.conf  ceph-deploy-ceph.log  ceph.mon.keyring  rbdmap
[root@ceph01 ceph]# ceph-deploy mon create-initial        ##初始化mon,并且收取密钥
[root@ceph01 ceph]# ls
ceph.bootstrap-mds.keyring  ceph.bootstrap-rgw.keyring  ceph-deploy-ceph.log
ceph.bootstrap-mgr.keyring  ceph.client.admin.keyring   ceph.mon.keyring
ceph.bootstrap-osd.keyring  ceph.conf                   rbdmap
[root@ceph01 ceph]# 

  • 在ceph01上创建osd,(暂时制作ceph01和ceph02,ceph03留作osd扩容)

[root@ceph01 ~]# cd /etc/ceph/        ##必须进入这个目录,调用ceph.conf文件
[root@ceph01 ceph]# ceph-deploy osd create --data /dev/sdb ceph01
[root@ceph01 ceph]# ceph-deploy osd create --data /dev/sdb ceph02

  • 下发密钥到ceph01、ceph02,且添加权限
##在ceph01上
[root@ceph01 ~]# cd /etc/ceph/
[root@ceph01 ceph]# ceph-deploy admin ceph01 ceph02
[root@ceph01 ceph]# chmod +x ceph.client.admin.keyring 


##在ceph02上
[root@ceph02 ~]# chmod +x /etc/ceph/ceph.client.admin.keyring 
[root@ceph02 ~]# 

 

三.CEPH集群的扩容操作以及数据恢复

OSD的扩容

  • 登录ceph01,将ceph03上的磁盘,添加到ceph集群中作为osd
[root@ceph01 ~]# cd /etc/ceph/
[root@ceph01 ceph]# ceph-deploy osd create --data /dev/sdb ceph03

MON的扩容(在ceph03上添加mon)

  • 登录ceph01做内部通信设置,并且下发给ceph02、ceph03
[root@ceph01 ~]# cd /etc/ceph/
[root@ceph01 ceph]# vi ceph.conf 
[root@ceph01 ceph]# echo "public network=192.168.100.0/24" >> ceph.conf 
[root@ceph01 ceph]# cat ceph.conf 
[global]
fsid = 21278c49-7b43-4f60-b460-6075d17c946a
mon_initial_members = ceph01, ceph02
mon_host = 192.168.100.11,192.168.100.12
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

public network=192.168.100.0/24
[root@ceph01 ceph]# ceph-deploy --overwrite-conf admin ceph02 ceph03    ##将文件下发
  • 登录ceph03,添加密钥权限
[root@ceph03 ceph]# ls
ceph.client.admin.keyring  ceph.conf  rbdmap  tmprfRxWN  tmpsm6tdW
[root@ceph03 ceph]# chmod +x ceph.client.admin.keyring 
  • 登录ceph01,将ceph03 mon 加入集群
[root@ceph01 ~]# cd /etc/ceph/
[root@ceph01 ceph]# ceph-deploy --overwrite-conf admin ceph02 ceph03
[root@ceph01 ceph]# 

模拟企业生产环境中OSD数据恢复

  • 登录ceph01模拟故障,删除ceph03的osd
[root@ceph01 ceph]# ceph osd out osd.2    ##移除osd.2
[root@ceph01 ceph]# ceph osd crush remove osd.2    ##删除osd.2
[root@ceph01 ceph]# ceph auth del osd.2    ##删除osd.2的认证(权重)
[root@ceph01 ceph]# ceph osd down osd.2    ##停止osd.2d的使用
marked down osd.2. 
[root@ceph01 ceph]# ceph -s
  cluster:
    id:     21278c49-7b43-4f60-b460-6075d17c946a
    health: HEALTH_WARN
            no active mgr
 
  services:
    mon: 3 daemons, quorum ceph01,ceph02,ceph03
    mgr: no daemons active
    osd: 3 osds: 2 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@ceph01 ceph]# ceph osd tree
ID CLASS WEIGHT  TYPE NAME       STATUS REWEIGHT PRI-AFF 
-1       0.97458 root default                            
-3       0.48729     host ceph01                         
 0   hdd 0.48729         osd.0       up  1.00000 1.00000 
-5       0.48729     host ceph02                         
 1   hdd 0.48729         osd.1       up  1.00000 1.00000 
-7             0     host ceph03                         
 2             0 osd.2             down        0 1.00000 
[root@ceph01 ceph]# ceph osd rm osd.2    ##彻底删除osd.2
removed osd.2
[root@ceph01 ceph]# ceph osd tree
ID CLASS WEIGHT  TYPE NAME       STATUS REWEIGHT PRI-AFF 
-1       0.97458 root default                            
-3       0.48729     host ceph01                         
 0   hdd 0.48729         osd.0       up  1.00000 1.00000 
-5       0.48729     host ceph02                         
 1   hdd 0.48729         osd.1       up  1.00000 1.00000 
-7             0     host ceph03                         
[root@ceph01 ceph]# 
  • 恢复osd到集群中,登录到ceph03中
[root@ceph03 ~]# cd /var/lib/ceph/osd/ceph-2/
[root@ceph03 ceph-2]# ls
block  ceph_fsid  fsid  keyring  ready  require_osd_release  type  whoami
[root@ceph03 ceph-2]# cat fsid         ##osd.2的uuid
b4585b33-391b-4f83-a578-e1ee2d429033
[root@ceph03 ceph-2]# ceph osd create b4585b33-391b-4f83-a578-e1ee2d429033    #创建UUID
2
[root@ceph03 ceph-2]# ceph auth add osd.2 osd 'allow *' mon 'allow rwx' -i /var/lib/ceph/osd/ceph-2/keyring     ##增加权限
added key for osd.2
[root@ceph03 ceph-2]# ceph osd crush add 2 0.48729 host=ceph03    #0.48729为权重,参照之前的osd.2的权重
set item id 2 name 'osd.2' weight 0.48729 at location {host=ceph03}: no change
[root@ceph03 ceph-2]# ceph osd in osd.2
marked in osd.2. 
[root@ceph03 ceph-2]# ceph osd tree
ID CLASS WEIGHT  TYPE NAME       STATUS REWEIGHT PRI-AFF 
-1       1.46187 root default                            
-3       0.48729     host ceph01                         
 0   hdd 0.48729         osd.0       up  1.00000 1.00000 
-5       0.48729     host ceph02                         
 1   hdd 0.48729         osd.1       up  1.00000 1.00000 
-7       0.48729     host ceph03                         
 2       0.48729         osd.2     down  1.00000 1.00000 
[root@ceph03 ceph-2]# systemctl restart ceph-osd.target    ##启动osd.2
[root@ceph03 ceph-2]# ceph osd tree
ID CLASS WEIGHT  TYPE NAME       STATUS REWEIGHT PRI-AFF 
-1       1.46187 root default                            
-3       0.48729     host ceph01                         
 0   hdd 0.48729         osd.0       up  1.00000 1.00000 
-5       0.48729     host ceph02                         
 1   hdd 0.48729         osd.1       up  1.00000 1.00000 
-7       0.48729     host ceph03                         
 2   hdd 0.48729         osd.2       up  1.00000 1.00000 
[root@ceph03 ceph-2]# 

由于ceph是分布式存储,具有容错性

四.CEPH的常规维护命令

创建mgr服务

  • 登录ceph01
[root@ceph01 ceph]# ceph -s
  cluster:
    id:     21278c49-7b43-4f60-b460-6075d17c946a
    health: HEALTH_WARN
            no active mgr
 
  services:
    mon: 3 daemons, quorum ceph01,ceph02,ceph03
    mgr: no daemons active
    osd: 3 osds: 3 up, 3 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0  objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:     
 
[root@ceph01 ceph]# ceph-deploy mgr create ceph01 ceph02 ceph03
[root@ceph01 ceph]# ceph -s
  cluster:
    id:     21278c49-7b43-4f60-b460-6075d17c946a
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum ceph01,ceph02,ceph03
    mgr: ceph01(active), standbys: ceph02, ceph03
    osd: 3 osds: 3 up, 3 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0  objects, 0 B
    usage:   3.0 GiB used, 1.5 TiB / 1.5 TiB avail
    pgs:     
 
[root@ceph01 ceph]# 

pool的基本操作

  • 创建pool
[root@ceph01 ~]# ceph osd pool ls
[root@ceph01 ~]# ceph osd pool create cinder 64
pool 'cinder' created
[root@ceph01 ~]# ceph osd pool create glance 64
pool 'glance' created
[root@ceph01 ~]# ceph osd pool ls
cinder
glance
  • 删除pool
1.设置删除权限,下发文件
[root@ceph01 ~]# cd /etc/ceph/
[root@ceph01 ceph]# cat ceph.conf 
[global]
fsid = 21278c49-7b43-4f60-b460-6075d17c946a
mon_initial_members = ceph01, ceph02
mon_host = 192.168.100.11,192.168.100.12
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
public network= 192.168.100.0/24
mon_allow_pool_delete = true
[root@ceph01 ceph]# ceph-deploy --overwrite-conf admin ceph01 ceph02 ceph03

systemctl restart ceph-mon.target         ##重启三个节点的mon服务

2.删除pool

[root@ceph01 ceph]# ceph osd pool rm glance glance --yes-i-really-really-mean-it
pool 'glance' removed
[root@ceph01 ceph]# ceph osd pool ls
cinder
[root@ceph01 ceph]# 

  • 重命名pool
[root@ceph01 ceph]# ceph osd pool ls
cinder
[root@ceph01 ceph]# ceph osd pool rename cinder CINDER
pool 'cinder' renamed to 'CINDER'
[root@ceph01 ceph]# ceph osd pool ls
CINDER
[root@ceph01 ceph]# 

注:一般的下发命令都必须在/etc/ceph这个目录下进行

发布了144 篇原创文章 · 获赞 175 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_42761527/article/details/105204496