web-dev-qa-db-ja.com

Ubuntu Server 12.04、MDADMデバイス番号が突然変更されましたか?

私は本当に迷惑なバグに直面しています、mdadmでソフトウェアRAID1をセットアップしましたが、この結果でセットアップはうまくいきました

/dev/md/lucas.mgscreativa.com.ar:0

また、このようにmdadm.confを設定しました

DEVICE /dev/sda /dev/sdb

# auto-create devices with Debian standard permissions CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts MAILADDR root

# definitions of existing MD arrays ARRAY /dev/md/lucas.mgscreativa.com.ar:0 metadata=1.2
name=lucas.mgscreativa.com.ar:0
UUID=c913486a:e62c7ea1:cfb98b6b:253d1f62

そして、このように設定されたfstab

/dev/md/lucas.mgscreativa.com.ar:0 /media/data     ext4
defaults,noatime      0       0

しかし、ある日、私のアレイ名が突然/dev/md/lucas.mgscreativa.com.ar:0から/ dev/md0に変更されたため、fstabとmdadm.confでいくつかの変更を行いました(もちろん、試行錯誤の時間)とすべてがうまくいきましたが、今日、再び、MD番号が/ dev/md0から/ dev/md127に変更されました!!!

何が起きてる?これはバグでしょうか。

サーバーが問題なく機能するようにMD番号を修正する方法はありますか?

ありがとう!

4
razor7

まず、おそらくアレイにエラーがあります。 ステータスをすぐに確認する必要があります。

例:

root@locutus:~# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Fri Jun  1 15:30:31 2012
     Raid Level : raid10
     Array Size : 1953119232 (1862.64 GiB 1999.99 GB)
  Used Dev Size : 976559616 (931.32 GiB 1000.00 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Sun Nov 25 21:39:44 2012
          State : clean 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 512K

           Name : locutus:0  (local to Host locutus)
           UUID : b81ac63a:51a9b01c:c01812ec:86c534c4
         Events : 182

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       49        1      active sync   /dev/sdd1
       2       8       17        2      active sync   /dev/sdb1
       3       8       33        3      active sync   /dev/sdc1

エラーが発生している可能性が非常に高くなります。エラーに対処する必要があります。

次に、devicenameを使用する代わりにUUIDを使用するように、fstabの設定方法を変更する必要があります。アレイ(またはアレイの下のパーティション)でblkidコマンドを使用してUUIDを取得し、そのUUIDを使用して/ etc/fstabにマウントします。

例:

root@locutus:~# blkid /dev/mapper/vg0-root
/dev/mapper/vg0-root: UUID="61998221-7b39-49cd-83f7-62fda973218c" TYPE="ext4" 

この情報を使用して、ルートの/ etc/fstabエントリを次のように設定します。

UUID=61998221-7b39-49cd-83f7-62fda973218c    /    ext4    defaults,errors=remount-ro    0    1

これを実行すると、デバイス名が変更されたかどうかに関係なく、システムはパーティションを検出します(たとえば、ドライブケーブルが交換された場合)。

/etc/mdadm/mdadm.confを設定して、特定の場所にある特定のドライブを必要とせずに自動的に物事を見つける必要もあります。

# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays
ARRAY /dev/md/0 metadata=1.2 UUID=c913486a:e62c7ea1:cfb98b6b:253d1f62 name=lucas.mgscreativa.com.ar:0

このCONFファイルに指定されたデバイスがないことに注意してください。これは機能であり、バグではありません。このようにmdadm.confを設定すると、システムは接続されているすべてのドライブを自動的にスキャンして、アレイに属するものを探し、それらをすべて/ dev/md0としてアセンブルします。

5
Jim Salter

この答えについては、アレイが無傷であると仮定しています-故障したディスクではなく、他のエラー状態ではなく、単に「デバイス番号」の変更だけです。

通常は、アレイを停止する必要があります。

# mdadm --verbose --misc --stop /dev/md127

... /etc/mdadm/mdadm.confの配列を参照する行を修正します(つまり、デバイスの名前を調整します)。次に、次のように組み立てます。

# mdadm --verbose --assemble --update=super-minor --run /dev/md0 /dev/sdaX /dev/sdbX

(物理デバイスへの参照をケースに合わせて調整します)。

次のような出力が表示されるはずです。

mdadm: looking for devices for /dev/md0
mdadm: updating superblock of /dev/sdaX with minor number 0
mdadm: /dev/sdaX is identified as a member of /dev/md0, slot 0.
mdadm: updating superblock of /dev/sdbX with minor number 0
mdadm: /dev/sdbX is identified as a member of /dev/md0, slot 1.
mdadm: added /dev/sdbX to /dev/md0 as 1
mdadm: added /dev/sdaX to /dev/md0 as 0
mdadm: /dev/md0 has been started with 2 drives.

また、詳細を照会すると、更新された「Preferred Minor」フィールドが表示されます。確認する:

# mdadm -Q -D /dev/md0|grep "Preferred"
Preferred Minor : 0

警告:また、必ずデバイスをマウントして書き込みを行ってください。そうしないと、変更が有効にならない場合があります。また、super-minorは古いメタデータ形式に固有のようです。

注:これで本来の意味で「名前」に影響を与えることができるかどうかはわかりません。ただし、作成された/dev/mdX名のXに影響を与える可能性があります。

4
0xC0000022L