ceph 日志01

本文介绍了Ceph作为分布式对象存储系统的特点,包括不限存储容量和对象个数,以及与块存储的区别。Ceph块设备利用RADOS提供快照、复制和一致性功能。文章详细探讨了错误处理,如Scrub机制、卡住的归置组、未找到的对象和永久性故障的处理方法,旨在帮助读者理解Ceph的健壮性。

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

1. 对象存储

问:我可以存储多少数据?

您可以存储的总数据容量和对象个数不受限制。各个 Amazon S3 对象的大小范围可以从最小 0 字节到最大 5 TB。可在单个 PUT 中上传的最大数据元为 5 GB。对于大于 100 MB 的数据元,客户应该考虑使用分段上传功能。

理解这个问题,事实上有助于理解RADOS的本质,因此有必要在此加以分析。粗看起来,librados和RADOS GW的区别在于,librados提供的是本地API,而RADOS GW提供的则是RESTful API,二者的编程模型和实际性能不同。而更进一步说,则和这两个不同抽象层次的目标应用场景差异有关。换言之,虽然RADOS和S3、Swift同属分 布式对象存储系统,但RADOS提供的功能更为基础、也更为丰富。这一点可以通过对比看出。

对象存储和块存储

这里写图片描述
块存储和对象存储的区别从图中便可以看出来.

  • 块相当于硬盘,将数据分成固定大小的对象存储在rados中.
  • 对象存储就是讲文件对象不论大小,随意的放在桶中.具体存储让ceph自己解决.存储和读取只要知道对象特征值和桶名即可.

2. CEPH 块设备

块是一个字节序列(例如,一个 512 字节的数据块)。基于块的存储接口是最常见的存储数据方法,它们基于旋转介质,像硬盘、 CD 、软盘、甚至传统的 9 磁道磁带。无处不在的块设备接口使虚拟块设备成为与 Ceph 这样的海量存储系统交互的理想之选。
Ceph 块设备是精简配置的、大小可调且将数据条带化存储到集群内的多个 OSD. Ceph 块设备利用 RADOS 的多种能力,如快照、复制和一致性。 Ceph 的 RADOS 块设备( RBD )使用内核模块或 librbd 库与 OSD 交互。
Ceph 块设备靠无限伸缩性提供了高性能,如向内核模块、或向 abbr:KVM (kernel virtual machines) (如 Qemu 、 OpenStack 和 CloudStack 等云计算系统通过 libvirt 和 Qemu 可与 Ceph 块设备集成)。你可以用同一个集群同时运行 Ceph RADOS 网关、 Ceph FS 文件系统、和 Ceph 块设备。

CEPH 块设备 http://docs.ceph.org.cn/rbd/rbd

3. 错误处理

3.1 Scrub 机制

解析Ceph: 数据的端到端正确性和 Scrub 机制
https://www.ustack.com/blog/ceph-internal-scrub/

因为 Ceph 作为一个应用层的路径,它利用了 POSIX 接口进行存储并支持 Parity Read/Write,这时候如果封装固定数据块并且加入校验数据会导致较严重的性能问题,因此 Ceph 在这方面只是引入 Scrub 机制(Read Verify)来保证数据的正确性。
简单来说,Ceph 的 OSD 会定时启动 Scr

### Ceph 日志配置与查看方法 #### 配置 Ceph 日志 Ceph日志可以通过多种方式进行配置,主要包括调整 `log_level` 和指定日志存储位置。 1. **设置日志级别 (`log_level`)** - Ceph 提供了不同的日志级别来控制日志的详细程度。默认情况下,日志级别为 `info` 或更低。 - 可以通过修改配置文件或者动态更改运行中的守护进程的日志级别来进行调整。 ```bash ceph tell mon.* injectargs '--debug_ms=5' ``` 上述命令将所有监视器 (MON) 守护进程的消息服务调试级别设置为 5[^2]。 2. **持久化内存中的日志** - 使用 `ceph daemon type.id log dump` 命令可以将内存中的日志写入到日志文件中,而不受当前日志级别的限制[^1]。 ```bash ceph daemon osd.0 log dump ``` 3. **配置日志路径** - 默认情况下,Ceph日志保存在 `/var/log/ceph/` 下。可以在 `ceph.conf` 文件中自定义日志路径: ```ini [global] log file = /custom/path/to/logs/$name.log ``` 这样可以将不同类型的守护进程(如 MON、OSD)的日志分别存放到指定目录下[^3]。 4. **归档旧日志** - 当需要清理或归档旧日志时,可以调用内部函数 `reopen_logs()` 来重新打开新的日志文件并关闭旧文件[^4]。 #### 查看 Ceph 日志 以下是几种常见的查看 Ceph 日志的方法: 1. **直接读取日志文件** - 如果知道具体的日志文件名,可以直接使用工具如 `cat`, `less` 或者 `tail` 来查看日志内容。 ```bash tail -f /var/log/ceph/osd.0.log ``` 2. **查询特定守护进程的日志** - 利用 `ceph daemon` 命令获取某个具体守护进程的实时日志输出。 ```bash ceph daemon osd.0 config show | grep log_file ``` 此外还可以结合其他参数进一步过滤所需信息。 3. **处理 SSD 故障场景下的日志提取** - 对于因硬件故障导致无法正常访问的情况,比如 SSD 中的日志磁盘损坏,则需先停止受影响的 OSD 并手动触发日志落地操作。 ```bash systemctl stop ceph-osd@{osd-id} ceph-osd -i {osd-id} --flush-journal ``` 同时建议启用 `noout` 标记避免集群自动尝试恢复而引发额外负载[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值