Openstack 查找文件位置(Ceph)

Openstack 查找文件位置(Ceph),openstack,ceph,block-storage,Openstack,Ceph,Block Storage,使用文件系统,可以使用filefrag、hdparm或Fibmap查找文件的物理位置 Ceph呢?有可能找到文件存储的位置吗?(哪个OSD、哪个磁盘、磁盘上的物理位置) 假设我有一个包含5个文件的文件夹。我想创建一个脚本,用于输出存储以下信息的文件: 1.每个文件分为多少个块,2.每个块-->OSD,3.每个块-->哪个磁盘,4.每个块存储在磁盘上的哪个位置(扇区) 如果您有任何意见,我将不胜感激。我不确定这是否是您要查找的内容,但您可以找到有关Ceph对象存储群集中对象位置的一些信息: 例如

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

Ceph呢?有可能找到文件存储的位置吗?(哪个OSD、哪个磁盘、磁盘上的物理位置)

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


如果您有任何意见,我将不胜感激。

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

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

这会给你一个这样的结果:

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)上的placement group 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
这就是我所能找到的,我不知道你如何才能真正“阅读”这一块的内容

我希望这至少能帮你一点忙

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