中文网站建设制作东莞网站建设与网络推广

张小明 2025/12/27 22:18:03
中文网站建设制作,东莞网站建设与网络推广,网页设计代码中字体的颜色如何改,长沙网站建设长沙建设银行好的#xff0c;我将为您总结一个详细的 Ceph RBD 存储管理教程#xff0c;涵盖了从创建到删除的完整生命周期#xff0c;并附带所有必要的命令#xff0c;重点讲解文件删除和快照删除的底层机制。#x1f4d8; Ceph RBD 存储管理详细教程 本教程假设您的 Ceph 集群已部署…好的我将为您总结一个详细的 Ceph RBD 存储管理教程涵盖了从创建到删除的完整生命周期并附带所有必要的命令重点讲解文件删除和快照删除的底层机制。 Ceph RBD 存储管理详细教程本教程假设您的 Ceph 集群已部署并正常运行且客户端已配置好 Ceph 配置文件和密钥环。阶段一RBD 存储池和镜像的创建与配置步骤描述命令示例 (在 Ceph 集群管理节点执行)备注1. 存储池创建创建一个新的存储池用于 RBD 数据。ceph osd pool create rbd_data 64 6464 64是 PG 数量应根据集群大小调整。2. 初始化 RBD在新创建的 Pool 上启用 RBD 功能。rbd pool init rbd_data必须执行否则该 Pool 无法存放 RBD 镜像。3. 镜像创建创建一个 100GB 的 RBD 镜像。rbd create rbd_data/web_disk --size 100G命名规范pool_name/image_name4. 镜像查看查看已创建的镜像列表。rbd ls rbd_data5. 镜像信息查看特定镜像的详细信息。rbd info rbd_data/web_disk阶段二客户端使用 RBD 镜像步骤描述命令示例 (在客户端节点执行)备注1. 映射 (Map)将 RBD 镜像映射到客户端作为块设备。sudo rbd map rbd_data/web_disk通常会映射为/dev/rbd0等。2. 格式化对新映射的块设备创建文件系统。sudo mkfs.ext4 -F /dev/rbd0生产环境推荐 XFS 或 Btrfs。3. 挂载创建挂载点并挂载文件系统。sudo mkdir /mnt/datasudo mount /dev/rbd0 /mnt/data4. 使用验证读写权限。sudo touch /mnt/data/test.file 文件删除与空间回收机制文件删除如rm命令是客户端文件系统层面的操作它与底层 Ceph OSD 的空间释放是解耦的需要TRIM/UNMAP命令才能桥接。核心机制TRIM/UNMAP客户端操作客户端文件系统只标记数据块为可用并不通知 Ceph 释放空间。空间释放只有当客户端向 RBD 驱动发送TRIM/UNMAP命令后Ceph OSDs 才会删除底层的 RADOS 对象从而释放物理空间。场景描述客户端操作命令结果即时释放挂载时使用discard选项。文件一删除UNMAP 命令就立即发送。sudo mount -o discard /dev/rbd0 /mnt/data缺点频繁发送 UNMAP 可能增加 I/O 延迟。延迟释放默认推荐设置。文件删除不立即释放空间。sudo mount /dev/rbd0 /mnt/data(不带 discard)优点避免频繁的性能开销。手动回收批量执行fstrim命令手动回收所有未使用的空间。sudo fstrim -v /mnt/data最佳实践定期在低负载时段运行此命令。 快照的创建、删除与异步回收快照是 RBD 的核心功能用于数据保护和克隆。它的删除机制是系统强制的异步回收。核心机制Snaptrim快照创建使用写时复制 (CoW) 机制创建快照后旧数据块会被保留。快照删除删除快照时Ceph不会立即删除它引用的所有数据块。异步修剪 (Snaptrim)Ceph 在后台运行snaptrim任务缓慢地、异步地找出并删除那些不再被任何其他快照或活动镜像引用的数据块从而避免阻塞前台 I/O。步骤描述命令示例 (在 Ceph 集群管理节点执行)1. 创建快照为镜像创建一个名为20251211的快照。rbd snap create rbd_data/web_disk202512112. 查看快照查看特定镜像的所有快照。rbd snap ls rbd_data/web_disk3. 快照回滚将活动镜像的数据回滚到快照状态。rbd snap rollback rbd_data/web_disk202512114. 删除快照删除快照触发Snaptrim异步回收。rbd snap rm rbd_data/web_disk202512115. 检查回收进度检查 OSDs 的快照修剪任务。ceph status阶段三结束使用和镜像删除步骤描述命令示例备注1. 卸载 (Unmount)在客户端卸载文件系统。sudo umount /mnt/data2. 取消映射 (Unmap)在客户端移除块设备。sudo rbd unmap /dev/rbd0必须先卸载再取消映射。3. 彻底删除镜像在 Ceph 集群管理节点删除 RBD 镜像。rbd rm rbd_data/web_disk如果镜像有快照需要先删除所有快照。4. 彻底删除存储池删除整个存储池不推荐除非确认所有数据已迁移。ceph osd pool delete rbd_data rbd_data --yes-i-really-really-mean-it极度危险请谨慎操作您是否想尝试运行一些命令或者对快照克隆 (Cloning)的高级用法感兴趣呢下面给你整理一份超详细、结构清晰、带命令示例的Ceph RBD 存储教程包括✔ RBD 镜像创建、查看、扩容、缩容、删除✔ RBD 映射挂载到客户端与取消映射✔ 文件删除机制说明RBD 内部文件≠RBD 对象删除✔ 快照创建、回滚、保护/取消保护、克隆、删除✔ 镜像迁移、镜像复制简单提一下内容偏完整教程 实战命令适合你目前正在重新部署 Ceph 的情境。一、RBD 基础概念让你彻底明白在做什么概念说明RBDRADOS Block Device使用 Ceph 提供的分布式块存储像磁盘一样使用可格式化、挂载、存文件poolRBD 镜像所在的存储池如rbd、mypoolimage镜像RBD 创建出的虚拟磁盘例如rbd create foo --size 1Gsnapshot快照镜像的只读瞬时副本clone克隆从快照创建的新镜像flatten扁平化解除 clone 对快照的依赖二、RBD 常用命令总览速查表功能命令示例创建镜像rbd create pool/img --size 10G查看镜像rbd ls pool删除镜像rbd rm pool/img扩容rbd resize pool/img --size 20G缩容❌ 不支持直接缩容创建快照rbd snap create pool/imgsnap1删除快照rbd snap rm pool/imgsnap1回滚快照rbd snap rollback pool/imgsnap1映射镜像rbd map pool/img取消映射rbd unmap /dev/rbdX三、RBD 镜像管理✅ 1. 创建 RBD 镜像rbd create pool_name/image_name --size 10G示例rbd create rbd/data01 --size 20G✅ 2. 查看镜像列出池内镜像rbd ls rbd查看镜像详细信息rbd info rbd/data01✅ 3. 扩容支持在线扩容rbd resize rbd/data01 --size 30G❌ 4. 缩容不支持RBD 不支持直接缩小磁盘。如果必须缩小创建新镜像rsync 或 dd 拷贝数据删除旧镜像✅ 5. 删除镜像rbd rm rbd/data01前提镜像无快照镜像未被 map无克隆引用若提示快照依赖先取消保护并删除快照。四、RBD 镜像挂载客户端使用✅ 1. 映射map到本地作为块设备rbd map rbd/data01输出类似/dev/rbd0✅ 2. 对镜像做文件系统格式化mkfs.ext4 /dev/rbd0✅ 3. 挂载mount /dev/rbd0 /mnt/cephdisk❌ 4. 取消挂载 取消映射umount /mnt/cephdisk rbd unmap /dev/rbd0五、文件删除机制说明你必须理解❗ 当你删除镜像里的文件例如rm -rf /mnt/cephdisk/bigfile.binRBD 并不会立即释放空间原因RBD 底层是 object 存储文件系统删除文件 → 仅删除 inode 和元数据真正的空间回收需fstrimdiscard✔ 使用 fstrim 释放空间fstrim /mnt/cephdisk如果启用discardmount -o discard /dev/rbd0 /mnt/cephdisk即可实时释放空间。六、RBD 快照管理非常重要✅ 1. 创建快照rbd snap create rbd/data01snap1✅ 2. 查看快照rbd snap ls rbd/data01 3. 删除快照必须先取消保护1若未保护rbd snap rm rbd/data01snap12若已保护rbd snap unprotect rbd/data01snap1 rbd snap rm rbd/data01snap1 4. 快照回滚镜像恢复到旧状态rbd snap rollback rbd/data01snap1注意回滚会覆盖当前所有数据慎用七、从快照克隆镜像如果你需要做模板镜像1. 保护快照rbd snap protect rbd/data01snap12. 创建克隆rbd clone rbd/data01snap1 rbd/clone013. 扁平化让 clone 脱离父镜像rbd flatten rbd/clone01否则 clone 删除不了父镜像。八、RBD 镜像复制简单提一下rbd mirror pool enable rbd pool rbd mirror image enable rbd/data01九、RBD 常见错误排查错误原因解决image has snapshots镜像有快照取消保护 → 删除快照image is mapped正在使用先unmaphas child被 clone 依赖flatten 克隆或删除克隆删除文件但池占用不下降未 trimfstrim或开启discard十、删除整个 pool慎用ceph osd pool delete rbd rbd --yes-i-really-really-mean-it 如果你需要我还可以给你图示梳理RBD 结构、依赖关系图常见作业脚本自动创建/删除 RBD 镜像脚本如何完全删除并重建 Ceph 集群含 cephadm如果你想把这些写成博客 or PDF 教程我可以帮你进一步排版那我直接用图 文字把 RBD 的数据流给你掰开了讲一遍尽量贴近 Ceph 底层实现。你可以把下面的 mermaid 图直接丢到支持 mermaid 的地方比如 Typora、一些博客平台预览。一、RBD I/O 总体数据流图从应用到 OSD先看一个「从应用写数据到 OSD」的完整链路图flowchart LR subgraph ClientNode[客户端节点] A[应用/文件系统\n(ext4/xfs)] B[/RBD 块设备\n/dev/rbdX/] C[librbd] A -- 读写块数据 -- B B -- ioctl/内核调用 -- C end subgraph CephCluster[Ceph 集群] C -- D[librados\n(用户态客户端库)] D --|获取 Monitor Map / OSD Map / PG Map| MON[MON 集群\nMonitor] D --|获取集群状态/告警/统计| MGR[MGR 守护进程\nManager] D --|根据 CRUSH 规则\n计算对象落在哪些 PG/OSD| CR[CRUSH 算法] CR --|得到: PG X - OSD.1(Primary), OSD.2, OSD.3| P[Primary OSD] subgraph OSDs[OSD 节点数据实际存放处] P -- R1[Replica OSD 1] P -- R2[Replica OSD 2] subgraph PrimaryOSD[Primary OSD 内部] P -- Q[接收 RADOS 对象写请求\n(obj_000001, offset, length)] Q -- W[WAL/DB(RocksDB)\n元数据、KV 索引] W -- BS[BlueStore 数据区\n(物理块设备/分区)] end end end %% 读流程虚线 A -. 读请求 .- B -.- C -.- D -.- CR -.- P -.- BS -.- A 图中每一层是什么意思1️⃣ 客户端侧ClientNode应用/文件系统A对/dev/rbdX做普通的读写、rm、cp等操作。对它来说RBD 就是一块“本地磁盘”。RBD 块设备B/dev/rbdX这是内核 RBD 模块暴露出来的块设备节点。文件系统挂载在这里mkfs.ext4 /dev/rbd0mount/dev/rbd0 /mnt/cephdisklibrbdC负责把“块读写”切分成对 RBD 对象object的操作比如 image 逻辑 offset 0~4MB → 落到rbd_data.00000000offset 4~8MB →rbd_data.00000001还会处理条带striping快照逻辑克隆依赖关系cache 等2️⃣ librados 与 Ceph 集群元数据D、MON、MGRlibradosD一切对对象的读写都要先经过 librados。它知道当前有哪些 Pool每个 Pool 里有哪些 PG每个 PG 的 Primary/Replica 分布在哪些 OSD 上MONMonitor 集群存放集群配置OSD Map、MON Map、PG Map 等librados 会先从 MON 获取这些 Map之后在一段时间内直接使用本地缓存的 map。MGRManager提供统计信息、性能监控Dashboard一些模块化功能Prometheus、balancer 等对 I/O 数据流不是绝对必经但参与整体管理。3️⃣ CRUSH 算法选路CRCRUSH干的事情就是给我一个 Pool 和一个对象 ID我要算出它应该落在哪个 PG再落到哪些 OSD 上。RBD 的一个对象名类似rbd_data.10f8a9b0.0000000000000001librados 会把(pool, object_name)→ 映射为PG比如1.5aPool ID 1, PG ID 0x5aOSD 列表[osd.1 (primary), osd.3, osd.7]4️⃣ OSD 内部数据流Primary OSD Replica可以再用一个单独图把单个 OSD 内部画一下flowchart LR C1[来自客户端的对象写请求\n(obj_name, offset, data)] -- H[Primary OSD 进程] H -- L1[检查 PG 状态\n是否 activeclean] L1 -- J1[写入 WAL/DB(RocksDB)\n记录元数据/事务] J1 -- B1[写入 BlueStore 数据区\n(后端可能是裸盘/LVM/分区)] H -- Rep1[并行转发写请求到\nReplica OSD 1] H -- Rep2[并行转发写请求到\nReplica OSD 2] Rep1 -- J2[Replica OSD 1 写 WAL/DB BlueStore] Rep2 -- J3[Replica OSD 2 写 WAL/DB BlueStore] J2 -- Ack1[Replica 1 ACK 给 Primary] J3 -- Ack2[Replica 2 ACK 给 Primary] Ack1 -- Final[Primary 收齐 ACK 后\n向客户端(librados)应答] Ack2 -- Final流程说明客户端librados把对象写请求发给Primary OSDPrimary OSD检查 PG 是否处于activeclean把本次写入操作记录在 WAL/DBRocksDB中把实际数据写入 BlueStore 的数据盘Primary 同时把写请求转发给所有 Replica OSD每个 Replica OSD 同样写 WAL/DB BlueStore 后给 Primary 返回 ACKPrimary 收到所有 Replica 的 ACK 后才向客户端返回“写成功”。二、RBD 镜像到对象的映射图条带/对象粒度再画一个「RBD 镜像 → 对象 → PG → OSD」的结构图便于你在脑中立体化这个关系flowchart LR subgraph RBDImage[RBD 镜像: rbd/data01 (10 GiB)] I1[逻辑偏移 0~4MB] I2[逻辑偏移 4~8MB] I3[逻辑偏移 8~12MB] I4[...] end I1 -- O1[rbd_data.00000000] I2 -- O2[rbd_data.00000001] I3 -- O3[rbd_data.00000002] I4 -- O4[rbd_data.00000003...] O1 -- PG1[PG 1.5a] O2 -- PG2[PG 1.7f] O3 -- PG3[PG 1.21] O4 -- PG4[...] PG1 --|Primary| P1[osd.1] PG1 --|Replica| R11[osd.3] PG1 --|Replica| R12[osd.7] PG2 --|Primary| P2[osd.4] PG2 --|Replica| R21[osd.9] PG2 --|Replica| R22[osd.10] PG3 --|Primary| P3[osd.2] PG3 --|Replica| R31[osd.5] PG3 --|Replica| R32[osd.8]要点RBD 镜像被切分为很多对象Object默认 4MB 一块可配置rbd_default_features/rbd_default_order。每个对象属于某个 Pool通过 CRUSH 规则映射到某个 PG再由 PG 映射到一组 OSDPrimary N 个 Replica。三、结合“删除文件 / 快照 / 回滚”再理解一次数据流1️⃣ 删除文件rm你在文件系统里执行rm-rf /mnt/cephdisk/largefile.bin真正发生的是文件系统只是删掉 inode 目录项RBD 对象本身仍然存在只是部分块被标记为“未使用”空间不会立刻返还给集群 → 需要fstrim或挂载discard才会发出 discards底层对象才可能被裁剪或认为空间可重用。2️⃣ 快照snap创建快照rbd snap create rbd/data01snap1数据流逻辑快照时不会立刻复制所有对象只是记录一个“当下对象版本的引用”之后写入新数据时采用写时复制COW新写数据对象会写到新的 Object / New version老的 Object 仍然被快照引用。3️⃣ 快照回滚rollback当你执行rbd snap rollback rbd/data01snap1流程librbd 会把当前镜像上所有“被修改的对象”重写为快照时对应的对象版本这会触发大量写请求到 Primary OSD → Replica实际数据流还是“普通写路径”只是数据来源是旧版本对象快照而已。四、如果你想写进博客/报告可以这样组织结构建议你在博客中按这个结构写从一个简单例子入手“应用往/dev/rbd0写入一个文件时Ceph 在底下做了什么”画出第一张客户端 → librbd → librados → MON/MGR → CRUSH → OSD 的数据流图细化单个 Primary OSD 内部的写入流程WAL/DB BlueStore画出 RBD 镜像 → 对象 → PG → OSD 的映射图用删除文件 / 快照 / 回滚的场景串一遍“RBD 逻辑层”和“Ceph 物理层”的对应关系最后可以加一小节RBD 与 RADOS GW / CephFS 的对比为什么 RBD 更适合块存储场景虚机、数据库。如果你愿意我还可以帮你把这几张图配合文字整理成一篇完整 Markdown 博客或者再画一张 “集群部署视角” 的结构图Client、Gateway、Cephadm、MON、MGR、OSD、MDS 等全部串起来。不会。RBD 快照本身不会自动备份也不会自动创建需要你手动创建或自己配置脚本/定时任务才会自动化。这是很多人第一次使用 Ceph RBD 时的常见误解我给你从“概念层面”和“实际工程”两个层面讲清楚✅一、快照不是自动备份Snapshot ≠ BackupRBD 快照具备“保存当下磁盘状态”的能力但❗快照不会自动创建你必须手动执行rbd snap create pool/imagesnap1或自己写 cron rbd 命令来“自动化”否则不会有任何快照产生。❗二、快照不是备份它并不保存全量数据副本真正的区别项目快照 Snapshot备份 Backup是否自动创建❌ 不会自动✔ 可自动化数据是否完全独立保存❌ 依赖原镜像✔ 保存为独立副本如果镜像坏了如 pool 损坏❌ 快照也一起完蛋✔ 备份仍然安全作用保存时间点可快速回滚/克隆灾难恢复DR、长期保存一个关键点快照依赖原始 RBD 镜像和对象一旦底层对象损坏快照也无法恢复。所以快照不等同于备份。三、快照能不能当“自动备份”可以但需要你自己实现你可以写一个自动创建快照的任务例如示例每天凌晨 2 点自动快照编辑 crontabcrontab-e加入02* * * rbd snap create rbd/dataauto-date\%Y-\%m-\%d自动删除超过 7 天快照03* * * rbd snap purge rbd/data --older-than 7d这样才能做到所谓的“自动备份效果”。四、Ceph 里真正的“自动备份”方式是什么你的场景如果需要“真正备份跨机房容灾”那应该用1.RBD 镜像复制RBD Mirroring可以把一个 pool 的镜像自动复制到另一个集群异地双活 / 灾备。这才是 Ceph 官方提供的“自动备份”机制。2.rbd export / import手动或脚本备份例如rbdexportrbd/data data_backup_2025-01-01.img这才会生成一个真正独立的备份文件。❗五、结论你必须记住RBD 快照不是自动备份也不会自动产生需要你手动或脚本执行。它也不能替代真正的备份因为它依赖原镜像对象。快照主要用于快速回滚快速克隆节省空间系统升级前留一个安全点不能用于灾备和长期数据保护。如果你愿意我可以继续帮你写自动快照脚本带保留策略RBD 真正备份方案export S3/minio mirroring快照 克隆依赖关系图可视化你想继续哪一部分
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站开发 加密存储 解密 二次计算宝安画册设计公司

