Ceph 分布式存储

【分布式技术】分布式存储ceph部署 ●DAS(直接附加存储,是直接接到计算机的主板总线上去的存储)IDE、SATA、SCSI、SAS、USB 接口的磁盘所谓接口就是一种存储设备驱动下的磁盘设备,提供块级别的存储●NAS(网络附加存储,是通过网络附加到当前主机文件系统之上的存储)NFS、CIFS(samba可以实现跨系统的文件共享)、FTP文件系统级别的存储,本身就是一个做好的文件系统,通过nfs接口在用户空间输出后,客户端基于内核模块与远程主机进行网络通信。 阅读详情

一、Ceph分布式存储
1.1、Ceph文件系统简述

诞生于2006年的Ceph,是私有云事实上的标准-OpenStack的默认存储后端。

Ceph是一种软件定义存储,可以运行在几乎所有主流的Linux发行版(比如CentOS和Ubuntu)和其它类UNIX操作系统(典型如FreeBSD)。

Ceph的分布式基因使其可以轻易管理成百上千个节点、PB级及以上存储容量的大规模集群,同时基于计算的扁平寻址设计使得Ceph客户端可以直接和服务端的任意节点通信,从而避免因为存在访问热点而导致性能瓶颈。

Ceph是一个统一存储系统,即支持传统的块、文件存储协议,例如SAN和NAS;也支持对象存储协议,例如S3和Swift。

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

Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。

1.2、Ceph的优点
高性能
a. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。
b.考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。
c. 能够支持上千个存储节点的规模,支持TB到PB级的数据。
高可用性
a. 副本数可以灵活控制。
b. 支持故障域分隔,数据强一致性。
c. 多种故障场景自动进行修复自愈。
d. 没有单点故障,自动管理。
高可扩展性
a. 去中心化。
b. 扩展灵活。
c. 随着节点增加而线性增长。
特性丰富
a. 支持三种存储接口:块存储、文件存储、对象存储。
b. 支持自定义接口,支持多种语言驱动。

二、Ceph架构和名称解释
2.1、Ceph架构


2.2、Ceph核心组件及概念介绍
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对外提供的文件系统服务。

三、Ceph的存储过程
CEPH集群在存储数据时,都是进行扁平化处理,Object作为集群最小的存储单位。


ceph在对象存储的基础上提供了更加高级的思想。当对象数量达到了百万级以上,原生的对象存储在索引对象时消耗的性能非常大。ceph因此引入了placement group (pg) 的概念。一个PG就是一组对象的集合。


3.1、Ceph IO流程及数据分布


3.2、正常IO流程图


步骤:

client 创建cluster handler。
client 读取配置文件。
client 连接上monitor,获取集群map信息。
client 读写io 根据crushmap 算法请求对应的主osd数据节点。
主osd数据节点同时写入另外两个副本节点数据。
等待主节点以及另外两个副本节点写完数据状态。
主节点及副本节点写入状态都成功后,返回给client,io写入完成。

3.3、Ceph IO算法流程


File用户需要读写的文件。File->Object映射:
a. ino (File的元数据,File的唯一id)。
b. ono(File切分产生的某个object的序号,默认以4M切分一个块大小)。
c. oid(object id: ino + ono)。

Object是RADOS需要的对象。Ceph指定一个静态hash函数计算oid的值,将oid映射成一个近似均匀分布的伪随机值,然后和mask按位相与,得到pgid。Object->PG映射:
a. hash(oid) & mask-> pgid 。
b. mask = PG总数m(m为2的整数幂)-1 。

PG(Placement Group),用途是对object的存储进行组织和位置映射, (类似于redis cluster里面的slot的概念),一个PG里面会有很多object。采用CRUSH算法,将pgid代入其中,然后得到一组OSD。PG->OSD映射:
a. CRUSH(pgid)->(osd1,osd2,osd3) 。

3.4、Ceph RBD IO流程

步骤:

