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

Ceph分布式存储核心技术精要与运维实践指南

第一章:Ceph 分布式存储系统概述

1.1 用户角色与职责

  • 存储管理员:安装、配置、维护集群;培训架构师;提供弹性和恢复;实现自动化。
  • 存储操作员:日常操作,使用Dashboard监控告警、更换故障设备。
  • 其他角色:云操作员、自动化工程师、应用开发人员、基础架构架构师、数据中心操作员等。

1.2 Ceph 核心优势

  • 开源、分布式、软件定义存储(SDS)
  • 高可用、高扩展、易用,支持海量数据
  • 可部署于 x86/ARM 通用服务器,支持异构节点
  • 去中心化:客户端通过 CRUSH 算法自行计算对象位置
  • 自动扩展、数据再平衡、自我恢复

1.3 Ceph 架构组件

  • RADOS(可靠自主分布式对象存储):核心后端
  • 访问方式:librados(原生API)、RBD(块)、RGW(对象)、CephFS(文件)
  • 后端守护进程
    • MON:维护集群状态映射,提供仲裁
    • OSD:存储数据,处理复制、恢复、再平衡
    • MGR:提供 Dashboard 和 REST API,跟踪指标
    • MDS:CephFS 元数据管理

1.4 版本与生命周期

  • 自 Nautilus (14.2.0) 起每年 3 月 1 日发布稳定版,支持周期约 2 年
  • 版本格式:x.y.z(x=发行周期,y=类型,z=修订号)
  • 企业版(Red Hat Ceph Storage)基于社区 LTS,提供 36 个月支持

第二章:Ceph 分布式存储部署

2.1 部署方式

  • Cephadm(推荐):基于容器,支持 Octopus+,通过引导创建单节点,后续扩容
  • Rook:基于 Kubernetes
  • 其他:ceph-ansible、DeepSea、手动(不推荐 ceph-deploy)

2.2 硬件与网络要求

  • OSD:≥1核CPU,4G内存,整块硬盘/SSD分区,1G/10G网卡
  • MON:≥2核,2-4G内存,60G磁盘
  • MDS:≥2核,≥2G内存
  • 关键端口:MON(3300,6789)、OSD(6800-7300)、MGR(8443)、RGW(80) 等

2.3 Cephadm 引导与集群初始化

  • 命令示例:cephadm bootstrap --mon-ip <IP> --allow-fqdn-hostname
  • 生成 Dashboard 访问地址(默认8443端口)及 admin 用户
  • 自动部署 MON、MGR、crash、Prometheus、Grafana、Alertmanager 等

2.4 节点添加与 OSD 部署

  • 获取 SSH 公钥:ceph cephadm get-pub-key
  • 添加主机:ceph orch host add <hostname>
  • 部署 OSD:ceph orch apply osd --all-available-devices
  • 禁用服务自动扩展:ceph orch apply <service> --unmanaged=true

2.5 集群组件管理

  • ceph orch ls:查看服务
  • ceph orch ps:查看守护进程
  • 删除 OSD:ceph orch osd rm <id> [--force --zap]
  • 删除主机:需先停止并删除其上所有服务,清理 OSD 及 crush 映射

第三章:Ceph 集群配置管理

3.1 配置来源与优先级

  • 默认值 → 集中配置数据库 → 本地配置文件 → 环境变量 → 命令行参数
  • MON 维护集中配置数据库,优先使用

3.2 配置文件(ceph.conf)

  • INI 格式,支持[global][mon][osd][mgr][mds][client]等段
  • 实例段:[mon.ceph1]用于特定守护进程
  • 元变量:$cluster$type$id$name$host

3.3 集中配置数据库管理

  • ceph config ls:列出所有可配置项
  • ceph config get <daemon> [key]:获取配置值
  • ceph config set <daemon> <key> <value>:持久化修改
  • ceph config rm <daemon> <key>:清除自定义值
  • ceph config reset <num>:回滚历史版本

3.4 运行时临时修改

  • ceph tell <type.id> config set <key> <value>:临时生效,重启恢复
  • ceph daemon <type.id> config set <key> <value>:本地生效,无需连接 MON

3.5 监控器(MON)配置

  • 维护集群映射(MON map、OSD map、PG map、CRUSH map、MDS map)
  • 建议至少 3 个 MON 节点,奇数个以保证仲裁
  • 查看仲裁:ceph quorum_statusceph mon stat
  • 压缩 MON 数据库:ceph tell mon.<id> compact

3.6 网络与安全

  • public_network:客户端与集群通信
  • cluster_network:OSD 间复制/恢复流量,建议独立以提高性能
  • 支持 IPv6,巨型帧(MTU=9000)
  • 防火墙:开放相应端口(MON:6789/3300,OSD:6800-7300等)
  • 认证协议:默认启用cephx,可通过auth_*_required调整

第四章:Ceph 存储池管理

4.1 数据组织结构

  • Pool(池):逻辑分区,包含多个 PG,可设置副本或纠删码
  • PG(Placement Group):对象的集合,映射到 OSD 集
  • 对象:由对象ID、二进制数据、元数据组成

4.2 客户端访问流程

  1. 从 MON 获取集群映射
  2. 计算 PG ID:hash(object_id) % pg_num
  3. CRUSH 算法确定主 OSD 及副本 OSD
  4. 客户端直接与主 OSD 通信

4.3 数据保护类型

  • 副本池:多份完整副本,读性能好,空间开销大
  • 纠删码池:k+m 模式,节省空间,需 CPU 计算,适合冷数据

