0

使用文件系统,可以使用 filefrag、hdparm 或 Fibmap 找到文件的物理位置。

Ceph 呢?是否可以找出文件的存储位置?(哪个 OSD,哪个磁盘,磁盘上的物理位置)。

假设我有一个包含 5 个文件的文件夹。我想创建一个脚本,输出一个存储以下信息的文件:1.每个文件分成多少个块,2.每个块-> OSD,3.每个块->哪个磁盘,4.在哪里磁盘上的(扇区)是存储的每个块。

我会很感激任何意见。

4

1 回答 1

1

我不确定这是否是您要查找的内容,但您可以找到有关 Ceph 对象存储集群中对象位置的一些信息:

http://docs.ceph.com/docs/jewel/rados/operations/monitoring-osd-pg/

例如,如果您有一个池“pool-1”并且想要找出您的对象“testobject-1”的存储位置,您可以使用以下命令(从您的 mon-node)获取该信息:

 sudo ceph osd map pool-1 testobject-1    

这会给你这样的结果:

osdmap e58 pool 'pool-1' (7) object 'testobject-1' -> pg 7.74dc35e2 (7.62) -> up
 ([1,0,2], p1) acting ([1,0,2], p1)

这告诉您您的对象位于 osd-nodes 1、0 和 2 / 主分区 (p1) 上的归置组 7.62 中。

现在您可以进一步深入研究,例如在您的 osd.0 节点上,切换到您的 root 用户并 cd 进入/var/lib/ceph/osd/ceph-0--> 这是存储实际块的位置。如果您执行“ls”,您将看到:

root@osd-1:/var/lib/ceph/osd/ceph-0# ls
block ceph_fsid fsid keyring ready type whoami

这就是我能找到的全部内容,而且我不知道您如何才能真正“读取”该块的内容。

我希望这至少可以帮助你一点......

于 2018-08-06T11:41:38.300 回答