当前位置: 首页 > news >正文

ceph存储原理

什么是ceph

Ceph 是一个开源的分布式存储系统,它的原理涉及数据存储、数据分布、数据冗余和故障恢复等多个方面,下面为你详细介绍:

数据存储模型

Ceph 采用对象存储作为基础存储模型。在 Ceph 中,所有数据都被抽象为对象(Object)。每个对象包含数据本身以及与之关联的元数据,元数据描述了对象的属性,如大小、创建时间、访问权限等。对象被存储在对象存储设备(OSD)上,OSD 是实际负责存储和管理数据的物理节点或逻辑单元。

数据分布机制

  • 集群映射(Cluster Map):Ceph 通过集群映射来记录集群的状态信息,包括所有 OSD 的状态、监视器(Monitor)的位置、数据的分布规则等。集群映射会随着集群的变化(如节点加入、离开或故障)而动态更新,并在所有参与节点间同步。
  • 一致性哈希与 CRUSH 算法:Ceph 使用基于一致性哈希改进的 CRUSH(Controlled Replication Under Scalable Hashing)算法来确定数据对象的存储位置。CRUSH 算法根据集群映射和用户指定的存储策略(如副本数量、存储位置限制等),计算出对象应该存储在哪些 OSD 上。这样做的好处是,当集群规模发生变化时,只需要对少量数据进行迁移,减少了数据的移动量,提高了系统的可扩展性和稳定性。

数据冗余与恢复

  • 数据副本策略:为了保证数据的可靠性,Ceph 支持数据副本机制。用户可以根据需求指定数据的副本数量,默认情况下通常为 3 份。CRUSH 算法会将数据副本分散存储在不同的 OSD 上,甚至不同的物理节点或机架上,以避免单点故障。
  • 自动故障检测与恢复:Ceph 的监视器(Monitor)会实时监控集群中各个 OSD 的状态。当检测到某个 OSD 出现故障时,Ceph 会自动启动数据恢复流程。它会根据集群映射和副本信息,从其他正常的 OSD 上复制数据到新的 OSD 上,以保证数据的副本数量达到用户指定的要求。同时,Ceph 会在后台对数据进行一致性检查和修复,确保数据的完整性。

元数据管理

  • 文件系统元数据(MDS):在提供文件系统接口时,Ceph 使用元数据服务器(MDS)来管理文件系统的元数据,如文件目录结构、文件权限、文件与对象的映射关系等。MDS 将元数据与实际数据分离存储,使得文件系统的操作更加高效。客户端在访问文件时,首先与 MDS 进行交互,获取文件的元数据信息,然后再根据元数据与相应的 OSD 进行数据读写操作。
  • 对象存储元数据:对于对象存储,元数据直接与对象关联并存储在 OSD 上。每个对象的元数据包含了对象的基本信息,如对象 ID、大小、创建时间等。这些元数据可以帮助 OSD 快速定位和管理对象。

客户端访问

Ceph 提供了多种客户端接口,包括对象存储接口(如 S3、Swift)、块存储接口(如 iSCSI)和文件系统接口(如 CephFS)。客户端通过这些接口与 Ceph 集群进行交互。当客户端发起读写请求时,它会先与 Ceph 的监视器或元数据服务器进行通信,获取数据的存储位置信息,然后直接与相应的 OSD 进行数据传输,避免了中间节点的性能瓶颈,提高了数据访问的效率。

ceph搭建方式和步骤

1. 环境准备

  • 硬件要求:至少需要 3 台服务器,每台服务器都要有可用的硬盘用于存储数据。同时,服务器需要具备足够的内存和 CPU 资源,以保障 Ceph 服务的正常运行。
  • 软件要求:所有服务器需安装相同版本的 Linux 操作系统,例如 Ubuntu 20.04 或者 CentOS 8。并且要确保服务器之间能够通过网络相互通信,防火墙已正确配置,允许 Ceph 服务所需的端口通过。

2. 安装必要的软件包

在每台服务器上,根据不同的操作系统,使用以下命令安装必要的软件包:

Ubuntu 系统

bash

sudo apt update
sudo apt install -y ceph-deploy
CentOS 系统

bash

sudo yum install -y ceph-deploy

3. 创建部署目录

在其中一台服务器上创建一个用于 Ceph 部署的目录,并进入该目录:

bash

mkdir ceph-cluster
cd ceph-cluster

