创建镜像文件的 RAID 阵列

创建镜像文件的 RAID 阵列

好的,我有三个图像文件/home/,它们分别位于不同的物理驱动器上:

image1.img

image2.img

image3.img

每个图像的大小相同,并且我想将图像本身放入 RAID0。

我该如何对它们进行 RAID?

编辑:使用 mdadm 我收到此错误:

在此处输入图片描述

编辑:输出cat /proc/mdstat

在此处输入图片描述

编辑:输出sudo gparted /dev/md0

在此处输入图片描述

答案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

如果您的系统符合基本要求,您可以使用zfs8 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

随着数据不断写入,稀疏文件将增长至最大大小。它们将不是如果文件系统内的文件被删除,则缩小。

相关内容