欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

部署CEPH集群

程序员文章站 2022-05-07 17:19:09
...

部署CEPH集群

部署CEPH集群

一、概述

​ CEPH是一个开源的项目,它是软件定义的、统一的存储解决方案。CEPH是一个可大规模扩展、高性能并且无单点故障的分布式存储系统。从一开始它就运行在通用的商用的硬件上,具有高度的可伸缩性,容量可扩展至EB界别,甚至更大。

​ CEPH因为开放、可扩展、分布式的本质在存储领域名声鹊起。如今公有云、私有云、乃至混合云是提供大规模基础设施的主流方案。CEPH为企业提供了基础的性能,无限的扩展性,和灵活的存储产品 。

(1)CEPH的特性:
  • 所有的组件必须可以扩展

  • 不能存在单点故障点

  • 解决方案必须是软件定义的、开源的并且可以适配

  • CEPH软件应该运行在通用商用的硬件之上

  • 所有的组件必须可能自我管理

(2)CEPH基础架构:

Ceph Node : 构成Ceph集群的基础组件

Ceph Client : 对外提供多种方式使用Ceph存储的组件

(3)CEPH集群基础组件:

​ 包含OSD、Manager、MSD、Monitor

  • OSD(ceph-osd):object storage daemon,对象存储进程。ceph 管理物理硬盘时,引入了OSD概念,每一块盘都会针对的运行一个OSD进程,也就是ceph 集群通过管理 OSD 来管理物理硬盘。OSD 一般功能为:存储数据、维护数据副本、数据恢复、数据再平衡以及对ceph monitor组件提供相关监控信息。
  • Manager(ceph-mgr):用于收集ceph集群状态、运行指标,比如存储利用率、当前性能指标和系统负载。对外提供 ceph dashboard(ceph ui)和 resetful api。Manager组件开启高可用时,至少2个。
  • MDS(ceph-mds):Metadata server,元数据服务。为ceph 文件系统提供元数据服务(ceph 对象存储和块存储不需要MDS)。为 posix 文件系统用户提供性能良好的基础命令(ls,find等) 。
  • Monitor(ceph-mon):维护集群的状态,包含monitor组件信息,manger 组件信息,osd组件信息,mds组件信息,crush 算法信息。还负责ceph集群的身份验证功能,client在连接ceph集群时通过此组件进行验证。Monitor组件开启高可用时,至少3个 。
(4)pool的概念

​ 由于ceph集群面对许多的独立项目,因此ceph引入了ceph pool的概念用于划分不同的项目。 ceph pool 是对 ceph 对象的逻辑划分,并不是物理划分 。 ceph pool对于用户来说,就像mysql中的database 。pool是ceph存储数据时的逻辑分区,它起到namespace的作用。其他分布式存储系统,比如Mogilefs、Couchbase、Swift都有pool的概念,只是叫法不同。每个pool包含一定数量的PG,PG里的对象被映射到不同的OSD上,因此pool是分布到整个集群的 。

二:实验环境

部署CEPH集群

部署CEPH集群

三、实验步骤

三台服务器做CEPH集群并验证增删改查等功能。

基础环境配置

三个节点都操作,以ceph01为例

1、修改主机名,关闭防火墙和核心保护功能
[aaa@qq.com ~]# hostnamectl set-hostname ceph01
[aaa@qq.com ~]# systemctl stop firewalld.service 
[aaa@qq.com ~]# systemctl disable firewalld.service 
[aaa@qq.com ~]# setenforce 0
[aaa@qq.com ~]# vim /etc/selinux/config
 7行  SELINUX=disabled
