トップ 一覧 検索 ヘルプ RSS ログイン

ZFSを使ってみるの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!概要
ZFSはSolaris10で新たに採用されたファイルシステムです。 ZFSには先進的な機能が多数盛り込まれており、以下のような特徴があります。
*簡単(zpool, zfsの2つのコマンドだけで管理できる)
*大容量(16エクサバイトのファイルを扱える)
*高機能(RAID、スナップショット、クローン、クォータ、...)
*安全(99.99999999999999999%の信頼性)
*無料!

ZFSの基本的な使い方をまとめてみます。
!!!ZFSファイルシステムの作成
/export/homeパーティションをZFSに移行してみます。ルートパーティションはSolaris10 11/06の時点では残念ながらZFSにできません。

!!ストレージプールの作成
まずストレージプールを作ります。 物理的なディスク(スライス)をいくつかまとめて仮想的なディスクとして扱うことができます。 ストレージプールはミラー(RAID1)、RAID-Z(RAID5)、RAID-Z2(RAID6)などの構成にすることもできます。

プールの作成にはzpool createコマンドを使います。/dev/dsk/c0d0s7からtankという名前のプールを作成してみます。/dev/dskはつけてもつけなくてもかまいません。
ZFSでは/etc/vfstabを使わないため、もしZFSで使おうとしているスライスが/etc/vfstabに書いてある場合は削除してください。
 # zpool create tank c0d0s7

これでtankという名前のプールが作成され、/tankにマウントされます。ここまでわずか数秒です。

ミラー構成にする場合は以下のような感じになります。簡単でしょ?
 # zpool create tank mirror c0d0s7 c0d1s7

zpool listコマンドでプールのリストを表示できます。
 $ zpool list
 NAME                    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
 tank                   76.5G   22.7G   53.8G    29%  ONLINE     -

!!ファイルシステムの作成
tankプールにhomeファイルシステムを作成します。 ファイルシステムの作成にはzfs createコマンドを使います。
 # zfs create tank/home

マウントポイントを変更します。
 # zfs set mountpoint=/export/home tank/home

zfs listコマンドでファイルシステムのリストを表示できます。
 $ zfs list
 NAME                   USED  AVAIL  REFER  MOUNTPOINT
 tank                  22.7G  52.6G  24.5K  /tank
 tank/home             22.7G  52.6G  22.7G  /export/home

プールの領域はプール内のファイルシステムで共有されます。zfs quotaコマンドで容量を制限することもできます。

/export/homeの容量を20GBに制限します。
 # zfs set quota=20g tank/home

!!!スナップショット
ZFSではファイルシステムのある時点での状態をスナップショットとして保存することができます(UFSにもありましたが)。

!!スナップショットの作成
スナップショットを作成するにはzfs snapshotコマンドを使います。tank/homeのスナップショットを作成します。
 # zfs snapshot tank/home@snapshot1

スナップショットは数秒で作成されます。スナップショットを作った時点ではディスク容量は消費せず、ファイルを更新するたびに容量を消費していきます。

作成したスナップショットには/export/home/.zfs/snapshot/からアクセスできます。このディレクトリはlsコマンドでは見えないので注意してください(-aオプションでも見えません)。

!!ある時点のスナップショットに戻す
ファイルシステムをある時点のスナップショットに戻すにはzfs rollbackコマンドを使います。
 # zfs rollback tank/home@snapshot1

!!スナップショットを削除する
スナップショットを削除するにはzfs destroyコマンドを使います。
 # zfs destroy tank/home@snapshot1


!!!バックアップ・リストア
バックアップ・リストアにはzfs send, zfs recvコマンドを使います。(以前はbackup/restoreというコマンドでしたがsend/receiveに変更されました。) 

!!バックアップ
zfs sendコマンドでバックアップしたいスナップショットを指定します。
 # zfs send tank/home@snapshot1 > /backup/home.img

!!差分バックアップ
差分バックアップを取る場合は-iオプションと2つのスナップショットを指定します。
 # zfs send -i tank/home@snapshot1 tank/home@snapshot2 > /backup/home_sub.img

!!リストア
zfs sendコマンドで出力したバックアップデータをzfs receiveコマンドでリストアします。
 # zfs receive tank/home < /backup/home.img 

!!!リンク
*[docs.sun.com: Solaris ZFS 管理ガイド|http://docs.sun.com/app/docs/doc/819-6260]
*[docs.sun.com: SunOS リファレンスマニュアル:  zpool(1M)|http://docs.sun.com/app/docs/doc/819-1211/6n3j834b7?q=zfs&a=view]
*[docs.sun.com: SunOS リファレンスマニュアル:  zfs(1M)|http://docs.sun.com/app/docs/doc/819-1211/6n3j834b4?q=zfs&a=view]