Mhddfs-いくつかの小さなパーティションを1つの大きな仮想ストレージに結合


30 GBの映画があり、それぞれ20GBのサイズのドライブが3台あるとします。では、どのように保存しますか?

もちろん、ビデオを2つまたは3つの異なるボリュームに分割して、手動でドライブに保存することができます。これは確かに良い考えではありません、それは手動の介入とあなたの多くの時間を必要とする徹底的な仕事です。

別の解決策は、ディスクのRAIDアレイを作成することです。 RAIDは、ストレージの信頼性と使用可能なディスク容量の損失で常に悪名高いままです。別の解決策はmhddfsです。

mhddfsは、複数のマウントポイントを1つの仮想ディスクに結合するLinux用のドライバーです。これはヒューズベースのドライバーであり、大規模なデータストレージに簡単なソリューションを提供します。すべての小さなファイルシステムを組み合わせて、ファイルや空き領域を含むメンバーファイルシステムのすべての粒子を含む単一の大きな仮想ファイルシステムを作成します。

すべてのストレージデバイスが単一の仮想プールを作成し、起動時にマウントできます。この小さなユーティリティは、どのドライブがいっぱいでどれが空であるかを処理し、どのドライブにデータをインテリジェントに書き込むかを処理します。仮想ドライブを正常に作成したら、SAMBAを使用して仮想ファイルシステムを共有できます。クライアントには、常に巨大なドライブと多くの空き領域が表示されます。

  1. Get attributes of the file system and system information.
  2. Set attributes of the file system.
  3. Create, Read, Remove and write Directories and files.
  4. Support for file locks and Hardlinks on single device.

LinuxへのMhddfsのインストール

Debianで同様のシステムに移植可能な場合、次のコマンドを使用してmhddfsパッケージをインストールできます。

# apt-get update && apt-get install mhddfs

RHEL/CentOS Linuxシステムでは、epel-repositoryをオンにしてから、以下のコマンドを実行してmhddfsパッケージをインストールする必要があります。

# yum install mhddfs

Fedora 22+システムでは、以下に示すようにdnfパッケージマネージャーで入手できます。

# dnf install mhddfs

場合によっては、mhddfsパッケージがepelリポジトリから入手できない場合は、以下に示すように、ソースからインストールしてコンパイルするために、次の依存関係を解決する必要があります。

  1. FUSE header files
  2. GCC
  3. libc6 header files
  4. uthash header files
  5. libattr1 header files (optional)

次に、以下に示すように最新のソースパッケージをダウンロードし、コンパイルします。

# wget http://mhddfs.uvw.ru/downloads/mhddfs_0.1.39.tar.gz
# tar -zxvf mhddfs*.tar.gz
# cd mhddfs-0.1.39/
# make

現在のディレクトリにバイナリmhddfsが表示されるはずです。 rootとして/ usr/bin /および/ usr/local/bin /に移動します。

# cp mhddfs /usr/bin/ 
# cp mhddfs /usr/local/bin/

これで、mhddfsを使用する準備が整いました。

Mhddfsを使用するにはどうすればよいですか?

1.現在私のシステムにマウントされているすべてのHDDを見てみましょう。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on

/dev/sda1       511M  132K  511M   1% /boot/efi
/dev/sda2       451G   92G  336G  22% /
/dev/sdb1       1.9T  161G  1.7T   9% /media/avi/BD9B-5FCE
/dev/sdc1       555M  555M     0 100% /media/avi/Debian 8.1.0 M-A 1

ここで「マウントポイント」の名前に注意してください。これは後で使用します。

2.ディレクトリ/mnt/virtual_hdd を作成します。このディレクトリには、これらすべてのファイルシステムが次のようにグループ化されます。

# mkdir /mnt/virtual_hdd

3.次に、すべてのファイルシステムをマウントします。 rootとして、またはFUSEグループのメンバーであるユーザーとして。

# mhddfs /boot/efi, /, /media/avi/BD9B-5FCE/, /media/avi/Debian\ 8.1.0\ M-A\ 1/ /mnt/virtual_hdd  -o allow_other

注:ここでは、すべてのHDDのマウントポイント名が使用されています。明らかに、あなたの場合のマウントポイントは異なります。また、「-o allow_other」オプションを使用すると、この仮想ファイルシステムが、作成者だけでなく他のすべてのユーザーにも表示されることに注意してください。

4.ここで、「df -h」を実行して、すべてのファイルシステムを確認します。今作成したものが含まれているはずです。

$ df -h

マウントされたドライブに対して行ったのと同じように、作成した仮想ファイルシステムに対してすべてのオプションを実行できます。

5.システムの起動ごとにこの仮想ファイルシステムを作成するには、/ etc/fstabファイルの最後にrootとして以下のコード行を追加する必要があります(この場合、マウントポイントによって異なります)。

mhddfs# /boot/efi, /, /media/avi/BD9B-5FCE/, /media/avi/Debian\ 8.1.0\ M-A\ 1/ /mnt/virtual_hdd fuse defaults,allow_other 0 0

6.新しいドライブをVirtual_hddに追加/削除する場合はいつでも、新しいドライブをマウントし、マウントポイント/ mnt/virtual_hddの内容をコピーし、ボリュームをアンマウントし、目的のドライブを取り出します。含める新しいドライブを削除またはマウントします。mhddfsコマンドを使用してVirtual_hddの下にファイルシステム全体をマウントします。これで完了です。

virtual_hddのアンマウントは、次のように簡単です。

# umount /mnt/virtual_hdd

アンマウントではなく、アンマウントであることに注意してください。多くのユーザーが間違って入力します。

それは今のところすべてです。私はあなたが読みたいと思う別の投稿に取り組んでいます。それまでは、しばらくお待ちください。Tecmintに接続します。以下のコメントで貴重なフィードバックをお寄せください。私たちを好きにして共有し、私たちが広まるのを手伝ってください。