この章では、VMware Server で可用性の高い構成を使用する方法について説明しま す。この章の内容は次のとおりです。
SCSI リザベーションを使って SCSI ディスクを 仮想マシンで共有(P.171)
VMware Server によるクラスタリングの概要(P.176)
ボックス内のクラスタの作成(P.177)
VMware Server を使用したネットワーク負荷分散の使用(P.185)
Novell クラスタリング サービスを使った 2 ノードの クラスタの作成(P.191)
iSCSI プロトコルを使ったクラスタリング(P.194)
SCSI リザベーションを使って SCSI ディスクを 仮想マシンで共有
VMware Server では、事前割当済み仮想ディスクを、同一ホスト上で稼働する複数の 仮想マシン間で共有することができます。ディスクを共有させると、そのディスクに 接続されている全仮想マシンが SCSI リザベーションのプロトコルを使って、その ディスクに並行して書き込みを行うことができるようになります。
SCSI ディスクを共有する予定の各仮想マシンには、クラスタリング ソフトウェアを インストールする必要があります。各マシンで SCSI リザベーションを有効にするこ とにより、動作中の仮想マシンが自動的に SCSI リザベーションのプロトコルに参加 する訳ではありません。
注 拡張可能な仮想ディスクや物理ディスクも SCSI リザベーションを使って利 用することが可能ですが、そのような使用方法は試験的なものと考えてくだ さい。実働環境での利用はお勧めしません。SCSI リザベーションが完全に サポートされているのは、事前割当済み仮想ディスクの使用のみです。仮想 マシンを新規作成すると、あるいは既存の仮想マシンに新しい仮想ディスク を追加すると、 VMware Server はデフォルトで事前割当済み仮想ディスクが 作成されます。
注 この機能は上級者向けです。一般的に、SCSI(特に SCSI リザベーション プ ロトコル)に精通しているユーザー以外の使用はお勧めいたしません。
次のセクションでは、SCSI リザベーションを使って複数台の仮想マシン間でディス クを共有する方法について説明します。
SCSI リザベーションのサポート(P.172)
SCSI リザベーションの有効化(P.173)
ディスク共有時に考慮すべき点(P.174)
SCSI リザベーションのサポート
SCSI リザベーションのサポートには、以下の制約があります。
SCSI リザベーションは、SCSI 仮想ディスクと SCSI 物理ディスクに対して有効にで きます。それ以外のタイプの SCSI デバイスが仮想マシンで SCSI リザベーション を利用することはできません。特に Generic SCSI デバイスとして構成されている SCSI ディスクでは、SCSI リザベーションを有効にすることはできません。
Generic SCSI の詳細については、『VMware Server 仮想マシン ガイド』の
「Generic SCSI デバイスへの接続」を参照してください。
注 VMware Server では、事前割当済み仮想ディスクを使用する場合、SCSI リザベーションがサポートされています。 拡張可能ディスクと物理ディ スクでの SCSI リザベーションに対するサポートは試験的なものです。
高い可用性の構成には、SCSI リザベーションを事前割当済み仮想ディ スクで利用してください。
SCSI ディスクは、SCSI リザベーションを使って、同一ホストで稼動する仮想マ シン間で共有することができます。これには、仮想マシンの構成ファイルをすべ て同じ VMware Server ホスト上に保存する必要があります。ただし、仮想マシン が共有するディスクは別のロケーションの異なるホスト上に格納されていても構 いません。
SCSI 仮想ディスクは、どのタイプのハードディスク(IDE、SCSI または SATA 等)
を持つホストにも格納することができます。共有物理ディスクは常に SCSI ディ スクでなければなりません。
VMware Server 仮想マシンは、現在 SCSI-2 ディスク プロトコルのみをサポートし ており、SCSI-3 ディスク リザベーションを使用するアプリケーションはサポー トしていません。ただし、一般的に使われているクラスタリング ソフトウェア
(MSCS および VCS 等)はすべて、現在 SCSI-2 リザベーションを使用しています。
SCSI リザベーションの有効化
ディスクを共有する前に、SCSI リザベーションを仮想マシン内で有効にする必要が あります。共有ディスクはすべて、同一の SCSI バス(ゲスト OS が使用するバスと は異なるバス)に設定することをお勧めします。例えば、ゲスト OS がscsi0バス上 に存在する場合、共有するディスクは次に利用可能なバス(通常はscsi1バス)上に 設定してください。
2 個の異なるバスを使ってリソースを共有すると(例えば SCSI1:0 をデータに、
SCSI2:0 をクォーラムに使用)、構成ファイルが無効になって、仮想マシンを起動でき なくなります。
SCSI リザベーションを有効にするには、仮想マシンをパワーオフしておく必要があ ります。構成ファイル (.vmx) をテキストエディタで開き、ファイルのどこかに次の行 を追加します。
scsi<x>.sharedBus = "virtual"
ここで<x>は、共有する SCSI バスを指します。
例えば、scsi1バス上のデバイスに対して SCSI リザベーションを有効にするには、
仮想マシンの構成ファイルに次の行を追加します。
scsi1.sharedBus = "virtual"
これでバス全体を共有することができるようになります。この方法は、各ディスクを 個別に指定するよりも手早くできます。一方で、バス全体を共有したくない場合は、
共有するバス上の特定の SCSI ディスクを選択して SCSI リザベーションを有効にする ことも可能です。例えば、scsi1:1に存在する SCSI ディスクを共有したい場合は、
次の行を構成ファイルに追加してください。
scsi1:1.shared = "true"
ディスクを共有する各仮想マシンの構成ファイルに同じ SCSI ターゲット(つまり scsi<x>:1)を指定するようにしてください。
SCSI リザベーションをバス全体に対して有効にすると(つまりscsi1.sharedBusを
¥virtual¥に設定すると)、上記の設定は無視されます。
バス上で SCSI リザベーションを有効にしたら、仮想マシンが共有ディスクに並行ア クセスできるように許可を与える必要があります。仮想マシンの構成ファイルに次の 行を追加してください。
disk.locking = "false"
これによって該当ディスクがロックされなくなり、複数台の仮想マシンがそのディス クに並行アクセスすることが許可されます。注意してください。SCSI リザベーション 向けに構成されていない仮想マシンがこのディスクに同時にアクセスしようとする と、共有ディスクが破損したり、データの損失が生じる恐れがあります。
注意 上記の設定は、仮想マシンの全ディスクに適用されます。
SCSI リザベーションを有効にすると、特定ディスクに対するリザベーションの共有 状態を記録するリザベーションロックファイルが作成されます。このファイルの名前 は、SCSI ディスクのファイル名に.RESLCKという拡張子を付けたものになります。
例えば、構成ファイルでscsi1:0.filenameというディスクを次のように定義した場合、
scsi1:0.fileName = "/<path_to_config>/vmSCSI.vmdk"
このディスクのリザベーション ロック ファイル名はデフォルトで次のようになります。
"/<path_to_config>/vmSCSI.vmdk.RESLCK"
ただしユーザーが自分でロックファイル名を付けることも可能です。構成ファイルに
scsi1:0.reslcknameの定義を追加してください。例えば、次の行を構成ファイルに追
加した場合、scsi1:0.reslckname = "/tmp/scsi1-0.reslock"
デフォルトのロックファイル名を上書きします。
注意 クラスタ内の各仮想マシンに対して、同じロック ファイル名(例えば
"/tmp/scsi1-0.reslock")を使用してください。また、
scsi1:0.reslcknameを定義する際は、各仮想マシンに同じ SCSI ターゲッ トを使用する必要があります。ただし、SCSI バス(この場合はscsi1)
は同じにする必要がありません。
特定ディスクに対する SCSI リザベーションを有効にしたら、つまりそのディスクを 共有する予定の各仮想マシンの構成ファイルにscsi<x>.sharedBus = "virtual"およ びdisk.locking = "false"という設定を追加したら、そのディスクにアクセスする 予定の各仮想マシンに対してこのディスクを指定する必要があります。
仮想マシンへの仮想ディスクの追加に関しては、『VMware Service 仮想マシン ガイ ド』の「仮想マシンに 仮想ディスクを追加」を参照してください。
ディスク共有時に考慮すべき点
同一ホスト上に共存していない複数の仮想マシン間でディスクを共有しないでく ださい。ディスクファイルは別のロケーションに格納することができますが、仮 想マシンは同一の VMware Server ホスト上で稼動していなければなりません。異 なるホストに存在する仮想マシン間でディスクを共有しようとすると、データが 破損したり、失われたりする恐れがあります。
SCSI バス 0 上のディスクは共有しないでください。通常、このバスはブート ディ スクに使用されています。ブート ディスクを共有しても、ブート プログラムは ディスクが共有されていることを認識せず、共有されているかどうかに関わら ず、そのディスクに書き込みを行ってしまいます。このためディスクを破損する 恐れがあります。別のバスに存在するデータ ディスク上で SCSI リザベーション を使用するほうが、はるかに安全です。