- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
{{outline}}
!!!目的
*CentOS での software-RAID の md-RAID
*CentOS でインストールした RAID を対象とする。
*障害発生時の復旧方法を確認する。
**RAID の障害が復旧しても、起動ができない場合がある。
*起動可能にするための手順を確認する。
!!!概要
!機材概要
*CentOS 6.5 x86_64 LiveDVD
*Linux がインストール可能なパソコン
*複数のHDD
!今回の機材
,項目,内容
,機種,HP ML110G7
,CPU,Intel Xeon E3 1220 3.1GHz 4コア 8Mキャッシュ
,メモリ,32G
,ハードディスク,250G+250G+500G+500G
!!!作業手順
!!CentOS-6 md-RAID インストール
!インストーラ起動
*LiveDVD 起動画面
{{ref_image CentOS-6.5-LiveDVD-001.png}}
*英語画面の場合、いったんログアウトして日本語を指定
{{ref_image CentOS-6.5-LiveDVD-003-logout.png}}
*英語以外を選択
{{ref_image CentOS-6.5-LiveDVD-004-langother.png}}
*日本語を選択
{{ref_image CentOS-6.5-LiveDVD-005-langjp.png}}
*日本語のデスクトップを確認
{{ref_image CentOS-6.5-LiveDVD-008-jpdesktop.png}}
*インストーラ起動
{{ref_image CentOS-6.5-LiveDVD-007-installer.png}}
*日本語
*jp106 キーボード
!ディスク配置方法の選択
{{ref_image CentOS-6.5-LiveDVD-009-storageselect.png}}
*「どのタイプのインストールをしますか?」
*「カスタムレイアウトを使用する」
!RAID として使用する領域をディスク上に作成
*「空き」の領域を選択、「作成」ボタン
*「ストレージを作成」ダイアログで「基本パーティション」を選択、「作成する」ボタン
*「パーティションを追加」ダイアログで「使用可能なドライブ」で「sda」にチェックを入れる
*「ファイルシステムタイプ」に「RAIDパーティション」を選択
*「サイズ」に「512MB」、「容量追加オプション」に「固定容量」を選択、「OK」ボタン
*sda1 に 0.5G が作成される
*sdb1 に同様に 0.5G にRAIDパーティションを作成
*「ストレージを作成」ダイアログで「ソフトウェアRAIDを作成」の「RAIDパーティション」を選択、「作成する」ボタン
*「パーティションを追加」ダイアログで「使用可能なドライブ」で「sda」にチェックを入れ、
*「容量追加オプション」に「最大許容量」を選択
*起動用なので「基本パーティション」にチェックを入れて「OK」ボタン
*sda1 に 9.5G, sda2 に 0.5G
*sdb1 に同様にRAIDパーティションを作成
*sdb1 に 9.5G, sdb2 に 0.5G
*結果、sda1:9.5G sda2:0.5G sdb1:9.5G sdb2:0.5G
!RAID1 のデバイスを構成
*/ (ルート) ファイルシステムを作成
*「ストレージを作成」ダイアログで「ソフトウェアRAIDを作成」の「RAIDデバイス」を選択、「作成する」ボタン
*「RAIDデバイスの作成」ダイアログで「マウントポイント」に / を指定
*「ファイルシステムタイプ」は ext4 のまま変更なし
*「デバイス」は md0 のまま変更なし
*RAID レベルは RAID1
*RAIDメンバーは sda1+sdb1
*「OK」ボタン
*swap 領域を作成
*「ストレージを作成」ダイアログで「ソフトウェアRAIDを作成」の「RAIDデバイス」を選択、「作成する」ボタン
*「RAIDデバイスの作成」ダイアログで「マウントポイント」に / を指定
*「ファイルシステムタイプ」は swap を指定
*「デバイス」は md1 のまま変更なし
*RAID レベルは RAID1
*RAIDメンバーは sda1+sdb1
*「OK」ボタン
{{ref_image CentOS-6.5-LiveDVD-010-disklayout.png}}
*「変更をディスクに書き込む」
*結果、 md0=RAID1(sda1+sdb1) md1=RAID1(sda2+sdb2)
!起動設定
*ブートローダを /dev/sda に書き込む
*(推測) /dev/sdb にも書き込まれているため、2台目HDD のみでの起動が可能
!その他
*インストールを継続
*Basic-Server
*vmware-tools をインストールするためには minimal だと足りない。
!!MD 管理
*Multiple Device
*管理コマンド mdadm
!MDデバイス名
*/dev/md0
*/dev/md1
!MD状況確認
cat /proc/mdstat
mdadm --detail /dev/md0
!MDデバイス除去
*デバイスの切断
mdadm /dev/md0 --fail /dev/sda1
*RAIDからのデバイスの除去
mdadm /dev/md0 --remove /dev/sda1
!MDデバイスの追加
mdadm /dev/md0 --add /dev/sda1
!!LVM 管理
*Logical Volume Manager
*管理コマンド lvm
*稼働させながらPVを追加しファイルシステムを拡張できる。
*縮小はオフラインで実施することが必要
!LVM デバイス名
*/dev/mapper/vg_data-lv_data
!LVM 状況確認
*vgs ボリュームグループの状況表示, Volume Group
*lvs 論理ボリュームの状況表示, Logical Volume
*pvs 物理ディスクの状況表示, Physical Volume
*vgdisplay
!LVM デバイス除去
*VG から PV の除去
vgremove vg_data /dev/sda3
*PV登録解除
pvremove /dev/sda3
!LVM デバイス追加
*PV 作成
pvcreate /dev/sda3
*VG に PV を追加
vgextend vg_data /dev/sda3
*論理ボリューム拡張
lvextend --size +100G vg_data/lv_data
*ファイルシステム拡張
resize2fs /dev/mapper/vg_data-lv_data
!!HDD 障害試験
,HDD,HDD1,HDD2
,状況,正常,正常
,/ デバイス,/dev/sda1,/dev/sdb1
,swap デバイス,/dev/sda2,/dev/sdb2
!1台目HDD 障害
*稼働中に1代目のHDDを除去
*稼働を確認
,HDD,HDD1,HDD2
,状況,障害,正常
,/ デバイス,/dev/sda1,/dev/sdb1
,swap デバイス,/dev/sda2,/dev/sdb2
!1台目HDD 障害の復旧
*1台目HDD に新規のHDDを追加
,HDD,HDD1,HDD2
,状況,障害,正常
,/ デバイス,なし,/dev/sdb1
,swap デバイス,なし,/dev/sdb2
*X-Window GUI 必要に応じてTERMINAL/端末画面を複数立ち上げる
*X-Window GUI CTL+ALT+F1〜F6 で画面切り替え
*テキスト画面 CUI ALT+F1/F2/F3/F4 で複数画面を操作する
*HDD2 パーティションテーブル確認
fdisk -l -u /dev/sdb
*-l パーティションテーブルの表示 (List)
*-u 表示単位をセクタに切り替え、標準は古い形式のシリンダ単位 (Unit)
*HDD1 パーティションテーブル作成
fdisk -u -c /dev/sda
*-u 表示単位をセクタに切り替え、標準は古い形式のシリンダ単位 (Unit)
*-c 古いDOS形式を使わない (Compatibility)
*「n」Enter 新規作成
*「p」Enter 基本パーティション指定 (Primary)
*「1」Enter パーティション番号
*「開始位置」Enter
*「終了位置」Enter
*「a」Enter 起動可能に設定 (Activate)
*「1」Enter
*「t」Enter 利用タイプ変更
*「1」Enter パーティション選択
*「fd」Enter パーティションタイプ指定(fd=Linux RAID)
*「t」Enter 利用タイプ変更
*「2」Enter パーティション選択
*「fd」Enter パーティションタイプ指定(fd=Linux RAID)
*「p」設定内容表示
*「w」設定書き込み
,HDD,HDD1,HDD2
,状況,障害,正常
,/ デバイス,/dev/sda1,/dev/sdb1
,swap デバイス,/dev/sda2,/dev/sdb2
*RAIDデバイス確認
cat /proc/mdstat
*RAID復旧
mdadm /dev/md0 --add /dev/sda1
mdadm /dev/md1 --add /dev/sda2
,HDD,HDD1,HDD2
,状況,正常,正常
,/ デバイス,/dev/sda1,/dev/sdb1
,swap デバイス,/dev/sda2,/dev/sdb2
!再起動 #1
*起動できない!!!
*RAID は復活したが、Linux 起動コードが不十分
+PC起動
+HDD MBR (セクタ1) 読み込み /boot/grub/stage1 512バイト
+HDD ファイルシステム認識 /boot/grub/e2fs_stage1_5 13380バイト セクタ 2〜27
+HDD kernel+init* 読み込み /boot/grub/kernel 4Mバイト /boot/grub/initramfs 16Mバイト
+kernel 起動 -->複雑なファイルシステムを認識
+init 起動
!起動コード整備
*生きているHDD2 または LiveCD で起動
*grub 起動
*起動コード検索
find /boot/grub/stage1
*hd0 hd1 の情報を取得
*起動コード設置
root (hd0,0) HDD1の1番目のパーティションを選択
setup (hd0) 起動コード設置
root (hd1,0) HDD2の1番目のパーティションを選択
setup (hd1) 起動コード設置
!再起動 #2
*起動確認
!!!解説
!RAID レベル
,RAID レベル,説明,長所,短所
,RAID0,ストライピング 分散保存,高速,障害発生しやすい
,RAID1,ミラーリング コピー保存,計算なし 性能低下,容量半分=コスト2倍
,RAID5,分散パリティ (例)合計値の保存,容量損失1台のみ,計算コスト大
,RAID6,分散パリティ 2重化,計算コスト超大,安全性大、2台の故障に耐久
*RAID10,RAID50,RAID60
*<<スペアディスク>>を用意してRAIDに参加させておくと、ドライブ故障発生時に自動で置換作業を行う。
*スペア置換中に障害が発生する場合もある。
*ハードディスクが故障したらすぐに部品や交換作業を手配すること!!!
*ハードディスクが故障した時に警報をメールするなど、放置する環境を作らないこと!!!
!Software-RAID 対 Hardware-RAID
,比較項目,SW-RAID,HW-RAID,備考
,CPU 使用,する,しない
,スピード,低,高,CPU が良いと差が出ない、RAID5/6 では高負荷
,価格,なし,数万〜
,運用,コマンドラインで運用が煩雑,GUIで使いやすくできる
,対応バージョン,Linux なら使える,バージョン対応の確認が必要
,インストール作業,不要,必要 GUI
!起動できるRAID
*MD-RAID1 暗号化なし 起動できる
*MD-RAID1 暗号化あり 起動できない
*MD-RAID0 起動できない
*MD-RAID5 起動できない
*LVM 起動できない
*起動できないファイルシステムは /boot を ext4 で別に用意して起動する。
*/boot ext4 100M
*/ LVM RAID1/5
*/boot ext4 100M
*/ MD-RAID5
!/proc システム情報
cat /proc/version Linux のバージョン
cat /proc/cpuinfo CPU
cat /proc/meminfo メモリ
cat /proc/diskstats ディスク
cat /proc/net/bonding/bond1 ネットワークのチーミング状況
cat /proc/プロセス番号/ 各プログラムの状況