テスト目的でファイルに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)
:
ループデバイスは、データブロックをハードディスクや光学ドライブなどの物理デバイスではなく、ファイルシステムの通常のファイルブロックまたは他のブロックデバイスにマッピングするブロックデバイスです。
たとえば、参照してください。
- https://man7.org/linux/man-pages/man4/loop.4.html
- https://man7.org/linux/man-pages/man8/losetup.8.html
LVMは、ブロックデバイスが必要な項目をテストするのにも役立ちます。単一の物理パーティションに複数の論理ボリュームを作成することができ(またはその逆)、ボリュームの破壊/再生/サイズ調整もディスクパーティション化よりもはるかに簡単です。
答え2
できます。ファイルからループデバイスを作成し、そのデバイスを使用して配列を作成します。
$ dd if=/dev/zero of=mydev count=80 bs=1M
$ sudo losetup -f mydev
ブロックデバイスが必要なすべての環境で使用できる80Mデバイスが用意されています。
$ sudo losetup -l
現在のマッピングをお知らせします。