Ceph OSD : 我的数据在哪里?
laurentbarbe
目的是验证我的数据存储在 Ceph 集群的哪个位置。
为此,我刚刚创建了一个包含 3 个 osd 的最小集群
1
| |
我的 osd 目录在 ceph-01 上在哪里?
1 2 | |
目录内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | |
数据存储在“current”目录中:其中包含一些文件和许多 _head 文件
1 2 3 4 5 6 | |
在 omap 目录中
1 2 3 4 5 6 7 8 | |
在 meta 目录中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |
尝试从 osdmap 编译 crush map
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | |
好的,这正是我所期望的。:)
集群是空的
1 2 | |
目录列表与“ceph pg dump”对应
1 2 3 | |
要获取特定 pg 的所有统计信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | |
从集群检索对象 ¶
在此测试中,我们创建一个标准池(pgnum=8 和 repli=2)
1 2 3 4 5 6 7 8 | |
我的 Ceph logo 在 pg 3.2 上(主副本在 osd.2 上,副本在 osd.1 上)
1 2 3 4 5 6 7 8 9 | |
而 osd.2 在 ceph-03 上
1 2 3 4 5 | |
完全一样:)
导入 RBD ¶
同样,但作为块设备进行测试。
1 2 3 4 5 6 7 8 | |
只有一个对象。
1 2 3 4 5 6 7 | |
开始吧。
1 2 3 4 | |
在这里,我们可以检索 rbd 的块名称前缀“rb.0.1048.2ae8944a”
1 2 | |
在 ceph-03 上
1 2 3 | |
我们检索到未拆分的文件,因此文件保持不变:)
尝试 RBD 快照 ¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
它在 ceph-03 上的相同位置
1 2 3 4 | |
我们可以注意到包含 2(快照 ID 2)的文件包含原始数据。并且为当前数据创建了一个新文件:head
对于后续测试,我将尝试使用条带化文件、rbd 格式 2 和池上的快照。