Help us understand the problem. What is going on with this article?

CentOS7のインストール時におけるHPE Dynamic Smartアレイ B140i コントローラによるRAID構成

はじめに

今回、HPE ProLiant ML150 Gen9サーバーを購入し、CentOS7を入れることとなった。その際、システムメンテナンスを考慮して、RAID1で論理ドライブを構成してOSをインストールすることとした。
CentOSをそのまま入れること自体は慣れていたが、RAIDを組んでインストールすることは初の試みであり、インストールの際に物理ドライブが見えてしまう、論理ドライブが認識されないといった現象に詰まったため、ここに備忘録としてRAID1構成によるCentOS7のインストール方法を示しておく。

RAID構成サーバ環境

今回のサーバの概要を以下に示す。詳しいスペックは割愛させていただく。
HPE ML150 Gen9 E5 v4 (RAIDコントローラ:Dynamic Smart アレイ B140iコントローラ)
物理ドライブ:1TB SATA × 2 を 論理ドライブ:1TB (RAID1構成[ミラーリング]) とすることを目指す。

なお、こちらは、RAID1が構成されていることを前提とする。
ちなみに、RAIDについては、こちらを参照して少々勉強した。

インストールメディア等作成作業環境

MacBook Air (13-inch, Early 2014) macOS Sierra(10.12.6[16G29])

よくあること

論理ドライブが見えない(物理HDD2台しか見えない)
(1) ProliantサーバRAIDを組んだが、OS上で認識されない(CentOS7) - Hewlett Packard Enterprise Community
(2)HP ProLiant DL320e Gen8サーバーにScientific LinuxをRAID構成でインストールする。 - 何でも屋さんの備忘録
(3) CentOS7をDL360G5にインストールメモ - tkr0429 blog
(4) CentOS7(1)アレイコントローラの認識 – テクニカルタイムアウト

そのままインストールしてしまうと、論理ドライブを構成しているのにもかかわらず、CentOSのインストール画面で、物理ドライブ(そのまま)が表示されてしまうことがうかがえる。RAIDが認識されるように手を打たなければならないと考えられる。

標準的なHPE製サーバでのLinux(RHEL)インストール

(5) HP ProLiant サーバー - B110i コントローラーで RAID を構成したドライブに、RHEL6.x をインストールする方法
(6) Linux_ハードウェア_オプション_Dynamic SmartArray B140iコントローラー | HPE 日本(日本ヒューレット・パッカード株式会社)
(7) HP ProLiant Gen8サーバーにCentOS6.4(64bit)を入れる - SEEDS Creator's Blog

公式には、HPE製サーバでのB140iコントローラを用いたRAID構成によるCentOSのインストールはサポート外であるが、RHELのインストールについては紹介、公開されている。
RHELをインストールする時、OSインストールディスクの他に、RAID コントローラー ドライバーディスケットが別途必要になることがわかった。そして、OSのインストール時に、このRAIDコントローラドライバを適用した上で、たとえば、以下のようにインストールを進める必要がある。


UEFIブートによってCentOSをインストールする場合

インストール画面が出たら、
1. eキーを押し、linuxefiの行末に、inst.dd modprobe.blacklist=ahciを追記し、Ctrl+xを押す。
2. その後、インストール時に適用もしくは更新するためのドライバ選択(ドライバを適用するためのファイルはどこかを指定する)画面が出る。
3. USBもしくはCDなど適切なデバイスを選択(画面に表示されない場合、rキーによってリフレッシュする)。
4. デバイスを選択したら、ドライバファイルを選択し、ドライバファイルをアクティブ(選択状態)にする。
5. cキーを押し、コンティニューする
6. ドライバが読み込まれた上で、グラフィカルのインストール画面が表示される。
7. 以降、論理ドライブが認識されることを確認して、通常のインストールを進める。


レガシーブートによってCentOSをインストールする場合

  1. escキーを押し、linux dd blacklist=ahciを入力し、Ctrl+xを押す。
  2. その後、インストール時に適用もしくは更新するためのドライバ選択(ドライバを適用するためのファイルはどこかを指定する)画面が出る。
  3. USBもしくはCDなど適切なデバイスを選択(画面に表示されない場合、rキーによってリフレッシュする)。
  4. デバイスを選択したら、ドライバファイルを選択し、ドライバファイルをアクティブ(選択状態)にする。
  5. cキーを押し、コンティニューする
  6. ドライバが読み込まれた上で、グラフィカルのインストール画面が表示される。
  7. 以降、論理ドライブが認識されることを確認して、通常のインストールを進める。

ブートの仕方によって最初のコマンド入力画面の呼び出し方が異なるので注意。

以上から次の手順によって、RAID1構成でCentOSをインストールする必要があることが明らかになった。

実践

【用意するもの】空のUSB×2(OSインストールメディア用とドライバディスソケット用)

手順1. CentOS7のインストールメディアの作成

