web-dev-qa-db-ja.com

劣化したソフトウェアRAID1を使用して、RHEL / CentOS / SL7を正常に起動するように誘導するにはどうすればよいですか。

新しいサーバーをセットアップしました(このバージョンのLinuxを初めて使用しました)。古いマシンに160GBの空のSATAHDDのペア(1つはSeagateと1つはWDCですが、LBAセクターの数はまったく同じです)をインストールし、Scientific Linux 7.0(ブランド変更されたRHEL)をRAID 1(ソフトウェア)にインストールすることにしました。ミラーリングされた)構成。

最初の問題は、SL/RHELインストーラー(Anaconda)にRAID1用の2つのドライブをセットアップする方法がわからなかったことです。そこで、PartedMagic CDから起動し、それを使用してパーティショニングを行いました。

2つのドライブを同じように分割しました。各ドライブには、_/_にマウントされるRAID1 + ext4用の大きなパーティション、_/safe_にマウントされるRAID1 + ext3用の小さな(現在未使用の)パーティション、および3GBのLinuxスワップパーティションがあります。 fdiskを使用して各ドライブのRAIDパーティションのタイプをFDに変更し、mdadmを使用してRAIDアレイを構築しました。

_mdadm --create --verbose /dev/md0 --raid-devices=2 --level=1 /dev/sda1 /dev/sdb1
mdadm --create --verbose /dev/md1 --raid-devices=2 --level=1 /dev/sda2 /dev/sdb2
_

次に、シャットダウンしてSL DVDを起動し、インストールを再試行しました。今回、インストーラーはRAID1アレイを認識し、それぞれext4とext3用にフォーマットし、スムーズにインストールしました。

この時点で、すべてが問題ないように見えました。シャットダウンして再起動すると、正常に起動しました。ここまでは順調ですね。

そこで、RAID1の機能をテストしました。コンピューターをシャットダウンし、ドライブの1つを取り外して、起動しようとしました。 RAIDアレイの劣化に関するエラーメッセージが表示され、通常のログイン画面が表示されることを期待していました。しかし、それはうまくいきませんでした。代わりに私は得ました:

_Welcome to emergency mode! After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, "systemctl default" to try again
to boot into default mode.
Give root password for maintenance
(or type Control-D to continue):
_

どのドライブが欠落しているかに関係なく、同じことが起こります。

それはよくないね!ミラーリングされたドライブの目的は、ドライブの1つに障害が発生した場合でも、サーバーが実行を継続できるようにすることです。

Ctrl-D 同じ「_Welcome to emergency mode_」画面の繰り返しに戻るだけです。ルートパスワードを入力してから「_systemctl default_」も入力します。

それで私は実験を試みました。ブートメニューで押しました e カーネルのブートパラメータを編集し、「_rhgb quiet_」を「_bootdegraded=true_」に変更してからブートします。喜びはありません。

これにより、さらに多くのステータスメッセージが表示されましたが、ドライブがない場合にマシンを正常に起動できませんでした。それでも同じ「_Welcome to emergency mode_」画面で停止しました。以下は、Seagateドライブを取り外し、WDCドライブを残した状態で見たものです。最後の数行は次のようになります(「....」は入力に飽きた場所を示します)。

_[  OK  ] Started Activation of DM RAID sets.
[  OK  ] Reached target Encrypted Volumes.
[  14.855860] md: bind<sda2>
[  OK  ] Found device WDC_WD1600BEVT-00A23T0.
         Activating swap /dev/disk/by-uuid/add41844....
[  15.190432] Adding 3144700k swap on /dev/sda3.  Priority:-1 extents:1 across:3144700k FS
[  OK  ] Activated swap /dev/disk/by-uuid/add41844....
[ TIME ] Timed out waiting for device dev-disk-by\x2duuid-a65962d\x2dbf07....
[DEPEND] Dependency failed for /safe.
[DEPEND] Dependency failed for Local File Systems.
[DEPEND] Dependency failed for Mark the need to relabel after reboot.
[DEPEND] Dependency failed for Relabel all file systems, if necessary.
[  99.299068] systemd-journald[452]: Received request to flush runtime journal from PID 1
[  99.3298059] type=1305 audit(1415512815.286:4): audit_pid=588 old=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1
Welcome to emergency mode! After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, "systemctl default" to try again
to boot into default mode.
Give root password for maintenance
(or type Control-D to continue):
_

したがって、RAID1ミラーリングドライブにインストールすると、ドライブに障害が発生してサーバーがダウンする可能性が2倍になるようです(ドライブが1つではなく2つあるため)。それは私がミラーリングされたドライブで達成したいと思っていたものではありません。

ハードディスクドライブに障害が発生したときに、(劣化したRAID1アレイを使用して)「正常に」起動および実行する方法を知っている人はいますか?

他の2つのメモ:

  1. 私はRHEL/SL/CentOS 7を初めて使用するため、[ソフトウェアの選択]画面で、SLのインストール中に推測を行う必要がありました。私が選んだのは、「汎用システム」+ FTPサーバー、ファイルおよびストレージサーバー、Officeスイートと生産性、仮想化ハイパーバイザー、仮想化ツール、および開発ツールです。

  2. 明らかに無害なエラーがいくつか表示されます。

    ATAx: softreset failed (device not ready)

"x"は、インストールされているドライブによって異なります。 1つだけの場合よりも、2つのドライブをインストールした場合の方が、これらのエラーの多くが発生します。

3
Dave Burton

問題はメインのRAID1パーティションではなく、他のパーティションであることが判明しました。

そもそも、スワップパーティションを使うべきではなかった。それはばかげていた。それが機能したとしても、ディスクドライブがスワップパーティション内に不良ブロックを開発した場合、システムが障害に対して脆弱になる可能性があります。 RAID1パーティションでスワップファイルを使用することをお勧めします。何を考えていたのかわかりません。

ただし、「余分な」ext3 md1パーティションも問題でした。理由はわかりません。

他のパーティション(2つのスワップパーティションとext3 md1パーティション)from /etc/fstab、システムは1つのドライブで問題なく起動し、RAID1アレイを劣化モードで実行します。

不足しているドライブをシャットダウンして再インストールした後、マシンを再起動しましたが、まだ1台のドライブで実行されていました。しかし、私はやりました "mdadm --add "を追加して不足しているドライブを追加し、その状態を" spare rebuilding "しばらくしてから、" active。 "

言い換えれば、それは完全に機能しています。

3
Dave Burton