一、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,操作系统环境均为Rocky Linux release 8.10。系统最小化安装,配置两块磁盘,一块为系统盘,另一块为裸设备(未做分区格式化)。ceph1上安装cephadm用以部署ceph集群。ceph版本为pacific。
|
操作系统 |
IP地址 |
CPU/内存/磁盘 |
主机名 |
主机角色 |
|
Rocky Linux 8.10 |
192.168.10.185 |
4C、8G、200G、2TB |
ceph1 |
mon、mgr、mds、osd |
|
Rocky Linux 8.10 |
192.168.10.186 |
4C、8G、200G、2TB |
ceph2 |
mon、mgr、mds、osd |
|
Rocky Linux 8.10 |
192.168.10.187 |
4C、8G、200G、2TB |
ceph3 |
mon、mgr、mds、osd |
|
Rocky Linux 8.10 |
192.168.10.188 |
2C、4G、200G |
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.185 ceph1
192.168.10.186 ceph2
192.168.10.187 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 ~]# sed -i -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' /etc/yum.repos.d/Rocky-*.repo
[root@ceph1 ~]# yum -y install epel-release
[root@ceph1 ~]# yum clean all
[root@ceph1 ~]# yum makecache
5)配置时间同步
[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
6)安装Docker
[root@ceph1 ~]# curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
[root@ceph1 ~]# yum -y install docker-ce lvm2
# 启动Docker并配置开机自启动
[root@ceph1 ~]# systemctl start docker
[root@ceph1 ~]# systemctl enable docker
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!





评论