4. 配置主机名和 SSH 免密登录

  • 配置主机名:在每台服务器上,使用hostnamectl命令设置主机名,并将主机名和对应的 IP 地址添加到/etc/hosts文件中,确保服务器之间可以通过主机名进行通信。
  • SSH 免密登录:在部署节点上生成 SSH 密钥对,并将公钥分发到其他所有服务器上,实现 SSH 免密登录。

bash

ssh-keygen
ssh-copy-id username@server_ip

这里的username是服务器的用户名,server_ip是服务器的 IP 地址。

5. 初始化 Ceph 部署

在部署目录中,使用ceph-deploy工具初始化 Ceph 部署:

bash

ceph-deploy new node1 node2 node3

这里的node1node2node3是你的服务器主机名。

6. 编辑 Ceph 配置文件

打开生成的ceph.conf文件,根据需求进行配置,例如设置集群的副本数、存储池的大小等。以下是一个简单的配置示例:

ini

[global]
fsid = <uuid>
mon_initial_members = node1, node2, node3
mon_host = <node1_ip>,<node2_ip>,<node3_ip>
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd_pool_default_size = 3

需要将<uuid>替换为一个唯一的 UUID,可以使用uuidgen命令生成;<node1_ip><node2_ip><node3_ip>替换为对应的服务器 IP 地址。

7. 安装 Ceph 软件

使用ceph-deploy工具在所有服务器上安装 Ceph 软件:

bash

ceph-deploy install node1 node2 node3

8. 部署监视器(Monitor)

在指定的服务器上部署 Ceph 监视器:

bash

ceph-deploy mon create-initial

9. 准备 OSD(对象存储设备)

在每台服务器上,选择要用于 Ceph 存储的硬盘,并对其进行分区和格式化:

bash

ceph-deploy osd prepare node1:/dev/sdb node2:/dev/sdb node3:/dev/sdb

这里的/dev/sdb是要使用的硬盘设备名,根据实际情况进行修改。

10. 激活 OSD

准备好 OSD 后,激活它们:

bash

ceph-deploy osd activate node1:/dev/sdb1 node2:/dev/sdb1 node3:/dev/sdb1

这里的/dev/sdb1是之前分区后的设备名。

11. 验证 Ceph 集群

使用以下命令验证 Ceph 集群是否正常运行:

bash

ceph -s

如果集群正常运行,你将看到集群的状态信息,包括监视器状态、OSD 状态、存储池信息等。

12. 创建存储池和用户

创建一个存储池用于存储数据,并创建一个用户用于访问存储池:

bash

ceph osd pool create mypool 128 128
ceph auth get-or-create client.myuser mon 'allow r' osd 'allow rwx pool=mypool'

这里的mypool是存储池的名称,myuser是用户的名称。

通过以上步骤,你就可以成功搭建一个 Ceph 集群。在实际使用中,你可以根据具体需求对 Ceph 集群进行进一步的配置和优化。

相关文章:

  • 【UE5】“对不起,您的客户端未能传递登录所需的参数”解决办法
  • Linux Quota 显示空间占用远大于实际数据的问题排查记录
  • 01 mysql 安装(Windows)
  • 32单片机——独立看门狗
  • 算法基础学习|03整数二分
  • 如何编制研发部门绩效考核制度
  • 删除k8s某命名空间,一直卡住了怎么办?
  • java之Integer、Double自动拆装箱比较,踩坑值int和Integer比较之空指针异常
  • 垒球世界纪录多少米·棒球1号位
  • 三格电子上新了——超高频RFID读写器
  • 2025最新福昕PDF编辑器,PDF万能处理工具
  • PostgreSQL事务与并发清理
  • Electron Forge【实战】自定义菜单 -- 顶部菜单 vs 右键快捷菜单
  • 力扣HOT100——207.课程表
  • pbchsim.c中main函数流程
  • 数据库有哪些特性是什么
  • 如何用GPU Instancing来优化树木草石重复模型
  • 【网络原理】 《TCP/IP 协议深度剖析:从网络基础到协议核心》
  • 产品VP简历模板案例
  • 基于大模型的膀胱肿瘤全周期诊疗方案研究报告
  • 凤阳县鼓楼四周连夜搭起围挡,安徽省文物局已介入调查
  • 住建部:推进“好房子、好小区、好社区、好城区”四好建设
  • 国家发改委:大部分稳就业稳经济政策将在6月底前落地
  • 前4个月全国新建商品房销售面积降幅收窄,房地产库存和新开工有所改善
  • 鸿蒙电脑正式发布,国产操作系统在个人电脑领域实现重要突破
  • 女巫的继承者们