画像ファイルのRAIDアレイを作成する


9

では、3つのイメージファイル/home/をに用意しました。それぞれのイメージファイルは、異なる物理ドライブにあります。

image1.img

image2.img

image3.img

各イメージは同じサイズであり、イメージ自体をRAID0に配置したいと考えています。

それらをRAID化する方法を教えてください。

編集:mdadmを使用すると、次のエラーが発生します:

ここに画像の説明を入力してください

編集:出力 cat /proc/mdstat

ここに画像の説明を入力してください

編集:出力 sudo gparted /dev/md0

ここに画像の説明を入力してください


私が正しく理解している場合、イメージファイルのサイズの3倍で、3つのイメージファイル間で削除されるRAID-0ドライブが必要ですか?
レモンスライス'25

はい。アイデアは、実際にドライブをRAIDに配置せずに複数のドライブにまたがることができるRAIDユニットを作成できるようにすることです。
ダニエル

cat /proc/mdstatこのエラーについて何を言いますか?
レモンスライス2015

質問の編集を参照してください
ダニエル

画像ファイルの下のメディアは何ですか?エラーメッセージに基づいて、シークをサポートしていません...
lemonslice

回答:


8

LinuxソフトウェアRAIDをインストールするには、mdadmパッケージをインストールする必要があります。

sudo apt-get install mdadm

3つのイメージファイルからソフトウェア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

コマンドmdadmが見つかりません
ダニエル

パッケージをインストールする必要がありますmdadm
レモンスライス2015

質問の編集を参照してください
ダニエル

これは、mdadmの新規インストールです。
ダニエル

1

システムが使用できる基本要件に一致する場合zfs8 GB RAM、64ビットシステム):

リポジトリを追加してパッケージリストを更新します。

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に配置したすべてのものが自動的に圧縮されます。


「E:パッケージubuntu-zfsが見つかりません」
Daniel

そして、これはisoファイルでも機能するはずですよね?
ダニエル

リポジトリを追加する方法の説明を追加するのを忘れていました。編集しました。
NiclasBörlin2015

isoファイルの意味がわかりません...この手順では、問題の3つのファイルにストライプされた空のファイルシステムを作成します。ストライプパーティションで何らかの方法でアクセスしたいisoファイル内のデータがありますか?
NiclasBörlin2015

いいえ、たとえばDVD-RWなどでそれができるかどうか知りたかっただけです。
ダニエル

0

文字通り、それぞれの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

スパースファイルは、データが書き込まれるときに、最大サイズまで大きくなります。ファイルシステム内のファイルが削除されても、縮小されません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.