Oracle中心にIT全般の技術情報を気が向くままに書いています。他にLinux、仮想化技術(VMWare)やトラブルに役立つ情報などがあります。

スポンサーサイト CentOS5 簡単RAID5作成 on VMWare Player


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
重要なデータを格納する領域としてRAID構成のディスクが欲しかったのですが,お金も時間も無かったので,手軽な方法でできないかと考えました。

考えたところ,元々、VMWare Player上で動作させていたCentOS5に仮想ディスクを追加してRAIDを構築し、そのゲストサーバ上にデータを格納することとしました。
VMWare Playerのバージョンは、"4.0.3"です。

私のパソコン(Windows Vista)で使用しているディスクは下記の通りです。
ドライブ総容量[GB]空き容量[GB]
Cドライブ25050
Eドライブ250190
Oドライブ300180
Vドライブ450300

RAIDの構成で容量効率の良いRAID5としようと思いますが,RAID5の場合,3ディスク以上必要です。
E,O,Vドライブで150GB以上空いていたことから、150GB×3をRAIDに割り当てることとしました。
ドライブ総容量[GB]RAID割当容量[GB]空き容量[GB]
Cドライブ250-50
Eドライブ25015040
Oドライブ30015030
Vドライブ450150150

RAID5は、1ドライブ分の容量がパリティ用に必要となることから,実容量は300GBとなります。
 ・RAID5容量=(ドライブ数-1)×ドライブ容量=(3-1)×150=300[GB]

ここで注意が必要で,RAIDに割り当てるディスクは物理的に別物である必要があります。
VMWareのため、仮に同一ディスクで論理的なディスクを複数割り当てることができますが、1ディスクが破損した場合に、ゲストOS上では一度に複数ディスクの破損となってしまいます。
RAID5は原則2つ以上のディスク障害でディスク復旧できなくなりますので、それではRAIDを構築する意味がありません。


VMWareへの仮想ディスク追加
(1)仮想ディスク追加[Eドライブ]
VMWareを起動し,仮想マシン設定の編集をクリックします。


追加をクリックします。


ハードディスクを選択し、次へをクリックします。


仮想ディスクの新規作成を選択し、次へをクリックします。


SCSIを選択し、次へをクリックします。


ディスク最大サイズに"150"を指定し、"仮想ディスクを単一ファイルとして格納"を選択し、次へをクリックします。
ここで、"今すぐ全ディスク容量を割り当てる"については、シンプロビジョニングとして必要に応じてディスクが確保されるように今回はチェックを行いません。


参照をクリックします。


Eドライブでファイルを指定して開くをクリックします。


完了をクリックします。


(2)仮想ディスク追加[Oドライブ]
「(2)仮想ディスク追加[Eドライブ]」と同様に仮想ディスクの追加を行いますが、作成する仮想ディスクの配置場所をOドライブにします。

(3)仮想ディスク追加[Vドライブ]
「(2)仮想ディスク追加[Eドライブ]」と同様に仮想ディスクの追加を行いますが、作成する仮想ディスクの配置場所をVドライブにします。

150GBの仮想ディスクが3つ追加されていることを確認し、OKをクリックします。



CentOS5でのRAID5構築
(1)パーティション作成
"fdisk -l"コマンドで,/dev/sdd,/dev/sde,/dev/sdfのディスクデバイスが作成されていることを確認します。

パーティションを作成します。
[root@CentOS ~]# fdisk /dev/sdd
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルをディスク識別子 0x5e09fcde で作成します。
あなたが書き込みを決定するまで、変更はメモリ内だけに残します。
その後はもちろん以前の内容は修復不可能になります。
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります

警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを
      強く推奨します。 and change display units to
         sectors (command 'u').

コマンド (m でヘルプ): n           <-- nを入力してEnterキー
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p                                    <-- pを入力してEnterキー
パーティション番号 (1-4): 1          <-- 1を入力してEnterキー
最初 シリンダ (1-19581, 初期値 1):   <-- Enterキー
初期値 1 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (1-19581, 初期値 19581):   <-- Enterキー
初期値 19581 を使います

