一、Ceph概述
Ceph是一种高性能、高可靠性的分布式存储系统,由Sage Weil于2004年开发,旨在解决大规模数据存储的扩展性、可靠性和性能问题。随着OpenStack日渐成为开源云计算的标准软件栈,Ceph也已经成为OpenStack的首选后端存储。
1)Ceph支持
对象存储:即radosgw,兼容S3接口。通过rest api上传、下载文件。
文件系统:posix接口。可以将Ceph集群看做一个共享文件系统挂载到本地。
块存储:即rbd。有kernel rbd和librbd两种使用方式。支持快照、克隆。相当于一块硬盘挂到本地,用法和用途和硬盘一样。比如在OpenStack项目里,Ceph的块设备存储可以对接OpenStack的后端存储
2)Ceph相比其它分布式存储有哪些优点?
统一存储:虽然Ceph底层是一个分布式文件系统,但由于在上层开发了支持对象和块的接口。所以在开源存储软件中,能够一统江湖。至于能不能千秋万代,就不知了。
高扩展性:扩容方便、容量大。能够管理上千台服务器、EB级的容量。
可靠性强:支持多份强一致性副本,EC。副本能够垮主机、机架、机房、数据中心存放。所以安全可靠。存储节点可以自管理、自动修复。无单点故障,容错性强。
高性能:因为是多个副本,因此在读写操作时候能够做到高度并行化。理论上,节点越多,整个集群的IOPS和吞吐量越高。另外一点Ceph客户端读写数据直接与存储设备(osd) 交互。
3)Ceph各组件介绍
Ceph OSDs: Ceph OSD守护进程(Ceph OSD)的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向Ceph Monitors提供一些监控信息。当Ceph存储集群设定为有2个副本时,至少需要2个OSD守护进程,集群才能达到active+clean状态(Ceph 默认有3个副本,但你可以调整副本数)。
Monitors: Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、OSD 图、归置组(PG )图、和CRUSH图。 Ceph保存着发生在Monitors、OSD和PG上的每一次状态变更的历史信息(称为epoch)。
MDSs: Ceph元数据服务器(MDS)为Ceph文件系统存储元数据(也就是说,Ceph 块设备和Ceph对象存储不使用MDS)。元数据服务器使得POSIX文件系统的用户们,可以在不对Ceph存储集群造成负担的前提下,执行诸如ls、find等基本命令。
二、Ceph集群部署
1、系统环境
由ceph1、ceph2、ceph3三台主机组成,其中ceph1、ceph2、ceph3是为Ceph存储集群节点,它们分别作为MON节点和OSD节点,各自拥有专用于存储数据的磁盘设备/dev/sdb,操作系统环境均为CentOS Linux release 7.9.2009。系统最小化安装,配置两块磁盘,一块为系统盘,另一块为裸设备(未做分区格式化)。ceph1上安装ceph-deploy用以部署ceph集群。ceph版本为mimic。
| 操作系统 | IP地址 | CPU/内存/磁盘 | 主机名 | 主机角色 | 
| CentOS 7.9.2009 | 192.168.10.170 | 2C、4G、100G、1TB | ceph1 | mon、mgr、mds、osd | 
| CentOS 7.9.2009 | 192.168.10.171 | 2C、4G、100G、1TB | ceph2 | mon、mgr、mds、osd | 
| CentOS 7.9.2009 | 192.168.10.172 | 2C、4G、100G、1TB | ceph3 | mon、mgr、mds、osd | 
| CentOS 7.9.2009 | 192.168.10.173 | 2C、4G、100G | ceph-client | Ceph客户端 | 
2、基础配置
1)关闭防火墙、禁用Selinux
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i '/swap/s/^[^#]/#&/' /etc/fstab
2)配置hosts、主机名
[root@localhost ~]# hostnamectl set-hostname ceph1
[root@localhost ~]# hostnamectl set-hostname ceph2
[root@localhost ~]# hostnamectl set-hostname ceph3
[root@localhost ~]# hostnamectl set-hostname ceph-client
[root@ceph1 ~]# cat >>/etc/hosts <<EOF
192.168.10.170 ceph1
192.168.10.171 ceph2
192.168.10.172 ceph3
EOF
3)配置SSH免密钥
[root@ceph1 ~]# ssh-keygen
[root@ceph1 ~]# ssh-copy-id root@ceph1
[root@ceph1 ~]# ssh-copy-id root@ceph2
[root@ceph1 ~]# ssh-copy-id root@ceph3
4)配置阿里云Yum源
[root@ceph1 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@ceph1 ~]# curl -o /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@ceph1 ~]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@ceph1 ~]# yum clean all
[root@ceph1 ~]# yum makecache
[root@ceph1 ~]# yum -y install chrony
[root@ceph1 ~]# sed -i "s/^server/#server/g" /etc/chrony.conf
[root@ceph1 ~]# echo 'server ntp1.aliyun.com iburst' >>/etc/chrony.conf
[root@ceph1 ~]# echo 'server ntp2.aliyun.com iburst' >>/etc/chrony.conf
[root@ceph1 ~]# echo 'server ntp3.aliyun.com iburst' >>/etc/chrony.conf
[root@ceph1 ~]# echo 'allow 192.168.10.0/24' >>/etc/chrony.conf
[root@ceph1 ~]# systemctl restart chronyd
[root@ceph1 ~]# systemctl enable chronyd
[root@ceph1 ~]# chronyc sources -v
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!
 
					 
					 
							


评论