web-dev-qa-db-ja.com

MDデバイスの名前を変更する方法(mdadm)

mdadm -Esvの出力は次のとおりです。

ARRAY/dev/md127 level = raid0 num-devices = 2 UUID = d89d9d45:9a420812:c44c77eb:7ee19756 devices =/dev/sdb8、/ dev/sda8

これはv0.90アレイです。質問は次のとおりです。mdadmは、対応するデバイスの名前をどのように割り当て、それをどこに保存し、どのように変更しますか?

私が達成したいのはmd127を私の好みとは異なるものに名前変更することです。

26
XXL

警告:ここに記載されているアドバイスに従う前にバックアップを作成してください:-)

オプション1:

編集/etc/mdadm.conf

ARRAY/dev/md1 level = raid0 num-devices = 2 UUID = d89d9d45:9a420812:c44c77eb:7ee19756 devices =/dev/sdb8、/ dev/sda8

自分の出力を入力し、127を1に変更しました。再起動すると、md1になります。

オプション#2:

ない場合mdadm.conf、それをmd1automagicallyにアセンブルする場合は、次のようにします。

mdadmには、「優先マイナー」という概念があります。例えば。特定のマイナー番号が配列に割り当てられ、スーパーブロックに格納されると、この配列が自動アセンブルされるたびに使用されます。これを確認してください:

mdadm --detail/dev/md127

「Preferred Minor:127」と表示されている場合、これは問題です。優先マイナーを更新する必要があります。これを行う方法:

優先マイナーを変更することはできません。これがルートデバイスの場合は、リカバリまたはシングルユーザーモードで起動する必要があります。その後、ファイルシステムをアンマウントします。

mdadm --stop/dev/md127
mdadm --assemble --update = super-minor/dev/md1/dev/sdb8/dev/sda8

次に、md127をmd1としてアセンブルします。そして、それは将来もこのままであるはずです。

1.xアレイの場合:

新しい配列は「優先マイナー」番号を格納せず、「-update = super-minor」をサポートしません。代わりに、次のようにして変更できる名前を保存します。

mdadm --stop/dev/md127
mdadm --assemble --update = name --name = 2/dev/md1/dev/sdb8/dev/sda8

または、「hostname:2」を指定して、すべてを他の配列と一貫性を保つことができます(現在の名前を--detailで検索します)。

34
haimg

Haimgの優れた答えに追加するだけです。 mdadm.confを使用していても、システム(少なくともUbuntuの場合)がmdadm.confを読み取る前にアレイを自動アセンブルする場合があります。したがって、それが見つかると、とにかく組み立てられたばかりの配列を無視します。

これを説明するには、Sudo update-initramfs -uを実行して適切なinitrdを再生成します。

関連リンク: http://ubuntuforums.org/showthread.php?t=1764861%29%3a

13
Wtower

他の答えはどれもうまくいきませんでしたが、Centosでは次のガイドを使用しました。問題は、/ etc/mdadm.confは実際にはブート時に使用されず、新しいカーネルがインストールされるか、initramfsが手動で再作成されたときにのみ更新されることです。したがって、基本的には次のものが必要です。

dracut --force

ソース: http://realtechtalk.com/mdadm_change_wrong_device_name_md127_fix_and_solution_in_Linux-1783-articles

3
Areeb Soo Yasir

バージョン0.9のスーパーブロックには名前がありません。バージョン1で導入されました。/dev/md127はアレイの名前ではなく、アレイのデバイスファイルの名前です。これは、RAIDブロックデバイスのマイナー番号の直接の結果です。このマイナー番号は、アレイの組み立て時に任意に選択されます。

UUIDは、必要に応じて、アレイの一意の識別子を提供します。人間が読み取れる名前または構造化された名前を使用する場合は、LVM物理ボリュームをアレイに配置します。

haimg完全にこれに答え、それは私にとってもうまくいきました。

追加したいのはCentos 7では、 'dracut -f'を実行してinitrdを更新する必要があることだけです。 (他の一部のユーザーもこれを指摘していますが、コマンドをy'allと共有するのが賢明だと思いました。

1
Karan Bhalla