我的问题很简单:是否有可能列出块设备中的文件?
例如,如果创建一个新池:
ceph osd pool create myPool
在这个池中我添加了一个RADOS块设备:
rbd create myBLock -p myPool——size 1024
在ceph-client上:
sudo rbd map myBlock -p myPool
sudo mkfs。ext4 -m0/dev/rbd/rbd/myblock
sudo mkdir/mnt/ceph-block-device
sudo mount/dev/rbd/rbd/myblock/mnt/ceph-block-devicecd/mnt/ceph-block-device
我把一些文件放到块中
触摸myfile.txt
触摸hello.txt
我如何在osd/mon节点上看到这些文件以及它们存储在哪里?我知道:
ceph osd map -p myPool object1工作完美,但是我怎么能看到池内的完整列表myPool?
问候,
Ghislain
简短的回答:你不能
长话短说:没有"文件"的概念。在RADOS块设备。它被称为"块装置"。原因是——它只保存了一堆连续的数据块。这些块内部的内容与块设备无关。这是你的文件系统驱动程序的工作,将这些数据块表示为一个"文件系统"。你可以浏览一下。在您的情况下"mkfs。ext4 -m0/dev/rbd/rbd/myBlock"在RBD上创建ext4文件系统。只有当你这样做时"mount/dev/rbd/rbd/myblock/mnt/ceph-block-device";指示系统将RBD视为文件系统。去掉它,你的文件系统就仅仅是一个包含字节的块序列了。
它类似于在普通硬盘驱动器上拥有文件系统。找一个新的硬盘,创建一个分区,把文件系统格式化为ext4,写一些文件,把硬盘放到不支持ext4的系统上,然后问自己:"我怎样才能看到这些文件,它们存储在哪里?"答案就是上面的简短回答:"你不能"