答案1
要安装 Linux 软件 RAID,您需要安装该mdadm
包。
sudo apt-get install mdadm
如果您想使用这三个映像文件创建软件 RAID-0,则需要为每个映像文件创建循环设备:
sudo losetup /dev/loop1 image1.img
sudo losetup /dev/loop2 image2.img
sudo losetup /dev/loop3 image3.img
之后您可以从它们创建 RAID-0 阵列:
sudo mdadm --create /dev/md0 --level=0 --raid-devices=3 /dev/loop1 /dev/loop2 /dev/loop3
答案2
如果您的系统符合基本要求,您可以使用zfs
(8 GB RAM,64 位系统):
添加 repo 并更新包列表:
sudo add-apt-repository ppa:zfs-native/stable
sudo apt-get update
安装包:
sudo apt-get install ubuntu-zfs
创建条带化vdev(没有冗余,但您要求 RAID0):
sudo zpool create vol0 ~/image[1-3].img
这将创建条带并将其挂载在 /vol0 上。
sudo zfs create vol0/filesystem
这在条带上创建 zfs 文件系统并将其挂载到 /vol0/filesystem。使用
sudo zfs set mountpoint=/mnt/filesystem vol0/filesystem
如果您想改变挂载点。
您还可以添加自动压缩:
sudo zfs create vol0/filesystem/compressed
sudo zfs set compression=on vol0/filesystem/compressed
现在,您放入 /mnt/filesystem/compressed 的所有内容将自动被压缩。
答案3
我确实只是对每个图像都做了 touch image#.img。我还应该做些什么吗?
这确实是问题所在。文件为 0 字节,您无法在其中查找。您必须创建实际具有大小的文件。这可能是稀疏文件如果你想:
[/tmp]$ dd if=/dev/zero of=1.img bs=1M count=25 conv=sparse
25+0 records in
25+0 records out
26214400 bytes (26 MB, 25 MiB) copied, 0.00334608 s, 7.8 GB/s
[/tmp]$ dd if=/dev/zero of=2.img bs=1M count=25 conv=sparse
25+0 records in
25+0 records out
26214400 bytes (26 MB, 25 MiB) copied, 0.00347987 s, 7.5 GB/s
[/tmp]$ dd if=/dev/zero of=3.img bs=1M count=25 conv=sparse
25+0 records in
25+0 records out
26214400 bytes (26 MB, 25 MiB) copied, 0.00330069 s, 7.9 GB/s
[/tmp]$ du 1.img
0 1.img
现在我可以制作循环设备并组装数组:
[/tmp]$ sudo losetup loop0 1.img
[/tmp]$ sudo losetup loop1 2.img
[/tmp]$ sudo losetup loop2 3.img
[/tmp]$ sudo mdadm --create /dev/md0 --level=0 --raid-devices=3 /dev/loop0 /dev/loop1 /dev/loop2
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[/tmp]$ sudo mkfs.ext4 /dev/md0
mke2fs 1.42.11 (09-Jul-2014)
Discarding device blocks: done
Creating filesystem with 73728 1k blocks and 18432 inodes
Filesystem UUID: 8123197c-a9aa-434d-9233-103fe20727ed
Superblock backups stored on blocks:
8193, 24577, 40961, 57345
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
[/tmp]$ mkdir mnt/
[/tmp]$ sudo mount /dev/md0 mnt/
[/tmp]$ df -h mnt/
Filesystem Size Used Avail Use% Mounted on
/dev/md0 66M 1.3M 60M 3% /tmp/mnt
[/tmp]$ cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 loop2[2] loop1[1] loop0[0]
73728 blocks super 1.2 512k chunks
unused devices: <none>
[/tmp]$ du -h 1.img 2.img 3.img
1.3M 1.img
1.6M 2.img
1.6M 3.img
随着数据不断写入,稀疏文件将增长至最大大小。它们将不是如果文件系统内的文件被删除,则缩小。