客户端创建一个pool,需要为这个pool指定pg的数量。
创建pool/image rbd设备进行挂载。
用户写入的数据进行切块,每个块的大小默认为4M,并且每个块都有一个名字,名字就是object+序号。
将每个object通过pg进行副本位置的分配。
pg根据cursh算法会寻找3个osd,把这个object分别保存在这三个osd上。
osd上实际是把底层的disk进行了格式化操作,一般部署工具会将它格式化为xfs文件系统。
object的存储就变成了存储一个文rbd0.object1.file。

3.5、Ceph RBD IO框架图

客户端写数据osd过程:

采用的是librbd的形式,使用librbd创建一个块设备,向这个块设备中写入数据。
在客户端本地同过调用librados接口,然后经过pool,rbd,object、pg进行层层映射,在PG这一层中,可以知道数据保存在哪3个OSD上,这3个OSD分为主从的关系。
客户端与primay OSD建立SOCKET 通信,将要写入的数据传给primary OSD,由primary OSD再将数据发送给其他replica OSD数据节点。

四、Ceph搭建过程
4.1、环境准备
1.准备三台centos7虚拟机。
2.每台虚拟机安装两块网卡,一块仅主机模式,一块nat模式。
3.准备两块硬盘,一块系统盘,另一块作为ceph使用大小1024G。

配置IP地址

主机    VM1    NAT
ceph01    192.168.158.9    192.168.100.9
ceph02    192.168.158.11    192.168.100.11
ceph03    192.168.158.12    192.168.100.70
4.2、搭建集群前的配置
每个节点都要操作,步骤一样
1、每个节点的修改主机名,和hosts文件

vi /etc/hosts
192.168.100.9   ceph01
192.168.100.11  ceph02
192.168.100.70  ceph03
 
2、关闭UseDNS,用CRT连接可以快一点

vi /etc/ssh/sshd_config
115/UseDNS no    
 
3、关闭防火墙和核心防护

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vi /etc/selinux/config
SELINUX =disabled
 
4、三个节点创建免交互

ssh-keygen
ssh-copy-id root@ceph01
ssh-copy-id root@ceph02
ssh-copy-id root@ceph03
 
5、配置YUM源

cd /etc/yum.repos.d/
mkdir backup
mv C* backup

//安装wget命令,方便下载新的yum源。
yum install wget -y

//用wget命令下载新的yum源。
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

//配置ceph源
vi /etc/yum.repos.d/ceph.repo
[ceph]
name=Ceph packages for
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

[ceph-noarch]
name=Ceph noarch packages 
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

[ceph-source]
name=Ceph source packages 
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
 
4.3、安装ceph集群
1.首先安装好相应的工具

//ceph01节点
yum install ceph-deploy ceph python-setuptools -y

//ceph02、ceph03节点
yum install ceph python-setuptools -y

//每个节点都创建目录
mkdir /etc/ceph
 
管理节点创建mon并初始化,收集秘钥

[root@ceph01 yum.repos.d]# cd /etc/ceph
[root@ceph01 ceph]# ceph-deploy new ceph01 ceph02     '//创建mon'
[root@ceph01 ceph]# ceph-deploy mon create-initial    '//初始化,收集秘钥'
 
查看集群状态

[root@ceph01 ceph]# ceph -s
 
创建osd

[root@ceph01 ceph]# ceph-deploy osd create --data /dev/sdb ceph01
[root@ceph01 ceph]# ceph-deploy osd create --data /dev/sdb ceph02
[root@ceph01 ceph]# ceph -s    '//查看集群状态会发现有两个osd加入进来了'
[root@ceph01 ceph]# ceph osd tree    '//查看osd目录树'
ID CLASS WEIGHT  TYPE NAME       STATUS REWEIGHT PRI-AFF 
-1       1.99799 root default                            
-3       0.99899     host ceph01                         
 0   hdd 0.99899         osd.0       up  1.00000 1.00000 
-5       0.99899     host ceph02                         
 1   hdd 0.99899         osd.1       up  1.00000 1.00000 
[root@ceph01 ceph]# ceph osd stat    '//查看osd状态'
2 osds: 2 up, 2 in; epoch: e9
 
