Linux里面ceph是什么?

Linux里面ceph是什么?,第1张

Linux里面ceph
Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。在虚拟化领域里,比较常用到的是Ceph的块设备存储,比如在OpenStack项目里,Ceph的块设备存储可以对接OpenStack的cinder后端存储、Glance的镜像存储和虚拟机的数据存储,比较直观的是Ceph集群可以提供一个raw格式的块存储来作为虚拟机实例的硬盘。
Ceph相比其它存储的优势点在于它不单单是存储,同时还充分利用了存储节点上的计算能力,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,同时由于Ceph的良好设计,采用了CRUSH算法、HASH环等方法,使得它不存在传统的单点故障的问题,且随着规模的扩大性能并不会受到影响。

Ceph文件存储部署与使用

1安装client *** 作系统

(1)虚拟机基础设置

在VMware中创建一台虚拟机, *** 作系统为CentOS-7-x86_64-DVD-1908,硬盘大小为20G,并将虚拟机的名字设为client,如图7-10所示。

                  图7-10 虚拟机配置

(2)虚拟机网络设置

为虚拟机配置主机名:client。设置网络为NAT模式,配置IP地址:192168100100,子网掩码为2552552550,默认网关为1921681002,DNS服务器为1921681002,使虚拟机可以访问Internet。

2配置Ceph文件系统

(1)部署MDS

在ceph-1节点中,将MDS部署到ceph-1节点

[root@ceph-1 ~]# cd /opt/osd

[root@ceph-1 osd]# ceph-deploy mdscreate ceph-1

(2)创建数据和存储池

在ceph-1节点为Ceph文件系统创建数据和元数据存储池。

[root@ceph-1 osd]# ceph osd poolcreate cephfs_data 64

pool 'cephfs_data' created

[root@ceph-1 osd]# ceph osd poolcreate cephfs_metadata 64

pool 'cephfs_metadata' created

(3)创建Ceph文件系统

在ceph-1节点创建ceph的文件系统cephfs。

[root@ceph-1 osd]# ceph fs newcephfs cephfs_metadata cephfs_data

new fs with metadata pool 2 anddata pool 1

(4)验证MDS和CephFS的状态

[root@ceph-1 osd]# ceph mds stat

cephfs:1 {0=ceph-1=up:active}

[root@ceph-1 osd]# ceph osd pool ls

rbd

rgwroot

defaultrgwcontrol

defaultrgwmeta

defaultrgwlog

rgw

rgwcontrol

rgwgc

rgwbuckets

rgwbucketsindex

rgwbucketsextra

log

intent-log

usage

users

usersemail

usersswift

usersuid

defaultrgwbucketsindex

defaultrgwbucketsdata

cephfs_data

cephfs_metadata

[root@ceph-1 osd]# ceph fs ls

name: cephfs, metadata pool:cephfs_metadata, data pools: [cephfs_data ]

(5)创建用户

在Ceph集群中创建用户clientcephfs,允许这个用户可以访问CephFS池。

[root@ceph-1 osd]# ceph authget-or-create clientcephfs mon 'allow r' mds 'allow r,allow rw path=/' osd'allow rw pool=cephfs_data' -o /etc/ceph/clientcephfskeyring

[root@ceph-1 osd]# ceph-authtool -p-n clientcephfs /etc/ceph/clientcephfskeyring > /etc/ceph/clientcephfs

[root@ceph-1 osd]# cat/etc/ceph/clientcephfs

AQA18Nldot+5DBAAQc4R6zbX+V6jBRINE4lJRA==

3、访问CephFS

(1)创建挂载点

[root@client ~]# mkdir/media/cephfs

(2)文件系统挂载

使用mount命令挂载CephFS文件系统

[root@client ~]# mount -t ceph192168100101:6789:/ /media/cephfs -o name=cephfs,secret=AQA18Nldot+5DBAAQc4R6zbX+V6jBRINE4lJRA==

(3)查看挂载并解除挂载

[root@client ~]# mount | grep/media/cephfs

192168100101:6789:/ on/media/cephfs type ceph(rw,relatime,name=cephfs,secret=,acl,wsize=16777216)

