2013年1月27日日曜日

ファイルシステムの話 (その2)

今回は、前回の
ファイルシステムの話 (その1)
に続き、クラスタファイルシステムの話です。

通常のファイルシステムについて

まず、クラスタ対応していない、通常のファイルシステム
(とりあえず、ローカルファイルシステムと呼んだりしています)についてです。
※ローカルファイルシステムという呼び方は微妙かもしれません…

一般的に、Linuxでは ext3、ext2 などのファイルシステムが使用されています。
OSがこれらの仕組み(ファイルシステム)でファイルを管理するとき、
複数のアプリケーション(プロセス)が同時にファイルを更新しないように働いています。

ただし、これは1つのOSが、1つのファイルシステムでファイルを管理している場合の話です。



クラスタ対応していないローカルファイルシステムの場合は、
それぞれのOSが、他のOSのファイル管理操作を意識できません。
そのOS自身の中での(それぞれのOSからの)ファイル操作の整合性はとれますが
それぞれのOSが勝手にファイル操作をしてしまうため、
結果的に共有ディスクのデータは、整合性がない状態になってしまいます。

そのため、基本的にローカルファイルシステムを使用しているときに、
複数OSで同時に同じファイルシステムに書き込むことはNGです。



このような場合、
共有したディスク上のファイルを書き込むためには
サーバ(OS)のクラスタ環境に対応したファイルシステムとして
クラスタファイルシステムや、NFSを使用します。


クラスタファイルシステムについて

OVSで利用するクラスタファイルシステムは
OCFS2(Oracle Cluster File System version 2)です。
これは汎用的なクラスタファイルシステムなので、
OVS以外(たとえば、RACの共有ディスクなど)でも使用できます。
「Oracle」という名前がついていますが、Oracleのデータベースファイルだけでなく
一般的なファイル(バイナリファイルや、ログファイルなど)も格納することが可能で、
OVSで使用する場合は、VMの設定ファイルや、仮想ディスクイメージファイル等を
OCFS2の領域に格納します。

OCFS2は、複数のOSからのデータ書き込みに対して整合性を確保するため、
独自のクラスタウェア(o2cb)を使用します。
共有ディスクを利用するOSそれぞれで o2cb のプロセスが起動して
お互いが確認し合ってデータの整合性を確保するわけです。



以上、クラスタファイルシステムの話でした。

0 件のコメント:

コメントを投稿