ブロックデバイスの代わりにファイルにRAIDアレイを作成する

ブロックデバイスの代わりにファイルにRAIDアレイを作成する

テスト目的でファイルにRAIDアレイを作成できますか?

レベル1のRAIDを作成したいが、これを行う10個のブロックデバイスがなく、ブロックデバイスの代わりにファイルを使用してシミュレートしたいとします。

これまで私がしたことは次のとおりです。

fallocate -l 1M disk1
fallocate -l 1M disk2
mkfs.ext4 disk1
mkfs.ext4 disk2
sudo mdadm --create --assume-clean --level=1 --raid-devices=2 /dev/md0 ./disk1 ./disk2

しかし、エラーが発生します。

mdadm: ./disk1 is not a block device.

どんなアイデアがありますか?

答え1

あなたが探しているものはループデバイスと呼ばれます。ファイルがデバイス/dev/loop0などで表示されます。その後、ファイルシステムとしてマウントでき、mdで使用する必要があります。マニュアルページからloop(4)

ループデバイスは、データブロックをハードディスクや光学ドライブなどの物理デバイスではなく、ファイルシステムの通常のファイルブロックまたは他のブロックデバイスにマッピングするブロックデバイスです。

たとえば、参照してください。

LVMは、ブロックデバイスが必要な項目をテストするのにも役立ちます。単一の物理パーティションに複数の論理ボリュームを作成することができ(またはその逆)、ボリュームの破壊/再生/サイズ調整もディスクパーティション化よりもはるかに簡単です。

答え2

できます。ファイルからループデバイスを作成し、そのデバイスを使用して配列を作成します。

$ dd if=/dev/zero of=mydev count=80 bs=1M
$ sudo losetup -f mydev

ブロックデバイスが必要なすべての環境で使用できる80Mデバイスが用意されています。

$ sudo losetup -l

現在のマッピングをお知らせします。

関連情報