[root@client ~]# umount/media/cephfs

(4)通过文件挂载

为了更安全的挂载CephFS,防止在命令行历史中泄露密码,应该把密码存储在一个单独的文本文件中,然后把这个文件作为挂载命令的参数值。为了实现这个功能,需要在client节点安装ceph。

首先编辑ceph-1节点的hosts。

[root@ceph-1 osd]# vi /etc/hosts

192168100100 client

192168100101 ceph-1

192168100102 ceph-2

192168100103 ceph-3

(5)复制公钥

在ceph-1节点,将公钥复制到client节点。

[root@ceph-1 osd]# ssh-copy-idroot@client

/usr/bin/ssh-copy-id: INFO: Sourceof key(s) to be installed: "/root/ssh/id_rsapub"

The authenticity of host 'client(192168100100)' can't be established

ECDSA key fingerprint isSHA256:XpUmb4kHGXWKkaTj44vITJDwBBApSk6Yo8ZunIEW010

ECDSA key fingerprint isMD5:85:d3:f8:41:59:c4:a4:b4:c3:e9:71:2c:3b:45:0b:29

Are you sure you want to continueconnecting (yes/no) yes

/usr/bin/ssh-copy-id: INFO:attempting to log in with the new key(s), to filter out any that are alreadyinstalled

/usr/bin/ssh-copy-id: INFO: 1key(s) remain to be installed -- if you are prompted now it is to install thenew keys

root@client's password:
Number of key(s) added: 1
Now try logging into the machine,with:   "ssh 'root@client'"

and check to make sure that onlythe key(s) you wanted were added

(6)编辑yum文件

在client节点编辑YUM软件源配置文件

[root@client ~]# mkdir /opt/bak

[root@client ~]# cd/etc/yumreposd

[root@client yumreposd]# mv /opt/bak

将CentOS7-Base-163repo通过SFTP复制到client节点的/etc/yumreposd目录。

[root@client yumreposd]# ls

CentOS7-Base-163repo

[root@client yumreposd]# vicephrepo

[Ceph]

name=Ceph packages for $basearch

baseurl=>基本概念
1、什么是 Scrub
Scrub是 Ceph 集群副本进行数据扫描的 *** 作,用于检测副本间数据的一致性,包括 scrub 和 deep-scrub。其中scrub 只对元数据信息进行扫描,相对比较快;而deep-scrub 不仅对元数据进行扫描,还会对存储的数据进行扫描,相对比较慢。

2、Scrub默认执行周期
OSD 的scrub 默认策略是每天到每周(如果集群负载大周期就是一周,如果集群负载小周期就是一天)进行一次,时间区域默认为全体(0时-24时),deep-scrub默认策略是每周一次。

配置scrub策略
为了避开客户业务高峰时段,建议在晚上0点到第二天早上5点之间,执行scrub *** 作。

1、设置标识位
在任一monitor节点进行如下 *** 作:

2、临时配置
先通过tell 方式,让scrub 时间区间配置立即生效,在任一monitor节点进行如下 *** 作:

3、修改配置文件
为了保证集群服务重启或者节点重启依然有效,需要修改Ceph集群所有节点的配置文件 /etc/ceph/cephconf

添加以下区段配置:

注意: 该时间设置需要参考物理节点的时区设置

4、取消标识位

5、向 OSD {osd-num} 下达一个scrub命令 (用通配符 把命令下达到所有 OSD 。实测ceph 122x版本不能加)

6、设置 light scrub 周期

将osd_scrub_min_interval 和 osd_scrub_max_interval都设为4分钟,这里的单位是秒

7、通过命令手动启动scrub :

8、尝试 pg repair

9、(Deep)Scrub的相关配置选项

同前端IO和Recovery一样,Ceph通过控制PGScrub来间接控制Scrub的所有IO优先级。

ScaleIO:使用d性聚合软件产品来革新数据存储,该软件产品利用本地磁盘来创建服务器存储区域网络 (SAN)。纯软件方式的基于服务器的存储区域网络 (SAN),将存储和计算资源聚合到一起,形成单层的企业级存储产品。 ScaleIO 存储d性灵活,可以提供可线性扩展的性能。 其横向扩展服务器 SAN 体系结构可以从几个服务器扩展至数千服务器。
基本适用于全平台。>