これはいつもの手順である。CentOSのホームページから、Minimal ISODVD ISOEverything ISOのいずれかをダウンロードして、インストールメディアを作成する。
筆者はデスクトップ(GNOME)環境でCentOSをインストールするため、DVD ISOを選択。

インストールメディア作成(for USB)

1. DVD ISOのダウンロード

今回ダウンロードできたのは、「CentOS-7-x86_64-DVD-1708.iso」だった。

2. USBのフォーマット(FAT32)

ディスクユーティリティー.appなどでUSBをFAT32でフォーマットする
s_スクリーンショット 40.png

3. USBへの書き込み(ddコマンド)

以下の手順によって、USBにISOを書き込む。少し時間がかかる。
参照:(8) CentOS 7 を USB メモリからインストール - momota.txt

[1]USB メモリにインストールイメージを書き込む ターミナルから.iso を .img へ変換する。

$ hdiutil convert -format UDRW -o CentOS-7-x86_64-DVD-1708.img CentOS-7-x86_64-DVD-1708.iso
$ mv CentOS-7-x86_64-DVD-1708.img.dmg CentOS-7-x86_64-DVD-1708.img

[2]USB メモリをアンマウントする(PCに指したままだけど、マウントを解除する)。

$ diskutil list
$ diskutil unMountDisk /dev/disk1

[3]dd で USB メモリにインストールイメージを書き込む。

$ sudo dd if=CentOS-7-x86_64-DVD-1708.img of=/dev/disk1 bs=1m

[4]USB メモリをイジェクトして取り外す。

$ sudo diskutil eject /dev/disk1

インストールメディア作成(for DVD)

参照:(9) iMac OSX で isoイメージファイルを CD/DVD に焼く - min117の日記, (10) Mac で ISO ディスクイメージを作成する方法 – act2 サポート

1. DVD ISOのダウンロード

今回ダウンロードできたのは、「CentOS-7-x86_64-DVD-1708.iso」だった。

2.DVDに焼き込む

外付け光学ドライブ等によって空のDVDをセットする。
その後、ダウンロードしたISOを右クリックし、CentOS-7-x86_64-DVD-1708.isoをディスクに書き込むを選択し、DVD/CD マスターで焼き込む。

手順2. B140iコントローラドライバーディスケットの取得とドライバインストールメディアの作成

これはRAIDを認識させる上で必須の手順である。まず、B140iコントローラドライバーディスケットを取得する。

Hewlett Packard Enterprise サポートセンター(HPE ProLiant ML150 Gen9 Server)

上記サイトのうち、ソフトウェア ドライバディスソケット内の
スクリーンショット 2019-05-21 9.32.00.png

このどちらかをダウンロードして、展開する。
hpdsa-1.2.10-139.rhel7u4.x86_64.dd.gz(インストールするCentOSが7.4の場合)
hpdsa-1.2.10-139.rhel7u5.x86_64.dd.gz(インストールするCentOSが7.5の場合)
スクリーンショット 2019-05-21 9.34.04.png

その後、OSインストールメディアと異なるUSBを差し込み、FAT32でフォーマット後、同じくddコマンドによってUSBに書き込む。

$ sudo dd if=hpdsa-1.2.10-115.rhel7u3.x86_64.dd of=/dev/disk2

以上で、ドライバディスソケットの用意が完了。

手順3. 各メディアを差し込んだ上でサーバ電源投下

BIOSで起動順位を変更したのち、USBからブートする。

手順4. B140iコントローラドライバーを適用するためのコマンド入力とドライバ適用

s_IMG_0712.JPG
インストール初期画面が出たら、eキーを押す。

s_IMG_0713.JPG
画面が出たら、linuxefiの行の末尾に、inst.dd modprobe.blacklist=ahciと入力して、Ctrl+xキーで実行。

s_IMG_0714.JPG
画面が出たら、RAIDコントローラのためのドライバディスソケットを焼き込んだデバイスを選ぶ(ここでは読み込まれなかったので、rでリフレッシュ)。

s_IMG_0715.JPG
リフレッシュされたら、ext4のタイプの4を選ぶ(ここはそれぞれの環境で異なる4を押してEnter)。

s_IMG_0716.JPG
デバイスの中身が読み込まれたら、お目当ての、kmod-hpsa-3.4.20-113.rhel7u3.x86_64.rpmの1を選択する(1を押してEnter)。

s_IMG_0717.JPG
すると、x印がつき、アクティブ(選択状態)となる。

これでCentOSインストール時にRAIDコントローラドライバが適用された上でインストールが進む。

手順5. CentOSインストール開始

これ以降は、通常通りの作業。もし論理ドライブが認識されていない場合はもう一度上の手順を確認すること。もしくは、RAIDが構成されているのかどうかを確認すること。

おわりに

RAIDでCentOS7をインストールすることができた。次は、HDDが故障したときの復旧の仕方について勉強したい。

参考文献

Install CentOS 7 on HP dl120 gen9 server with b140i raid controller - Server Fault

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした