トップ 一覧 検索 ヘルプ RSS ログイン

CentOS6 md RAID1 演習の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
{{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/プロセス番号/  各プログラムの状況