不⽤安装:AppArmor和 32-bit runtime environment
仅安装以下四项即可:

修改每台服务器的主机名,示例如下

可选配置服务器的⽹络,如IP、 bondyast lan

建议重启,确保主机名修改成功

本⽂档使⽤本地⽂件模式,不依赖额外的设备与服务,但是会在每个节点占⽤约15GB的本地磁盘空间

1sles⽬录⽤于原版SLES 12 sp3 *** 作系统的⽂件存放
2ses⽬录⽤于原版SES 50的⽂件存放

修改 /etc/hosts ⽂件,新增记录,示例如下注意:系统会⾃动添加⼀条本机的记录,注意不要重复,避免冲突

1921681102 node1fiberhomecom node1
1921681103 node2fiberhomecom node2
1921681104 node3fiberhomecom node3
1921681105 node4fiberhomecom node4

可选集群节点数检查,默认需要4台服务器,每台8个OSD

deepsea stage run cephstage0 等同于 salt-run stateorch cephstage0

必选配置服务器的⻆⾊

编辑 /srv/pillar/ceph/proposals/policycfg
推荐policycfg第⼀⾏添加如下内容:

可选修改SES集群的⽹络配置
编辑 /srv/pillar/ceph/proposals/config/stack/default/ceph/clusteryml

可选⽣成新的配置⽅案(不同的硬件配置会有不同的配置⽅案,以达到最优效果)
示例如下

查看上述命令的具体含义

参考Ceph官方安装文档

Openstack环境中,数据存储可分为临时性存储与永久性存储。

临时性存储:主要由本地文件系统提供,并主要用于nova虚拟机的本地系统与临时数据盘,以及存储glance上传的系统镜像;

永久性存储:主要由cinder提供的块存储与swift提供的对象存储构成,以cinder提供的块存储应用最为广泛,块存储通常以云盘的形式挂载到虚拟机中使用。

Openstack中需要进行数据存储的三大项目主要是nova项目(虚拟机镜像文件),glance项目(共用模版镜像)与cinder项目(块存储)。

下图为cinder,glance与nova访问ceph集群的逻辑图:

ceph与openstack集成主要用到ceph的rbd服务,ceph底层为rados存储集群,ceph通过librados库实现对底层rados的访问;

openstack各项目客户端调用librbd,再由librbd调用librados访问底层rados;
实际使用中,nova需要使用libvirtdriver驱动以通过libvirt与qemu调用librbd;cinder与glance可直接调用librbd;

写入ceph集群的数据被条带切分成多个object,object通过hash函数映射到pg(构成pg容器池pool),然后pg通过几圈crush算法近似均匀地映射到物理存储设备osd(osd是基于文件系统的物理存储设备,如xfs,ext4等)。

CEPH PG数量设置与详细介绍

在创建池之前要设置一下每个OSD的最大PG 数量

PG PGP官方计算公式计算器

参数解释:

依据参数使用公式计算新的 PG 的数目:
PG 总数= ((OSD总数100)/最大副本数)/池数
3x100/3/3=3333 ;舍入到2的N次幕为32

openstack集群作为ceph的客户端;下面需要再openstack集群上进行ceph客户端的环境配置

在openstack所有控制和计算节点安装ceph Octopus源码包,centos8有默认安装,但是版本一定要跟连接的ceph版本一致

glance-api 服务运行在3个控制节点, 因此三台控制节点都必须安装

cinder-volume 与 nova-compute 服务运行在3个计算(存储)节点; 因此三台计算节点都必须安装

将配置文件和密钥复制到openstack集群各节点

配置文件就是生成的cephconf;而密钥是 cephclientadminkeyring ,当使用ceph客户端连接至ceph集群时需要使用的密默认密钥,这里我们所有节点都要复制,命令如下

※Glance 作为openstack中镜像服务,支持多种适配器,支持将镜像存放到本地文件系统,>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12798665.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存