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