使用文件系统可以使用filefrag,hdparm或Fibmap找到文件的物理位置。
Ceph怎么样?是否有可能找出文件的存储位置? (哪个OSD,哪个磁盘,物理上在磁盘上)。
假设我有一个包含5个文件的文件夹。我想创建一个脚本,输出一个存储以下信息的文件: 1.每个文件分成多少块,2。每个块 - > OSD,3。每个块 - >哪个磁盘,4。磁盘上的每个(扇区)都存储了每个块。
我很感激任何意见。
答案 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
这就是我能找到的全部,而且我不知道您如何实际“读取”该块的内容。
我希望这至少可以对您有所帮助。...