前回は、WebサーバーとAPサーバーの連携設定を行いました。今回は、データーベースを導入するにあたり、VmWare Player上でディスクの共有設定を行います。
今回、本記事で扱うVmWare Playerによるディスク共有は、あくまでもクラスタリングの学習を目的として、仮想ディスクの共有を行う事とし、本記事の設定を行い発生したいかなる障害にも、本サイトでは責任を負わないものとします。VmWare Playerは、本来クラスタリング用途としてのディスク共有を正式にサポートしていません。
本記事では、VmWare Playerでのディスク共有設定を行います。
想定する構築環境
データーベースアプリケーションを「db01」「db02」上へインストールを行い、データ格納領域として外部ディスクを利用します。「db01」を正系「db02」を副系として状態によってマウント、アンマウントを切り替えデータベースを稼働させます。
想定するミドルウェア
現在、商用データーベースでシェアNo1のOracleを使用して、データーベースサーバーを構築します。Oracleデータベースのクラスタリングには、通常「RAC(Real Application Clusters)」を使用することが多いかと思いますが、それではあまり面白くないのでクラスタリング制御にはクラスタープロを使用し、データベースはOracle12cをシングルインスタンスで使用します。
製品名 | ver | メーカー | 用途 |
Cluster Pro | 4.x | NEC | クラスタリング |
Oracle | 12c | Oracle | データーベース管理 |
ある程度のダウンタイムが許容できるなら、高いライセンスを支払ってまで「RAC」を使用せずとも、シングルインスタンス構成で十分実用に耐えることが出来ます。
想定するディスク領域
Linux標準のLVMを使用して、データーベースを載せる領域を作成します。本記事でのディスク領域には、下記を構成を想定しています。
pv | vg | lv | fs | mount point | size(MB) | 用途 |
/dev/sdb1 | data01_vg | lv_sys | ext4 | /dbdata/orcl/sys | 10240 | system領域 |
/dev/sdb2 | data02_vg | lv_dat | ext4 | /dbdata/orcl/dat | 30720 | データ領域 |
/dev/sdb3 | data03_vg | lv_idx | ext4 | /dbdata/orcl/idx | 5120 | インデックス領域 |
45GB/100GB | ||||||
/dev/sdc1 | data04_vg | lv_redo01 | ext4 | /dbdata/orcl/redo01 | 5120 | REDOログ領域1 |
/dev/sdc2 | data05_vg | lv_redo02 | ext4 | /dbdata/orcl/redo02 | 5120 | REDOログ領域2 |
/dev/sdc3 | data06_vg | lv_arch01 | ext4 | /dbdata/orcl/arch01 | 30720 | アーカイブ領域 |
40GB/100GB | ||||||
/dev/sdd1 | backup_vg | lv_back | ext4 | /backup/ | 51200 | バックアップ領域 |
50GB/50GB |
本記事では、ディスクサイズは余裕みて「/dev/sdb(100GB)」「/dev/sdc(100GB)」「/dev/sdd(50GB)」としていますが、任意のサイズでかまいません。
本来IOの分散を図るためにはすべてのディスクを別々に用意するべきですが、昨今はロジカルユニットの構造上、複数のディスクでIOが分散されていることが多い為、そこまで気にする必要がなくなってきました。
本記事では、必要最低限の環境構築にとどめ、データーベース格納領域の環境構築を進めて行きます。
本来はデーターベースファイルのサイズを正確に見積もって、適切なディスクサイズを設計します。
VmWare Playerのディスク共有設定
ディスク共有に使用する仮想ディスクを、「node0」で作成します。構成は下記の通り。
VmWare Playerのディスク構成
- node0
├ share_disk/node0-0.vmdk (元)
├ share_disk/node0-1.vmdk (元)
└ share_disk/node0-2.vmdk (元) - db01
├ share_disk/node0-0.vmdk (Active時)
├ share_disk/node0-1.vmdk (Active時)
└ share_disk/node0-2.vmdk (Active時) - db02
├ share_disk/node0-0.vmdk (StandBy時)
├ share_disk/node0-1.vmdk (StandBy時)
└ share_disk/node0-2.vmdk (StandBy時)
共有ディスクの作成(node0側の作業)
クラスタリングを設定するためには、「db01」「db02」から同時に参照、更新可能なディスク(以降、共有ディスク)を作成する必要があります。下記の手順に従って、ディスク共有に使用するディスクを必要数作成していきます。
なお、共有するディスクは「node0」上に作成していきます。
共有ディスクの作成手順
- 「仮想マシン設定の編集」リンクをクリック
- ハードウェア追加画面で「追加」ボタン押下
- ハードディスクを選択して「次へ」ボタン押下
- 「SCSI(推奨)」を選択して「次へ」ボタン押下
- ディスクの選択画面で「仮想ディスク新規作成」を選択して「次へ」ボタン押下
- ディスクサイズを入力して「仮想ディスクを単一ファイルとして格納」を選択後「次へ」ボタン押下
- 共有ディスクを格納するディレクトリを選択して「完了」ボタン押下
①「仮想マシン設定の編集」リンクをクリック
② ハードウェア追加画面で「追加」ボタン押下
③ ハードディスクを選択して「次へ」ボタン押下
④ 「SCSI(推奨)」を選択して「次へ」ボタン押下
⑤ ディスクの選択画面で「仮想ディスク新規作成」を選択して「次へ」ボタン押下
⑥ ディスクサイズを入力して「仮想ディスクを単一ファイルとして格納」を選択後「次へ」ボタン押下
⑦ 共有ディスクを格納するディレクトリを選択して「完了」ボタン押下
共有ディスク設定(db01、db02側の作業)
vmxファイルの設定を追記
「db01」「db02」のvmxファイルに以下を追記することで、共有ディスクが各Nodeから同時に参照、更新が可能になります。vmxファイルは「db01」「db02」を作成したフォルダに拡張子vmxで存在します。
vmxファイルへ追加
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
共有ディスクの追加
「db01」でディスクを追加します。VMWare Playerを起動し「db01」のOSを選択した状態にします。
①「仮想マシン設定の編集」リンクをクリック
② ハードウェア追加画面で「追加」ボタン押下
③ ハードディスクを選択して「次へ」ボタン押下
④ 「SCSI(推奨)」を選択して「次へ」ボタン押下
⑤ ディスクの選択画面で「既存の仮想ディスクを使用」を選択して「次へ」ボタン押下
共有ディスクとして作成したvmdkファイルのパスを入力して「完了」ボタン押下
共有ディスクが取り込まれていることを確認して「OK」ボタン押下
※ 同様の作業を「db02」でも行います。
共有ディスクの取り込み確認
VmWare Playerの「仮想マシン設定の編集」画面で共有ディスクの取り込みを確認したら、「db01」「db02」のOSから作成した共有ディスクの存在を確認します。
各Nodeよりrootユーザにて「fdisk -l」コマンドを実行して新規ディスクを確認します。全Nodeで同じ結果になることを確認します。
# fdisk -l
[ db01 ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | [root@db01 ~]# fdisk -l Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト Disk label type: dos ディスク識別子: 0x000c6a1f デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 206899199 102400000 8e Linux LVM Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト Disk /dev/sdc: 107.4 GB, 107374182400 bytes, 209715200 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト Disk /dev/sdd: 53.7 GB, 53687091200 bytes, 104857600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト |
[ db02 ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | [root@db02 ~]# fdisk -l Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト Disk label type: dos ディスク識別子: 0x000b2b81 デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 206899199 102400000 8e Linux LVM Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト Disk /dev/sdc: 107.4 GB, 107374182400 bytes, 209715200 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト Disk /dev/sdd: 53.7 GB, 53687091200 bytes, 104857600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト |
「db01」「db02」でともに共有ディスク「/dev/sdb」「/dev/sdc」「/dev/sdd」を認識している事が確認できます。
仮想サーバー構築(全9記事)[追加記事作成中]
├─KickStartを使ってVmWare Player上へLinuxを導入する!
├─KickStart設定ファイルについて!
├─httpd(Apache)サーバーの導入
├─NICチーミングを設定する!
├─サーブレットコンテナ(JBOSS)の導入
├─JBoss-EAPを設定する!
├─Web-AP間連携の設定を行う!
├─VmWare Playerのディスク共有設定を行う!
└─共有ディスク上へデータ格納領域を作成する