一.CEPH简介
Ceph概述
- ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和扩展性
- ceph项目最早其源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。
Ceph的特点
高性能
- 摒弃了传统的集中式存储元数据寻址的方式,采用CRUSH算法,数据分布均衡,并行度高
- 能够支持上千个存储节点的规模,支持TB到PB的数据
高可用性
- 副本数可以灵活控制
- 支持故障域分离,数据强一致性
高扩展性
- 去中心化
- 扩展灵活
- 随着节点增加而线性增长
Ceph核心组件
- Monitor(监控):一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据
- OSD(存储):负责响应客户端请求返回具体数据的京城,一个ceph集群有很多OSD
- MDS(元数据):CephFS服务依赖的元数据服务
- Object:Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据
- PG(Placement Groups),PG是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层是为了更好的分配数据和定位数据
- RADOS(Reliable Autonomic Distributed Object Store):帮助用户实现数据的分配、Failover等群集操作
- Librados 是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持
- CRUSH:CRUSH是Ceph使用的数据分布算法,类似哈希算法,让数据分配到预期的地方
- RBD(RADOS Block Device):是Ceph对外提供的块设备服务
- RGW(RADOS gateway):是ceph对外提供的对象存储服务,接口与S3和Swift兼容
- CephFS(Ceph file system),是ceph对外提供的文件系统服务
Ceph的三种存储类型
文件存储
- 典型的设备:FTP、NFS服务器。为了克服块存储文件无法共享的问题,就有了文件存储,在服务器上架设FTP和NFS服务,就是文件存储
- 优点:造价低,方便文件共享
- 缺点:读写速率低,传输速率慢
- 使用场景:日志存储,有目录结构的文件存储
块存储
- 典型设备:磁盘阵列、硬盘,主要是将裸磁盘空间映射给主机使用
- 优点:通过raid与LVM等,对数据提供了保护;多块廉价的硬盘组合起来,提供容量;多块磁盘组合出来的逻辑盘,提高读写效率
- 缺点:采用SAN架构组网时,光纤交换机,造价成本高;主机之间无法共享数据
- 使用场景:docker容器、虚拟机磁盘存储分配、日志存储、文件存储
对象存储
- 典型设备:内置大容量硬盘的分布式服务器(swift、S3),多台服务器内置大容量硬盘,安装上对象存储管理软件,对外提供读写访问功能
- 优点:具备块存储的读写性能;具备文件存储的共享特性
- 使用场景:比较适合更新变动较少的数据,如图片存储、视频存储
实验环境
角色 | 系统 | 内存 | 硬盘 | 源码包 |
demo01(控制节点,ceph) | centos7.5 | 8G | 300G+1024G | openstack+ceph的源包 |
demo02(计算节点,ceph) | centos7.5 | 8G | 300G+1024G | openstack+ceph的源包 |
基于已经安装好的openstack(控制节点+计算节点),安装ceph之前必须将openstack所有的镜像或者实例删除
控制节点部署ceph
1.二个节点、关闭防火墙
systemctl stop iptables
systemctl disable iptables
systemctl status iptables
查看控制节点与计算节点时间是否同步
date
因为时间为同步,所有使用ntpdate命令,计算节点同步控制节点时间
2.二个节点安装Python-setuptools工具
yum -y install python-setuptools
3.在控制节点,创建ceph配置文件目录
mkdir -p /etc/ceph
4.在控制节点安装ceph-deploy
yum -y install ceph-deploy
5.在二个节点安装ceph软件
yum -y install ceph
6、创建三个mon
进入根目录
source keystone_admin
进入控制节点/etc/ceph的目录
cd /etc/ceph
ceph-deploy new demo01 deno02
7.初始化mon 并收集秘钥(三个节点)
进入控制节点/etc/ceph的目录
cd /etc/ceph
[root@ct ceph]# ceph-deploy mon create-initial
[root@ct ceph]# ll
8.创建OSD
进入控制节点/etc/ceph的目录
cd /etc/ceph
ceph-deploy osd create --data /dev/sdb demo01
ceph-deploy osd create --data /dev/sdb demo02
9.使用ceph-deploy下发配置文件和admin秘钥下发到demo01 demo02
进入控制节点/etc/ceph的目录
cd /etc/ceph
ceph-deploy admin demo01 demo02
10、给demo01 demo02 每个节点的keyring增加读的权限
[root@demo01 ceph# chmod +x /etc/ceph/ceph.client.admin.keyring
[root@demo02 ceph# chmod +x /etc/ceph/ceph.client.admin.keyring
11、查看ceph集群状态
ceph -s
12、创建mgr管理服务ll
进入控制节点/etc/ceph的目录
cd /etc/ceph
ceph-deploy mgr create demo01 demo02
ceph -s
13.创建三个与openstack对接的pool(volumes、vms、images)64是PG
ceph osd pool create volumes 64
ceph osd pool create vms 64
ceph osd pool create images 64
14、查看CEPH状态
ceph mon stat
ceph osd status
CEPH集群管理页面安装
1、查看CEPH状态 ##状态不要出现错误error
ceph -s
ceph mon stat
ceph osd status
ceph osd lspools
已经查询完毕,状态OK
2、启用dashboard模块
ceph mgr module enable dashboard
3、创建https证书
ceph dashboard create-self-signed-cert
4、查看mgr服务
ceph mgr services
5、在浏览器中打开ceph网页
https://192.168.100.10:8443