如何找到存在Ceph里面的文件

简介:

前段时间群友有人问,怎么能找到存在Ceph里面的文件呢,我说为什么要这样问,他说要给领导演示下Ceph的高可用,某个节点down掉之后不影响数据丢失。下面针对于这个前提,做了如下实验,感兴趣的可以试试。

 

在开始之前先科普下Ceph的基本概念知识。

 

wKiom1i_0BuBNjxBAAHa0Vy1j-U106.png-wh_50

一张非常经典的寻址图,下面来继续探索Ceph的寻址流程,首先介绍下寻址流程中用到的几个概念。


File——此处的file就是用户需要存储或者访问的文件。对于一个基于Ceph开发的对象存储应用而言,这个file也就对应于应用中的对象,也就是用户直接操作的对象


Ojbect——处的objectRADOS所看到的对象Object与上面提到的file的区别是,object的最大sizeRADOS限定(通常为2MB4MB),以便实现底层存储的组织管理。因此,当上层应用向RADOS存入size很大的file时,需要将file切分成统一大小的一系列object(最后一个的大小可以不同)进行存储。为避免混淆,在本文中将尽量避免使用中文的对象这一名词,而直接使用fileobject进行说明。


PGPlacement Group)——顾名思义,PG的用途是对object的存储进行组织和位置映射。具体而言,一个PG负责组织若干个object(可以为数千个甚至更多),但一个object只能被映射到一个PG中,即,PGobject之间是一对多映射关系。同时,一个PG会被映射到nOSD上,而每个OSD上都会承载大量的PG,即,PGOSD之间是多对多映射关系。在实践当中,n至少为2,如果用于生产环境,则至少为3。一个OSD上的PG则可达到数百个。事实上,PG数量的设置牵扯到数据分布的均匀性问题。关于这一点,下文还将有所展开。


OSD —— object storage deviceOSD的数量事实上也关系到系统的数据分布均匀性,因此其数量不应太少。在实践当中,至少也应该是数十上百个的量级才有助于Ceph系统的设计发挥其应有的优势。


Failure domain ——就是故障域。 

 

好了,理论看完了,下面开始实操。

大概的顺序就是

创建File、将File写入到Object里面然后存到Pool里面,最终映射到PG和OSD上,跟上面的图类似。


下面来验证下,可以看到我创建了个devin.txt,里面有一些英文内容,接着可以看到数据最终是存在了OSD1和OSD2上面,并且在OSD1中找到了我的文件。

wKiom1i_ztHTf0oDAACaZCsIGbY372.pngwKiom1i_zwqANgIXAAC4aWa3XMY331.png


下面我down掉了一个OSD2所在的节点。可以看到我的ceph-node2上的OSD已经全部down掉了。

wKioL1i_zzrQJNQQAAD1kKGr1f4150.png


可以看到我的文件数据已经rebalance到了OSD5上

wKiom1i_zznSbTxQAAE8oXZqxtE223.png

wKiom1i_zzrwtZHxAABcai-qM5I821.png


OK.小实验验证完毕,感兴趣的可以玩玩。


本文转自Devin 51CTO博客,原文链接:http://blog.51cto.com/devingeng/1904440

相关文章
|
JavaScript 关系型数据库 应用服务中间件
Centos7安装wiki.js
Centos7安装wiki.js
1193 0
|
弹性计算 测试技术
阿里云服务器网络收发包PPS是什么意思?5万PPS/10万/20万/80万/100万PPS
阿里云服务器网络收发包PPS是衡量云服务器网络质量的一项重要指标,单位是PPS,PPS是指Packets Per Second,每秒发包数量
8547 0
阿里云服务器网络收发包PPS是什么意思?5万PPS/10万/20万/80万/100万PPS
|
Ubuntu Linux KVM
分享一些OpenStack的qcow2格式实例镜像
分享一些OpenStack的qcow2格式实例镜像
18848 1
分享一些OpenStack的qcow2格式实例镜像
|
3月前
|
人工智能 Linux API
【最全】零基础玩转OpenClaw:阿里云/本地部署步骤+Skill清单+免费API配置一站式教程
OpenClaw(原Clawdbot)并非简单的AI聊天机器人,而是一套具备任务自动化、跨平台协作能力的AI操作系统,Skill作为其核心扩展能力,能让AI真正实现“动手干活”。2026年的OpenClaw生态已拥有3000+Skill,覆盖30余个应用领域,无论是个人提升办公效率,还是团队实现轻量协作,都能通过合理配置满足需求。本文将从零基础部署入手,完整讲解阿里云、MacOS、Linux、Windows11的OpenClaw部署流程,搭配阿里云百炼API配置方法、必装Skill清单及常见问题解答,让新手也能快速上手,真正让AI落地工作场景。
674 3
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习】回归任务、线性回归评价指标讲解及温度与花朵数线性回归实战(图文解释 附源码)
【Python机器学习】回归任务、线性回归评价指标讲解及温度与花朵数线性回归实战(图文解释 附源码)
628 0
|
Web App开发 安全 中间件
谷歌、火狐、Edge等浏览器如何使用ActiveX控件
allWebPlugin 是一款为用户提供安全、可靠且便捷的浏览器插件服务的中间件产品,支持 Chrome、Firefox、Edge 和 360 等浏览器。其 V2.0.0.20 版本支持一个页面加载多个插件,并解决了插件与浏览器之间的焦点问题。用户可通过“信息化系统 + allWebPlugin + 插件 + 浏览器”的解决方案实现 ActiveX 插件的无缝集成。下载地址见文末,安装包含详细说明。
4809 120
|
SQL 自然语言处理 Oracle
史上最详细的JDBC入门教程(初学者必看)
JDBC(Java DataBase Connectivity)是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。它由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现,本文中的代码都是针对MySQL数据库实现的。
2188 0
史上最详细的JDBC入门教程(初学者必看)
|
网络协议 关系型数据库 MySQL
Linux(centos)下搭建confluence
Linux(centos)下搭建confluence
645 1

热门文章

最新文章