ceph分布式存储相关知识点以及搭建

目录

一、概述

二、特点

(一)统一存储

(二) 高扩展性

(三)可靠性强

(四)高性能

三、组件

(一)Monitor

(二)OSD

(三)MDS

(四)Object

(五)PG

(六)RADOS

(七)Libradio

(八)CRUSH

(九)RBD

(十)RGW

(十一)CephFS

四、架构图

五、搭建前环境拓扑

六、搭建前准备工作(详见http://t.csdn.cn/vH97M)

(一)四台虚拟机分别关闭防火墙

(二)四台虚拟机分别关闭图形网络管理器

(三)四台虚拟机分别静态配置IP

(四)四台虚拟机分别关闭Selinux

(五)四台虚拟机分别修改主机名

(六)四台虚拟机分别修改ssh配置文件

(七)设置主机名免密登录(在centos1主机中操作)

1、命令:vim /etc/hosts

2、命令:for i in 130 131 132;do scp /etc/hosts 192.168.115.${i}:/etc/hosts;done

 (八)配置ssh免密登录

1、配置centos1(192.168.115.128)

2、配置centos2(192.168.115.130)

3、配置centos3(192.168.115.131)

4、配置centos4(192.168.115.132)

#要测试,需要在四台虚拟机上分别测试IP地址以及主机名能否实现免密登录。

(九)设置时间同步(在centos1上开启时间同步服务器)

1、安装

2、配置

3、启动服务

4、客户端对时

(十)添加磁盘(除了虚拟机centos4不添加磁盘)

(十一)热扫描磁盘

(十二)格式化

 七、安装ceph(只在虚拟机centos1执行)

(一)解决依赖关系

   (二)添加ceph安装源

 (三)安装

八、集群构建(只在虚拟机centos1执行)

(一)创建集群目录

(二)创建集群(注意当前操作以及下面操作需在/usr/local/soft/cephcluster目录下进行操作)

(三)修改配置文件ceph.conf

(四)在指定主机(centos1、centos2和centos3)上安装Ceph软件。

(五)创建初始监视器(monitor)

(六)同步管理信息

 (七)安装mgr(管理守护进程)

(八)安装rgw

(九)创建mds服务

(十)OSD安装

(十一)查看集群状态

九、安装dashboard(只在虚拟机centos1执行)

(一)开启dashboard模块

(二)生成签名

​(三)创建目录

(四)生成自签名证书

 (五)启动服务

(六)设置访问地址与端口

(七)关闭https

(八)列出 Ceph 管理进程管理的守护进程列表。

(九)设置 Ceph Dashboard 的登录凭据

(十)访问

1、出现下面界面点击“高级”

 2、之后点击“继续访问192.168.115.128(不安全)”

 3、出现下面界面,将设置 Ceph Dashboard 的登录凭据设置的用户名和密码写入其中

 4、登录成功界面

 十、ceph文件系统创建(只在虚拟机centos1执行)

(一)创建存储池

(二)查看存储池

(三)创建文件系统

(四)查看文件系统

(五)查看mds状态

 十一、客户端

(一)在虚拟机centos1中操作

(二)在虚拟机centos4中操作


一、概述

(一)ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。

(二)Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。

(三)RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。

二、特点

(一)统一存储

虽然 ceph 底层是一个分布式文件系统,但由于在上层开发了支持对象和块的接口。所以在开源存储软件中,能够一统江湖。至于能不能千秋万代,就不知了。

(二) 高扩展性

扩容方便、容量大。能够管理上千台服务器、EB 级的容量。

(三)可靠性强

支持多份强一致性副本,EC。副本能够垮主机、机架、机房、数据中心存放。所以安全可靠。存储节点可以自动管理、自动修复。无单点故障,容错性强。

(四)高性能

因为是多个副本,因此在读写操作时候能够做到高度并行化。理论上,节点越多,整个集群的 IOPS和吞吐量越高。另外一点 ceph 客户端读写数据直接与存储设备(osd) 交互。

三、组件

(一)Monitor

一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。

(二)OSD

OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。

(三)MDS

MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。

(四)Object

Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。

(五)PG

PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。

(六)RADOS

RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。

(七)Libradio

Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。

(八)CRUSH

CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。

(九)RBD

RBD全称RADOS block device,是Ceph对外提供的块设备服务。

(十)RGW

RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。

(十一)CephFS

CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。

四、架构图

(一)文件上传,先将文件切片成N个object(如果开启了cephFS,可以使用MDS缓存)

(二)切片后的文件object会存入到Ceph中

(三)文件存储前,会经过CRUSH算法,计算当前文件存储归结于哪个PG

(四)PG是逻辑概念上对文件存储范围划分的索引

(五)根据PG索引将文件存储到指定服务器的OSD中

五、搭建前环境拓扑

虚拟机名

主机名

IP

Monitor+OSD1

centos1

192.168.115.128

OSD2

centos2

192.168.115.130

OSD3

centos3

192.168.115.131

client

centos4

192.168.115.132

六、搭建前准备工作(详见http://t.csdn.cn/vH97M

(一)四台虚拟机分别关闭防火墙

命令:systemctl stop firewalld.service

           systemctl disable firewalld.service

(二)四台虚拟机分别关闭图形网络管理器

命令:systemctl stop NetworkManager

           systemctl disable NetworkManager

(三)四台虚拟机分别静态配置IP

(四)四台虚拟机分别关闭Selinux

命令:setenforce 0

(五)四台虚拟机分别修改主机名

命令:hostnamectl set-hostname centos{1..4}

        bash           #刷新

(六)四台虚拟机分别修改ssh配置文件

命令:sed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config

#这是一条用于修改SSH配置的命令,它将在/etc/ssh/sshd_config文件中查找所有以#UseDNS yes开头的行,然后将其替换为UseDNS no,以禁用SSH连接时的DNS解析。

重启ssh服务:systemctl restart sshd

(七)设置主机名免密登录(在centos1主机中操作)

1、命令:vim /etc/hosts

192.168.115.128    centos1
192.168.115.130    centos2
192.168.115.131    centos3
192.168.115.132    centos4

2、命令:for i in 130 131 132;do scp /etc/hosts 192.168.115.${i}:/etc/hosts;done

#这是一个用于将本地主机的/etc/hosts文件复制到指定IP地址的远程主机上的命令,它使用循环语句和scp命令实现了批量复制的功能。具体来说,for i in 130 131 132表示将i依次赋值为130、131、132,然后执行循环语句;do和done之间的部分是循环体,其中scp /etc/hosts 192.168.115.${i}:/etc/hosts表示将本地主机的/etc/hosts文件复制到IP地址为192.168.115.${i}的远程主机上。

 

 (八)配置ssh免密登录

1、配置centos1(192.168.115.128)

命令:ssh-keygen                     #生成密钥

for i in 130 131 132;do ssh-copy-id root@192.168.115.$i;done         #上传密钥

2、配置centos2(192.168.115.130)

命令:ssh-keygen                     #生成密钥

for i in 128 131 132;do ssh-copy-id root@192.168.115.$i;done          #上传密钥

3、配置centos3(192.168.115.131)

命令:ssh-keygen                     #生成密钥

for i in 130 128 132;do ssh-copy-id root@192.168.115.$i;done        #上传密钥

4、配置centos4(192.168.115.132)

命令:ssh-keygen                     #生成密钥

for i in 130 131 128;do ssh-copy-id root@192.168.115.$i;done        #上传密钥

#要测试,需要在四台虚拟机上分别测试IP地址以及主机名能否实现免密登录。

(九)设置时间同步(在centos1上开启时间同步服务器)

1、安装

命令:yum   -y  install  ntp

2、配置

命令:vim /etc/ntp.conf

server 127.127.1.0                              #定义时间服务器

fudge 127.127.1.0 stratum 8                #定义时间层次

3、启动服务

命令:systemctl start ntpd                #开启服务

           systemctl enable ntpd            #设置为开机自启

4、客户端对时

命令:for i in 130 131;do ssh 192.168.115.$i  ntpdate 192.168.115.128;done

(十)添加磁盘(除了虚拟机centos4不添加磁盘)

(十一)热扫描磁盘

命令:echo "- - -" > /sys/class/scsi_host/host0/scan

for i in 130 131;do ssh 192.168.115.$i echo "- - -" > /sys/class/scsi_host/host0/scan && lsblk;done

#这是一个用于在多个远程主机上执行命令的循环语句,它将在IP地址为192.168.115.130和192.168.115.131的两台主机上执行相同的命令。具体来说,for i in 130 131表示将i依次赋值为130、131,然后执行循环语句;do和done之间的部分是循环体,其中ssh 192.168.115.$i表示连接IP地址为192.168.115.$i的远程主机,echo "- - -" > /sys/class/scsi_host/host0/scan表示向远程主机发送命令,将字符串"- - -"写入/sys/class/scsi_host/host0/scan文件中,这个命令的作用是重新扫描SCSI总线,并检测新加入的硬盘设备;最后,lsblk表示列出当前系统中所有的块设备信息。

添加成功页面

(十二)格式化

命令:mkfs.xfs /dev/sdb

#需分别在虚拟机centos1、centos2、centos3上输入此命令

格式化成功后的页面

 七、安装ceph(只在虚拟机centos1执行

(一)解决依赖关系

命令:yum  -y  install epel-release

            yum -y install lttng-ust

#epel-release是一个第三方软件源的仓库,它提供了大量常用的Linux软件包,包括一些不在默认仓库中的软件包。通常在安装一些第三方软件时需要先安装该软件包,以获取更全面的软件包支持。

#lttng-ust是一个用户空间跟踪器,它可以用于在系统和应用程序级别对Linux进行跟踪和分析,为调试和性能分析提供有用的信息。

 (二)添加ceph安装源

命令:vim /etc/yum.repos.d/ceph.repo

[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/x86_64/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

[Ceph-noarch]
name=Ceph noarch packages
# 清华源
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

对编辑到/etc/yum.repos.d/ceph.repo文件中的内容作以说明

 (三)安装

命令: yum -y install ceph ceph-deploy

八、集群构建(只在虚拟机centos1执行

(一)创建集群目录

命令:mkdir -p /usr/local/soft/cephcluster

           cd /usr/local/soft/cephcluster

(二)创建集群(注意当前操作以及下面操作需在/usr/local/soft/cephcluster目录下进行操作

ceph-deploy new centos1 centos2 centos3

#此过程消耗时间过长(可以稍微休息一下)

(三)修改配置文件ceph.conf

命令:vim  ceph.conf(将下面内容添加到该文件中)

#对外开放网段
public network = 192.168.115.0/24
# 设置pool池默认分配数量
osd pool default size = 2
# 容忍更多的时钟误差
mon clock drift allowed = 2
mon clock drift warn backoff = 30
# 允许删除pool
mon_allow_pool_delete = true
[mgr]
# 开启WEB仪表盘
mgr modules = dashboard

(四)在指定主机(centos1、centos2和centos3)上安装Ceph软件。

命令:ceph-deploy install centos1 centos2 centos3

(五)创建初始监视器(monitor)

命令:ceph-deploy mon create-initial

(六)同步管理信息

命令:ceph-deploy admin  centos1 centos2 centos3

#这是使用ceph-deploy在三个节点上创建Ceph管理密钥的命令。具体来说,ceph-deploy是Ceph官方提供的一个管理工具,admin是该工具提供的一个子命令,用于在指定的Ceph节点上创建管理员用户和密钥。在执行此命令之前,您需要已经通过ceph-deploy安装了Ceph软件,并且已经创建了一个或多个Ceph监视器,以及在这些监视器上运行了Ceph Manager守护程序。在执行此命令后,将在指定的三台节点上创建一个名为ceph的用户,该用户将被授予管理Ceph集群的权限,并且会生成一个密钥文件,可以在后续操作中使用该密钥文件来管理Ceph集群。

 (七)安装mgr(管理守护进程)

命令:ceph-deploy mgr create  centos1 centos2 centos3

(八)安装rgw

命令:ceph-deploy rgw create centos1 centos2 centos3

(九)创建mds服务

命令:ceph-deploy mds create centos1 centos2 centos3

(十)OSD安装

创建OSD

命令:ceph-deploy osd create --data /dev/sdb centos1   

           ceph-deploy osd create --data /dev/sdb centos2 

           ceph-deploy osd create --data /dev/sdb centos3

#OSD服务是对象存储守护进程, 负责把对象存储到本地文件系统, 必须要有一块独立的磁盘作为存储。如果没有独立磁盘,怎么办? 可以在Linux下面创建一个虚拟磁盘进行挂载。

(十一)查看集群状态

命令:ceph -s

#如果安装失败需要:
ceph-deploy purge centos1 centos2 centos3
ceph-deploy purgedata centos1 centos2 centos3
ceph-deploy forgetkeys

将三台节点的mon信息也删除:
rm -rf /var/run/ceph/
在centos1上操作,删除完之后从创建集群目录开始做

九、安装dashboard(只在虚拟机centos1执行

(一)开启dashboard模块

命令:ceph mgr module enable dashboard

(二)生成签名

命令:ceph dashboard create-self-signed-cert


  (三)创建目录

命令:mkdir -p /usr/local/jx/cephcluster/mgr-dashboard

(四)生成自签名证书

命令:cd /usr/local/jx/cephcluster/mgr-dashboard

openssl req -new -nodes -x509   -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650   -keyout dashboard.key -out dashboard.crt -extensions v3_ca

命令讲解

 (五)启动服务

命令:ceph mgr module disable dashboard

           ceph mgr module enable dashboard

(六)设置访问地址与端口

命令:ceph config set mgr mgr/dashboard/server_addr 192.168.115.128

           ceph config set mgr mgr/dashboard/server_port 9001

(七)关闭https

命令:ceph config set mgr mgr/dashboard/ssl false

(八)列出 Ceph 管理进程管理的守护进程列表。

命令:ceph mgr services

命令讲解

(九)设置 Ceph Dashboard 的登录凭据

命令:ceph dashboard set-login-credentials jx123 123.com

命令讲解

(十)访问

1、出现下面界面点击“高级”

#注意访问时要输入https://192.168.115.128:8443

 2、之后点击“继续访问192.168.115.128(不安全)”

 3、出现下面界面,将设置 Ceph Dashboard 的登录凭据设置的用户名和密码写入其中

 4、登录成功界面

 十、ceph文件系统创建(只在虚拟机centos1执行

(一)创建存储池

命令:cd     /usr/local/soft/cephcluster

          ceph osd pool create cephfs_data 128

         ceph osd pool create cephfs_metadata 64

#少于5个OSD可把pg_num设置为128
OSD数量在5到10,可以设置pg_num为512
OSD数量在10到50,可以设置pg_num为4096
OSD数量大于50,需要计算pg_num的值

(二)查看存储池

命令: ceph osd lspools

(三)创建文件系统

命令:ceph fs new  fs_test  cephfs_metadata cephfs_data

注意:查看此图是需要刷新浏览器

(四)查看文件系统

命令:ceph fs ls

(五)查看mds状态

命令:ceph mds stat

 十一、客户端

(一)在虚拟机centos1中操作

1、cd     /usr/local/soft/cephcluster

2、给centos安装ceph-deploy

命令:ceph-deploy install centos4

3、同步管理信息

命令:ceph-deploy admin  centos4

(二)在虚拟机centos4中操作

1、查看信息

命令:ls  /etc/ceph
#会有ceph.client.admin.keyring产生


 2、安装ceph-fuse

命令:yum   -y  install  ceph-fuse

3、创建挂载目录

命令:mkdir /ceph

4、挂载ceph文件系统

命令:ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 192.168.115.128:6789 /ceph

5、查看

命令:df  -hT

 

查看此图需再次刷新

 

 #也可以查看其它的相关内容

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值