harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

cluster DB GNU/Linux 仮想化

VMware server上で共有ディスクを新規作成(Linux)

投稿日:2006年9月15日

Last Updated on 2013年4月17日 by かんりにん

[pukiwiki]
#topicpath

#contents

*VMware server上で共有ディスクを新規作成(Linux)

WMwareのクラスタ検証環境を構築する際、nfsマウントしたディレクトリ上で
なぜかpostgresを起動できなかったので、VMwareで共有ディスクを追加する作業で解決。
※商用版のESX serverやGSX serverでなくても環境構築が可能。

**セットアップ環境

VMホストサーバ:RHEL ES4(Update4)
VMware server(フリーのやつ)
VMゲストサーバ:RHEL ES4(Update4)×2

**参考サイト
お世話になりました。

【VMwareのクラスタ設定】
・VMwareでクラスタ
http://blog.so-net.ne.jp/ojaoki/2006-05-02

・VMware で Windows クラスタ(MSCS)
http://blogs.sqlpassj.org/matu_tak/archive/2004/05/13/2153.aspx

【共有ディスクのフォーマット】
・RedHat7.2ハードディスク増設
http://www.ne.jp/asahi/hishidama/home/tech/unix/hdd.html

**作業ログ

***1)VM上から仮想ディスクを追加[主系]
  セットアップ済みのVMゲストマシンから共有ディスクを置く主系のゲストを選択し、
  VMのコンソールからデバイス追加を行う。

+Edit virual machine settingをクリックし、設定画面を開く
+Virtual machine Settingダイアログを開いたら、”Hardware”タブの下にある”Add”をクリック
+”Add Hardware Wizard”が開くので、ウィザードに従って進み、Hard Diskを選択し、Nextをクリック。
+”Select a Disk”でCreate a new virtual diskにチェックを入れ、次へをクリック
+”Virtual Disk Type”は任意のタイプを選択して次へ。
+”Disk capacity”でディスク容量を選択して次へ
+”Disk file”でディスクファイル名を確認し、問題なければ完了をクリック。
-詳細設定を行う場合は”Advanced”をクリック。
→詳細設定
詳細設定の場面では、デバイス名とディスクモードを選択できる。
デバイスラベルを変更したい場合は”Virtual device node”で任意のラベルを選択。
共有ディスクとして設定したい場合は”Mode”欄のIndependendをチェックし、Persistentを選択。
問題なければ完了。

***2)仮想ディスクの設定[主系]
  コンソールでの追加作業が終了したら、ゲストマシンの設定ファイルを編集。
  Linuxの場合は、/var/lib/vmware/以下に設定ファイルと仮想領域が置かれる。
  該当のゲストマシンの設定ファイル.vmxに設定を追加。

  [追記項目]

-追加ディスクの設定確認
scsi1.present = “TRUE”
scsi1:0.present = “TRUE”
scsi1:0.fileName = “vmdkファイルへのパス”
scsi1:0.mode = “independent-persistent”
scsi1:0.deviceType = “plainDisk”

-共有ディスク用の設定
# Shared Disk
disk.locking=”false” ←ディスクのロックを解除するため必須
diskLib.dataCacheMaxSize=0
diskLib.dataCacheMaxReadAheadSize=0
diskLib.dataCacheMinReadAheadSize=0
diskLib.dataCachePageSize=4096
diskLib.maxUnsyncedWrites=0
設定が完了したらVMコンソールからVMゲストを起動する。

***3)追加したディスクのフォーマット
  この辺はHDDを追加したときに行うフォーマットと同様。

  ディスクを追加したはいいが、当然そのままでは使えないので
  フォーマットを実行。
  設定を行っても最終的に書き込みを実行しない限り更新されないので安心。

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

コマンド (m でヘルプ): n ←領域作成
コマンドアクション
e 拡張
p 基本領域 (1-4)
p ←基本領域作成
領域番号 (1-4): 1 ←領域番号を入力
最初 シリンダ (1-130, default 1): ←シリンダ開始番号を入力(デフォルト値)
Using default value 1
終点 シリンダ または +サイズ または +サイズM または
+サイズK (1-130, default 130): ←シリンダ終点番号を入力(デフォルト値)
Using default value 130

