openstack+ceph大型试验!全程可跟做!
文章目录
前言
一:CEPH理论基础
1.1:概述
- Ceph是一个分布式集群系统,是一个可靠、自动重均衡、自动恢复的分布式存储系统,Ceph的主要优点是分布式存储,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,不存在传统的单点故障的问题,可以水平扩展。
- Ceph可以提供对象存储(RADOSGW)、块设备存储(RBD)和文件系统服务(CephFS),其对象存储可以对接网盘(owncloud)应用业务等;其块设备存储可以对接(IaaS),当前主流的IaaS运平台软件,如:OpenStack、CloudStack、Zstack、Eucalyptus等以及kvm等。
- 至少需要一个monitor和2个OSD守护进程,运行Ceph文件系统客户端还需要MS(Metadata server)
1.2:相关概念
-
什么是OSD
- OSD是存储数据、处理数据的复制、回复、回填在均衡、并且通过检查其他的OSD的
守护进程的心跳,向monitor提供给一些监控信息
- OSD是存储数据、处理数据的复制、回复、回填在均衡、并且通过检查其他的OSD的
-
什么是Monitor
监视整个集群的状态信息、当Ceph的集群为2个副本,至少需要2个OSD ,才能达到健康的状态,同时还守护各种图表(OSD图、PG组、Crush图等等)
-
ceph-mgr
- Ceph Manager Daemon,简称ceph-mgr。 该组件的主要作用是分担和扩展monitor的部分功能,
减轻monitor的负担,让更好地管理ceph存储系统ceph
- Ceph Manager Daemon,简称ceph-mgr。 该组件的主要作用是分担和扩展monitor的部分功能,
1.3:完全无中心架构
- 完全无中心架构一-计算模式(ceph)
- 如图是ceph存储系统的架构,在该架构中与HDFS不同的地方在于该架构中没有中心节点。客户端是通过一个设备映射关系计算出来其写入数据的位置,这样客户端可以直接与存储节点通信,从而避免中心节点的性能瓶颈。
- 在ceph存储系统架构中核心组件有Mon服务、OSD服务和MDS服务等。对于块存储类型只需要Mon服务、OSD服务和客户端的软件即可。其中Mon服务用于维护存储系统的硬件逻辑关系,主要是服务器和硬盘等在线信息。Mon服务通过集群的方式保证其服务的可用性。OSD服务用于实现对磁盘的管理,实现真正的数据读写,通常一个磁盘对应一个OSD服务。
- 客户端访问存储的大致流程是,客户端在启动后会首先从Mon服务拉取存储资源布局信息,然后根据该布局信息和写入数据的名称等信息计算出期望数据的位置(包含具体的物理服务器信息和磁盘信息),然后该位置信息直接通信,读取或者写入数据。
二:部署CEPH集群
- 本次实验使用之前的openstack多节点的环境,具体参考博客https://blog.csdn.net/CN_TangZheng/article/details/104543185
- 采用的是本地源方式,因为实验环境有限采用777的内存分配,推荐32G内存使用888的内存分配
2.1:部署CEPH环境
- 部署CEPH之前,必须把和存储有关系数据清理干净
- 1、如果OpenStack安装了实例,必须删除----在控制台dashboard删除
- 2、如果OPenStack上产的镜像,必须删除----在控制台dashboard删除
- 3、如果OpenStack的cinder块,必须删除----在控制台dashboard删除
三个节点iptables 防火墙关闭
'//三个节点操作相同,仅展示控制节点的操作'
[root@ct ~]# systemctl stop iptables
[root@ct ~]# systemctl disable iptables
Removed symlink /etc/systemd/system/basic.target.wants/iptables.service.
- 检查节点的免交互、主机名、hosts、关闭防火墙等
- 三个节点本地源配置(仅展示控制节点的操作)
[root@ct opt]# tar zxvf openstack_rocky.tar.gz '//解压上传的包'
[root@ct opt]# ls
openstack_rocky openstack_rocky.tar.gz
[root@ct opt]# cd /etc/yum.repos.d
[root@ct yum.repos.d]# vi local.repo
[openstack]
name=openstack
baseurl=file:///opt/openstack_rocky '//刚解压的文件夹名称和之前的名称一样,所以不需要修改'
gpgcheck=0
enabled=1
[mnt]
name=mnt
baseurl=file:///mnt
gpgcheck=0
enabled=1
[root@ct yum.repos.d]# yum clean all '//清除缓存'
已加载插件:fastestmirror
正在清理软件源: mnt openstack
Cleaning up list of fastest mirrors
[root@ct yum.repos.d]# yum makecache '//创建缓存'
2.2:CEPH集群搭建
-
三个节点安装Python-setuptools工具和ceph软件
[root@ct yum.repos.d]# yum -y install python-setuptools [root@ct yum.repos.d]# yum -y install ceph
-
在控制节点,创建ceph配置文件目录并安装ceph-deploy
[root@ct yum.repos.d]# mkdir -p /etc/ceph
[root@ct yum.repos.d]# yum -y install ceph-deploy
- 控制节点创建三个mon
[root@ct yum.repos.d]# cd /etc/ceph
[root@ct ceph]# ceph-deploy new ct c1 c2
[root@ct ceph]# more /etc/ceph/ceph.conf
[global]
fsid = 8c9d2d27-492b-48a4-beb6-7de453cf45d6
mon_initial_members = ct, c1, c2
mon_host = 192.1