Oracle Cluster File System 2は、Linux 2.6以降のカーネルと完全に統合された、汎用のジャーナルファイルシステムです。Oracle Cluster File System 2を利用すれば、アプリケーションバイナリファイル、データファイル、およびデータベースを、SAN中のデバイスに保管することができます。このファイルシステムには、クラスタ中のすべてのノードが同時に読み書きすることができます。また、分散ロックマネージャにより、アクセスの競合を回避することができます。Oracle Cluster File System 2は、最高32,000個までのサブディレクトリ、および数百万個のファイルをサポートしています。各ノード上ではO2CBクラスタサービス(ドライバ)が動作して、クラスタを管理しています。
Oracle Real Application Cluster(RAC)データベースとOracle Home(そのアプリケーションファイル)をサポートするため、2005年8月にOracle Cluster File System 2がSUSE Linux Enterprise Serverに追加されました。SUSE Linux Enterprise Server 10以降では、以下のストレージソリューションでOracle Cluster File System 2を使用することができます。
Oracle RACおよび他のデータベース
一般アプリケーションと負荷
クラスタ中のXENイメージ
サーバ間でXEN仮想マシンの素早く簡単な移植性を活用するために、XEN仮想マシンおよび仮想サーバを、クラスタサーバによりマウントされたOracle Cluster File System 2ボリュームに保管することができます。
LAMP(Linux、Apache、MySQL、およびPHP | PERL | Python)スタック
また、Heartbeat 2と完全に統合されています。
Oracle Cluster File System 2は、高性能なパラレルクラスタファイルシステムで、以下の機能をサポートしています。
クラスタ中のすべてのノードが、アプリケーションのファイルを利用することができます。ユーザは、クラスタ中のOracle Cluster File System 2ボリュームに1回インストールするだけで構いません。
標準のファイルシステムインタフェースを通じて、すべてのノードが並行してストレージに読み書きできるため、クラスタにまたがって稼働するアプリケーションの管理が容易になります。
ファイルアクセスは、分散ロックマネージャ(DLM:Distributed Lock Manager)により、管理、調整されます。
ほとんどの場合、DLMによる制御は適切に機能しますが、DLMとファイルアクセスを競合するようなアプリケーションなど、アプリケーションの設計によっては、スケーラビリティが制限される可能性もあります。
すべてのバックエンドストレージで、ストレージのバックアップ機能を利用することができます。共有アプリケーションファイルのイメージを簡単に作成することができるため、災害発生時でも素早くデータを復元することができます。
Oracle Cluster File System 2には、以下の機能も用意されています。
メタデータのキャッシュ処理
メタデータのジャーナル処理
ノード間にまたがるファイルデータの整合性
ocfs2consoleユーティリティを介したGTK GUIベースの管理機能
共有ルートファイルシステムとしての運用
最大16TBまでのボリュームで、最高4KBまでの複数ブロックサイズをサポート(各ボリュームで異なるブロックサイズを使用可能)
255台までのクラスタノードをサポート
ノード固有のローカルファイルに対するCDSL(Context-dependent symbolic link)のサポート
データベースのパフォーマンスを向上する非同期、直接I/Oのサポート
Oracle Cluster File System 2クラスタサービスは、OCFS2サービス/ボリュームを管理するために必要な、一連のモジュールとメモリ内ファイルシステムです。これらのモジュールは、システムブート時にロード、マウントすることができます。方法については、OCFS2サービスの設定を参照してください。
表 13-1 Oracle Cluster File System 2クラスタサービススタック
|
サービス |
説明 |
|---|---|
|
Node Manager (NM) |
/etc/ocfs2/cluster.confファイル中のすべてのノードを追跡します |
|
Heartbeat (HB) |
ノードがクラスタに参加/退席した時に稼働/非稼働を通知する信号を送信します |
|
TCP |
ノード間のTCPプロトコルを使った通信を処理します |
|
分散ロックマネージャ(DLM:Distributed Lock Manager) |
すべてのロック、およびその所有者とステータスを追跡します |
|
CONFIGFS |
ユーザスペース設定ファイルシステム。詳細については、内部メモリファイルシステムを参照してください。 |
|
DLMFS |
カーネルスペースDLMへのユーザスペースインタフェース。詳細については、内部メモリファイルシステムを参照してください。 |
Oracle Cluster File System 2を利用するには、ネットワーク上のノードが稼働していなければなりません。O2CBクラスタサービスは、正常に稼働していることを確認するために、定期的にキープアライブパケットを送信します。ネットワーク遅延が発生すると、ノードがダウンしたと判断される可能性があるため、パケットの送信にはLANの代わりにノード間のプライベートな内部接続を使用しています。
OC2Bクラスタサービスは、ディスクハートビートを介してノードステータスをやり取りします。ハートビートシステムファイルは、クラスタ中のすべてのノードが利用できるSAN上に常駐しています。このファイル中のブロック割り当ては、各ノードのスロット割り当てに順番に対応しています。
各ノードは2秒間隔でファイルを読み込み、それをファイル中の割り当てられたブロックに書き込みます。ノードのタイムスタンプの変更により、そのノードが稼働していることが分かります。一定時間ハートビートファイルに書き込みがない場合、そのノードは停止しているとみなされます。この時間は、書き込み間隔数で表されるハートビートしきい値として設定します。単一のノードだけが動作している場合でも、他のノードが動的に追加される可能性があるため、O2CBクラスタサービスはこのチェックを行います。
ディスクHeartbeatのしきい値を変更するには、/etc/sysconfig/o2cbファイルのO2CB_HEARTBEAT_THRESHOLDパラメータを使用します。このしきい値の時間は以下のように算出されます。
(O2CB_HEARTBEAT_THRESHOLD value - 1) * 2 = threshold in seconds
たとえば、O2CB_HEARTBEAT_THRESHOLDにデフォルト値の7が設定されている場合、時間は12秒になります((7 - 1) * 2 = 12)。
Oracle Cluster File System 2は、通信用に2つのメモリ内ファイルシステムを使用しています。
Oracle Cluster File System 2は、ノード固有のパラメータファイルをノード上に保存します。このクラスタ設定ファイル(/etc/ocfs2/cluster.conf)は、クラスタに割り当てられた各ノード上にあります。
ocfs2consoleユーティリティは、クラスタ中のOracle Cluster File System 2の環境設定を管理するための、GTK GUIベースのインタフェースです。クラスタ中の各メンバノードの/etc/ocfs2/cluster.confファイルの設定と保存には、このユーティリティを使用します。また、このユーティリティを使ってOCFS2ボリュームの、フォーマット、チューニング、マウント、およびアンマウントなどの作業を行うこともできます。
重要:ocfs2consoleユーティリティのファイルブラウザ列は、非常に遅く、クラスタ間で整合性がありません。ファイルを表示する場合は、代わりにls(1)コマンドを使用することをお勧めします。
他のOCFS2ユーティリティを以下の表に示します。これらのコマンドの指定形式については、マニュアルページを参照してください。
表 13-3 OCFS2ユーティリティ
O2CBサービスを管理するには、以下のコマンドを使用します。o2cbコマンドの詳細や指定形式については、該当するマニュアルページを参照してください。
表 13-4 O2CBのコマンド
SUSE Linux Enterprise Server 10以降では、OCFS2カーネルモジュール(ocfs2)は自動的にインストールされます。OCFS2を使用するには、YaST(またはコマンドライン)を使ってocfs2-toolsとocfs2consoleパッケージを、クラスタ中の各ノードにインストールします。
root、または同等のユーザとしてログインし、YaSTコントロールセンタを起動します。
の順に選択します。
フィールドに、以下の文字列を入力します。
ocfs2
右側のパネルに、ocfs2-toolsとocfs2consoleのソフトウェアパッケージが表示されます。これらのパッケージが選択されている場合、すでにこれらのパッケージはインストールされています。
パッケージをインストールするには、該当するパッケージを選択した後をクリックして、以降画面に表示される指示に従って作業を行います。