2、配置hosts映射文件
[aaa@qq.com ~]# vim /etc/hosts
192.168.100.11 ceph01
192.168.100.12 ceph02
192.168.100.13 ceph03
3、配置网络
[aaa@qq.com ~]# cd /etc/sysconfig/network-scripts/
[aaa@qq.com network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36
[aaa@qq.com network-scripts]# vim ifcfg-ens33

部署CEPH集群

[aaa@qq.com network-scripts]# vim ifcfg-ens36

部署CEPH集群

[aaa@qq.com network-scripts]# systemctl restart network
[aaa@qq.com network-scripts]# ip addr    ‘查看是否生效’
4、免交互配置
[aaa@qq.com network-scripts]# ssh-******      ‘一直按回车’
[aaa@qq.com network-scripts]# ssh-copy-id aaa@qq.com
[aaa@qq.com network-scripts]# ssh-copy-id aaa@qq.com
[aaa@qq.com network-scripts]# ssh-copy-id aaa@qq.com
[aaa@qq.com ~]# exit
登出

部署CEPH集群

5、配置yum源
[aaa@qq.com ~]# cd /etc/yum.repos.d/
[aaa@qq.com ~]# yum -y install wget curl net-tools bash-completion vim
[aaa@qq.com yum.repos.d]# mkdir bak
[aaa@qq.com yum.repos.d]# mv * bak
mv: 无法将目录"bak" 移动至自身的子目录"bak/bak" 下
[aaa@qq.com yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo	  '下载基础源'
[aaa@qq.com yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo	  '下载epel源'

[aaa@qq.com yum.repos.d]# vim local.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

[aaa@qq.com yum.repos.d]# yum update -y	'更新一下源'

配置NTP时间同步

CEPH01配置

[aaa@qq.com yum.repos.d]# yum -y install ntpdate ntp	 '三台服务器都装'
[aaa@qq.com yum.repos.d]# ntpdate ntp1.aliyun.com	 'ceph01向阿里云同步时间'
30 Mar 21:52:57 ntpdate[66372]: adjust time server 120.25.115.20 offset -0.007958 sec
[aaa@qq.com yum.repos.d]# clock -w	   '将当前系统时间写入到CMOS中'
[aaa@qq.com yum.repos.d]# vi /etc/ntp.conf 	'修改ntp服务配置文件'

部署CEPH集群

[aaa@qq.com yum.repos.d]# systemctl restart ntpd
[aaa@qq.com yum.repos.d]# systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.

CEPH02、CEPH03配置同步客户端

[aaa@qq.com yum.repos.d]# ntpdate ceph01 	'同步ceph01的时间'
30 Mar 22:01:11 ntpdate[74462]: adjust time server 192.168.11.128 offset -0.007308 sec
[aaa@qq.com yum.repos.d]# crontab -e	 '设置计划任务'
*/2 * * * * /usr/bin/ntpdate ceph01 >> /var/log/ntpdate.log
[aaa@qq.com yum.repos.d]# systemctl restart crond	 '重启计划任务'
[aaa@qq.com yum.repos.d]# crontab -l	 '查看计划任务'
*/2 * * * * /usr/bin/ntpdate ceph01 >> /var/log/ntpdate.log

CEPH集群搭建

1、ceph01安装管理工具
[aaa@qq.com yum.repos.d]# yum -y install python-setuptools ceph-deploy 
2、ceph01、ceph02和ceph03安装ceph软件
[aaa@qq.com yum.repos.d]# mkdir /etc/ceph
[aaa@qq.com yum.repos.d]# yum -y install ceph
3、在ceph01上创建mon监控并初始化
[aaa@qq.com yum.repos.d]# cd /etc/ceph    ‘进入这个目录,调用ceph.conf文件’
[aaa@qq.com ceph]# ceph-deploy new ceph01 ceph02 	 '创建mon监控'
[aaa@qq.com ceph]# ceph-deploy mon create-initial	 '初始化,收集秘钥'

部署CEPH集群

4、在ceph01上创建osd
[aaa@qq.com ceph]# ceph-deploy osd create --data /dev/sdb ceph01
[aaa@qq.com ceph]# ceph-deploy osd create --data /dev/sdb ceph02     ‘查看集群状态发现两个osd加入了’

部署CEPH集群

5、将配置文件和**下发到ceph01和ceph02,并增加权限
在ceph01上:
[aaa@qq.com ceph]# ceph-deploy admin ceph01 ceph02
[aaa@qq.com ceph]# chmod +x ceph.client.admin.keyring

在cpeh02上增加权限:
[aaa@qq.com ~]# chmod +x /etc/ceph/ceph.client.admin.keyring

CEPH集群扩容

1、扩容ceph03节点的osd,在ceph01上,将ceph03磁盘加入集群中
[aaa@qq.com ceph]# ceph-deploy osd create --data /dev/sdb ceph03
[aaa@qq.com ceph]# ceph -s

部署CEPH集群

部署CEPH集群

2、扩容ceph03的节点mon,在ceph01修改配置文件,并下发给ceph02和ceph03
[aaa@qq.com ceph]# vi ceph.conf 

部署CEPH集群

[aaa@qq.com ceph]# ceph-deploy --overwrite-conf admin ceph02 ceph03    ‘下发给ceph02、ceph03’
4、在ceph03上,添加**权限
[aaa@qq.com ~]# cd /etc/ceph/
[aaa@qq.com ceph]# chmod +x ceph.client.admin.keyring 
5、登录ceph01,把ceph03的mon加入集群
[aaa@qq.com ceph]# ceph-deploy mon add ceph03	 
[aaa@qq.com ceph]# ceph -s

部署CEPH集群

CEPH常用命令操作

ceph01操作

1、创建mgr服务
[aaa@qq.com ceph]# ceph-deploy mgr create ceph01 ceph02 ceph03
[aaa@qq.com ceph]# ceph -s

部署CEPH集群

2、创建pool
[aaa@qq.com ceph]# ceph osd pool ls
[aaa@qq.com ceph]# ceph osd pool create cinder 64
pool 'cinder' created
[aaa@qq.com ceph]# ceph osd pool create glance 64
pool 'glance' created
[aaa@qq.com ceph]# ceph osd pool ls
cinder
glance
3、删除pool
[aaa@qq.com ceph]# vim /etc/ceph.conf
'配置文件,添加允许删除'

部署CEPH集群

[aaa@qq.com ceph]# ceph-deploy --overwrite-conf admin ceph01 ceph02 ceph03    
[aaa@qq.com ceph]# systemctl restart ceph-mon.target       ‘重启三个节点的mon服务’
[aaa@qq.com ceph]# ceph osd pool rm glance glance --yes-i-really-really-mean-it     
pool 'glance' removed                 ‘删除成功’

4、重命名pool
[aaa@qq.com ceph]# ceph osd pool ls
cinder
[aaa@qq.com ceph]# ceph osd pool rename cinder cin
pool 'cinder' renamed to 'cin'
[aaa@qq.com ceph]# ceph osd pool ls
cin
相关标签: 部署CEPH集群