JD-GUI 终极指南:Java 字节码反编译完整教程 【免费下载链接】jd-gui A standalone Java Decompiler GUI 项目地址: https://gitcode.com/gh_mirrors/jd/jd-gui JD-GUI 是一款功能强大的独立 Java 反编译工具,能够将编译后的 Java 类文件和 JAR 包…

张小明 2025/12/26 14:05:18 网站建设

运营公众号还是做网站邢台网约车新政策

从 MkDocs 迁移到 Zensical 完整的迁移指南,让你轻松从 MkDocs 过渡到 Zensical 为什么要迁移? MkDocs 的现状 ⚠️ 已停止更新 - MkDocs 和 Material for MkDocs 不再积极开发⚠️ 功能受限 - 缺少现代化功能(即时导航、博客系统等&#x…

张小明 2025/12/26 14:04:44 网站建设

网站建设需求量大青海西宁网页网站制作

第一章:Open-AutoGLM门票预约自动化概述 随着大型展览、演唱会及科技发布会的门票需求激增,传统手动抢票方式已难以满足高并发场景下的效率要求。Open-AutoGLM 是一个基于大语言模型(LLM)驱动的开源自动化预约框架,专为…

张小明 2025/12/26 14:04:11 网站建设

徐州发布网站提升关键词排名有哪些方法

树是一个对于我这种小白来说是接触的第一个较复杂的数据结构,不像之前的线性结构,树让人感觉是从一个线到面的进阶。树的定义是由一个根节点和许多子节点组成,再由子节点成为新的根节点有点像递归的过程,因此树的许多操作都要有递…

张小明 2025/12/26 14:03:38 网站建设

鄂尔多斯市建设厅官方网站怎样建企业网站

2025年3月20日,2025年中科院国际期刊预警名单和期刊分区表姗姗来迟,终于正式发布。根据往年发布规律,2026年预警期刊名单最快将于本月底发布,但因2026年2月17日是春节,根据近年经验,2026年版中科院分区表和…

张小明 2025/12/26 14:02:32 网站建设

九江有哪些免费推广网站杨园建设社区网站

第一章:AI 模型的 Docker 缓存策略在构建 AI 模型服务镜像时,Docker 的缓存机制对提升构建效率至关重要。合理的缓存策略能够避免重复下载大型依赖包(如 PyTorch、TensorFlow),显著缩短 CI/CD 流程中的镜像构建时间。分…

张小明 2025/12/27 18:39:09 网站建设