如何在Linux上使用mhddfs将多个分区连接在一起以形成一个较大的分区

时间:2020-01-09 10:42:36  来源:igfitidea点击:

我有三个旧硬盘驱动器:大小分别为60、60和120 GB。
还有200 GB的视频文件,如何将它们存储在这些驱动器上。
如何将我的所有文件存储在三个硬盘上,而不将文件拆分成多个部分或者创建RAID阵列?
如何在Linux操作系统上将几个安装点(分区)组合到单个安装点中?
最简单,最快的解决方案是在Linux操作系统上使用mhddfs驱动程序。
它是基于保险丝的文件系统,用于将多个安装点统一为一个。

mhddfs(保险丝)文件系统允许将多个安装点(或者目录)统一到单个安装点。
因此,模拟了一个大文件系统,这使得可以组合多个硬盘驱动器或者网络文件系统。
该系统类似于unionfs,但是它可以选择具有最大可用空间的驱动器,并为应用程序透明地在驱动器之间移动数据。
在写入文件时,将它们写入第一个硬盘,直到硬盘具有可用空间(请参阅mlimit选项),然后将它们写入第二个硬盘,然后写入第三个硬盘,以此类推。
大硬盘如果在写入hdd1时发生溢出,则已写入的文件内容将被传输到包含足够文件可用空间的hdd。
传输是动态进行的,对于正在编写的应用程序是完全透明的。
因此,此行为模拟了一个大文件系统。

在本教程中,您将学习如何在Linux操作系统上安装和配置MHDDFS虚拟存储池。

设置示例

将三个硬盘驱动器分别配置为/dev/sdb1,/dev/sdc1和/dev/sdd1:

# df

我的3个硬盘驱动器安装在/disk1,/disk2和/disk3上

我的/disk {1,2,3} /目录中的文件如下:

# ls -l /disk{1,2,3}

输出示例:

/disk1:
total 28
drwxr-xr-x 2 root root  4096 Aug  8 14:25 app1
drwx------ 2 root root 16384 Aug  8 14:20 lost+found
-rw-r--r-- 1 root root  7545 Aug  8 14:26 resume.txt
 
/disk2:
total 28
drwxr-xr-x 2 root root  4096 Aug  8 14:25 app2
drwx------ 2 root root 16384 Aug  8 14:20 lost+found
-rw-r--r-- 1 root root  6303 Aug  8 14:26 party.jpg
 
/disk3:
total 40
drwxr-xr-x 2 root root  4096 Aug  8 14:25 app3
drwx------ 2 root root 16384 Aug  8 14:21 lost+found
-rw-r--r-- 1 root root 17080 Aug  8 14:26 output.log

安装

让我们看看如何在不同的Linux发行版上安装mhddfs软件包。

在Debian/Ubuntu/Mint Linux&Co上安装mhddfs软件包

执行以下apt-get命令以安装mhddfs:

# apt-get install mhddfs

在Fedora/RHEL/CentOS Linux&Co上安装mhddfs软件包

打开EPEL repo并执行以下命令:

# yum install mhddfs

Fedora Linux v22.x +用户执行以下命令:

# dnf install mhddfs

配置

首先,创建一个名为/virtual.data的新安装点目录,执行:

# mkdir /virtual.data

要将所有三个驱动器连接在一起,请执行:

# mhddfs /disk1,/disk2,/disk3 /virtual.data -o allow_other

现在,您可以验证/virtual.data/作为单个bing卷,即多个目录组合在一起,模拟一个可以合并多个硬盘驱动器或者远程文件系统的单个大卷:

# df

输出示例:

Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/sda1             39428520 6109320  31293268  17% /
udev                     10240       0     10240   0% /dev
tmpfs                   811792    9084    802708   2% /run
tmpfs                  2029472     144   2029328   1% /dev/shm
tmpfs                     5120       4      5116   1% /run/lock
tmpfs                  2029472       0   2029472   0% /sys/fs/cgroup
tmpfs                   405896      16    405880   1% /run/user/1000
/dev/sdb1              4061888    8196   3827644   1% /disk1
/dev/sdc1              4061888    8196   3827644   1% /disk2
/dev/sdd1              4061888    8208   3827632   1% /disk3
/disk1;/disk2;/disk3  12185664   24600  11482920   1% /virtual.data

另外,记下ls -l命令输出:

# ls -l /virtual.data/

现在,您可以根据需要复制文件或者创建新目录:

# cd /virtual.data/
# mkdir Music
# rsync -avp /somewhere/* Music/
....
..

更新/etc/fstab

更新/etc/fstab文件,如下所示:

mhddfs#/disk1,/disk2,disk3 /virtual.data/ fuse defaults,allow_other 0 0

如何卸载基于mhddfs的保险丝文件系统

使用umount命令分离/virtual.data/文件系统:

# umount /virtual.data/