ZFS、DTraceで管理が楽に!
ZFSブートファイルシステムとは
「第3回:IPSでパッケージ管理!(http://www.thinkit.co.jp/article/82/3/)」は、OpenSolaris 2008.05で新しく追加されたImage Packaging System(以下IPS)を紹介しました。最終回の今回は、OpenSolaris 2008.05で注目される管理機能を紹介します。
OpenSolaris 2008.05では、高速で管理も簡単なSolaris ZFS(以下ZFS)が、デフォルトのファイルシステムとなります。ルート(/)以下すべてがZFSで管理できるため、システムの信頼性や拡張性が格段に良くなりました。
メモリのようにハードディスクを追加するだけで簡単に増設ができたり、ストレージの冗長(ミラー化やRAID-Z)の拡張もできるため、初期インストール時にディスク容量の確保やパーティションサイズの組み立てで、悩むことはもうありません。
ZFSにより、ブート環境(Boot Environment、以下BE)も含めたファイルシステムのスナップショット(バックアップ)やロールバック、さらに安全に保管されたスナップショットからクローンファイルシステムの作成などが高速に処理できます。
スナップショットさえあれば、システム障害やセキュリティ障害が起きても瞬時に復旧させることができます。OpenSolaris 2008.05ではじめてZFSファイルシステムを体験される方は、これらの処理の速さにきっと驚かれるでしょう。
ファイルシステムの構成と管理
では、図1に示したOpenSolaris 2008.05ファイルシステムを見てみましょう。OpenSolarisがハードディスクにインストールされると、rpoolという名前で、ZFSストレージプールが作成されます。
rpoolストレージプール内には、ルート(/)以下のシステムファイルで構成されるBEと、複数のBEで共有可能なデータ領域(/export以下)の2つのZFSファイルシステムが作られます。またこれらとは独立した/rpool/bootディレクトリには、複数のBEを管理するためのGRUB起動メニューが保管されています。
BEも含めたシステム領域がファイルシステムとしても独立することで、より柔軟なシステム管理ができるようになりました。
ZFSを使ったファイルシステムの管理の例を紹介します。例えば、大容量のストレージが要求されるようなデータベースを構築する場合には、冗長を持たせたストレージプールをrpoolとは別に作成し、その上にデータベースファイルシステムを構築すれば、システムとは独立した、より信頼性の高いスキームでの管理が可能になります。
下記のコマンドライン入力例は、システムに装着された4本のハードディスクでRAID-Z構成のdb_poolストレージプールと、/db_pool/mysql_dataというZFSファイルシステムを構築する例です。ZFSでは、このように簡単に信頼性の高いファイルシステムを構築することができます。
# zpool create -f db_pool raidz c1t1d0 c1t2d0 c1t3do c1t4d0
# zfs create db_pool/mysql_data