コマンド (m でヘルプ): p ←作成された領域を表示

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/dev/sdb1 1 130 1044193+ 83 Linux

コマンド (m でヘルプ): w ←wコマンドで領域テーブルの作成が反映される。
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。
#
これにて終了。
+フォーマット実行
コマンドmke2fsでフォーマットを実施。
オプション-cでフォーマット前にチェックを実施。
# mke2fs -c /dev/sdb1
mke2fs 1.35 (28-Feb-2004)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y ←ここでyを入力し、実行開始。
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
131072 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376

Checking for bad blocks (read-only test): done
Writing inode tables: 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.
#
+ファイルシステム変更
上記のフォーマットでext2となったがRHEL4なのでext3に変更。
ext3のジャーナルを追加するためコマンドtune2fsを実行。
オプション-jでext3のジャーナルが追加される。
# tune2fs -j /dev/sdb1
tune2fs 1.35 (28-Feb-2004)
Creating journal inode: done
This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
#

***4)主系でマウント確認。

  早速マウントして確認。
  マウントポイントとして、/mnt以下にshare/ディレクトリを作成してテスト。

# mkdir /mnt/share
# mount -t ext3 /dev/sdb /mnt/share/
# mount | grep sdb
/dev/sdb on /mnt/share type ext3 (rw)

  これにて主系の設定は完了。
  確認できたら、副系でもマウントするので一旦umountする。

***5)副系へ共有ディスクの設定を追加

  2)項で主系のVM設定ファイルへ追加した項目を副系のVM設定ファイルへも追加。

[追記項目]

-追加ディスクの設定確認(主系に追加されたものをコピー)
scsi1.present = “TRUE”
scsi1:0.present = “TRUE”
scsi1:0.fileName = “vmdkファイルへのパス” ←主系のディレクトリを含め、フルパスで指定
scsi1:0.mode = “independent-persistent”
scsi1:0.deviceType = “plainDisk”

-共有ディスク用の設定
# Shared Disk
disk.locking=”false” ←ディスクのロックを解除するため必須
diskLib.dataCacheMaxSize=0
diskLib.dataCacheMaxReadAheadSize=0
diskLib.dataCacheMinReadAheadSize=0
diskLib.dataCachePageSize=4096
diskLib.maxUnsyncedWrites=0

  設定が完了したらVMコンソールからVMゲストを起動する。

***6)副系でマウント確認。

  主系同様にマウントして確認。
  マウントポイントとして、/mnt以下にshare/ディレクトリを作成してテスト。

# mkdir /mnt/share
# mount -t ext3 /dev/sdb /mnt/share/
# mount | grep sdb
/dev/sdb on /mnt/share type ext3 (rw)

  これにて副系の設定も完了。
  フェイルオーバーを有効にする場合はマウント/アンマウントの設定も忘れずに。

[/pukiwiki]

-cluster, DB, GNU/Linux, 仮想化

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

no image

script/曜日の判定(if文とdateオプション)

曜日を判定する勉強用スクリプト。 dateコマンドのオプション”%u”で曜日を数値で出力し、あらかじめ決めた曜日に合致するか否かで メッセージを切り替える。 デフォルト曜日は日 …

no image

monitインストール[RHEL3]

[pukiwiki]   システムマネージメントツールmonitのインストール 監視ツールの発展版といえる、デーモン監視と異常時の再起動などを行う便利ツール。 既にnagiosやzabbixをインスト …

no image

ただのメモ:mysqladmin pingで起動確認

  mysqladminを実行する際にpingオプションをつけると、指定したホストのmysqldの稼働状態を確認してくれる。 簡単な監視に良いかも。 $ mysqladmin -h -uroot -p …

no image

[自分メモ]Linux/BSD tarで固めたファイルの伸長サイズを確認

たま~に必要になるけど、すぐ忘れちゃうのでメモ。 tar で固めたファイルを展開せずに、実際のサイズを確認したいときは オプションtfに”-v(verpose)”をつければ確認 …

[AWS] EC2からS3へのファイル転送時間をコマンド別に軽くレポート

  本日までに試した、EC2→S3へのファイル転送時間をコマンド別にそれぞれ簡単に比較・テストしてみたので、以下にまとめ。 それぞれ5回試してみたうちの、速度がもっとも速かったものを以下に記載。今後の …