先日、サーバ:HP Proliant DL360 G5, ストレージ:HP MSA1000, OS:CentOS5.2 (i386)という環境を構築したのですが、ソフトウェアのインストールや設定を行う順序など、少し注意すべきポイントがあったので概要をまとめておきます。
(概要といいつつ)けっこう長くなってしまいました。
RedHat Enterprise Linux(RHEL)ではなく、CentOSでも問題なく動作しています。
- 前提条件
- サーバDL360 G5、ストレージサーバMSA1000の設置が完了していること。
- MSA1000上の論理ドライブ作成が完了していること。
- DL360 G5とMSA1000スイッチ間のファイバーのケーブリングが完了していること。
- ポイント
- OSをインストールする際は、ファイバーケーブルを外しておくこと。
- RAID用のSmartアレイドライバは、RHEL5/CentOS5に同梱されている。
(RedHat4には同梱されていなかった)
- HPサポートパック(ProLiant Support Pack = PSP)のインストールが必要だが、その前に、カーネルほかのパッケージをアップデートしておいたほうがよい。つまり、インターネットに接続するためのネットワークの設定も行う。
- PSPのインストール時、CentOS5をRHEL5だと思わせる設定が必要。
- ファイバーチャネルのフェイルオーバー(Qlogic Failover)の設定が必要。
おおまかな手順は下記のとおりとなります。
- CentOS5のインストール
- ネットワークの設定
- ソフトウェアパッケージのアップデート
- HPサポートパック(PSP)のインストール
- ファイバーチャネルのフェイルオーバー(Qlogic Failover)の設定
- MSA1000上のディスク設定
■CentOS5のインストール
インストールの前に、サーバを停止した状態で、ファイバーケーブルを抜いておきます。
電源をONにして、あらかじめ用意したCentOS5のメディアでインストールを開始します。
なお、RHEL4までは、インストール開始の入力待ち状態のときに、事前に作成したRAID用のSmartアレイドライバーのディスケットを読み込ませる必要があったそうです。
RHEL5からはこのドライバーがOSに含まれるようになったため、不要となったようです。
念のため、事前にディスケットを用意していましたが、CentOS5.2でも同様に不要でした。
この、DL360 G5 + RHEL5用のSmartアレイドライバーに関する情報は以下にあります(32bit版)。
http://h50222.www5.hp.com/support/DUMDL360G5SVR/more_info_soar_MTX-1704d42bcb74489390637fbbf8.html
CentOS5をお好みの内容でインストールします。
(このサーバ、OSに限りませんが)インストール完了後は、OSから参照できるCPU, メモリ, ディスク, NICなどのスペック情報が正しいかどうか、確認するようにしています。
■ネットワークの設定
PSPをインストールする前に、カーネルほか、CentOS5のソフトウェアパッケージをアップデートしておくのが望ましいそうです。
yumコマンドでアップデートできるよう、ネットワークの設定を行い、インターネットにアクセスできるようにします。
必要に応じて、iptablesを使用してFirewallの設定を行うのもよいですね。
■ソフトウェアパッケージのアップデート
インストール済みのソフトウェアパッケージをすべてアップデートします。
yumコマンドを使用しますが、もっとも近くのミラーサイトを見つけてくれるfastestmirrorプラグインをインストールすると、アップデートに要する時間が短くて済みます。
# yum install yum-fastestmirror
全アップデートを実施します。
# yum update
CentOS5.2のメディアからインストールし全アップデートをかけると、2008年8月末の時点では3分程度で完了しました。
■HPサポートパック(PSP)のインストール
PSPは以下からダウンロードします。
2008年9月時点の最新版は、v8.1.0です。
http://h50222.www5.hp.com/support/DUMDL360G5SVR/more_info_soar_MTX-f1c0a8ddfbe04a049f30711816.html
rpm-devel、glibcなどがインストールされていないと、PSPのインストーラが起動しないため(PSPインストールスクリプト実行時にアラートで教えてくれます)、インストールします。
# yum install rpm-devel glibc
また、PSPインストールスクリプトの実行時は、OSのディストリビューションをRHEL5であると騙す必要があります。
/etc/redhat-release の内容を書き換えます。
-- /etc/redhat-release(変更前)
CentOS release 5.2 (Final)
--
-- /etc/redhat-release(変更後)
Red Hat Enterprise Linux ES release 5 (Tikanga)
--
なお、/etc/redhat-release の書き換えについては、以下を参考にさせていただきました。
ググッてみたところでは、Oracleのインストールなどでも同様の方法が使えるみたいです。
勢いで買ったHP Proliant ML150 - cys b:
http://d.hatena.ne.jp/yotena/20080119/1200715723
PSPインストールスクリプトを実行します。
# ./install810.sh
GUIではなく、キャラクターベースでインストールする場合は、--nuiオプションを付けて起動します。
# ./install810.sh --nui
必要なパッケージがインストールされていないときは、エラーメッセージで「〜をインストールしますか?」のような表示をされるので、「Y」を入力します。
インストール時はたくさん質問されますが、がんばって進んでいきます。
インストールログは、/var/log/hppldu.log にあります。
インストール完了後、OSを再起動します。
試しに、FirefoxなどのブラウザでHP System Management Homepage(SMH)を表示してみます。
https://localhost:2381/
ID、パスワードはOSのrootユーザのものを入力します。
サーバの情報が表示されればOKです。
■ファイバーチャネルのフェイルオーバー(Qlogic Failover)の設定
設定コマンドを実行します。
# /opt/hp/src/hp_qla2x00src/set_param
1 の"XP/MSA/EVA FailOver" を選択し、
Would you like to create a new initrd to reflect the changes in the parameters (Y/n)?
は、Y を選択。
q "Quit" で終了します。
■MSA1000上のディスク設定
MSA1000上に作成した論理ディスクに対して、OSからパーティショニング、ファイルシステムの作成、マウントを行います。
まず、サーバを停止し、抜いておいたファイバーケーブルを挿し、サーバを起動します。
MSA1000での設定が正しく行われていれば、fdiskコマンドでディスクを確認できるはずです。
なお、HP ProLiantサーバでのデバイスファイル名は、下記のとおり割り当てられるそうです。
- ProLiant内蔵Smart Arrayコントローラ配下のディスクは /dev/cciss/cXdY
- FC HBA配下のFibre Channel接続の外部ストレージのディスクは /dev/sdX
(参考)[ThinkIT] 第1回:外部ストレージの設定と運用について (3/3):
http://www.thinkit.co.jp/cert/article/0604/1/1/3.htm
単純にext3のパーティションを作成するだけなら、下記の手順のとおりfdiskでパーティショニング→mkfsでファイルシステムを作成→マウントで終了です。
日本HP_Linux_技術文書_ドライバロード後の MSA1000セットアップ方法:
http://h50146.www5.hp.com/products/software/oe/linux/mainstream/support/doc/option/fibre/msa1000/setup_msa1000.html
せっかくなので、ディスク容量が足りなくなったときに容量を増やせるよう、LVMとします。
今回は、RAID後の実効サイズとして293GBの論理ディスクが見えているものとします。
LVMボリュームの作成については例えば、DBマガジン 2008/07号「Linux-DBサーバー構築入門 第2回 論理ボリュームマネージャ(LVM)を活用する」などが参考になります。
設定するLVMは下記のとおりです。
- ボリュームグループ構成情報
- ボリュームグループ名: VolGroup01
- PEサイズ: 8MB
- デバイスファイル: /dev/sda1
- 論理ボリューム構成情報
- ボリュームグループ名: VolGroup01
- 論理ボリューム名: LVMTEST
- 容量: すべて
- マウントポイント: /mnt/test
- タイプ: ext3
サーバからマウントするまで、下記の手順を行います。
(0)パーティショニング(fdisk)
(1)物理ボリュームの作成(pvcreate)
(2)ボリュームグループの作成(vgcreate)
(3)論理ボリュームの作成(lvcreate)
(4)ファイルシステムの作成(mkfs)
(5)マウント(mount)
・(0)パーティショニング(fdisk)
まず、fdiskで共有ストレージのディスクが見えていることを確認します。
以下、// の後はここで付与したコメントです。
# fdisk -l /dev/sda
Disk /dev/sda: 293.6 GB, 293630238720 bytes
255 heads, 63 sectors/track, 35698 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
ディスク /dev/sda は正常な領域テーブルを含んでいません
fdiskコマンドで、/dev/sda のパーティションのシステムタイプをLVMとして保存します。
# fdisk /dev/sda
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも含んでいません
新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更は
メモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。
このディスクのシリンダ数は 35698 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合に問題を生じうる事を
確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります
コマンド (m でヘルプ): p // パーティションテーブルを表示
Disk /dev/sda: 293.6 GB, 293630238720 bytes
255 heads, 63 sectors/track, 35698 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
コマンド (m でヘルプ): n // 新しいパーティションを作成
コマンドアクション
e 拡張
p 基本領域 (1-4)
p // 基本領域を指定
領域番号 (1-4): 1 // 領域1を指定
最初 シリンダ (1-35698, default 1): // デフォルト1を指定
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-35698, default 35698):
// 全サイズを1パーティションとするのでデフォルトの終点を指定
Using default value 35698
コマンド (m でヘルプ): p // パーティションテーブルを表示、
// 作成されたパーティションが表示されることを確認
Disk /dev/sda: 293.6 GB, 293630238720 bytes
255 heads, 63 sectors/track, 35698 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/sda1 1 35698 286744153+ 83 Linux
コマンド (m でヘルプ): t // システムタイプを指定
Selected partition 1
16進数コード (L コマンドでコードリスト表示): 8e
// LVMのシステムタイプコードは8e
領域のシステムタイプを 1 から 8e (Linux LVM) に変更しました
コマンド (m でヘルプ): p // パーティションテーブルを表示
// システムタイプがLinux LVMとなっていることを確認
Disk /dev/sda: 293.6 GB, 293630238720 bytes
255 heads, 63 sectors/track, 35698 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/sda1 1 35698 286744153+ 8e Linux LVM
コマンド (m でヘルプ): w // 編集内容を保存して終了
領域テーブルは交換されました!
ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。
これで、パーティション/dev/sda1 が作成されました。
・(1)物理ボリュームの作成(pvcreate)
作成したパーティションに対して、pvcreateコマンドで物理ボリュームを作成します。
# pvcreate /dev/sda1
Physical volume "/dev/sda1" successfully created
ステータスを確認します。
物理ボリュームの一覧と割り当てサイズ(PSize)が確認できます。
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 lvm2 -- 273.46G 273.46G
# pvdisplay /dev/sda1
"/dev/sda1" is a new physical volume of "273.46 GB"
--- NEW Physical volume ---
PV Name /dev/sda1
VG Name
PV Size 273.46 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID vM1W94-WagK-bWrO-wS9r-PxSX-vnCt-3Bafh8
・(2)ボリュームグループの作成(vgcreate)
vgcreateコマンドで、ボリュームグループVolGroup01を作成します。
-sオプションで指定するPEサイズ(physical extentサイズ)はデフォルト4MBですが、今回は8MBしました。
# vgcreate -s 8M VolGroup01 /dev/sda1
Volume group "VolGroup01" successfully created
物理ボリュームのステータスを確認します。
(1)とは違い、VGのところにボリュームグループが表示されていることがわかります。
# pvs
--
PV VG Fmt Attr PSize PFree
/dev/sda1 VolGroup01 lvm2 a- 273.46G 273.46G
--
ボリュームグループのステータスを確認します。
# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup01 1 0 0 wz--n- 273.46G 273.46G
# vgdisplay
--- Volume group ---
VG Name VolGroup01
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 273.45 GB
PE Size 8.00 MB
Total PE 35002
Alloc PE / Size 0 / 0
Free PE / Size 35002 / 273.45 GB
VG UUID OLK8C9-U30i-kGRJ-7Akj-DtuK-W1gz-20XTA
・(3)論理ボリュームの作成(lvcreate)
lvcreateコマンドで、論理ボリュームを作成します。
-Lオプションでサイズを、-nオプションで論理ボリューム名を指定します。
# lvcreate -L273.45G -n LVMTEST VolGroup01
Rounding up size to full physical extent 273.45 GB
Logical volume "LVMTEST " created
論理ボリュームのステータス確認します。
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
LVMTEST VolGroup01 -wi-a- 273.45G
# lvdisplay
--- Logical volume ---
LV Name /dev/VolGroup01/LVMTEST
VG Name VolGroup01
LV UUID aZQEhU-Z1U7-afFO-bAXg-Vgdp-nPZ7-RU4cu9
LV Write Access read/write
LV Status available
# open 0
LV Size 273.45 GB
Current LE 35002
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
物理ボリュームのステータスを表示し、(1)(2)とは違い、物理ボリュームの
空き(PFree)がなくなったことを確認します。
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 VolGroup01 lvm2 a- 273.45G
ボリュームグループのステータスを表示し、(2)とは違い、空き容量(VFree)が
なくなったことを確認します。
# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup01 1 1 0 wz--n- 273.45G 0
・(4)ファイルシステムの作成(mkfs)
mkfsコマンドで、論理ボリュームに対してext3でファイルシステムを作成します。
# mkfs -t ext3 /dev/VolGroup01/LVMTEST
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
35848192 inodes, 71684096 blocks
3584204 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
2188 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
・(5)マウント(mount)
mountコマンドで、ディレクトリ/mnt/test にマウントします。
/etc/fstab の末尾に追記します。
/dev/VolGroup01/TEST /mnt/test ext3 defaults 1 2
マウントポイントのディレクトリ作成し、マウントします。
# mkdir -p /mnt/test
# mount /dev/VolGroup01/LVMTEST
マウントされたかどうか、確認します。
# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
...
/dev/mapper/VolGroup01-LVMTEST
270G 192M 256G 1% /mnt/test
ためしに、一般ユーザで、該当ディレクトリにファイルを読み書きしてみます。
また、念のためOSを再起動して、正しくマウントされることを確認します。
以上でHP DL360 G5へのCentOS5のインストールと、MSA1000ディスク上へのLVMボリュームの作成およびマウントが完了となります。