查找文件(Ceph)的位置

时间:2017-09-08 07:54:32

标签: openstack ceph block-storage

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

Ceph怎么样?是否有可能找出文件的存储位置? (哪个OSD,哪个磁盘,物理上在磁盘上)。

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

我很感激任何意见。

1 个答案:

答案 0 :(得分:0)

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

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

例如,如果您有一个池“ pool-1”,并且想知道对象“ testobject-1”的存储位置,则可以使用以下命令(从单节点)获取该信息:

 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节点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

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

我希望这至少可以对您有所帮助。...