コマンド (m でヘルプ): w             <-- wを入力してEnterキー
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
[root@CentOS ~]# fdisk /dev/sde
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルをディスク識別子 0x843b2a68 で作成します。
あなたが書き込みを決定するまで、変更はメモリ内だけに残します。
その後はもちろん以前の内容は修復不可能になります。
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります

警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを
      強く推奨します。 and change display units to
         sectors (command 'u').

コマンド (m でヘルプ): n           <-- nを入力してEnterキー
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p                                    <-- pを入力してEnterキー
パーティション番号 (1-4): 1          <-- 1を入力してEnterキー
最初 シリンダ (1-19581, 初期値 1):   <-- Enterキー
初期値 1 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (1-19581, 初期値 19581):   <-- Enterキー
初期値 19581 を使います

コマンド (m でヘルプ): w             <-- wを入力してEnterキー
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
[root@CentOS ~]# fdisk /dev/sdf
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
新たに DOS ディスクラベルをディスク識別子 0x7446943a で作成します。
あなたが書き込みを決定するまで、変更はメモリ内だけに残します。
その後はもちろん以前の内容は修復不可能になります。
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります

警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを
      強く推奨します。 and change display units to
         sectors (command 'u').

コマンド (m でヘルプ): n           <-- nを入力してEnterキー
コマンドアクション
   e   拡張
   p   基本パーティション (1-4)
p                                    <-- pを入力してEnterキー
パーティション番号 (1-4): 1          <-- 1を入力してEnterキー
最初 シリンダ (1-19581, 初期値 1):   <-- Enterキー
初期値 1 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (1-19581, 初期値 19581):   <-- Enterキー
初期値 19581 を使います

コマンド (m でヘルプ): w             <-- wを入力してEnterキー
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。

150GBのパーティション/dev/sdd1,/dev/sde1,/dev/sdf1が作成されたことを確認します。
[root@CentOS ~]# fdisk -l

ディスク /dev/sda: 21.5 GB, 21474836480 バイト
ヘッド 255, セクタ 63, シリンダ 2610
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x000da63b

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *           1          64      512000   83  Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2              64        2611    20458496   8e  Linux LVM

ディスク /dev/sdb: 161.1 GB, 161061273600 バイト
ヘッド 255, セクタ 63, シリンダ 19581
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0xc49e9ebe

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdb1               1       19581   157284351   83  Linux

ディスク /dev/sdc: 161.1 GB, 161061273600 バイト
ヘッド 255, セクタ 63, シリンダ 19581
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0xd95adbdd

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdc1               1       19581   157284351   83  Linux

ディスク /dev/sdd: 161.1 GB, 161061273600 バイト
ヘッド 255, セクタ 63, シリンダ 19581
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x5e09fcde

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdd1               1       19581   157284351   83  Linux

ディスク /dev/sde: 161.1 GB, 161061273600 バイト
ヘッド 255, セクタ 63, シリンダ 19581
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x843b2a68

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sde1               1       19581   157284351   83  Linux

ディスク /dev/sdf: 161.1 GB, 161061273600 バイト
ヘッド 255, セクタ 63, シリンダ 19581
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x7446943a

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdf1               1       19581   157284351   83  Linux

ディスク /dev/dm-0: 18.8 GB, 18832424960 バイト
ヘッド 255, セクタ 63, シリンダ 2289
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000

ディスク /dev/dm-0 は正常なパーティションテーブルを含んでいません

ディスク /dev/dm-1: 2113 MB, 2113929216 バイト
ヘッド 255, セクタ 63, シリンダ 257
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000

ディスク /dev/dm-1 は正常なパーティションテーブルを含んでいません

ディスク /dev/dm-2: 161.1 GB, 161057079296 バイト
ヘッド 255, セクタ 63, シリンダ 19580
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000

ディスク /dev/dm-2 は正常なパーティションテーブルを含んでいません

ディスク /dev/dm-3: 161.1 GB, 161057079296 バイト
ヘッド 255, セクタ 63, シリンダ 19580
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000

ディスク /dev/dm-3 は正常なパーティションテーブルを含んでいません

