我有一个 Ceph 集群,并创建了规则和池。之后,我将这些池分配给为此创建的规则。我想知道的是如何确定它确实像宣传的那样有效?
首先,我想知道数据是否真正写入 SAS 驱动器而不是 SSD,除非我想这样做。是否有超出池定义并查看块设备本身以查看数据写入位置的方法。
我问这个的原因是因为两个池的性能非常快并且几乎相同。这是可能的(20G 连接,小文件),但希望 100% 确定。
我有一个 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]
存储 OBJECT 及其副本的 OSD id 列表。rbd
使用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
命令将为您提供类似的信息。