4.4 创建与配置池

  • 创建副本池:ceph osd pool create <name> <pg_num> replicated
  • 创建纠删码池:ceph osd pool create <name> <pg_num> erasure [profile]
  • 管理应用类型:ceph osd pool application enable <pool> rbd|cephfs|rgw
  • 设置配额:ceph osd pool set-quota <pool> max_objects|max_bytes <value>
  • 修改副本数:ceph osd pool set <pool> size <n>
  • PG 自动扩展:pg_autoscale_mode on/off/warn

4.5 对象操作

  • 上传:rados -p <pool> put <obj> <file>
  • 下载:rados -p <pool> get <obj> <file>
  • 列表:rados -p <pool> ls
  • 删除:rados -p <pool> rm <obj>

4.6 快照与命名空间

  • 创建池快照:ceph osd pool mksnap <pool> <snap>
  • 回滚:rados -p <pool> rollback <obj> <snap>
  • 命名空间:逻辑隔离对象,rados -p <pool> -N <ns> put ...

4.7 删除池

  • 需先设置mon_allow_pool_delete = true
  • 命令:ceph osd pool rm <pool> <pool> --yes-i-really-really-mean-it

第五章:Ceph 认证与授权管理

5.1 cephx 协议

  • 基于共享密钥的认证系统
  • 客户端与 MON 之间通过会话密钥加密通信
  • 认证流程:请求会话密钥 → 获取加密会话密钥 → 解密 → 请求票据 → 与 OSD/MDS 通信

5.2 用户账户

  • 类型:守护进程账户(osd.0、mgr.ceph1)和客户端账户(client.*)
  • 超级用户:client.admin,拥有全部权限
  • 密钥环文件默认位置:/etc/ceph/ceph.client.<name>.keyring

5.3 用户管理命令

  • 列出用户:ceph auth ls
  • 获取用户详情:ceph auth get <name>
  • 创建用户:ceph auth addceph auth get-or-create
  • 删除用户:ceph auth del
  • 导出/导入:ceph auth exportceph auth import

5.4 权限(Capabilities)

  • 守护进程类型:monosdmgrmds
  • 权限值:allowr(读)、w(写)、x(执行类方法)、class-readclass-write*(全部)
  • 预定义 profile:osdbootstrap-osdrbdrbd-read-only
  • 精细化限制:pool=<pool>namespace=<ns>object_prefix <prefix>path=<path>command "<cmd>"

5.5 修改用户权限

  • ceph auth caps <name> <daemon> '<caps>'
  • 示例:ceph auth caps client.myuser mon 'allow r' osd 'allow rw pool=mypool'

5.6 客户端使用

  • 指定用户:--id <name>--name client.<name>
  • 指定密钥环:--keyring <path>
  • 可通过环境变量CEPH_ARGS设置默认用户
http://www.rkmt.cn/news/1427388.html

相关文章:

  • Windows Server 2016评估版总自动关机?别慌,用DISM命令一键转正式版(附序列号)
  • 上海包包回收十大排行榜深度解析(2026年5月) - 薛定谔的梨花猫
  • 2026年昆明代理记账与云南工商变更全生命周期企业财税服务全面测评:5大服务商选型避坑指引 - 企业名录优选推荐
  • 魔兽争霸3性能优化完全指南:用Warcraft Helper免费解锁高帧率体验
  • 创新AI翻唱工具实战指南:用AICoverGen打造专业级AI音乐作品
  • 深度拆解:KTV如何用“免费送酒“策略撬动370万投资
  • 从零上手Juniper SRX300防火墙:手把手配置DHCP、NTP和Web管理(含安全策略)
  • HBase Java API实战:从Shell到代码,手把手教你完成增删改查(附完整项目源码)
  • 别再只盯着路由模式了!天融信防火墙透明模式部署实战,零感知保护内网安全
  • 仿真科普 | 低空经济的“数字风盾”:CFD+数字孪生构建智慧风场仿真体系
  • 从规则引擎到情境感知:构建个性化内容治理系统的技术实践
  • 网易云音乐双语歌词下载终极指南:LrcHelper带你轻松获取完美歌词
  • 加密市场HODL投资哲学:构建信念体系应对波动,实现长期价值增长
  • 智慧树刷课插件终极指南:3分钟解放你的学习时间![特殊字符]
  • 神经渲染相机轨迹优化:从理论到实战的完整指南
  • SMOKE3D的3D框解码全解析:从网络输出的8个数字到KITTI格式的航向角β
  • 2026年618开门红攻略!5月30日晚8点到底怎么买最便宜?全品类优惠券消费券红包国补多重叠加最划算教程汇总 - 资讯快报
  • 滴滴D²-City数据集二次标注实战:手把手教你构建斑马线+行人+交通灯YOLO训练集
  • 别再傻傻用第三方软件了!用PowerShell的Get-CimInstance命令,5分钟生成一份完整的电脑硬件配置报告
  • 3D标签云(tagcloud.js 详解)
  • 电脑shift+delete删除的文件怎么找回,6种恢复技能和视频展示,让你的数据快速恢复!
  • AI原生攻防2026:从大模型漏洞到自主Agent战争,网络安全的范式革命与生存之道
  • 如何快速掌握Ryzen处理器调试:面向初学者的完整硬件调优指南
  • π2K神经元:边缘计算中的高效神经网络优化方案
  • PINN实战:当神经网络遇上Burgers方程,PyTorch自动微分如何‘教’AI学物理?
  • 从代码到直觉:手把手带你拆解SchNet,理解GNN如何‘看见’分子
  • 小白速通 Codex App:带录播回放
  • 突破百度网盘限速:Python多线程下载解决方案完全指南
  • 加强安全防护,图表与仪表板功能优化,DataEase开源BI工具v2.10.23 LTS版本发布
  • 免费值得推荐的投票小程序 - 微信投票小程序