ceph——osd——osd new

博客介绍了将OSD扩容进集群的流程,客户端会给mon发送osd new的cmd,mon收到后给磁盘分配osdid,并在pending_inc的new_state和new_uuid中记录信息,之后等待执行一次paxos。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述将osd扩容进集群时,客户端会给mon发送一个osd new的cmd。
mon收到该cmd后会给该磁盘分配osdid同时在pending_inc的new_state和new_uuid中记录信息,等待执行一次paxos

### Ceph OSD 中 `ceph-osd --mkjournal` 的使用方法及作用 #### 1. 命令概述 `ceph-osd --mkjournal` 是 Ceph 提供的一个工具,用于初始化或重新创建一个指定 OSD 的 journal 文件。Journal 是 Ceph OSD 数据持久化的关键组件之一,主要用于记录元数据变更的历史日志,从而加速写入操作并提高系统的可靠性[^1]。 #### 2. 使用场景 该命令通常在以下情况下使用: - 修改现有 OSD 的 journal 大小。 - 更改 journal 的存储位置(例如从本地文件迁移到专用 SSD 分区)。 - 初始化新的 OSD 或修复损坏的 journal 文件。 #### 3. 参数说明 执行 `ceph-osd --mkjournal` 时,需要指定目标 OSD 的 ID (`-i`)。以下是完整的命令结构及其参数解释: ```bash ceph-osd -i <osd_id> --mkjournal ``` | 参数 | 描述 | |------------|----------------------------------------------------------------------| | `-i <osd_id>` | 指定目标 OSD 的唯一标识符,通常是整数形式,例如 `0`, `1`, 等等。 | #### 4. 实际应用案例 ##### (1)修改 Journal 大小 如果希望更改已存在的 OSD 的 journal 大小而不需完全重建整个 OSD,则可以按照如下步骤操作: 1. **停止目标 OSD** 关闭对应的目标 OSD 服务以防止数据丢失或混乱。 ```bash systemctl stop ceph-osd@<osd_id>.service ``` 2. **删除旧的 Journal 文件** 移除当前的 journal 文件。 ```bash rm /var/lib/ceph/osd/ceph-<osd_id>/journal ``` 3. **设置新的 Journal 大小** 编辑配置文件 `/etc/ceph/ceph.conf`,将 `osd_journal_size` 设置为目标大小(单位为 MB)。例如: ```ini osd_journal_size = 10240 ``` 4. **重新创建 Journal** 使用 `--mkjournal` 参数重新生成 journal 文件。 ```bash ceph-osd -i <osd_id> --mkjournal ``` 5. **重启 OSD 服务** 启动 OSD 并验证 journal 是否正常工作。 ```bash systemctl start ceph-osd@<osd_id>.service ls -lh /var/lib/ceph/osd/ceph-<osd_id>/journal ``` ##### (2)迁移 Journal 至独立分区 当需要将 journal 移动到单独的高性能 SSD 分区时,可按以下流程操作: 1. **停止目标 OSD** ```bash systemctl stop ceph-osd@<osd_id>.service ``` 2. **刷新 Journal 数据** 确保所有未提交的日志都已同步到主存储中。 ```bash ceph-osd --flush-journal -i <osd_id> ``` 3. **移除原有 Journal 链接** 删除现有的 journal 符号链接。 ```bash rm /var/lib/ceph/osd/ceph-<osd_id>/journal ``` 4. **创建指向新分区的符号链接** 假设新分区位于 `/dev/sdb1`,则可以通过以下命令完成替换: ```bash ln -s /dev/sdb1 /var/lib/ceph/osd/ceph-<osd_id>/journal ``` 5. **重新初始化 Journal** 利用 `--mkjournal` 参数更新 journal 元数据。 ```bash ceph-osd -i <osd_id> --mkjournal ``` 6. **启动 OSD 服务** 最后恢复 OSD 正常运行状态。 ```bash systemctl start ceph-osd@<osd_id>.service ``` #### 5. 注意事项 - 在线上的生产环境中进行任何涉及 journal 的改动之前,请务必做好充分备份,并确认集群处于健康状态。 - 如果计划调整 journal 的存储介质类型(如从 HDD 转向 SSD),应提前规划好分区布局并合理分配资源[^2]。 - 当前版本可能对某些功能有所限制;因此建议始终查阅官方文档获取最新指导信息[^3]。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值