如何判断 Ceph 规则是否真的直接输入到 SSD?
how to tell if Ceph rules really direct input to SSD?
我有一个 Ceph 集群,并创建了规则和池。之后我将这些池分配给为此创建的规则。我想知道的是我如何才能确定它真的像宣传的那样工作?
主要是我想知道数据是真正写入 SAS 驱动器而不是 SSD,除非我想这样做。有没有办法超越池定义并查看块设备本身以查看数据写入的位置。
我问这个问题的原因是因为性能非常快并且两个池上的性能几乎相同。这是可以的(20G连接,小文件),但要100%确定。
ceph osd map 命令显示在池中存储对象时使用的 OSD。例如
$ ceph osd map rbd OBJECT
osdmap e11 pool 'rbd' (0) object 'OBJECT' ->
pg 0.383caa09 (0.1) -> up ([2,0,1], p2) acting ([2,0,1], p2)
告诉你 [2,0,1]
是用于在 rbd
池中存储 OBJECT 及其副本的 OSD id 列表。使用 ceph osd tree 命令,您可以验证给定 OSD id 使用哪个设备:
$ ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 3.00000 root default
-2 3.00000 host fold
0 1.00000 osd.0 up 1.00000 1.00000
1 1.00000 osd.1 up 1.00000 1.00000
2 1.00000 osd.2 up 1.00000 1.00000
在此示例中,我们了解到 osd.0, osd.1
和 osd.2
在主机 fold
上。在SAS磁盘和SATA磁盘分离的情况下,ceph osd tree
命令将为您提供类似的信息。
我有一个 Ceph 集群,并创建了规则和池。之后我将这些池分配给为此创建的规则。我想知道的是我如何才能确定它真的像宣传的那样工作?
主要是我想知道数据是真正写入 SAS 驱动器而不是 SSD,除非我想这样做。有没有办法超越池定义并查看块设备本身以查看数据写入的位置。
我问这个问题的原因是因为性能非常快并且两个池上的性能几乎相同。这是可以的(20G连接,小文件),但要100%确定。
ceph osd map 命令显示在池中存储对象时使用的 OSD。例如
$ ceph osd map rbd OBJECT
osdmap e11 pool 'rbd' (0) object 'OBJECT' ->
pg 0.383caa09 (0.1) -> up ([2,0,1], p2) acting ([2,0,1], p2)
告诉你 [2,0,1]
是用于在 rbd
池中存储 OBJECT 及其副本的 OSD id 列表。使用 ceph osd tree 命令,您可以验证给定 OSD id 使用哪个设备:
$ ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 3.00000 root default
-2 3.00000 host fold
0 1.00000 osd.0 up 1.00000 1.00000
1 1.00000 osd.1 up 1.00000 1.00000
2 1.00000 osd.2 up 1.00000 1.00000
在此示例中,我们了解到 osd.0, osd.1
和 osd.2
在主机 fold
上。在SAS磁盘和SATA磁盘分离的情况下,ceph osd tree
命令将为您提供类似的信息。