(2)RAIDデバイス構成
mdadmコマンドにより、/dev/sdd1,/dev/sde1,/dev/sdf1パーティションを使って、RAID5の/dev/md0デバイスを作成します。
 ⇒mdadm -C -l5(RAID5) -n -f RAID構成ディスクパーティション
下記コマンドは一瞬で終了しました。
[root@CentOS ~]# mdadm -C /dev/md0 -l5 -n3 -f /dev/sd[def]1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

RAID5デバイスが構成されたことを確認します。
[root@CentOS ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sat Jun 16 19:33:37 2012
     Raid Level : raid5
     Array Size : 314565632 (299.99 GiB 322.12 GB)
  Used Dev Size : 157282816 (150.00 GiB 161.06 GB)
   Raid Devices : 3
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Sat Jun 16 19:34:55 2012
          State : clean, resyncing
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 9% complete

           Name : CentOS:0  (local to host CentOS)
           UUID : 84eba5aa:05b7cd30:556bf156:04dd1ae4
         Events : 1

    Number   Major   Minor   RaidDevice State
       0       8       49        0      active sync   /dev/sdd1
       1       8       65        1      active sync   /dev/sde1
       2       8       81        2      active sync   /dev/sdf1

RAIDデバイスを構成した際には、RAIDのリビルドが走りますが、状態は下記で確認することができます。
[root@CentOS ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdf1[2] sde1[1] sdd1[0]
      314565632 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      [====>................]  resync = 21.3% (33517952/157282816) finish=15.7min speed=130808K/sec

unused devices: 

上記では"resync = 21.3%"となっており,RAID5のリビルド途中であることが分かります。
リビルドが終わっていなくても以降の設定作業は進めることができますので、次に進みたいと思います。

再起動後にも自動的にRAIDデバイスが構成されるようにmdadm.confファイルの設定を行います。
設定前に、既存ファイルをバックアップします。
[root@CentOS etc]# cp /etc/mdadm.conf /etc/mdadm.conf-

mdadm.confファイルの設定を行います。
[root@CentOS etc]# echo 'DEVICE /dev/sd[def]1' > /etc/mdadm.conf
[root@CentOS etc]# mdadm -Ds >> /etc/mdadm.conf

(3)RAIDデバイスのフォーマット
mkfsコマンドで"-j"オプションを指定して、ジャーナルファイルシステムでフォーマットします。
[root@CentOS ~]# mkfs -j /dev/md0
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
19660800 inodes, 78641408 blocks
3932070 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
2400 block groups
32768 blocks per group, 32768 fragments per group
8192 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 25 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

(4)ファイルシステムの手動マウント
"/u03"ディレクトリを作成し、RAIDデバイスと関連付けます。
[root@CentOS ~]# mkdir /u03
[root@CentOS ~]# mount /dev/md0 /u03

上記コマンドにより、/u03ディレクトリがRAIDデバイスとなりました。
このマウント処理を再起動後に自動的に行いたい場合は、/etc/fstabの編集を行います。

(5)リビルド状態の確認
下記によりリビルドが完了が確認できたため、RAIDディスク作成は以上で完了となります。
[root@CentOS ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdf1[2] sde1[1] sdd1[0]
      314565632 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

unused devices: 

なお、リビルドが完了する前でもファイルをRAIDディスクに配置することはできますが、重要なデータであればリビルド後に格納した方が良いです。
私の環境では、リビルド完了までに30分~40分程度かかりました。




以上です。




トラックバックURL

この記事にトラックバックする(FC2ブログユーザー)



前ページへ:RAC構築 11gR2 on Oracle Linux5.8[VMWare] 【参考】root.shエラー時に再実行する
次ページへ:Process Explorerでファイルを掴んでいるプロセスを特定する

ページのトップへ

必ずお読みください

本ブログ記事をご利用になって生じたいかなる損害についても当方は一切責任を負いません。
ご利用は自己責任でお願いします。(^―^)

広 告





ブログランキング/その他


ビジネスブログ100選

ブログランキング・にほんブログ村へ
blogramで人気ブログを分析




最新トラックバック


RSSリンクの表示

QRコード

QR

アクセスカウンター

ユニーク:
トータル:


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。