web-dev-qa-db-ja.com

Ubuntuでmdadmを使用してRAID1パーティションを作成する

Ubuntu9.10ワークステーションにRAID1パーティションを設定しようとしています。

このデュアルブートシステムでは、Ubuntuは別のドライブから実行されています(/dev/sdc-非常に小さいSSDであるため、より多くのディスク容量が必要です)。それ以外に、Windows 7がインストールされている(Windowsのインストールをそのままにしておきたい)2つの従来の500 GBハードドライブがあり、スペースの約半分が未割り当てです。このスペースは、Linux用に単一の大きなRAID1パーティションをセットアップしたい場所です。

(私の理解では、これはソフトウェアRAIDですが、WindowsパーティションはハードウェアRAID上にあります-これが問題にならないことを願っています...編集:ピーターのコメントを参照してください。 Linuxでは両方のドライブが別々に表示されるので、これは問題にはならないはずです。)

両方のディスクで、/dev/sdaおよび/dev/sdb、fdiskを使用して、「Linux raid autodetect」タイプの同一の新しいパーティションを作成し、未割り当て領域を埋めました。

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          10       80293+  de  Dell Utility
/dev/sda2   *          11         106      768000    7  HPFS/NTFS
Partition 2 does not end on cylinder boundary.
/dev/sda3             106       30787   246439936    7  HPFS/NTFS
/dev/sda4           30787       60801   241095200+  fd  Linux raid autodetect

そこで、/ dev/sda4と/ dev/sdb4からRAIDアレイを作成したいと思います mdadmを使用 。しかし、私はそれが機能していないようです:

$ Sudo mdadm -Cv /dev/md0 -l1 -n2 /dev/sd{a,b}4
mdadm: Cannot open /dev/sda4: Device or resource busy
mdadm: Cannot open /dev/sdb4: Device or resource busy
mdadm: create aborted

マシンを起動した後、同じコマンドで次の結果が得られます。

$ Sudo mdadm -Cv /dev/md0 -l1 -n2 /dev/sda4 /dev/sdb4
mdadm: Cannot open /dev/sda4: No such file or directory
mdadm: Cannot open /dev/sdb4: No such file or directory

そのため、起動時にデバイスが自動的に検出されないようです... fdiskを使用すると、sdasdbの両方が正しく表示されます。

編集:もう一度再起動すると、デバイスが元に戻ります:

$ ls /dev/sd*
/dev/sda   /dev/sda2  /dev/sda4  /dev/sdb1  /dev/sdb3  /dev/sdc   /dev/sdc2
/dev/sda1  /dev/sda3  /dev/sdb   /dev/sdb2  /dev/sdb4  /dev/sdc1  /dev/sdc5

ただし、RAIDアレイを作成しようとすると、「デバイスまたはリソースがビジー」になります。かなり奇妙。どんな助けでもいただければ幸いです!

更新デバイスマッパー はこれと関係がありますか?どうやって/dev/mapperdmraidは、とにかくこのすべてのmdadmのものに関連していますか?どちらもソフトウェアRAIDを提供しますが、..違いますか?ここで私の無知をお詫びします。

/dev/mapper/3つのWindowsRAIDパーティション(sd {a、b} 1からsd {a、b} 3)に何らかの形で一致するデバイスファイルがいくつかあると思います。しかし、なぜこれらの配列が4つあるのかわかりません。

$ ls /dev/mapper/
control               isw_dgjjcdcegc_ARRAY1  isw_dgjjcdcegc_ARRAY3
isw_dgjjcdcegc_ARRAY  isw_dgjjcdcegc_ARRAY2  

解決策:私を正しい方向に導いたのは mdadm Wikipediaの記事 でした。すべてがどのように機能するかについての詳細を投稿しましたこの回答

6
Jonik

いよいよ進歩!

mdadmのウィキペディアエントリ が示唆しているように、dmraidは確かに原因でした。 I dmraidを削除しようとしました パッケージ(そしてupdate-initramfsを実行していますが、それが適切かどうかはわかりません)。

その後、再起動すると、/dev/mapperの下のデバイスがなくなります(これは問題ありません。LinuxのWindows NTFSパーティションにアクセスする必要はありません)。

$ ls /dev/mapper/
control

そして、最も重要なのは、mdadm --createが機能することです!

$ Sudo mdadm -Cv -l1 -n2  /dev/md0 /dev/sda4 /dev/sdb4
mdadm: size set to 241095104K
mdadm: array /dev/md0 started.

/proc/mdstatmdadm --detail /dev/md0を確認したところ、どちらも新しく作成された配列ですべてが正常であることを示しています。

$ cat /proc/mdstat
[..] 
md0 : active raid1 sdb4[1] sda4[0]
      241095104 blocks [2/2] [UU]
      [==========>..........]  resync = 53.1% (128205632/241095104) 
        finish=251.2min speed=7488K/sec      

次に、新しいパーティションにファイルシステムを作成しました。

$ Sudo mkfs.ext4 /dev/md0 

そして最後に、/optの下に物をマウントしました(&更新された/etc/fstab)。 (もちろん、ここでもLVMを使用することもできましたが、率直に言って、この場合、その意味はわかりませんでした。これを機能させるために、すでに十分な時間を無駄にしています...)

これで、RAIDパーティションを使用する準備が整い、十分なディスク容量が得られました。 :-)

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdc5              70G   52G   15G  79% /
/dev/md0              227G  188M  215G   1% /opt

Update:私のこのRAIDデバイスにはまだいくつかの問題があります。再起動すると、fstabにあるのにマウントに失敗し、(再起動後)非アクティブ状態のように見えて手動でもマウントできない場合があります。 フォローアップの質問 私が投稿したものを参照してください。

5
Jonik
Sudo mdadm -Cv /dev/md0 -l1 -n2 /dev/sd{a,b}4
mdadm: Cannot open /dev/sda4: Device or resource busy
mdadm: create aborted

このトリックは私のために働いた:チェック/proc/mdstat:そこに記載されているデバイス名に注意してください。 md_d0、次に:

Sudo mdadm --stop /dev/md_d0

これで、createコマンドが機能するはずです。

2
JoTraGo

ばかげた答えかもしれませんが、-sd {a、b} 4がubuntuによってどこにもマウントされていないのは確かですか?

そして、ハードウェアRAIDについてあなたが言うように、あなたはどのマザーボードを持っていますか?ここで邪魔になるのは、実際にはソフトウェアRAIDかもしれません。

1
silk