部署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集群并验证增删改查等功能。
基础环境配置
(三个节点都操作,以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
[aaa@qq.com network-scripts]# vim ifcfg-ens36
[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
登出
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服务配置文件'
[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 '初始化,收集秘钥'
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加入了’
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
2、扩容ceph03的节点mon,在ceph01修改配置文件,并下发给ceph02和ceph03
[aaa@qq.com ceph]# vi ceph.conf
[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常用命令操作
(ceph01操作
)
1、创建mgr服务
[aaa@qq.com ceph]# ceph-deploy mgr create ceph01 ceph02 ceph03
[aaa@qq.com ceph]# ceph -s
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
'配置文件,添加允许删除'
[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
上一篇: android实现弹出提示框
下一篇: 淘宝怎么复制会员名称?