将配置文件和admin秘钥下发到节点并给秘钥增加权限

[root@ceph01 ceph]# ceph-deploy admin ceph01 ceph02
[root@ceph01 ceph]# chmod +r ceph.client.admin.keyring 
[root@ceph02 ceph]# chmod +r ceph.client.admin.keyring 
 
2.3.3:扩容操作
扩容ceph03节点的osd和mon

[root@ceph01 ceph]# ceph-deploy osd create --data /dev/sdb ceph03
[root@ceph01 ceph]# ceph -s    '//已经有三个osd了'
[root@ceph01 ceph]# vi ceph.conf 
[global]
fsid = b175fb1a-fdd6-4c57-a41f-b2d964dff248
mon_initial_members = ceph01, ceph02, ceph03    '//添加ceph03'
mon_host = mon_host = 192.168.100.9,192.168.100.11,192.168.100.70
'//添加ceph03IP地址'
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
public network = 192.168.100.0/24    '//添加内部通信网段'
[root@ceph01 ceph]# ceph-deploy mon add ceph03    '//添加mon'
 
重新下发秘钥和配置文件
[root@ceph01 ceph]# ceph-deploy --overwrite-conf config push ceph01 ceph02 ceph03
[root@ceph01 ceph]# systemctl list-unit-files |grep mon    '//查看已启动的含mon列表'
ceph-mon@.service                             enabled        
lvm2-monitor.service                          enabled        
ceph-mon.target                               enabled   
 
三台主机重启mon服务

[root@ceph01 ceph]# systemctl restart ceph-mon.target
[root@ceph01 ceph]# ceph -s
 
4.5、模拟故障osd恢复
1、首先模拟故障,将一个osd从集群中移除

移除osd,删除osd,删除osd认证
ceph osd out osd.2
ceph osd crush remove osd.2
ceph auth del osd.2   

#重启所有节点osd服务,osd.2就down掉了
systemctl restart ceph-osd.target
 

2、恢复osd到集群中

//在ceph03节点,查看ceph位置信息
df -hT
显示位置信息:
tmpfs          tmpfs     910M   52K  910M    1% /var/lib/ceph/osd/ceph-2

//查看/var/lib/ceph/osd/ceph-2的fsid
[root@ceph03 ~]# cd /var/lib/ceph/osd/ceph-2
[root@ceph03 ceph-2]# more fsid
57df2d3e-2f53-4143-9c3f-5e98d0ae619b

//重新添加osd进入集群
[root@ceph03 ceph-2]# ceph osd create 57df2d3e-2f53-4143-9c3f-5e98d0ae619b

//重新添加认证权限
[root@ceph03 ceph-2]#  ceph auth add osd.2 osd 'allow *' mon 'allow rwx' -i /var/lib/ceph/osd/ceph-2/keyring

//设置ceph03的权重,ceph osd crush add osdID号 权重 host=主机名
[root@ceph03 ceph-2]# ceph osd crush add 2 0.99899 host=ceph03

//将osd加入集群
[root@ceph03 ceph-2]# ceph osd in osd.2

//重启所有节点的osd服务
systemctl restart ceph-osd.target
 
通过ceph osd tree查看,ceph03的osd节点已经恢复了

————————————————
版权声明:本文为优快云博主「下一个艺术家」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qyf158236/article/details/113814906

分布式存储Ceph介绍及搭建 ceph分布式存储 ceph部署 守护进程 ceph-mds 阅读详情

相关推荐

ceph分布式存储解说

ceph分布式存储的入门级,安装、部署,并通过和gluster文件存储对比,体现ceph存储的高效解决方案。

Ceph分布式存储

ceph集群运用

Mrguo007的博客 1万+

DRV2605L触觉驱动芯片实战指南:从自动校准到音频转触觉应用

