编程一个由Linux中的几个文件组成的环回设备

时间:2010-12-23 14:46:32

标签: linux file raid block-device

HeJ小鼠,

在Linux中使用losetup模拟块设备相对容易:

任何人都可以给我一个提示,如果我想编写我自己的块设备,这是基于我正在从中获取内容的几个文件,我该怎么办?为了您的理解,我想让文件1中的字节1-500和1.000-3.000以及文件2中的字节501-999和字节3.001到5.000将它们作为组合块设备提供。我首选的编程语言是Python,我想尽可能在​​用户空间编写我的程序。

对于Windows,我发现了这样的实现。它叫做FileDisk和HttpDisk,可以在这里找到:

在此先感谢和问候,   赖

2 个答案:

答案 0 :(得分:4)

您无需编程任何内容。您可以使用Linux的多设备(a.k.a。md)子系统来构建一个由多个较小设备组成的块设备。

为此,您可以使用mdadm从较小的设备中组装LINEAR raid设备。

<强>更新
所以这就是我所做的:

$ cd /images
$ dd if=/dev/zero bs=1M count=100 of=a.img
$ dd if=/dev/zero bs=1M count=50 of=b.img
$ dd if=/dev/zero bs=1M count=150 of=c.img
$ losetup -f
/dev/loop0
$ for i in a b c; do losetup -f $i.img; done
$ mdadm --build /dev/md0 -l linear -n 3 /dev/loop[012]
mdadm: array /dev/md0 built and started.
$ cat /proc/mdstat
Personalities : [linear] 
md0 : active linear loop2[2] loop1[1] loop0[0]
      307200 blocks super non-persistent 64k rounding

请注意,我使用$作为提示,不要混淆自动语法突出显示;)

就这么简单。

干杯。

PS:现在这真的有资格获得超级用户,不是吗?

答案 1 :(得分:2)

如果您希望使用简单的API完全保留在用户空间中,我强烈建议FUSE使用Python relatively simple to do