web-dev-qa-db-ja.com

再起動するたびにRaid1が劣化しました

セットアップ後、cat/proc/mdstatの出力は次のようになります。

proxmox:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdc2[1] sdb2[0]
      293024832 blocks [2/2] [UU]

unused devices: <none>

また、raid1を新しくセットアップした後、次のようになりました。

proxmox:~# mdadm --examine --scan
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=fbda4051:61cbc27f:7f2b1f39:e153e83f

ただし、再起動後、cat/proc/mdstatは次のように出力します。

proxmox:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active (auto-read-only) raid1 sdc[1]
      293024832 blocks [2/1] [_U]

unused devices: <none>

なぜ今sdc1を使用しているのですか?

また、今私は得る:

proxmox:~# mdadm --examine --scan
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=fbda4051:61cbc27f:7f2b1f39:e153e83f
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=fbda4051:61cbc27f:9822ee23:9b948649


proxmox:~# dmesg | grep md0
md/raid1:md0: active with 1 out of 2 mirrors
md0: detected capacity change from 0 to 300057427968
 md0: p1 p2
md0: p2 size 586049840 exceeds device capacity, limited to end of disk

/ dev/md0の2つのパーティションはどこから来たのですか?私はそれらを作ったことがありません。また、sdc1とsdc2は/ devツリーにリストされていません

Fdiskの出力は次のとおりです。

proxmox:~# fdisk -l /dev/sdb

Disk /dev/sdb: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x3bd84a48

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1           2       10240   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sdb2               2       36482   293024920   fd  Linux raid autodetect
Partition 2 does not end on cylinder boundary.

proxmox:~# fdisk -l /dev/sdc

Disk /dev/sdc: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x371c8012

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1           2       10240   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sdc2               2       36482   293024920   fd  Linux raid autodetect
Partition 2 does not end on cylinder boundary.

ちょっとした情報:Debian lenny64ビットであるProxmoxv1.9を実行しているサーバー。 sdaはシステムハードドライブ(ハードウェアRAID)です。 sdbとsdcは、300GBの新しいRaptorドライブです。

2
Sparctus

まず、接続、ケーブル、正しく装着されたカードなどの物理ハードウェアを確認します。ディスク自体については、SMART/dev/sdbのデータをチェックして、ディスク自体が定期的に障害が発生していないことを確認します。WesternDigitalRaptorsは高速ですが、障害が発生しやすいため、障害が1回発生しました。どこからともなく私に(SMARTデータはそれを予測していません)。smartctlを使用してSMARTデータを読み取り、テストを実行します。これはsmartmontoolsパッケージに含まれています。

apt-get install smartmontools

データをプルして、ログに記録された異常またはエラーを探します。

smartctl -a /dev/sdb

最後に、手動のセルフテストを実行します。これには約2分かかります。 longshortの代わりに使用でき、より徹底的ですが、はるかに時間がかかります(「数十分」)。

smartctl -t short /dev/sdb

テストが完了したら、結果を確認します。

smartctl -l selftest /dev/sdb

すべてが正常に戻ったら、mdadmスタックのデバッグに進むことができます。

RAIDデバイスでは、パーティションの配置が少し奇妙です。これらのデバイスをRAID専用にする場合は、パーティションテーブルはまったく必要ありません。データがないと仮定すると、データを単純に保ち、ブロックデバイスを直接使用することをお勧めします。 fdiskでは、次のように表示されます。

Disk /dev/sdb: 300.0 GB, 300069052416 bytes
255 heads, 63 sectors/track, 36481 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table

パーティショニングの問題を排除し、最初から始めるには、各ディスクの先頭にいくつかのゼロを追加します。

dd if=/dev/zero of=/dev/sdb count=128 bs=4096k

/ dev/sdcに対して繰り返します。次の2つのデバイスを使用してアレイを作成します。

mdadm --create --raid-devices=2 --level=raid1 --bitmap=internal --assume-clean --name=RAID1 /dev/sdb /dev/sdc

ディスク関連の出力がないかdmesgを確認することを忘れないでください!

2
Joel

ProxmoxはソフトウェアRAIDをサポートしていません:

本番環境では、ハードウェアRAIDのみが可能です。カスタムソフトレイドを使用する場合、現在実行し、将来のバージョンで問題が発生すると、機能しなくなります。 Proxmox VEがソフトレイドで動作しないと人々が信じていないのは非常に興味深いことです-繰り返しますが、私たちは開発者であり、それを知っておく必要があります!?

P.S.開発者は、それが機能しない「理由」を説明しているようには見えません...それは単に機能しないと言っているだけです。

http://forum.proxmox.com/threads/838-Install-on-Soft-Raid?p=4406#post4406

「この」問題がProxmoxによるものでなくても、最終的には機能しないため、通常は努力する価値はありません...

0
Soviero