web-dev-qa-db-ja.com

新しいRAIDアレイは自動組み立てされず、起動の問題が発生します

私はこれを尋ねたところです 質問 新しいRAID1アレイをインストールした後、起動できませんでした。ターミナルにたどり着くことができましたが、それを整理してみると、自分の問題はfstabのブートの問題ではなく、mdadmの自動アセンブルの問題ではないことに気付きました。

システムに3つのRAID1アレイがあり、/dev/md1/にマウントされ、/dev/md0swapとしてマウントされています。これらは現在問題なく実行されています。これらの配列は作成しませんでした。 このガイド を使用してext4にフォーマットした新しいRAID1アレイ/dev/md2を作成しました。その際、新しいパーティション(唯一のもの)をmd2p1( guideも同様に名前の付いたパーティションを作成しましたが、fdiskは明示的に名前を要求しませんでした)。

この新しいアレイを作成すると、私は手動でマウントすることができました

mount -t ext4 /dev/md2p1 /srv/Waveforms

そして、これはうまくいきました。私はディレクトリにアクセスすることができ、それに約700 GBのデータを追加しました。これを行った後、

cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md2 : active raid1 sdc1[0] sdd1[1]
      1953423552 blocks [2/2] [UU]

md1 : active raid1 sda2[0] sdb2[1]
      961136576 blocks [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
      15624128 blocks [2/2] [UU]

unused devices: <none>

なので、コンピュータはアレイを明確に認識します。次に使用しました

Sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf 

そして今ファイルは含んでいます

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

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

# 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/md0 level=raid1 num-devices=2 UUID=afa7ccee:df4dfa79:a84dbc05:35401226
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=a0c526cc:6de93504:c8b94301:85474c49
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=1ac720e1:192b2c38:f6e0357b:f3e0074f

# This file was auto-generated on Thu, 10 Mar 2011 00:57:55 -0700
# by mkconf $Id$
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=0.90 UUID=afa7ccee:df4dfa79:a84dbc05:35401226
ARRAY /dev/md1 level=raid1 num-devices=2 metadata=0.90 UUID=a0c526cc:6de93504:c8b94301:85474c49
ARRAY /dev/md2 level=raid1 num-devices=2 metadata=0.90 UUID=1ac720e1:192b2c38:f6e0357b:f3e0074f

ここで2つの注意点があります。元のファイルにはmetadata=00.90が含まれていましたが、メタデータが認識されないという小さな問題が解決されたため、これをmetadata=0.90に変更しました(グーグル検索で簡単に説明します)。

2つ目の注意点は、autoがyesに設定されていることです。つまり、システムは起動時にすべてのアレイを自動的にアセンブルする必要があります。私がまったくブートできるという事実は、/ dev/md1がアセンブルされたことを意味するはずなので、これは事実であるに違いありません。

とにかく、今問題。再起動すると、マシンがハングし、

fsck from util-linux-ng 2.17.2
/dev/md1: clean, 3680768/60071936 files, 208210802/240284144 blocks

私のfstabは現在、

# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/md1 during installation
UUID=1d3cb392-f522-485b-8516-a7791fc23c4d /               ext4    errors=remount-ro 0       1
# swap was on /dev/md0 during installation
UUID=6eb8e6f2-3166-4f77-883c-26268d636b0b none            swap    sw              0       0
/dev/md2p1 /srv/Waveforms            ext4    defaults,noauto              0       0

blkid
/dev/sda1: UUID="afa7ccee-df4d-fa79-a84d-bc0535401226" TYPE="linux_raid_member" 
/dev/sda2: UUID="a0c526cc-6de9-3504-c8b9-430185474c49" TYPE="linux_raid_member" 
/dev/sdb1: UUID="afa7ccee-df4d-fa79-a84d-bc0535401226" TYPE="linux_raid_member" 
/dev/sdb2: UUID="a0c526cc-6de9-3504-c8b9-430185474c49" TYPE="linux_raid_member" 
/dev/sdc1: UUID="1ac720e1-192b-2c38-f6e0-357bf3e0074f" TYPE="linux_raid_member" 
/dev/sdd1: UUID="1ac720e1-192b-2c38-f6e0-357bf3e0074f" TYPE="linux_raid_member" 
/dev/md0: UUID="6eb8e6f2-3166-4f77-883c-26268d636b0b" TYPE="swap" 
/dev/md1: UUID="1d3cb392-f522-485b-8516-a7791fc23c4d" TYPE="ext4" 
/dev/md2p1: UUID="867ee91e-527e-435b-b6bc-2f6d89d2d8c6" TYPE="ext4" 

以前はUUID=867ee91e-527e-435b-b6bc-2f6d89d2d8c6の代わりに/dev/md2p1を使用していましたが、結果はありませんでした。また、このmd2p1を使用して、デフォルトとしてオプションを試し、defaults + noatime、errors = remount-roを試しましたが、どれも機能しませんでした。

Fstabを変更して新しいmd2p1行を除外することで起動できます。この構成で起動した後、

cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sda1[0] sdb1[1]
      15624128 blocks [2/2] [UU]

md1 : active raid1 sda2[0] sdb2[1]
      961136576 blocks [2/2] [UU]

したがって、システムはmd2をアセンブルしていません。その後、実行できます

Sudo mdadm --assemble --scan
[Sudo] password for zach: 
mdadm: /dev/md2 has been started with 2 drives.

どこからでも

cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md2 : active raid1 sdc1[0] sdd1[1]
      1953423552 blocks [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
      15624128 blocks [2/2] [UU]

md1 : active raid1 sda2[0] sdb2[1]
      961136576 blocks [2/2] [UU]

上記のように手動でマウントできます。したがって、問題はRAID1アレイが起動時に組み立てられず、fstabによって認識されないため、リカバリモード以外ではまったく起動できないことです。

this postを見つけましたが、答えはautoをyesに設定して、起動時にアレイを自動的にアセンブルするように思われるため、私には当てはまらないと思います。私の構成は既にこれを行うように設定されているので、途方に暮れています。

その投稿には当てはまると思われる答えがありますが、彼の解決策が何であったのかわかりません。これは、Deplicatorによる投稿です。

再起動後、/ dev/md0が表示されませんでした。 mdadm --detail --scanを再度実行すると(結果をファイルに入れずに)、

ARRAY /dev/md/ubuntu:0 metadata=1.2 name=ubuntu:0 UUID=a8a570c6:96f61865:05abe131:5c2e2f7e

また、手動で/ dev/md/ubuntu:0をマウントすると機能します。結局、それがfstabファイルにも入れました。

Fstabには何が入れられましたか?問題は、ブート時にmd2をアセンブルしていないため、fstabがmd2p1パーティションをマウントしようとするたびにハングします。これは実際にはmd2がパーティショニングされているが他はそうではないことに関連している可能性がありますが、なぜこれが当てはまるのかはわかりません。

編集:念のため

uname -a
Linux ccldas2 2.6.32-74-server #142-Ubuntu SMP Tue Apr 28 10:12:19 UTC 2015 x86_64 GNU/Linux
7
barriboy

2つの問題が思い浮かぶ

  1. mdadm.confに重複した配列定義があります。 # definitions of existing MD arraysに続く3行のブロックを置換(またはコメントアウト)して、最新のスキャンで各配列が宣言されるようにします。

  2. 起動時に構築できないRAIDアレイの一般的なシナリオは、initramfsで更新されていないか、起動時に実行するように設定されていないかのいずれかです。 あなたが参照したガイド を介した本当に簡単なスキャンでは、これらの手順に言及していないようですが、私は間違っている可能性があります。 Debianシステムでは、コマンドは次のとおりです。

    dpkg-reconfigure mdadm    # Choose "all" disks to start at boot
    update-initramfs -u       # Updates the existing initramfs
    
11
roaima

mdadm.confでは、UUIDのみが必要です。

ARRAY /dev/md0 UUID=d8b8b4e5:e47b2e45:2093cd36:f654020d

他のすべての条件は、RAIDの組み立てを妨げることがあります。

(非推奨)自動アセンブリの場合、次のものが必要です。

  • パーティションタイプfd
  • メタデータ0.90
  • initramfsがまったくないか、initramfsがraidautorun /dev/diskを実行していることを確認してください

自動アセンブリが失敗した場合、dmesgは何が問題だったかに関するいくつかのポインタを保持する必要があります。

一般に、可能であれば(そして、とにかくinitramfsが関係している場合)、新しいデフォルトの1.2メタデータ形式に固執し、mdadmmdadm.confが設定されたinitramfsを設定する必要があります。

1
frostschutz