触觉反馈技术是现代人机交互的核心组成部分,它通过精确控制振动马达来模拟物理触感,广泛应用于智能手机、游戏手柄和汽车触摸屏等领域。其原理在于将电信号转化为机械振动,关键在于如何高效、精准地驱动不同类型的马达(如ERM和LRA)。这项技术的核心价值在于提升交互的真实感和沉浸感。在工程实践中,集成驱动芯片如DRV2605L通过内置智能反馈引擎和自动校准功能,解决了传统驱动方式响应慢、效果不一致的难题。它特别适用于需要高质量触觉反馈的应用场景,例如消费电子、游戏外设和车载信息娱乐系统。其中,自动校准能自适应优化驱动

weixin_42631411的博客 342

Ceph最全详解—分布式存储

ceph中的块设备叫做rbd,是rados block device的简写,表示ceph的块设备。④MDS:ceph-mds代表Ceph文件系统存储元数据(即,Ceph块设备和Ceph对象存储不使用MDS)。③Ceph OSD:ceph-osd存储数据,处理数据复制、恢复、重新平衡,并通过检查其他Ceph OSD守护进程的心跳来为Ceph监视器和管理器提供一些监视信息。ceph提供存储时,需要使用存储池。这些值中的大部分是默认设置的。我们需要跟踪的每个对象的元数据的数量以及我们需要运行的进程的数量。

weixin_50988812的博客 5541

锐捷交换机堆叠配置举例

一、组网需求: 1)四台S2628G进行堆叠; 2)设备在堆叠前先设置好优先级; 3)使用光口堆叠的设备如RG-S2928G-E相关配置 二、组网拓扑 三、配置要点: 普通堆叠设备不需要配置,只要把堆叠模块和线缆连接好即可 堆叠模块不支持热插拔,即插在模块连上线缆后不能立即生效,需要重启设备才生效。 如果拔掉堆叠插槽后,想再插上模块堆叠,那么必须重启设备才生效 设备堆叠需要协商参数,时间会比较久,请耐心等待 堆叠时设备建议是...

dongsheng_9234的专栏 8283

人工势场法在自动驾驶避障中的实践与优化

本文深入探讨了人工势场法在自动驾驶避障中的核心原理与实践优化。通过解析引力与斥力模型,揭示了经典算法在局部最优和目标不可达等问题上的局限性,并重点介绍了改进斥力场函数、引入道路边界斥力及动态参数调整等关键优化策略,有效提升了该局部路径规划算法在复杂动态场景下的实用性与鲁棒性。

weixin_29208327的博客 927

ceph分布式存储简介

文章目录分布式存储RADOS组件1. Monitors2. Managers3. Ceph OSDs4. MDSs数据抽象接口( 客户端中间层)CEPH FILESYSTEMCEPH BLOCK DEVICECEPH OBJECT GATEWAY管理节点( Admin Host)Ceph FeaturesFileStore and BlueStoreFILESTOREBLUESTOREBlueSt...

Not Found 404 6930

STM32CubeMx+stm32f407+FreeRTOS+LAN8720实现LWIP以太网UDP TCP数据收发功能

单片机实现LWIP的调试

qq_40600203的博客 3068

分布式存储系统——ceph

Ceph使用C++语言开发,是一个开放、自我修复和自我管理的开源分布式存储系统。具有高扩展性、高性能、高可靠性的优点。Ceph目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack,Kubernetes都可与Ceph整合以支持虚拟机镜像的后端存储。粗略估计,我国70%—80%的云平台都将Ceph作为底层的存储平台,由此可见Ceph俨然成为了开源云平台的标配。

x74188的博客 9815

Unity音游开发全指南:模板与免费资源高效构建节奏游戏

**粒子特效** | [Universal VFX](https://assetstore.unity.com/packages/vfx/particles/universal-vfx-159182) | 免费视觉特效 || **UI素材** | [Game UI Pack](https://assetstore.unity.com/packages/2d/gui/game-ui-pack-86908) | 现代风格UI元素 |**音游开发的黄金法则**:完美的节奏游戏是音乐与游戏的和谐统一。

Loving_enjoy的博客 727

Trustzone/TEE/安全 面试100问-目录

关键词:cache学习、mmu学习、cache资料、mmu资料、arm资料、armv8资料、armv9资料、 trustzone视频、tee视频、ATF视频、secureboot视频、安全启动视频、selinux视频,cache视频、mmu视频,armv8视频、armv9视频、FF-A视频、密码学视频、RME/CCA视频、学习资料下载、免费学习资料、免费 周贺贺,baron,代码改变世界ctw,Arm精选, 资深安全架构专家,十年手机安全/SOC底层安全开发经验。擅长trustzone/tee安全产品的设计

baron-周贺贺-代码改变世界ctw 649

ceph分布式存储

存储机制会把数据分散存储到多个节点上,具有高扩展性、高性能、高可用性等优点。分布式存储的类型块存储(例如硬盘,一般是一个存储被一个服务器挂载使用,适用于容器或虚拟机存储卷分配、日志存储、文件存储)就是一个裸设备,用于提供没有被组织过的存储空间,底层以分块的方式来存储数据文件存储(例如NFS,解决块存储无法共享问题,可以一个存储被多个服务器同时挂载,适用于目录结构的存储、日志存储)是一种数据的组织存放接口,一般是建立在块级别的存储结构之上,以文件形式来存储数据,而文件的元数据和实际数据是分开存储的。

Decp_的博客 1271

SAP和Oracle EBS作为全球顶级的ERP系统,在中国市场深耕数十年,尤其是在大型国企、央企和跨国企业中,已经形成了强大的用户习惯和“舒适区”依赖

国产ERP替代国际系统的关键挑战在于打破用户对SAP/Oracle的操作习惯和心理依赖。需采取多维策略:战略上明确价值主张、分阶段实施;产品上优化用户体验、确保数据迁移;实施上加强情景化培训、流程再造。成功替代70%取决于变革管理,需将"被动替换"转为"主动升级",让用户在新系统中建立更优的舒适区。

金牌架构师 383

[ceph] ceph之分布式存储

Ceph使用C++语言开发,是一个开放、自我修复和自我管理的开源分布式存储系统。具有高扩展性、高性能、高可靠性的优点。Ceph目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack,Kubernetes都可与Ceph整合以支持虚拟机镜像的后端存储。粗略估计,我国70%—80%的云平台都将Ceph作为底层的存储平台,由此可见Ceph俨然成为了开源云平台的标配。

热心网友 1461

2023推免(夏令营+套实验室)面试总结(博文附问题汇总和参考答案)

2023推免(夏令营+套实验室)面试总结(博文附问题汇总和参考答案)

m0_51339444的博客 1805

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

分布式存储ceph部署

RADOS 基础存储系统。

zx52306的博客 2821

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Ceph分布式存储架构搭建

一、 ceph概述 随着OpenStack日渐成为开源云计算的标准软件栈,Ceph也已经成为OpenStack的首选后端存储。Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。 ceph官方文档 http://docs.ceph.org.cn/ ceph中文开源社区 http://ceph.org.cn/ Ceph是一个开源的分布式文件系统。因为它还支持块存储、对象存储,...

菜鸟、上路 2万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Ceph分布式存储部署

存储机制会把数据分散存储到多个节点上,具有高扩展性、高性能、高可用性等优点。Ceph目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack,Kubernetes都可与Ceph整合以支持虚拟机镜像的后端存储。粗略估计,我国70%—80%的云平台都将Ceph作为底层的存储平台,由此可见Ceph俨然成为了开源云平台的标配。目前国内使用Ceph搭建分布式存储系统较为成功的企业有华为、阿里、中兴、华三、浪潮、中国移动、网易、乐视、360、星辰天合存储、杉岩数据等。

2301_76352247的博客 2515

Ceph分布式存储集群搭建

Ceph分布式存储集群搭建

sky学linux的博客 1948

Ceph--分布式存储

Ceph--分布式存储

weixin_68840588的博客 1872
上一篇: 堡垒机安装搭建实例
下一篇: linux命令查看开放哪些端口
福海鑫森
博客等级 码龄19年 242粉丝 312原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值