Comments
Description
Transcript
Oracle Solaris 11 ZFS 構築/運用手順書
Oracle Solaris 11 ZFS 構築/運用手順書 2016年5月 第1.2版 富士通株式会社 Oracle Solaris 11 ZFS 構築/運用手順書 使用条件 著作権・商標権・その他の知的財産権について コンテンツ(文書・画像・音声等)は、著作権・商標権・その他の知的財産権で保護されています。 本コンテンツは、個人的に使用する範囲でプリントアウトまたはダウンロードできます。ただし、これ以 外の利用(ご自分のページへの再利用や他のサーバへのアップロード等)については、当社または 権利者の許諾が必要となります。 保証の制限 本コンテンツについて、当社は、その正確性、商品性、ご利用目的への適合性等に関して保証する ものではなく、そのご利用により生じた損害について、当社は法律上のいかなる責任も負いかねます。 本コンテンツは、予告なく変更・廃止されることがあります。 輸出または提供 本製品を輸出又は提供する場合は、外国為替及び外国貿易法及び米国輸出管理関連法規等の規 制をご確認の上、必要な手続きをおとり下さい。 商標について UNIX は、米国およびその他の国におけるオープン・グループの登録商標です。 SPARC Enterprise、SPARC64、SPARC64 ロゴ、およびすべての SPARC 商標は、米国 SPARC International, Inc.のライセンスを受けて使用している、同社の米国およびその他の国における商標 または登録商標です。 Oracle と Java は、Oracle Corporation およびその子会社、関連会社の米国およびその他の国にお ける登録商標です。 その他各種製品名は、各社の製品名称、商標または登録商標です。 Copyright 2012-2016 FUJITSU LIMITED i Oracle Solaris 11 ZFS 構築/運用手順書 はじめに 本書の内容 SPARC/Solaris を使用される方を対象に、Oracle Solaris 11 における ZFS(Zettabyte File System) の構築、運用手順について解説しています。 Oracle Solaris 11 の詳細については、以下の URL を参照して下さい。 「Oracle Solaris 11.3 Information Library」 https://docs.oracle.com/cd/E62101_01/ 留意事項 本書では、Oracle Solaris を Solaris と記載することがあります。 本書は Oracle Solaris 11.3 の機能を基に作成しています。 本書は SRU16021(Oracle バージョン:SRU11.3.5.6.0)を適用した環境で作成しています。 本書に記載の設定値(ホスト名、IP アドレス等)は参考例です。実際のシステム環境に応じて読み替 えてください。 Copyright 2012-2016 FUJITSU LIMITED ii Oracle Solaris 11 ZFS 構築/運用手順書 目 次 1. ZFS の概要 ........................................................................................... 1 1-1. ZFS の特長 ............................................................................................................... 1 1-2. ZFS の利用 ............................................................................................................... 2 1-3. システム要件 ............................................................................................................ 2 2. ZFS ルートファイルシステムの作成 ......................................................... 3 3. ZFS の構築/運用 ................................................................................... 4 3-1. ストレージプールの作成............................................................................................. 4 3-2. ファイルシステムの作成 ............................................................................................. 8 3-3. プロパティの設定 ....................................................................................................... 9 3-3-1. ファイルシステムの使用量の割り当て(quota プロパティ)................................................. 9 3-3-2. プロパティの継承......................................................................................................... 11 3-4. ファイルシステムのマウント/アンマウント ................................................................... 12 3-4-1. マウントポイントのプロパティ設定例 1 ........................................................................... 12 3-4-2. マウントポイントのプロパティ設定例 2 ........................................................................... 13 3-4-3. マウント/アンマウント実行 ............................................................................................ 14 3-5. ファイルシステムの共有、共有解除 .......................................................................... 15 3-6. デバイスの追加(add) ............................................................................................. 17 3-7. デバイスの接続/切り離し(attach/detach) ................................................................ 19 3-7-1. デバイスの接続(attach) .............................................................................................. 19 3-7-2. デバイスの切り離し(detach) ....................................................................................... 22 3-8. デバイスのオンライン/オフライン(online/offline) ....................................................... 23 3-8-1. デバイスのオフライン(offline) ...................................................................................... 24 3-8-2. デバイスのオンライン(online) ...................................................................................... 25 3-9. エラーのクリア(clear).............................................................................................. 27 3-10. デバイスの置き換え(replace) ............................................................................... 28 3-11. ホットスペア(spare) .............................................................................................. 31 3-12. ストレージプールの移行(export/import) ................................................................ 35 3-12-1. エクスポート(export) ................................................................................................ 35 3-12-2. インポート(import).................................................................................................... 35 3-13. スナップショット ..................................................................................................... 37 Copyright 2012-2016 FUJITSU LIMITED iii Oracle Solaris 11 ZFS 構築/運用手順書 3-13-1. スナップショットの作成 ............................................................................................... 37 3-13-2. ロールバック(rollback) ............................................................................................. 39 3-13-3. クローン(clone)........................................................................................................ 39 3-14. ZFS データの送信/受信(send/receive) ................................................................. 42 3-14-1. ZFS データの送信 ..................................................................................................... 42 3-14-2. ZFS データの受信 ..................................................................................................... 43 3-15. ZFS データの完全性をチェックする(scrub) ............................................................ 44 3-16. ミラーディスクの切り離し(split).............................................................................. 45 3-17. スナップショットの保持(hold) ................................................................................ 48 3-18. スナップショットの差分表示(diff) ........................................................................... 51 3-19. ZFS 暗号化 ........................................................................................................... 53 3-20. 重複排除 .............................................................................................................. 55 3-21. ZFS 自動スナップショット ....................................................................................... 57 3-22. ファイルシステムミラーマウント .............................................................................. 62 3-23. トラブルシューティング ........................................................................................... 65 3-23-1. 損傷した ZFS ファイルシステムの修復 ....................................................................... 65 3-23-2. デバイスの再接続 ..................................................................................................... 65 3-23-3. 損傷したデバイスの修復 ........................................................................................... 65 3-23-4. 損傷したデータの修復 ............................................................................................... 66 3-23-5. 起動できないシステムの修復 ..................................................................................... 68 3-23-6. ZFS コマンドの履歴表示 ............................................................................................ 69 参考1. ファイルシステムの共有、共有解除(Oracle Solaris 11 11/11) ............ 70 参考2. ZFS 操作の監視................................................................................ 72 付録1. ZFS プロパティの紹介 ....................................................................... 73 Copyright 2012-2016 FUJITSU LIMITED iv Oracle Solaris 11 ZFS 構築/運用手順書 1.ZFS の概要 ZFS は Oracle Solaris 11 の標準機能であり、従来の UFS(Unix File System)と比較して様々な点で優 れたファイルシステムです。Solaris 11 のルートファイルシステムは ZFS のみであり、ZFS の特長や管理、 運用方法を理解することは Solaris 11 が稼働するシステムを管理、運用する上で必要となります。 1-1.ZFS の特長 ■ 優れたスケーラビリティ ・ 世界初の 128bit のファイルシステム ・ 事実上、無限大といえるファイルシステムを構築可能 ■ 管理のしやすさ ・ 管理コマンドの簡素化(zpool、zfs) ・ 物理ディスクを集約した仮想ディスク領域(ストレージプール)上でファイルシステムを管理、提供 ・ ストレージプールによるデバイスの隠蔽とストレージ管理の容易化 ■ データの堅牢性 ・ データ書き込みは「Copy on Write」方式で実行され、一連の処理が完了するまでデータを確定させ ないため、データの整合性を保証【トランザクションファイルシステム】 ・ データブロックのチェックサムは親ブロックに格納されるため、チェックサム自身の損傷時も、不正デ ータ検出とデータ自己修復が可能【End-to-End のチェックサム】 ・ 暗号化によるデータ秘匿性向上 ・ ZFS 標準機能でソフトウェア RAID 構成が可能(表 1 参照) 表 1:ZFS でサポートする RAID 構成について 種類 ストライピング 機能 ディスクの最低必要本数 非冗長構成(RAID0) 2本 複数面も可能なミラー構成(RAID1) 2本 RAID-Z シングルパリティ構成(RAID5 に類似) 2本 RAID-Z2 ダブルパリティ構成(RAID6 に類似) 3本 RAID-Z3 トリプルパリティ構成 4本 ミラー ※RAID1+0(ミラー+ストライピング)など、複数の RAID 構成の組み合わせも可能 Copyright 2012-2016 FUJITSU LIMITED 1 Oracle Solaris 11 ZFS 構築/運用手順書 1-2.ZFS の利用 ■ Solaris システムの運用に有効な機能 ・ 圧縮機能や重複排除機能でディスク容量の節約が可能 ・ ストレージプールの容量が不足した時は、OS 稼働中に領域の拡張が可能 ・ ファイルシステムを瞬時に退避可能(ZFS スナップショット)であり、データのロールバックも可能 ・ ZFS スナップショットからファイルシステムを瞬時に複製可能(ZFS クローン) ・ Solaris Zone も ZFS 上に構成されるため、Zone のスナップショットやクローンも ZFS の仕組みを利 用して短時間で実行可能 1-3.システム要件 ■ Oracle Solaris 11 で構成可能なルートファイルシステム(/)は ZFS のみとなります。UFS のルートファ イルシステムは構成できません。 ■ 最小のストレージプールのサイズは 64M バイトですが、推奨値は8G バイトです。8G バイト未満では 空きプール領域の割り当てや再利用が難しくなります。 ■ ストレージプールに使用するデバイスのサイズは、128M バイト以上にしてください。 ■ Oracle Solaris 11 システムのインストールに推奨される最小メモリ容量は 2G バイトです。 ■ ミラー構成を作成する場合は、複数のコントローラ配下のディスクで構成することを推奨します。 ■ ZFS のディスクラベルは、ルートファイルシステムも含めて EFI ラベル、または SMI(VTOC)ラベルで作 成可能です。 ※ルートファイルシステムの EFI ラベルについては、SPARC M10 のファームウェア XCP2230 以降 の環境でサポートされます。 表 2:ディスクラベルについて ラベル SMI(VTOC) 説明 ・ 従来(UFS)のラベル。2T バイトに満たないディスク用 ・ 2T バイトを超えるディスク用 EFI(Extensible ・ Solaris 11 のルートファイルシステム含むストレージプール Firmware Interface) ※ルートファイルシステムについては、SPARC M10 の ファームウェア XCP2230 以降の環境でサポートされます。 Copyright 2012-2016 FUJITSU LIMITED 2 Oracle Solaris 11 ZFS 構築/運用手順書 2.ZFS ルートファイルシステムの作成 Oracle Solaris 11 をインストールすると、ルートファイルシステム(ルートプール)が ZFS で作成されます。 UFS は選択できません。本書では、Solaris 11 がインストール済みであり、2 本のディスクからミラー構成が 実施済みであることを前提として解説します。また、本書で解説している環境は SRU(Support Repository Update)、ESF が適用されています。 Oracle Solaris 11 のインストールについては、下記を参照してください。 「Oracle® Solaris 11.3 システムのインストール」 https://docs.oracle.com/cd/E62101_01/html/E62506/index.html Copyright 2012-2016 FUJITSU LIMITED 3 Oracle Solaris 11 ZFS 構築/運用手順書 3.ZFS の構築/運用 3-1.ストレージプールの作成 ストレージプールはディスク全体(例:c2t0d1)、または個別のスライス(例:c2t0d1s0)をストレージデバイ スとして利用可能ですが、性能や管理の面からディスク全体を使用する方法を推奨します。 ディスク全体を使用する場合、ディスクのスライス設定は不要であり、ZFS によって EFI ラベルのディスク としてフォーマットされます。format コマンドで表示されるパーティションテーブルは次のようになります。 例:ストレージプールを構成するディスクのパーティションテーブル(EFI ラベル) Current partition table (original): Total disk sectors available: 143358320 + 16384 (reserved sectors) Part Tag 0 usr 1 unassigned 2 unassigned 3 unassigned 4 unassigned 5 unassigned 6 unassigned 8 reserved Flag wm wm wm wm wm wm wm wm First Sector 256 0 0 0 0 0 0 143358321 Size 68.36GB 0 0 0 0 0 0 8.00MB Last Sector 143358320 0 0 0 0 0 0 143374704 ZFS データセット(ファイルシステム、ボリューム、スナップショット、クローンなどのストレージプール上で の総称)に名前をつけるときの規則は以下の通りです。 ■ 空のデータセット名は許可されません。 ■ 各データセットに使用できる文字は、英数字および次の 5 つの特殊文字だけです。 ・ 下線(_) ・ ハイフン(-) ・ コロン(:) ・ ピリオド(.) ・ 空白(" ") ■ ストレージプール名の先頭は英字にする必要があります。ただし、次の制限事項があります。 ・ c[0-9]の順序で始まる名前は許可されません。 ・ log、mirror、raidz または spare で始まる名前は予約されているため、使用できません。 ・ ストレージプール名にはパーセント記号(%)を含めないでください。 ■ データセット名の先頭は英数字にする必要があります。 Copyright 2012-2016 FUJITSU LIMITED 4 Oracle Solaris 11 ZFS 構築/運用手順書 1)ストレージプールの作成 ディスク c2t0d1 と c2t0d2 からなるミラー構成のストレージプールを「testpool」という名前で作成します。 # zpool create testpool mirror c2t0d1 c2t0d2 ☛ mirror の代わりに raidz(または、raidz2、raidz3)と指定することによって RAID-Z(RAID-Z2、RAID-Z3)の RAID 構 成のストレージプールが作成されます。 ☛ ☛ RAID 構成を指定しないで実行した場合は、ストライプ構成のストレージプールが作成されます。 ストレージプールの作成時にマウントポイントを指定しない場合、ストレージプール名がデフォルトマウントポイントと なります。上記の場合、/testpool としてマウントされます。 2)ストレージプールの確認 作成したストレージプールを確認します。 # zpool list NAME SIZE testpool 4.97G ALLOC 792K FREE 4.97G CAP 0% DEDUP 1.00x HEALTH ALTROOT ONLINE - 表 3:「zpool list」コマンドで表示されるプロパティ プロパティ NAME SIZE 説明 ストレージプールの名前 ストレージプールの合計サイズ 最上位レベルにあるすべての仮想デバイスの合計サイズ すべてのデータセットおよび内部メタデータから割り当てられた容量 ALLOC ※この容量は、df コマンドなどのファイルシステムレベルで報告される容量とは 一致しません FREE CAP ストレージプール内で割り当てられていない容量 使用されている容量の割合 ※総容量に対する割合(パーセント)で表現されます DEDUP 重複除外された割合 HEALTH ストレージプールの現在の状態 ALTROOT ストレージプールの代替ルート Copyright 2012-2016 FUJITSU LIMITED 5 Oracle Solaris 11 ZFS 構築/運用手順書 3)ストレージプールの状態確認 作成したストレージプールの状態を確認します。 # zpool pool: state: scan: config: status testpool testpool ONLINE none requested NAME STATE testpool ONLINE mirror-0 ONLINE c2t0d1 ONLINE c2t0d2 ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 errors: No known data errors ☛ ☛ -x オプションを使うとエラーが発生しているか、使用不可能なストレージプールの状態だけを表示します。 -v オプションを使うと詳細なデータエラー情報を表示し、前回のストレージプールのスクラブの完了後のデータエラ ーすべての完全なリストを出力します。 表 4:「zpool status」コマンドで表示される状態 状態 説明 仮想デバイスに障害が発生しているが、引き続き利用できる状態 DEGRADED 例)ミラーデバイスまたは RAID-Z デバイスを構成するデバイスのうち、1 つ以上のデバイスが失われたとき OFFLINE 管理者がその仮想デバイスを明示的にオフラインにしている状態 ONLINE デバイスは正常に機能している状態 REMOVED システム稼働中にデバイスが物理的に取り外されている状態 デバイスまたは仮想デバイスを開くことができない状態 UNAVAIL 最上位レベルの仮想デバイスが使用できない場合は、そのストレージプ ールのデバイスへのアクセスは不可 Copyright 2012-2016 FUJITSU LIMITED 6 Oracle Solaris 11 ZFS 構築/運用手順書 参考)RAID-Z 構成のストレージプール作成 RAID-Z 構成の「testpool」というストレージプールを、ディスク c2t0d1 と c2t0d2 で作成する場合。 # zpool create testpool raidz c2t0d1 c2t0d2 参考)マウントポイントを指定したストレージプール作成 マウントポイントに「/export/test」を指定して、ミラー構成の「testpool」というストレージプールを、ディスク c2t0d1 と c2t0d2 で作成する場合。 # zpool create -m /export/test testpool mirror c2t0d1 c2t0d2 参考)ディスクラベルの変更 ディスク c2t0d1 の EFI ラベルを SMI ラベルに変更する場合。 # format -e c2t0d1 selecting c2t0d1 [disk formatted, no defect list found] FORMAT MENU: disk - select a disk type - select (define) a disk type partition - select (define) a partition table current - describe the current disk format - format and analyze the disk repair - repair a defective sector show - translate a disk address label - write label to the disk analyze - surface analysis defect - defect list management backup - search for backup labels verify - read and display labels inquiry - show disk ID volname - set 8-character volume name !<cmd> - execute <cmd>, then return quit format> label ←「label」を入力 [0] SMI Label [1] EFI Label Specify Label type[1]: 0 ←「0」を入力 format> Copyright 2012-2016 FUJITSU LIMITED 7 Oracle Solaris 11 ZFS 構築/運用手順書 3-2.ファイルシステムの作成 ファイルシステムの作成には、「zfs create」コマンドを使用します。ファイルシステムの作成時に自動的に マウントポイントが作成されマウントされます。また、同時に各種のプロパティ設定が可能です。 1)ファイルシステムの作成 「testpool/home」という名前のファイルシステムを新規作成します。 # zfs create testpool/home 2)ファイルシステムの確認 作成したファイルシステムを確認します。 # zfs list -r testpool NAME USED AVAIL REFER MOUNTPOINT testpool 1.16M 4.89G 304K /testpool testpool/home 288K 4.89G 288K /testpool/home 参考)マウントポイントを指定したファイルシステムの作成 マウントポイントに「/export/zfs」を指定して、「testpool/home」ファイルシステムを新規作成する場合。 # zfs create -o mountpoint=/export/zfs testpool/home ☛ -o mountpoint=[マウントポイント]を指定すると任意にマウントポイントを設定することが可能です。 参考)ファイルシステムの名前の変更 ファイルシステム「testpool/home」の名前を「testpool/zfs/home_old」に変更する場合。 # zfs rename -p testpool/home testpool/zfs/home_old ☛ -p オプションを使用すると、中間のデータセット「testpool/zfs」が存在しない場合に同時作成することが可能です。 参考)ファイルシステムの削除 「testpool/home」を削除する場合。 # zfs destroy testpool/home ☛ -r オプションを使用すると、指定したデータセット配下のデータセットを再帰的に削除することが可能です。 参考)ZFS ボリュームの作成 2G バイトの ZFS ボリューム testpool/home/user1 を作成する場合。 # zfs create -V 2g testpool/home/user1 ☛ -V オプションを使用すると、ファイルシステムではなく ZFS ボリューム(/dev/zvol)を作成することが可能です。 Copyright 2012-2016 FUJITSU LIMITED 8 Oracle Solaris 11 ZFS 構築/運用手順書 3-3.プロパティの設定 作成したファイルシステムに各種のプロパティを設定することで、ファイルシステムの動作を制御します。 設定可能なプロパティの中には、親に設定したプロパティがその配下のすべてのファイルシステムに継承さ れるものがあります。(各プロパティについては、「付録 1.プロパティの紹介」を参照してください。) 3-3-1.ファイルシステムの使用量の割り当て(quota プロパティ) 1)プロパティの設定 「testpool/home」が使用できる容量の割り当て(quota)を 3G バイトに設定します。 # zfs set quota=3g testpool/home ☛ ☛ 設定を解除する場合は、「quota=none」と設定します。 ファイルシステムで消費されている容量がシステムに反映されるまでにタイムラグがあるため、quota プロパティに 設定した値を超えてデータを書き込める場合があります。 2)プロパティの確認 設定した quota プロパティを確認します。 # zfs get quota testpool/home NAME PROPERTY testpool/home quota ☛ VALUE 3G SOURCE local -r オプションを使用すると、子孫のプロパティも確認することができます。 SOURCE の列は、プロパティ値の設定元を表示します。表示される値の意味は下記の通りです 表 5:「zfs get」コマンドで表示される値 SOURCE の値 default inherited from dataset-name local temporary - 説明 プロパティのデフォルト値が使用されている状態 dataset-name に指定されているデータセットから継承され ている状態 zfs set を使って、このデータセットに明示的に設定してい る状態 プロパティ値は、zfs mount -o オプションを使って設定さ れ、マウントされている間だけ有効となる状態 読み取り専用プロパティであり、値は ZFS により生成される Copyright 2012-2016 FUJITSU LIMITED 9 Oracle Solaris 11 ZFS 構築/運用手順書 参考)ユーザ/グループ割り当て制限 割り当て制限については、ユーザ毎、およびグループ毎に設定することも可能です。下記の通り、割り当 て制限が設定されていないすべてのユーザ/グループに設定する場合と、特定のユーザ/グループ毎に設 定する方法があります。 表 6:ユーザ/グループ割り当て制限プロパティ プロパティ 説明 デフォルトのユーザ割り当て制限 defaultuserquota=size | none デフォルトのグループ割り当て制限 defaultgroupquota=size | none ☛ ☛ userquota@user= size | none | default 特定のユーザ割り当て制限 groupquota@group= size | none | default 特定のグループ割り当て制限 none は、割り当て制限なし、または割り当て制限を解除します。 default は、割り当て制限のデフォルト値に設定します。 設定例) デフォルトのグループ割り当て制限を設定する場合。 # zfs set defaultgroupquota=25gb testpool/home 特定のグループ割り当て制限を設定する場合。 # zfs set groupquota@group1=50gb testpool/home Copyright 2012-2016 FUJITSU LIMITED 10 Oracle Solaris 11 ZFS 構築/運用手順書 3-3-2.プロパティの継承 割り当て(quota)と予約(reservation)を除いて、すべての設定可能なプロパティは上位データセットから 値を継承します。明示的な値が上位データセットに設定されていない場合は、デフォルト値が設定されます。 以下は、一旦 testpool/home/user1 に圧縮(compression)「on」を設定した後、上位データセットからの設 定(default)を継承する手順です。 1)プロパティの設定 「testpool/home/user1」の compression 設定値を on に設定します。 # zfs create testpool/home/user1 # zfs set compression=on testpool/home/user1 2)プロパティの設定確認 「testpool」の compression 設定値を確認します。 # zfs get -r compression NAME testpool testpool/home testpool/home/user1 ☛ testpool PROPERTY compression compression compression VALUE off off on SOURCE default default local -r オプションを使用すると、指定したデータセット配下に再帰的に実行されます。 3)プロパティの継承設定 compression 設定を上位データセットから継承します。 # zfs inherit compression testpool/home/user1 4)プロパティの設定確認 設定後に「testpool」の compression 設定値を確認します。 # zfs get -r compression NAME testpool testpool/home testpool/home/user1 testpool PROPERTY compression compression compression VALUE off off off SOURCE default default default Copyright 2012-2016 FUJITSU LIMITED 11 Oracle Solaris 11 ZFS 構築/運用手順書 3-4.ファイルシステムのマウント/アンマウント 初 期 設 定 で は 、 す べ て の フ ァ イ ル シ ス テ ム は 、 OS 起 動 時 に サ ー ビ ス 管 理 機 能 ( SMF ) の svc:/system/filesystem/local:default サービスにより自動マウントされます。 zfs set コマンドで mountpoint プロパティを指定することで、マウントポイントを変更できます。また、 mountpoint プロパティは上位データセットより継承されます。 レガシーマウントを利用すると、従来のように/etc/vfstab ファイルや mount/umount コマンドを使用して、フ ァイルシステムのマウント/アンマウントを管理することが可能です。レガシーマウントを利用する場合は、 mountpoint プロパティに legacy を設定します。 3-4-1.マウントポイントのプロパティ設定例 1 下記は、「testpool/home」ファイルシステムのマウントポイントを「/export/zfs」に設定する場合です。 1)マウントポイントプロパティの確認 マウントポイントプロパティの設定値を確認します。 # zfs get -r mountpoint testpool NAME PROPERTY testpool mountpoint testpool/home mountpoint testpool/home/user1 mountpoint VALUE SOURCE /testpool default /testpool/home default /testpool/home/user1 default 2)マウントポイントプロパティの設定 「testpool/home」のマウントポイントプロパティを「/export/zfs」に設定します。 # zfs set mountpoint=/export/zfs testpool/home ☛ ☛ mountpoint のプロパティは自動で継承されます。 mountpoint プロパティを変更すると、ファイルシステムが古いマウントポイントから自動的にマウント解除されて、 新しいマウントポイントに再マウントされます。 3)マウントポイントプロパティの確認 設定したマウントポイントプロパティの設定値を確認します。 # zfs list -r testpool NAME USED AVAIL REFER MOUNTPOINT testpool 1.59M 4.89G 288K /testpool testpool/home 592K 3.00G 304K /export/zfs testpool/home/user1 288K 3.00G 288K /export/zfs/user1 Copyright 2012-2016 FUJITSU LIMITED 12 Oracle Solaris 11 ZFS 構築/運用手順書 # zfs get -r mountpoint testpool NAME PROPERTY testpool mountpoint testpool/home mountpoint testpool/home/user1 mountpoint VALUE /testpool /export/zfs /export/zfs/user1 SOURCE default local inherited from testpool/home 3-4-2.マウントポイントのプロパティ設定例 2 下記は、「testpool/home」ファイルシステムのマウントポイントを「legacy」に設定する場合の手順です。 1)マウントポイントプロパティの確認 マウントポイントプロパティの設定値を確認します。 # zfs get -r mountpoint testpool NAME PROPERTY testpool mountpoint testpool/home mountpoint testpool/home/user1 mountpoint VALUE SOURCE /testpool default /testpool/home default /testpool/home/user1 default 2)マウントポイントプロパティの設定 マウントポイントのプロパティを「legacy」に設定します。 # zfs set mountpoint=legacy testpool/home 3)マウントポイントプロパティの確認 設定したマウントポイントプロパティの設定値を確認します。 # zfs list -r testpool NAME USED AVAIL REFER MOUNTPOINT testpool 1.59M 4.89G 288K /testpool testpool/home 592K 4.89G 304K legacy testpool/home/user1 288K 4.89G 288K legacy # zfs get -r mountpoint testpool NAME PROPERTY testpool mountpoint testpool/home mountpoint testpool/home/user1 mountpoint ☛ VALUE SOURCE /testpool default legacy local legacy inherited from testpool/home legacy を解除する場合、2)マウントポイントプロパティの設定の手順でマウントポイントを再指定してください。 参考)レガシーファイルシステムをマウント/アンマウントする場合 # mount -F zfs testpool/home /mnt # umount /mnt Copyright 2012-2016 FUJITSU LIMITED 13 Oracle Solaris 11 ZFS 構築/運用手順書 3-4-3.マウント/アンマウント実行 ZFS のファイルシステムは、ファイルシステムが作成されるとき、またはシステムが起動するときに自動的 にマウントされます。zfs mount コマンドは、マウントポイントを変更するとき、または手動でファイルシステム のマウント/アンマウントを行うときに使用します。 zfs mount コマンドを引数なしで実行すると、ZFS が現在マウントしているファイルシステムをすべて表示 します。但し、レガシーマウントで管理されているマウントポイントは表示されません。 1)マウント状態の確認 現在のファイルシステムのマウント状態を確認します。 # zfs mount (中略) testpool /testpool 2)マウントの実施 「testpool/home」をマウントします。 # zfs mount testpool/home 3)マウント状態の確認 マウント実行後、ファイルシステムのマウント状態を確認します。 # zfs mount (中略) testpool testpool/home ☛ /testpool /export/zfs -a オプションを使用すると、ZFS が管理しているファイルシステムをすべてマウントしますが、レガシーマウントで管 理されているファイルシステムはマウントされません。 ☛ -O オプションを使用すると、空でないディレクトリへ強制的にマウントします。 4)アンマウントの実施 「testpool/home」をアンマウントします。 # zfs unmount testpool/home または # zfs unmount /export/zfs ☛ -a オプションを使用すると、/(root)ファイルシステムを除き ZFS が管理しているファイルシステムをすべてアンマウ ントできます。 ☛ アンマウントはファイルシステム名またはマウントポイントを指定して実行できます。 Copyright 2012-2016 FUJITSU LIMITED 14 Oracle Solaris 11 ZFS 構築/運用手順書 3-5.ファイルシステムの共有、共有解除 Oracle Solaris 11.1 以降の ZFS におけるファイルシステムの共有は share.nfs プロパティを設定するこ とで実現します。Oracle Solaris 10 のように/etc/dfs/dfstab ファイルを編集してもファイルシステムの共有は 設定されません。 なお、Solaris 11 11/11 の場合は、手順が異なります。11/11 の手順については、「参考1.ファイルシステ ムの共有、共有解除(Oracle Solaris 11 11/11)」を参照下さい。 1)share.nfs プロパティの状態確認 ファイルシステムの share.nfs プロパティを確認します。デフォルトは「off」(無効)です。 # zfs get share.nfs testpool/home NAME PROPERTY VALUE SOURCE testpool/home share.nfs off default 2)共有されているファイルシステムの確認 共有設定されているファイルシステムがないことを確認します。 # share IPC$ smb - Remote IPC ☛ ファイルシステムの共有の状態は share コマンドで確認できます。 ☛ 共有されているファイルシステムがない場合は何も出力されません。 3)共有の設定 share.nfs プロパティを有効にします。 # zfs set share.nfs=on testpool/home 4)share.nfs プロパティの状態確認 share.nfs プロパティが「on」(有効)であることを確認します。 # zfs get share.nfs testpool/home NAME PROPERTY VALUE SOURCE testpool/home share.nfs on local 5)共有されているファイルシステムの確認 共有設定されているファイルシステムを確認します。 # share IPC$ testpool_home smb /export/zfs Remote IPC nfs sec=sys,rw Copyright 2012-2016 FUJITSU LIMITED 15 Oracle Solaris 11 ZFS 構築/運用手順書 6)共有設定の一時的な解除 ファイルシステムの共有を解除します。 # zfs unshare testpool/home ☛ -a オプションを使用すると、共有されているすべてのファイルシステムの共有を解除します。 7)share.nfs プロパティの状態確認 共有を一時的に解除した後も、共有設定は有効であることを確認します。 # zfs get share.nfs testpool/home NAME PROPERTY VALUE SOURCE testpool/home share.nfs on local 8)共有されているファイルシステムの確認 共有されているファイルシステムを確認します。 # share IPC$ ☛ smb - Remote IPC 一時的に共有を解除しているため、何も出力されません。 9)共有の再開 ファイルシステムの共有を再開します。 # zfs share testpool/home 10)共有されているファイルシステムの確認 共有されているファイルシステムを確認します。 # share IPC$ testpool_home ☛ smb /export/zfs Remote IPC nfs sec=sys,rw 共有を再開したため、該当のファイルシステムが出力されます。 Copyright 2012-2016 FUJITSU LIMITED 16 Oracle Solaris 11 ZFS 構築/運用手順書 3-6.デバイスの追加(add) ストレージプールにデバイスを追加することで、ストレージプールの領域を動的に拡張できます。ストレー ジプール内のすべてのデータセットは、この領域をすぐに利用できます。 図 1:デバイスの追加(add)イメージ図 1)構成の確認 ディスクを追加する前に「testpool」の構成を確認します。 # zpool list testpool NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT testpool 4.97G 1.59M 4.97G 0% 1.00x ONLINE # # zpool status testpool pool: testpool state: ONLINE scan: none requested config: NAME STATE testpool ONLINE mirror-0 ONLINE c0t0d1 ONLINE c0t0d2 ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 errors: No known data errors ☛ 「testpool」は 5GB のディスク 2 本からなるミラー構成です。 Copyright 2012-2016 FUJITSU LIMITED 17 Oracle Solaris 11 ZFS 構築/運用手順書 2)デバイスの追加 zpool add コマンドで、「testpool」に c2t0d3 と c2t0d4 からなるミラー構成のディスクを追加します。 # zpool add testpool mirror c2t0d3 c2t0d4 ☛ 「testpool」に 5GB のディスク 2 本をミラー構成で追加します。 3)構成の確認 zpool list、zpool status コマンドで「testpool」の構成を確認します。 # zpool list testpool NAME SIZE ALLOC FREE CAP testpool 9.94G 126K 9.94G 0% # # zpool status testpool pool: testpool state: ONLINE scan: none requested config: NAME testpool mirror-0 c2t0d1 c2t0d2 mirror-1 c2t0d3 c2t0d4 STATE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE DEDUP 1.00x HEALTH ALTROOT ONLINE - READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 追加 errors: No known data errors ☛ ☛ 5GB のディスク 2 本をミラー構成で追加したので、SIZE の値は約 10GB です。 追加したデバイスはストライピングになります。RAID-Z などの拡張はできません(例. 2+1 構成の RAID-Z にディス クを 1 本追加した場合、3+1 構成になるのではなく、2+1 構成の RAID-Z とディスク 1 本のストライピングになる)。 ☛ 追加するデバイスは元のストレージプールと同一容量のディスク、同一 RAID 構成を推奨します。 Copyright 2012-2016 FUJITSU LIMITED 18 Oracle Solaris 11 ZFS 構築/運用手順書 3-7.デバイスの接続/切り離し(attach/detach) 既存のミラー構成のデバイスへ新しいデバイスを接続、または切り離しができます。例えば、既存のデバ イスが 2 面ミラーである場合は、新規デバイスを接続すると 3 面ミラーが作成されます。新しいデバイスを接 続すると、すぐに再同期化が開始されます。 デバイスの接続/切り離し(attach/detach)はミラー構成でのみ使用可能です。 図 2:デバイスの接続/切り離し(attach/detach)イメージ図 3-7-1.デバイスの接続(attach) 1)ストレージプールの状態確認 ストレージプール「testpool」の状態を確認します。 # zpool list testpool NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT testpool 4.97G 4.87M 4.97G 0% 1.00x ONLINE # # zpool status testpool pool: testpool state: ONLINE scan: none requested config: NAME testpool mirror-0 c2t0d1 c2t0d2 errors: No known data STATE ONLINE ONLINE ONLINE ONLINE errors READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 Copyright 2012-2016 FUJITSU LIMITED 19 Oracle Solaris 11 ZFS 構築/運用手順書 2)デバイスの接続 zpool attach コマンドで、「testpool」のデバイス c2t0d1 に c2t0d3 を接続します。 # zpool attach testpool c2t0d1 c2t0d3 3)ストレージプールの状態確認 attach 後にストレージプールの状態を確認します。 # zpool list testpool NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT testpool 4.97G 4.89M 4.97G 0% 1.00x ONLINE # # zpool status testpool pool: testpool state: ONLINE scan: resilvered 672K in 0h0m with 0 errors on Tue Feb 24 15:43:14 2015 config: NAME testpool mirror-0 c2t0d1 c2t0d2 c2t0d3 STATE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 errors: No known data errors ☛ ミラー構成のため、ディスクを追加しても SIZE の値は変わりません。 参考)デバイスを追加してストレージプールをミラー構成にする場合 以下は、単一のディスク(c2t0d1)で構成されているストレージプールにディスク(c2t0d2)を attach し、ミラ ー構成に変更する手順です。 ストレージプール「testpool」の状態を確認します。 # zpool pool: state: scan: config: status testpool testpool ONLINE none requested NAME STATE testpool ONLINE c2t0d1 ONLINE READ WRITE CKSUM 0 0 0 0 0 0 errors: No known data errors Copyright 2012-2016 FUJITSU LIMITED 20 Oracle Solaris 11 ZFS 構築/運用手順書 zpool attach コマンドで、「testpool」のデバイス c2t0d1 に c2t0d2 を接続します。 # zpool attach testpool c2t0d1 c2t0d2 attach 後にストレージプールの状態を確認します。 # zpool pool: state: scan: config: status testpool testpool ONLINE resilvered 672K in 0h0m with 0 errors on Tue Feb 24 15:58:01 2015 NAME testpool mirror-0 c2t0d1 c2t0d2 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 errors: No known data errors ☛ attach を行うと自動でミラー構成になります。 Copyright 2012-2016 FUJITSU LIMITED 21 Oracle Solaris 11 ZFS 構築/運用手順書 3-7-2.デバイスの切り離し(detach) 1)ストレージプールの状態確認 ストレージプール「testpool」の状態を確認します。 # zpool pool: state: scan: config: status testpool testpool ONLINE resilvered 4.35M in 0h0m with 0 errors on Thu Mar 12 10:36:41 2015 NAME testpool mirror-0 c2t0d1 c2t0d2 c2t0d3 STATE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 errors: No known data errors ☛ 3 面ミラー構成であることを確認します。 2)デバイスの切り離し zpool detach コマンドで、「testpool」のデバイス c2t0d3 を切り離します。 # zpool detach testpool c2t0d3 3)ストレージプールの状態確認 detach 後にストレージプールの状態を確認します。 # zpool pool: state: scan: config: status testpool testpool ONLINE resilvered 4.35M in 0h0m with 0 errors on Thu Mar 12 10:36:41 2015 NAME testpool mirror-0 c2t0d1 c2t0d2 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 errors: No known data errors ☛ c2t0d3 が切り離されたため、表示されないことを確認します。 Copyright 2012-2016 FUJITSU LIMITED 22 Oracle Solaris 11 ZFS 構築/運用手順書 3-8.デバイスのオンライン/オフライン(online/offline) ZFS では、デバイスを個別にオフラインまたはオンラインにできます。オフラインにしたデバイスには、I/O 要求は送信されません。 ハードウェアに障害が発生している場合でも、ZFS ではその状態を一時的な状態と見なして、デバイスへ のデータの読み取りおよび書き込みを続行しますが、継続的に障害が発生している場合は、デバイスをオフ ラインにして無視するように設定できます。また、オンラインに戻した後は自動で再同期化されます。 図 3:デバイスのオンライン/オフライン(online/offline)イメージ図 デバイスをオフラインにするときは、以下の点に注意してください。 ■ ストレージプールを構成するすべてのデバイスをオフラインにすることはできません。 ■ デフォルト設定では、デバイスをオフラインにすると、システムを再起動してもオフラインのままです。 一時的にオフラインにするには、-t オプションを使用します。一時的にオフラインにした場合、システム を再起動すると自動的にオンライン状態に戻ります。 ■ デバイスはオフラインになっても、ストレージプールから切り離されません。元のストレージプールが 破棄されても、オフラインのデバイスを別のストレージプールで使用しようとすると、エラーが表示され 使用できません。元のストレージプールを破棄した後で、オフラインのデバイスを別のストレージプー ルで使用する場合は、まずデバイスをオンラインに戻してから、元のストレージプールを破棄します。 Copyright 2012-2016 FUJITSU LIMITED 23 Oracle Solaris 11 ZFS 構築/運用手順書 3-8-1.デバイスのオフライン(offline) 1)ストレージプールの状態確認 ストレージプール「testpool」の状態を確認します。 # zpool pool: state: scan: config: status testpool testpool ONLINE none requested NAME testpool mirror-0 c2t0d1 c2t0d2 c2t0d3 STATE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 errors: No known data errors 2)デバイスのオフライン zpool offline コマンドで、「testpool」からディスク c2t0d3 をオフラインにします。 # zpool offline testpool c2t0d3 Copyright 2012-2016 FUJITSU LIMITED 24 Oracle Solaris 11 ZFS 構築/運用手順書 3)ストレージプールの状態確認 オフライン後にストレージプールの状態を確認します。 # zpool pool: state: status: status testpool testpool DEGRADED One or more devices has been taken offline by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using 'zpool online' or replace the device with 'zpool replace'. scan: none requested config: NAME testpool mirror-0 c2t0d1 c2t0d2 c2t0d3 STATE READ WRITE CKSUM DEGRADED 0 0 0 DEGRADED 0 0 0 ONLINE 0 0 0 ONLINE 0 0 0 OFFLINE 0 0 0 errors: No known data errors ☛ 対象ディスクが OFFLINE と表示されること、また、ストレージプールの STATE が DEGRADED と表示されることを 確認します。 参考)デバイスを一時的にオフラインにする場合 以下の手順は、ディスク c2t0d3 を一時的にオフラインにする場合です。 # zpool offline -t testpool c2t0d3 ☛ -t オプションを使用するとデバイスは一時的にオフラインになります。 3-8-2.デバイスのオンライン(online) オフラインのデバイスは、zpool online コマンドを使ってオンラインにできます。デバイスがオンラインに なると、ストレージプールに書き込まれたすべてのデータは、新しく使用可能になったデバイスに再同期化さ れます。 Copyright 2012-2016 FUJITSU LIMITED 25 Oracle Solaris 11 ZFS 構築/運用手順書 1)デバイスの状態確認 デバイスの状態を確認します。 # zpool pool: state: status: status testpool testpool DEGRADED One or more devices has been taken offline by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using 'zpool online' or replace the device with 'zpool replace'. scan: resilvered 24K in 0h0m with 0 errors on Tue Feb 24 18:44:29 2015 config: NAME testpool mirror-0 c2t0d1 c2t0d2 c2t0d3 STATE READ WRITE CKSUM DEGRADED 0 0 0 DEGRADED 0 0 0 ONLINE 0 0 0 ONLINE 0 0 0 OFFLINE 0 0 0 errors: No known data errors 2)デバイスのオンライン zpool online コマンドで、testpool のディスク c2t0d3 をオンラインにします。 # zpool online testpool c2t0d3 3)デバイスの状態確認 オンライン後、デバイスの状態を確認します。 # zpool pool: state: scan: config: status testpool testpool ONLINE resilvered 72K in 0h0m with 0 errors on Tue Feb 24 18:55:48 2015 NAME testpool mirror-0 c2t0d1 c2t0d2 c2t0d3 STATE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 errors: No known data errors Copyright 2012-2016 FUJITSU LIMITED 26 Oracle Solaris 11 ZFS 構築/運用手順書 3-9.エラーのクリア(clear) ストレージプール内のデバイスに障害が発生した場合、zpool status の出力にエラーが表示されます。デ バイスのエラーが一時的である場合は、エラーを無視してクリアすることができますが、クリア後もデバイス のエラーが出力される場合はデバイスの交換が必要です。エラー出力は自動的に消えないため、デバイス の交換後は手動でエラー出力をクリアします。 1)ストレージプールのエラーのクリア 「testpool」のエラーをクリアします。 # zpool clear testpool 参考)デバイスを指定してエラーのクリアを実行する場合 デバイスを指定してクリアを実行します。 # zpool clear testpool c2t0d2 ☛ 指定したデバイスに関連づけられたエラーだけがクリアされます。 Copyright 2012-2016 FUJITSU LIMITED 27 Oracle Solaris 11 ZFS 構築/運用手順書 3-10.デバイスの置き換え(replace) zpool replace コマンドを使用して、ストレージプール内のデバイスを物理的に置き換えることができます。 図 4:デバイスの置き換え(replace)イメージ図 ストレージプール内のデバイスを置き換える場合は、次のことを考慮してください。 ■ ストレージプールのプロパティ autoreplace を on に設定した場合、そのストレージプールに以前属し ていたデバイスと物理的に同じ位置に新しいデバイスが検出されると、そのデバイスは自動的にフォ ーマットされ、zpool replace コマンドを使用せずに置き換えられます。ハードウェアの種類によっては、 この機能を使用できない場合があります。 ■ 交換用デバイスはストレージプール内で最も容量の小さいディスクより大きいサイズである必要があ ります。 ■ 置き換える前のデバイスよりもサイズが大きいデバイスをストレージプールに追加しても、自動的に その最大サイズにまで拡張されません。ストレージプールに置き換えたデバイスを最大サイズまで拡 張したい場合は、ストレージプールの autoexpand プロパティを有効にします。デフォルトでは autoexpand プロパティは無効になっています。 ■ 障害の発生したディスクがホットスペアに自動的に置き換えられた場合は、障害の発生したディスク が置き換えられたあとでスペアの切り離しが必要になることがあります。 ■ デバイスの置き換えは、新しいデバイスへデータの再同期が行われるため時間がかかります。zpool scrub コマンドを実行すると、新しいデバイスが動作可能なこと、およびデータが正しく書き込まれるこ とを確認することができます。 Copyright 2012-2016 FUJITSU LIMITED 28 Oracle Solaris 11 ZFS 構築/運用手順書 1)デバイスの確認 zpool status コマンドで確認します。 # zpool pool: state: scan: config: status testpool testpool ONLINE resilvered 72K in 0h0m with 0 errors on Tue Feb 24 18:55:48 2015 NAME testpool mirror-0 c2t0d1 c2t0d2 c2t0d3 STATE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 errors: No known data errors 2)デバイスの置き換え c2t0d1 と c2t0d2 と c2t0d3 で構成される testpool のうち、c2t0d3 を別ディスク(c2t0d4)で置き換えます。 # zpool replace testpool c2t0d3 c2t0d4 ☛ 1 つのデバイスで構成されるストレージプール内のデバイスを置き換える場合も同様に、置き換える前後のデバイス を指定します。 Copyright 2012-2016 FUJITSU LIMITED 29 Oracle Solaris 11 ZFS 構築/運用手順書 3)デバイスの置き換え確認 デバイスの置き換え後、zool status コマンドでストレージプールの状態を確認します。 # zpool pool: state: status: status testpool testpool DEGRADED One or more devices is currently being resilvered. The pool will continue to function in a degraded state. action: Wait for the resilver to complete. Run 'zpool status -v' to see device specific details. scan: resilver in progress since Wed Feb 25 10:22:07 2015 1003M scanned 493M resilvered at 30.8M/s, 49.10% done, 0h0m to go config: NAME testpool mirror-0 c2t0d1 c2t0d2 replacing-2 c2t0d3 c2t0d4 STATE READ WRITE CKSUM DEGRADED 0 0 0 DEGRADED 0 0 0 ONLINE 0 0 0 ONLINE 0 0 0 DEGRADED 0 0 0 ONLINE 0 0 0 DEGRADED 0 0 0 (resilvering) errors: No known data errors ☛ 同期処理が完了するまでは「replacing-2」と表示されます。 # zpool pool: state: scan: config: status testpool testpool ONLINE resilvered 1003M in 0h0m with 0 errors on Wed Feb 25 10:22:43 2015 NAME testpool mirror-0 c2t0d1 c2t0d2 c2t0d4 STATE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 errors: No known data errors ☛ 同期処理が完了すると「replacing-2」の表示が消えます。 Copyright 2012-2016 FUJITSU LIMITED 30 Oracle Solaris 11 ZFS 構築/運用手順書 3-11.ホットスペア(spare) ホットスペア機能を利用すると、ストレージプールで障害が発生した場合、故障したデバイスをスペアディ スクと置き換えることできます。オンラインのデバイスが故障した場合は、スペアディスクに自動的に置き換 えられます。また、スペアディスクは複数のストレージプールで共有できます。 ストレージプールの autoreplace プロパティを on に設定している場合、新しいデバイスが挿入されオンライ ン処理が完了すると、使用中のスペアディスクは自動的に切り離され未使用のスペアディスクに戻ります。 図 5:ホットスペア(spare)イメージ図 Copyright 2012-2016 FUJITSU LIMITED 31 Oracle Solaris 11 ZFS 構築/運用手順書 ホットスペア機能使用時の注意 ■ ストレージプール内でもっとも大きいディスクのサイズ以上のディスクをスペアディスクに設定します。 サイズの小さなディスクを設定した場合、スペアディスクがアクティブになる(故障したデバイスと置き 換わる、または手動で置き換える)際にエラーとなります。 ■ 共有しているスペアディスクがストレージプールで使用されている状態で、ストレージプールをエクスポ ートする場合は、zpool export -f (強制)オプションを使用する必要があります。ただし、スペアディスク を共有している別のストレージプールがスペアディスクを使用しようとするとデータ破壊が発生する可 能性があります。 スペアディスクをアクティブにする(置き換える)方法 ■ 手動 – zpool replace コマンドを使用して置き換えます。 ■ 自動 – FMA エージェントがデバイスのエラーを検知し故障デバイスをスペアディスクに置き換えま す。 ☛ FMA(Fault Management Architecture)は、ハードウェアに関する情報を、監視、解析し、デバイスの自動切り離し などを行う可用性を高める OS 標準機能。 1)スペアディスクの指定 ストレージプール作成時にスペアディスクを指定する場合。 # zpool create testpool mirror c2t0d1 c2t0d2 spare c2t0d3 c2t0d4 ストレージプール作成後にスペアディスクを指定する場合。 # zpool add testpool spare c2t0d3 c2t0d4 Copyright 2012-2016 FUJITSU LIMITED 32 Oracle Solaris 11 ZFS 構築/運用手順書 2)スペアディスクの確認 zpool status コマンドで確認します。 # zpool pool: state: scan: config: status testpool testpool ONLINE none requested NAME testpool mirror-0 c2t0d1 c2t0d2 spares c2t0d3 c2t0d4 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 AVAIL AVAIL errors: No known data errors 3)スペアディスクのアクティブ化 zpool replace コマンドを使用して、ストレージプール内のホットスペアをアクティブにする場合。 # zpool replace testpool c2t0d1 c2t0d3 # # zpool status testpool pool: testpool state: ONLINE scan: resilvered 696K in 0h0m with 0 errors on Wed Feb 25 11:24:58 2015 config: NAME testpool mirror-0 spare-0 c2t0d1 c2t0d3 c2t0d2 spares c2t0d3 c2t0d4 STATE ONLINE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 INUSE AVAIL errors: No known data errors ☛ アクティブになっているホットスペアのディスクは STATE に INUSE と表示されます。 Copyright 2012-2016 FUJITSU LIMITED 33 Oracle Solaris 11 ZFS 構築/運用手順書 スペアディスクを非アクティブにする方法 次の 3 つの方法を使って、スペアディスクを非アクティブにできます ■ スペアディスクをストレージプールから削除することでホットスペアを取り消す(remove) ■ 元のデバイスをスペアディスクと置き換える(replace) ■ スペアディスクを恒久的に交換する(元のデバイスを detach する) 参考)スペアディスクの削除 ホットスペアに設定しているスペアディスクを削除する場合。 # zpool remove testpool c2t0d4 ☛ ストレージプールが現在使用しているホットスペアは、削除できません。 Copyright 2012-2016 FUJITSU LIMITED 34 Oracle Solaris 11 ZFS 構築/運用手順書 3-12.ストレージプールの移行(export/import) 3-12-1.エクスポート(export) ストレージプールをエクスポートして、別のサーバにインポートすることができます。この操作によりストレ ージプールに関する全ての情報を別のサーバに移行することができます。 図 6:エクスポート(export)イメージ図 1)ストレージプールのエクスポート testpool をエクスポートします。 # zpool export testpool 2)エクスポート状態の確認 # zpool list testpool cannot open 'testpool': no such pool ☛ ☛ エクスポートされたストレージプールはシステムから認識されなくなります。 ストレージプールの中にマウントされたファイルシステムがある場合は、マウントを解除してからエクスポートを実行 します。マウントの解除に失敗した場合は、-f オプションを使用して強制的にマウントを解除できます。ただし、ZFS ボリュームがストレージプール内で使用中である場合は、-f オプションを使用してもそのストレージプールをエクス ポートすることはできません。 3-12-2.インポート(import) ストレージプールをエクスポート後に物理デバイスを取り外し、インポート先のサーバに接続します。ZFS では、一部のデバイスだけで使用できる状態になることもありますが、サーバ間でストレージプールを移動 するときは、すべての物理デバイスを移動してください。 デバイス名は元のサーバ上でのデバイス名である必要はありません。デバイス名が変更されても、ストレ ージプールを構成するデバイスとして自動的に検出されます。 各ストレージプールは、名前および一意の数値識別子を使って識別されます。インポート可能な複数のス トレージプールが同じ名前の場合は、数値識別子を使って識別します。 Copyright 2012-2016 FUJITSU LIMITED 35 Oracle Solaris 11 ZFS 構築/運用手順書 1)インポート可能なストレージプールの確認 インポート可能なストレージプールが表示されます。 # zpool pool: id: state: action: config: import testpool 18269573720227852175 ONLINE The pool can be imported using its name or numeric identifier. testpool mirror-0 c2t0d1 c2t0d2 ONLINE ONLINE ONLINE ONLINE device details: 2)ストレージプールのインポート testpool をインポートします。 # zpool import testpool 参考)別名をつけたストレージプールのインポート インポートするストレージプール名が既存のストレージプール名と重複する場合は、別の名前でインポート できます。 「testpool」を「examplepool」としてインポートする場合 # zpool import testpool examplepool ☛ ストレージプールを明示的にエクスポートしていない場合は、誤って別のシステムにインポートされることを防ぐため、 インポートすることはできません。明示的にエクスポートしていないストレージプールをインポートする場合は、-f オプ ションを使用する必要があります。 参考)ID で指定してストレージプールをインポート # zpool import 18269573720227852175 Copyright 2012-2016 FUJITSU LIMITED 36 Oracle Solaris 11 ZFS 構築/運用手順書 3-13.スナップショット スナップショットとは、ファイルシステムまたは ZFS ボリュームの読み取り専用コピーのことで、スナップシ ョット名は次のように指定します。 filesystem@snapname volume@snapname スナップショット名は 3-1.ストレージプールの作成、で定義されている規則に従います。 ZFS スナップショットには次の特長があります。 ■ システムの再起動後も残ります。 ■ スナップショットの理論上の最大数は、264(2 の 64 乗)です。 ■ スナップショットは、作成元のファイルシステムと同じストレージプールの領域を消費します。 ボリュームのスナップショットに直接アクセスすることはできませんが、それらの複製、バックアップ、ロー ルバックなどは実行できます。 スナップショットには、変更できるプロパティはありません。また、データセットのプロパティをスナップショッ トに適用することもできません。 データセットのスナップショットが存在する場合、そのデータセットを破棄することはできません。 3-13-1.スナップショットの作成 1)スナップショットの作成 「testpool/home」のスナップショットを「testpool/home@now」という名前をつけて作成します。 # zfs snapshot testpool/home@now 参考)再帰的なスナップショットの作成 「testpool/home」配下のデータセットすべてのスナップショットを「now」という名前をつけて作成します。 # zfs snapshot -r testpool/home@now ☛ -r オプションを使用すると、指定したデータセット配下のスナップショットを再帰的に作成します。 2)スナップショットの確認 スナップショットのみを表示します。 # zfs list -t snapshot ☛ -t オプションで表示するファイルタイプ「snapshot」を指定すると、スナップショットのみを表示します。 3)スナップショットの削除 指定したスナップショットを削除します。 # zfs destroy testpool/home@now Copyright 2012-2016 FUJITSU LIMITED 37 Oracle Solaris 11 ZFS 構築/運用手順書 参考)再帰的なスナップショットの削除 指定したデータセット配下のスナップショットを全て削除する。 # zfs destroy -r testpool/home@now ☛ -r オプションを使用すると、指定したデータセット配下のスナップショットを再帰的に削除します。 参考)スナップショット名の変更 スナップショットの名前を testpool/home@now から testpool/home@today に変更する。 # zfs rename testpool/home@now testpool/home@today または # zfs rename testpool/home@now today ☛ -r オプションを使用すると、指定したデータセット配下のスナップショット名を再帰的に変更します。 ファイルシステムのスナップショットには、ファイルシステムを含むルートの.zfs/snapshot ディレクトリから アクセスできます。例えば、testpool/home/user1 が/testpool/home/user1 にマウントされている場合は、 testpool/home/user1@now スナップショットのデータには/testpool/home/user1/.zfs/snapshot/now ディレ クトリからアクセスできます。 # ls /testpool/home/user1/.zfs/snapshot/now ☛ ☛ データは読み取り専用でアクセスできます。 .zfs ディレクトリは ls コマンドで確認できないため、スナップショットのデータはフルパスで指定する必要があります。 Copyright 2012-2016 FUJITSU LIMITED 38 Oracle Solaris 11 ZFS 構築/運用手順書 3-13-2.ロールバック(rollback) ファイルシステムのロールバックを行うと、スナップショットを作成した時点より後に加えられた全ての変更 を破棄して、スナップショットを作成した時点の状態にファイルシステムを戻すことができます。 ロールバックを行うには以下の条件を満たす必要があります。 ■ 最新のスナップショット以外のスナップショットにロールバックすることはできません。それより前のスナ ップショットにロールバックするには、中間にあるスナップショットをすべて破棄する必要があります。ロ ールバック時に-r オプションを指定することで、指定したスナップショットを最新としてロールバックが可 能です。 ■ 中間にあるスナップショットからクローンが作成されている場合は、-R オプションを指定することで、ク ローンも破棄することができます。 1)ロールバックの実行 「testpool/home/user1@now」をロールバックします。 # zfs rollback testpool/home/user1@now ☛ -r オプションを使用すると、指定したスナップショットを最新としてロールバックします。testpool/home/user1@now 以降に作成したスナップショットがある場合、そのスナップショットは削除されます。 ☛ ロールバックされるスナップショットは指定したファイルシステムのみ戻り、その配下に作成したファイルシステムは 戻りません。必要がある場合、個々にロールバックします。 3-13-3.クローン(clone) 「クローン」とは、書き込み可能なボリュームまたはファイルシステムのことで、作成直後の状態は作成元 のデータセットと同じです。スナップショットの場合と同様に、クローンは瞬間的に作成され、最初は追加の ディスク領域を消費しません。また、クローンのスナップショットを作成することもできます。 クローンはデータセット階層内の別の場所に作成されますが、クローンが存在する間は元のスナップショ ットを破棄することはできません。またクローンには、作成元のデータセットのプロパティは継承されません。 クローンのすべてのディスク領域は、最初は元のスナップショットと共有されます。 1)クローンの作成 「testpool/home/user1@now」のクローンを「testpool/home/user2」という名前で作成します。 # zfs clone testpool/home/user1@now testpool/home/user2 Copyright 2012-2016 FUJITSU LIMITED 39 Oracle Solaris 11 ZFS 構築/運用手順書 参考)クローンの依存関係の確認 依存関係を確認します。 # zfs get origin testpool/home/user2 NAME PROPERTY VALUE SOURCE data/clone origin testpool/home/user1@now - ☛ クローンの場合、VALUE に依存しているスナップショット名が表示されます。 # zfs get origin testpool/home/user1 NAME PROPERTY VALUE SOURCE data/clone origin - ☛ 通常のファイルシステムの場合、VALUE には何も表示されません。 参考)クローンの破棄 クローン「testpool/home/user2」を破棄します。 # zfs destroy testpool/home/user2 参考)クローンの置き換え アクティブなファイルシステムとそのファイルシステムのクローンの関係を置き換える(promote)ことができ ます。置き換え後は、元のファイルシステムがクローンとなり依存関係が逆転します。 図 7:クローンの置き換え(promote)イメージ図 Copyright 2012-2016 FUJITSU LIMITED 40 Oracle Solaris 11 ZFS 構築/運用手順書 クローン「testpool/home/user2」を置き換えます。 # zfs promote testpool/home/user2 promote 後の依存関係を確認します。 # zfs get origin testpool/home/user2 NAME PROPERTY VALUE SOURCE data/clone origin - ☛ promote により依存関係が置換されたため、VALUE には何も表示されません。 # zfs get origin testpool/home/user1 NAME PROPERTY VALUE data/clone origin testpool/home/user2@now ☛ SOURCE - promote により依存関係が置換されたため、VALUE にはスナップショット名が表示されます。 置き換えをすることで、クローン作成元のファイルシステムの削除も可能です。 # zfs destroy testpool/home/user1 ファイルシステムの名前を、元のファイルシステム名に変更することも可能です。 # zfs rename testpool/home/user1 testpool/home/user1.old ←クローン作成元ファイル システムの名前変更 # zfs rename testpool/home/user2 testpool/home/user1 ←クローンの名前変更 Copyright 2012-2016 FUJITSU LIMITED 41 Oracle Solaris 11 ZFS 構築/運用手順書 3-14.ZFS データの送信/受信(send/receive) zfs send コマンドはスナップショットを元に、ファイルシステムやボリュームの内容を標準出力に出力しま す。この出力をファイルにリダイレクトすることで、ZFS ファイルシステム/ボリュームをバックアップすることが できます。 zfs receive コマンドは、zfs send コマンドで出力した内容を標準入力にすることで、別ファイルシステムを 作成することができます。また、zfs send コマンドでバックアップした内容を元に、ZFS ファイルシステム/ボリ ュームをリストアすることができます。 3-14-1.ZFS データの送信 1)スナップショットの送信 「testpool/home/user1@snap1」 をテープデバイスにバックアップします。 # zfs send testpool/home/user1@snap1 > /dev/rmt/0 参考)増分データの送信 zfs send -i オプションを使用すれば、増分データを送信できます。 「testpool/home/user1@snap1」の増分データ snap2 をテープデバイスにバックアップします。 # zfs send -i testpool/home/user1@snap1 testpool/home/user1@snap2 > /dev/rmt/0 ☛ 増分ソース snap1 は、スナップショット名の「@」以降の構成要素「@snap1」だけでの指定も可能です。 参考)同じシステム上の別のストレージプールに送信する場合 「testpool/home/user1@snap1」を「bkpool/home/user1_backup」に送信します。 # zfs send testpool/home/user1@snap1 | zfs receive bkpool/home/user1_backup 参考)事前にファイルサイズを確認する場合 zfs send -nv オプションを使用して、事前にファイルサイズを確認します。 # zfs send -nv testpool/home/user1@snap1 sending full stream to testpool/home/user1@snap1 estimated stream size: 3.01G ☛ 実際にファイルは作成されません。 参考)進捗状況を確認する場合 pv コマンドを使用して、zfs send コマンドの進捗状況を確認します。 # zfs send testpool/home/user1@snap1 | pv > /dev/rmt/0 2.14GB 0:00:56 [37.1MB/s] [ ☛ <=> ] 作成途中のサイズ、経過時間、速度を表示可能。 Copyright 2012-2016 FUJITSU LIMITED 42 Oracle Solaris 11 ZFS 構築/運用手順書 3-14-2.ZFS データの受信 ファイルシステムのスナップショットを受信するときは、以下の点に留意してください。 ■ スナップショットおよびファイルシステムが受信されます。 ■ ファイルシステムとその配下すべてのファイルシステムがマウント解除されます。 ■ 受信中のファイルシステムにはアクセスできません。 ■ 受信中にそのファイルシステムが存在してはいけません。 ■ ファイルシステム名が重複している場合には、zfs rename を使用して変更できます。 1)スナップショットの受信 テープデバイスから「testpool/home」配下に user1_data という名前でスナップショットを受信します。 # zfs receive testpool/home/user1_data < /dev/rmt/0 参考) 対象のファイルシステムに変更が発生し、新たに増分スナップショットを送信する場合は、受信側のファイ ルシステムをロールバックする必要があります。受信側で zfs receive コマンドで-F オプションを指定すれば 最新のスナップショットに強制的にロールバックされます。 事前に「backuppool/home/user1@snap1」を受信していたデータセット「bkpool/home/user1_backup」 に対して、増分のスナップショット「testpool/home/user1@snap2」を受信します。 下記コマンドにて、増分のスナップショットを受信します。 # zfs send -i @snap1 testpool/home/user1@snap2 | zfs recv -F bkpool/home/user1_backup ☛ ☛ 最新のスナップショットが増分ソースと一致しない場合は、ロールバックも受信も完了せず、エラーが返されます。 receive コマンドは、短縮形の recv を使用することができます。 Copyright 2012-2016 FUJITSU LIMITED 43 Oracle Solaris 11 ZFS 構築/運用手順書 3-15.ZFS データの完全性をチェックする(scrub) ZFS には UFS の fsck に相当する機能は存在しません。代わりに「スクラブ」という機能が用意されていま す。この機能はストレージプールに含まれるすべてのデータにアクセスすることで、すべてのブロックが読み 取り可能であることを確認します。 1)スクラブの実行 testpool をスクラブします。 # zpool scrub testpool 2)スクラブの状態表示 現在のスクラブの状態を表示するには zpool status コマンドを実行します。 # zpool pool: state: scan: config: status -v testpool testpool ONLINE scrub repaired 0 in 0h0m with 0 errors on Thu Feb 26 17:29:50 2015 NAME testpool mirror-0 c2t0d4 c2t0d5 STATE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 errors: No known data errors ☛ -v オプションを使用すると、詳細なデータエラー情報を表示し、前回のスクラブが完了して以降のデータエラーすべ ての完全なリストを出力します。 参考)スクラブを中止する 実行中のスクラブを停止するには、-s オプションを指定します。 # zpool scrub -s testpool Copyright 2012-2016 FUJITSU LIMITED 44 Oracle Solaris 11 ZFS 構築/運用手順書 3-16.ミラーディスクの切り離し(split) ミラーを構成するストレージプール内の一部のディスクを切り離して、切り離し元と同じデータの新規スト レージプールを作成することが可能です。切り離したディスクをインポートすることで、元のストレージプール と同じ構成で新規ストレージプールを作成することができるのでバックアップとして利用することが可能で す。 ※ディスク切り離し後もデータの冗長性を保つには、3 本以上のミラーディスクに対して実施します。 図 8:ミラーディスクの切り離し(split)イメージ図 1)ストレージプールの状態確認 「testpool」の状態を確認します。 # zpool pool: state: scan: config: status testpool testpool ONLINE resilvered 1.44M in 0h0m with 0 errors on Thu Feb 26 17:50:32 2015 NAME mirpool mirror-0 c2t0d1 c2t0d2 c2t0d3 STATE ONLINE ONLINE ONLINE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 errors: No known data errors ☛ testpool は 3 面ミラー構成になっている状態です。 Copyright 2012-2016 FUJITSU LIMITED 45 Oracle Solaris 11 ZFS 構築/運用手順書 2)ファイルシステムの確認 「testpool」のファイルシステムを確認します。 # zfs list -r testpool NAME USED AVAIL REFER testpool 1.55M 4.89G 304K testpool/home 592K 4.89G 304K testpool/home/user1 288K 4.89G 288K MOUNTPOINT /testpool /testpool/home /testpool/home/user1 3)ミラーディスクの切り離し ミラーディスクを切り離します。 # zpool split testpool testpool2 c2t0d3 ☛ ☛ testpool からディスク(c2t0d3)を切り離して新規ストレージプール(testpool2)を作成します。 ディスクを指定しない場合は、ミラー構成の最後のディスクが切り離されます。 4)ストレージプールの確認 ディスク切り離し後の「testpool」の状態を確認します。 # zpool pool: state: scan: config: status testpool testpool ONLINE resilvered 1.44M in 0h0m with 0 errors on Thu Feb 26 17:50:32 2015 NAME STATE testpool ONLINE mirror-0 ONLINE c2t0d1 ONLINE c2t0d2 ONLINE READ WRITE CKSUM 0 0 0 0 0 0 0 0 0 0 0 0 errors: No known data errors ☛ testpool のディスク(c2t0d3)が切り離されていることを確認します。 Copyright 2012-2016 FUJITSU LIMITED 46 Oracle Solaris 11 ZFS 構築/運用手順書 5)新規ストレージプールの確認 切り離して作成した新規ストレージプールを確認します。 # zpool pool: id: state: action: config: import testpool2 1588828159186153729 ONLINE The pool can be imported using its name or numeric identifier. testpool2 c2t0d3 ☛ ONLINE ONLINE 切り離されたストレージプールは、import 可能なストレージプールとして表示されます。 6)新規ストレージプールのインポート 切り離して作成した新規ストレージプール「testpool2」をインポートします。 # zpool import testpool2 7)新規ストレージプールの状態確認 「testpool2」のデバイス構成を確認します。 # zpool pool: state: scan: config: status testpool2 testpool2 ONLINE resilvered 1.44M in 0h0m with 0 errors on Thu Feb 26 17:50:32 2015 NAME testpool2 c2t0d3 STATE ONLINE ONLINE READ WRITE CKSUM 0 0 0 0 0 0 errors: No known data errors ☛ testpool2 がインポートされていることを確認します。 8)新規ストレージプールのファイルシステム確認 「testpool2」のファイルシステムを確認します。 # zfs list -r testpool2 NAME USED AVAIL REFER testpool2 1.70M 4.89G 304K testpool2/home 592K 4.89G 304K testpool2/home/user1 288K 4.89G 288K ☛ MOUNTPOINT /testpool2 /testpool2/home /testpool2/home/user1 3-16.2)で確認した testpool のファイルシステム構成と同一であることを確認します。 Copyright 2012-2016 FUJITSU LIMITED 47 Oracle Solaris 11 ZFS 構築/運用手順書 3-17.スナップショットの保持(hold) スナップショットは不用意に削除されることがないように保護することができます。スナップショットを保持 すると、そのスナップショットは破棄されなくなります。また、この機能と zfs destroy -d コマンドを使用する ことでクローンが存在するスナップショットを遅延削除することが可能です。この場合、保護解除とクローン 削除を実行したタイミングでスナップショットが削除されます。 1)スナップショットの作成 スナップショットを作成します。 # zfs snapshot testpool/home/user1@now 2)ファイルシステムの確認 ファイルシステムを確認します。 # zfs list -rt all testpool NAME USED AVAIL REFER testpool 1.62M 4.89G 304K testpool/home 592K 4.89G 304K testpool/home/user1 288K 4.89G 288K testpool/home/user1@now 0 288K MOUNTPOINT /testpool /testpool/home /testpool/home/user1 - 3)スナップショットの保護 作成したスナップショットを保護します。 # zfs hold mytag testpool/home/user1@now ☛ testpool/home/user1@now に保護タグ mytag を付与します。 4)スナップショットの確認 保護したスナップショットを確認します。 # zfs holds testpool/home/user1@now NAME TAG TIMESTAMP testpool/home/user1@now mytag Thu Feb 26 18:15:02 2015 ☛ ☛ holds コマンドを使用して確認します。 hold コマンドで設定した保護タグの情報が表示されることを確認します。 保護されたスナップショットを削除しようとした場合 # zfs destroy testpool/home/user1@now cannot destroy 'testpool/home/user1@now': snapshot is busy ☛ 保護しているスナップショットは削除できません。削除を行う場合は保護を解除する必要があります。 Copyright 2012-2016 FUJITSU LIMITED 48 Oracle Solaris 11 ZFS 構築/運用手順書 5)スナップショット保護の解除 スナップショットの保護を解除します。 # zfs release mytag testpool/home/user1@now 6)スナップショットの削除 保護の解除後、スナップショットの削除が可能です。 # zfs destroy testpool/home/user1@now 7)ファイルシステムの確認 ファイルシステムを確認します。 # zfs list -rt all testpool NAME USED testpool 1.60M testpool/home 592K testpool/home/user1 288K ☛ AVAIL REFER 4.89G 304K 4.89G 304K 4.89G 288K MOUNTPOINT /testpool /testpool/home /testpool/home/user1 スナップショットが削除されていることを確認します。 参考)スナップショットの遅延削除 スナップショットの保護が設定されている状態で、遅延削除(zfs destroy -d)を実行すると、スナップショッ トの保護が解除され、クローン削除を実行したタイミングでスナップショットが削除されます。 クローンを作成します。 「testpool/home/user1@now」のクローンを「testpool/home/user1_clone」という名前で作成します。 # zfs clone testpool/home/user1@now testpool/home/user1_clone 作成したクローンを確認します。 # zfs list -r testpool NAME USED testpool 1.96M testpool/home 768K testpool/home/user1 288K testpool/home/user1_clone 160K AVAIL REFER 4.89G 304K 4.89G 320K 4.89G 288K 4.89G 288K MOUNTPOINT /testpool /testpool/home /testpool/home/user1 /testpool/home/user1_clone スナップショット「testpool/home/user1@now」を保護します。 # zfs hold mytag testpool/home/user1@now Copyright 2012-2016 FUJITSU LIMITED 49 Oracle Solaris 11 ZFS 構築/運用手順書 保護したスナップショットを確認します。 # zfs holds testpool/home/user1@now NAME TAG TIMESTAMP testpool/home/user1@now mytag Thu Feb 26 18:28:59 2015 保護したスナップショットを削除します。 # zfs destroy -d testpool/home/user1@now ☛ 実際には保護の解除とクローンの削除が実行されるまで削除されません。 削除したスナップショットの defer_destroy プロパティを確認します。 # zfs get defer_destroy testpool/home/user1@now NAME PROPERTY testpool/home/user1@now defer_destroy ☛ VALUE on SOURCE - 遅延削除を実行すると defer_destroy プロパティが on になります。 スナップショットが削除されていないことを確認します。 # zfs list -t snapshot testpool/home/user1@now NAME USED AVAIL REFER MOUNTPOINT testpool/home/user1@now 0 288K 保護の解除を行います。 # zfs release mytag testpool/home/user1@now スナップショットが削除されていないことを確認します。 # zfs list -t snapshot testpool/home/user1@now NAME USED AVAIL REFER MOUNTPOINT testpool/home/user1@now 0 288K - ☛ スナップショットの保護を解除しただけでは、削除されません。 クローンの削除を行います。 # zfs destroy testpool/home/user1_clone スナップショットが削除されたことを確認します。 # zfs list -t snapshot testpool/home/user1@now cannot open ' testpool/home/user1@now ': snapshot does not exist Copyright 2012-2016 FUJITSU LIMITED 50 Oracle Solaris 11 ZFS 構築/運用手順書 3-18.スナップショットの差分表示(diff) zfs diff コマンドを利用すると、2 つのスナップショット間の差分を確認することができます。 図 9:スナップショットの差分表示(zfs diff)イメージ図 1)ファイルシステムの確認 testpool のファイルシステムを確認します。 # zfs list -r testpool NAME USED AVAIL REFER MOUNTPOINT testpool 1.28M 4.89G 304K /testpool testpool/home 288K 4.89G 288K /testpool/home 2)ファイルの確認 ファイルを確認します。初期状態は 3 つのファイルが存在する状態です。 # ls -l /testpool/home/ total 3 -rw-r--r-- 1 root root -rw-r--r-- 1 root root -rw-r--r-- 1 root root 0 2 月 26 日 0 2 月 26 日 0 2 月 26 日 18:41 fileA 18:41 fileB 18:42 fileC 3)スナップショットの作成 # zfs snapshot testpool/home@before Copyright 2012-2016 FUJITSU LIMITED 51 Oracle Solaris 11 ZFS 構築/運用手順書 4)スナップショットの確認 # zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT testpool/home@before 0 288K 5)ファイルの更新 各ファイルに色々な変更を加えます。 # # # # echo ABC >> /testpool/home/fileA rm /testpool/home/fileB mv /testpool/home/fileC /testpool/home/fileC# touch /testpool/home/fileD 6)スナップショットの作成 ファイルの更新後、再度スナップショットを作成します。 # zfs snapshot testpool/home@after 7)スナップショットの確認 作成したスナップショットを確認します。 # zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT testpool/home@before 176K 288K testpool/home@after 0 296K 8)スナップショットの比較 スナップショットの差分を確認します。 # zfs diff testpool/home@before testpool/home@after M /testpool/home/ M /testpool/home/fileA /testpool/home/fileB R /testpool/home/fileC -> /testpool/home/fileC# + /testpool/home/fileD ☛ -r オプションを使用すると、指定したスナップショットとすべての子スナップショットの差分を表示可能です。 表 7:zfs diff の差分表記 表記 説明 M ファイルまたはディレクトリの変更を示す R ファイルまたはディレクトリの名前が変更されている - ファイルまたはディレクトリが、古いスナップショットにのみ存在する + ファイルまたはディレクトリが、新しいスナップショットにのみ存在する Copyright 2012-2016 FUJITSU LIMITED 52 Oracle Solaris 11 ZFS 構築/運用手順書 3-19.ZFS 暗号化 encryption プロパティを設定することで、ファイルシステムの暗号化が可能です。暗号化とは機密保護の ためにデータをエンコードするプロセスで、エンコードされたデータにアクセスするには鍵が必要になります。 ZFS 暗号化には下記の特長があります。 ■ 鍵の変更や再入力などの暗号化操作はオンラインで実行可能です。 ■ ZFS のファイルシステム単位で暗号化ポリシーを設定可能です。 ■ ZFS 暗号化は配下のファイルシステムに継承可能です。 1)ファイルシステムの暗号化設定 暗号化するファイルシステムを新規作成します。 # zfs create -o encryption=on testpool/home/user2 Enter passphrase for 'testpool/home/user2':******** Enter again:******** ☛ パスワードは任意の文字列で、8 文字以上で設定する必要があります。 2)暗号化設定の確認 暗号化したファイルシステムを確認します。 # zfs get encryption testpool/home/user2 NAME PROPERTY VALUE testpool/home/user2 encryption on ☛ SOURCE local VALUE が「on」となっていることを確認します。 3)スナップショットの作成 暗号化されたファイルシステムのスナップショットを作成します。 # zfs snapshot testpool/home/user2@encryption 4)作成したスナップショットの確認 作成したスナップショットを確認します。 # zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT testpool/home/user2@encryption 0 320K - Copyright 2012-2016 FUJITSU LIMITED 53 Oracle Solaris 11 ZFS 構築/運用手順書 5)クローンの作成 暗号化されたファイルシステムのクローンを作成します。 # zfs clone testpool/home/user2@encryption testpool/home/user2-clone Enter passphrase for 'testpool/home/user2-clone':******** Enter again:******** ☛ 暗号化設定がされているクローンを作成する場合には、新たにパスワードを設定する必要があります。 6)クローンの確認 作成したクローンを確認します。 # zfs list -r testpool NAME USED testpool 2.29M testpool/home 816K testpool/home/user2 320K testpool/home/user2-clone 176K AVAIL REFER 4.89G 304K 4.89G 320K 4.89G 320K 4.89G 320K MOUNTPOINT /testpool /testpool/home /testpool/home/user2 /testpool/home/user2-clone Copyright 2012-2016 FUJITSU LIMITED 54 Oracle Solaris 11 ZFS 構築/運用手順書 3-20.重複排除 deduplication プロパティの設定により、ブロック単位でデータの重複検知や排除が可能です。これにより 格納されているブロックと同一内容のブロックはオンラインで除去されます。重複排除を行うことでデータ重 複の無駄をブロックレベルで省き、ストレージ利用効率を向上できます。 図 10:重複排除イメージ図 1)ファイルシステムの確認 重複排除を設定するファイルシステムを確認します。 # zfs list -r testpool NAME USED AVAIL REFER testpool 2.25M 4.89G 304K testpool/home 896K 4.89G 320K testpool/home/user1 288K 4.89G 288K testpool/home/user2 288K 4.89G 288K MOUNTPOINT /testpool /testpool/home /testpool/home/user1 /testpool/home/user2 2)重複排除の設定 ファイルシステムの重複排除の設定を有効にします。 # zfs set dedup=on testpool/home/user1 # zfs set dedup=on testpool/home/user2 Copyright 2012-2016 FUJITSU LIMITED 55 Oracle Solaris 11 ZFS 構築/運用手順書 3)重複排除の確認 重複排除の設定を確認します。 # zfs get dedup testpool/home/user1 NAME PROPERTY VALUE testpool/home/user1 dedup on # # zfs get dedup testpool/home/user2 NAME PROPERTY VALUE testpool/home/user2 dedup on ☛ SOURCE local SOURCE local VALUE が「on」となっていることを確認します。 4)ファイルの配置 重複排除を設定した各ファイルシステムに同一のファイルを配置します。 「/testpool/home/user1」に格納したファイルを確認 # ls -l /testpool/home/user1 total 1695137 -rwxr-xr-x 1 root root 867020800 4 月 20 日 17:31 sol-11_3-text-sparc.iso # # du -h /testpool/home/user1/sol-11_3-text-sparc.iso 828M /testpool/home/user1/sol-11_3-text-sparc.iso ☛ 本手順では、例として Oracle Solaris 11.3 の Text Installer の ISO イメージを格納します。 「/testpool/home/user2」に格納したファイルを確認 # ls -l /testpool/home/user2 total 1695137 -rwxr-xr-x 1 root root 867020800 4 月 20 日 17:41 sol-11_3-text-sparc.iso # # du -h /testpool/home/user2/sol-11_3-text-sparc.iso 828M /testpool/home/user2/sol-11_3-text-sparc.iso 5)重複排除率の確認 重複排除率を確認します。 ストレージプール単位で共通ブロックを共有するので、重複排除率はストレージプール単位で確認します。 # zpool list testpool NAME SIZE ALLOC testpool 4.97G 808M ☛ ☛ FREE 4.18G CAP DEDUP HEALTH ALTROOT 15% 2.09x ONLINE - DEDUP には、どれだけの重複除去が行われたかを表す重複排除率が表示されます。 「testpool には約 800MB のファイルが 2 つ存在しますが、使用容量は 1.6GB ではなく約 800MB になっており、重 複排除機能の効果が確認できます。 ☛ DEDUP 列の値が「2.09x」と表示されていることから約半分の容量になっていることが確認できます。 Copyright 2012-2016 FUJITSU LIMITED 56 Oracle Solaris 11 ZFS 構築/運用手順書 3-21.ZFS 自動スナップショット タイムスライダーサービスを設定すると、自動的にスナップショットの取得ができます。ZFS 自動スナップ ショットを使用するには、パッケージ(time-slider)の追加インストールが必要です。 図 11:自動スナップショットイメージ図 表 8:自動スナップショットの取得基準 取得基準 取得タイミング frequent snapshots 15 分毎 hourly snapshots 毎時 daily snapshots 毎日 weekly snapshots 毎週 monthly snapshots 毎月 タイムスライダーサービスは、GNOME 関連のサービスが必要です。本書では、双方のサービスが含ま れるパッケージグループである「solaris-desktop」をインストールします。 本書では、BE(Boot Environment)機能を用いて、パッケージをインストールする手順を説明します。BE に関する詳細は、以下をご参照ください。 ・「Oracle Solaris 11 を使ってみよう」 http://www.fujitsu.com/jp/sparc-technical/document/#solaris11 Copyright 2012-2016 FUJITSU LIMITED 57 Oracle Solaris 11 ZFS 構築/運用手順書 1)新規 BE の作成とマウント 新規 BE にパッケージ(solaris-desktop)をインストールするため、新規 BE を作成します。(BE 名:be01) # beadm # beadm BE -be01 solaris ☛ create be01 list Flags Mountpoint ----- ---------NR / Space ----106.29M 7.44G Policy -----static static Created ------2016-04-27 14:27 2016-04-27 14:25 BE 名は任意に指定可能です。 新規作成した BE「be01」をマウントします。(マウントポイント:/mnt) # beadm # beadm BE -be01 solaris mount list Flags ----NR be01 /mnt Mountpoint ---------/mnt / Space ----106.29M 7.44G Policy -----static static Created ------2016-04-27 14:27 2016-04-27 14:25 2)GUI 環境の(solaris-desktop パッケージ)のインストール 「solaris-desktop」パッケージをインストールします。 「solaris-desktop」パッケージには自動スナップショットのパッケージが含まれています。 # pkg -R /mnt install solaris-desktop インストールするパッケージ: 338 変更するサービス: 13 ダウンロード 完了 パッケージ ファイル 転送 (MB) 速度 338/338 48228/48228 542.2/542.2 3.7M/s フェーズ 項目 新しいアクションをインストールしています 79713/79713 パッケージ状態データベースを更新しています 完了 パッケージキャッシュを更新しています 0/0 イメージ状態を更新しています 完了 スピード検索データベースを作成しています 完了 パッケージキャッシュを更新しています 1/1 Copyright 2012-2016 FUJITSU LIMITED 58 Oracle Solaris 11 ZFS 構築/運用手順書 3)パッケージの確認と BE の切り替え 「solaris-desktop」パッケージを確認します。 # pkg -R /mnt list solaris-desktop NAME (PUBLISHER) group/system/solaris-desktop ☛ VERSION 0.5.11-0.175.3.1.0.5.0 IFO i-- インストールが完了すると IFO パラメータに「i--」と表示されます。 BE をアクティベートして切り替えます。 # bootadm update-archive # beadm umount be01 # beadm list BE Flags Mountpoint ------ ---------be01 solaris NR / # # beadm activate be01 # beadm list BE Flags Mountpoint ------ ---------be01 R solaris N / # # shutdown -y -g0 -i6 ☛ -R /mnt Space ----2.42G 7.46G Policy -----static static Space ----10.01G 9.47M Created ------2016-04-27 14:27 2016-04-27 14:25 Policy -----static static Created ------2016-04-27 14:27 2016-04-27 14:25 be01 の Active の表示が「R」と表示される(次回、起動時に切り替わる)事を確認します。 4)再起動後の BE の確認 再起動後、BE が切り替わっていることを確認します。 # beadm BE -be01 solaris list Flags ----NR - Mountpoint ---------/ - Space ----10.32G 19.25M Policy -----static static Created ------2016-04-27 14:27 2016-04-27 14:25 5)タイムスライダーサービスの確認 タイムスライダーサービスが存在することを確認します。 # svcs time-slider STATE STIME FMRI disabled 16:51:27 svc:/application/time-slider:default Copyright 2012-2016 FUJITSU LIMITED 59 Oracle Solaris 11 ZFS 構築/運用手順書 6)自動スナップショットサービスの確認 自動スナップショットサービスが存在することを確認します。 # svcs -a | grep auto-snapshot disabled 16:51:27 svc:/system/filesystem/zfs/auto-snapshot:monthly disabled 16:51:27 svc:/system/filesystem/zfs/auto-snapshot:weekly disabled 16:51:27 svc:/system/filesystem/zfs/auto-snapshot:daily disabled 16:51:27 svc:/system/filesystem/zfs/auto-snapshot:hourly disabled 16:51:27 svc:/system/filesystem/zfs/auto-snapshot:frequent 7)自動スナップショットの有効化と確認 自動スナップショットを有効化します。(例:testpool/home ファイルシステム) # zfs set com.sun:auto-snapshot=true testpool/home 8)自動スナップショットサービスの有効化 自動スナップショットサービスが「disabled」の状態の場合、タイムスライダーサービスが起動するタイミン グで「offline」から「online」の状態になります。 例として「frequent」「hourly」を有効化します。 # svcadm enable svc:/system/filesystem/zfs/auto-snapshot:frequent # svcadm enable svc:/system/filesystem/zfs/auto-snapshot:hourly # # svcs -a | grep auto-snapshot disabled 16:51:27 svc:/system/filesystem/zfs/auto-snapshot:monthly disabled 16:51:27 svc:/system/filesystem/zfs/auto-snapshot:weekly disabled 16:51:27 svc:/system/filesystem/zfs/auto-snapshot:daily offline 17:52:29 svc:/system/filesystem/zfs/auto-snapshot:frequent offline 17:52:51 svc:/system/filesystem/zfs/auto-snapshot:hourly ☛ ☛ 「frequent」を有効にすると 15 分毎にスナップショットが自動作成されます。 「hourly」を有効にすると 1 時間毎にスナップショットが自動作成されます。 9)タイムスライダーサービスの起動 タイムスライダーサービスを起動します。 # svcadm enable time-slider # svcs time-slider STATE STIME FMRI online 17:58:46 svc:/application/time-slider:default Copyright 2012-2016 FUJITSU LIMITED 60 Oracle Solaris 11 ZFS 構築/運用手順書 10)自動スナップショットサービスの確認 タイムスライダーサービス起動後、自動スナップショットサービスを確認します。 # svcs -a | grep auto-snapshot disabled 16:51:27 svc:/system/filesystem/zfs/auto-snapshot:monthly disabled 16:51:27 svc:/system/filesystem/zfs/auto-snapshot:weekly disabled 16:51:27 svc:/system/filesystem/zfs/auto-snapshot:daily online 17:58:47 svc:/system/filesystem/zfs/auto-snapshot:frequent online 17:58:47 svc:/system/filesystem/zfs/auto-snapshot:hourly ☛ 「offline」状態のサービスだけが、「online」となります。 11)自動スナップショットの動作確認 自動で作成されるスナップショットを確認します。 # zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT testpool/home@zfs-auto-snap_hourly-20xx-xx-xx-xxxx 0 32K testpool/home@zfs-auto-snap_frequent-20xx-xx-xx-xxxx 0 32K - ☛ ☛ 有効にした自動スナップショットサービスの実行間隔でスナップショットが作成されていることを確認します。 作成されるスナップショットは常に最新のスナップショットのみ保持されます。 Copyright 2012-2016 FUJITSU LIMITED 61 Oracle Solaris 11 ZFS 構築/運用手順書 3-22.ファイルシステムミラーマウント NFS クライアントがマウント済みのファイルシステム配下に作成されたファイルシステムを自動的に認識 する機能です。 図 12:ファイルシステムミラーマウントイメージ図 Copyright 2012-2016 FUJITSU LIMITED 62 Oracle Solaris 11 ZFS 構築/運用手順書 1)NFS サーバのファイル確認 NFS サーバ側で、共有するファイルシステムを確認します。 NFS-Server # zfs list -r ypool NAME USED AVAIL REFER ypool 162K 134G 33K ypool/dataA 31K 134G 31K ypool/dataB 31K 134G 31K MOUNTPOINT /ypool /ypool/dataA /ypool/dataB 2)共有設定 NFS サーバ側で、該当のファイルシステムを共有設定します。 NFS-Server # zfs set share.nfs=on ypool NFS-Server # share ypool /ypool nfs sec=sys,rw ypool_dataA /ypool/dataA nfs sec=sys,rw ypool_dataB /ypool/dataB nfs sec=sys,rw 3)NFS マウントの設定 NFS クライアント側で、NFS マウントを実行します。(マウントポイント:/zpool/user) NFS-Client# mount -F nfs 192.168.10.xxx:/ypool /zpool/user 4)ファイルシステムの確認 NFS クライアント側で、マウントしたファイルシステムに存在するファイルを確認します。 NFS-Client# ls /zpool/user dataA dataB 5)ファイルシステムの新規作成 NFS サーバ側でファイルシステムを新規作成します。 NFS-Server# zfs create ypool/dataC NFS-Server# zfs create ypool/dataC/fileA NFS-Server# zfs create ypool/dataC/fileB NFS-Server# zfs list -r ypool NAME USED AVAIL REFER MOUNTPOINT ypool 282K 134G 35K /ypool ypool/dataA 31K 134G 31K /ypool/dataA ypool/dataB 31K 134G 31K /ypool/dataB ypool/dataC 95K 134G 33K /ypool/dataC ypool/dataC/fileA 31K 134G 31K /ypool/dataC/fileA ypool/dataC/fileB 31K 134G 31K /ypool/dataC/fileB Copyright 2012-2016 FUJITSU LIMITED 63 Oracle Solaris 11 ZFS 構築/運用手順書 6)ファイルシステムの確認 NFS クライアント側で、マウントしたファイルシステムを確認します。 NFS-Client# ls /zpool/user dataA dataB dataC NFS-Client# NFS-Client# ls /zpool/user/dataC fileA fileB ☛ NFS サーバ側で新規作成したファイルシステムを NFS クライアントが自動認識していることを確認します。 Copyright 2012-2016 FUJITSU LIMITED 64 Oracle Solaris 11 ZFS 構築/運用手順書 3-23.トラブルシューティング 3-23-1.損傷した ZFS ファイルシステムの修復 ZFS では、アクティブなストレージプールと、その構成キャッシュをルートファイルシステム上で管理してい ます。このファイルが破損した場合やディスクに保管されている内容と同期できない場合、そのストレージプ ールを開くことができなくなります。 ストレージプールが存在する場合には、ストレージプールをエクスポートして再度インポートすることで、構 成を回復できることがあります。ストレージプールのインポートとエクスポートの詳細については、本書の 「3-12.ストレージプールの移行」を参照してください。 3-23-2.デバイスの再接続 デバイスが使用できない場合、zpool status の出力に UNAVAILABLE と表示されます。この状態は、ス トレージプールにはじめてアクセスしたときにデバイスを開けなかったか、またはそのデバイスが使用できな い状態であることを示しています。このデバイスが原因で、最上位レベルの仮想デバイスが使用できない場 合、そのストレージプールの内容にはアクセスできません。この場合、そのデバイスをシステムに再接続す ることで、正常な動作に戻します。修復の基本的な流れは以下になります。 1. デバイスを物理的に再接続する 2. zpool online コマンドを使ってデバイスをオンラインにする 3-23-3.損傷したデバイスの修復 一時的なエラーの場合 デバイスエラーが一時的な場合は、zpool clear コマンドでエラーを解消することができます。 永続的なエラーの場合 デバイスの損傷が永続的な場合、または永続的な損傷が今後発生する可能性がある場合には、その デバイスを置き換える必要があります。デバイスを置き換えられるかどうかは、構成によって異なります。 表 9:デバイスの置き換え 置き換えの可否 状態 対処 置き換え可能 ・ストレージプールがUNAVAIL以外の状態である デバイスの置き換え かつ ・正常なデータを取得するための十分な複製が 存在している 置き換え不可 ・ストレージプールがUNAVAIL状態である、 ストレージプールの破棄。 または ストレージプールの再構成。 ・非冗長な構成でデバイスに大量のデータエラー データの復元。 が含まれている 置き換え可能なデバイスの場合は、zpool replaceコマンドによりデバイスを置き換えます。デバイスの置 き換えの詳細については、本書の「3-10.デバイスの置き換え」を参照してください。 Copyright 2012-2016 FUJITSU LIMITED 65 Oracle Solaris 11 ZFS 構築/運用手順書 3-23-4.損傷したデータの修復 破壊されたファイルまたはディレクトリを修復する ファイルまたはディレクトリに損傷が発生し、データの正常なコピーがシステムに存在しない場合、バ ックアップからデータを復元する必要がありますが、ストレージプール全体を復元しなくても損傷から回 復できる場合があります。 ファイルデータブロックの中で損傷が発生した場合は、ファイルを安全に削除することができるため、 システムのエラーを解消できます。永続的なエラーが発生しているファイル名のリストを表示するには、 zpool status -v コマンドを使用します。次に例を示します。 # zpool status -v pool: testpool state: ONLINE status: One or more devices has experienced an error resulting in data corruption. Applications may be affected. action: Restore the file in question if possible. Otherwise restore the entire pool from backup. see: http://www.sun.com/msg/ZFS-8000-8A scrub: none requested config: NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 c2t0d1 ONLINE 0 0 0 c2t0d2 ONLINE 0 0 0 errors: Permanent errors have been detected in the following files: /testpool/a.txt testpool/user3/e.txt 表 10:永続的なエラーが発生している場合のファイル名 表示例 状態 ファイルへの完全なパスが見つかり、データセットがマウントされている場合。ファ /testpool/a.txt イルへの完全なパスが表示されます。 ファイルへの完全なパスは見つかったが、データセットがマウントされていない場 testpool/user3/e.txt 合。前にスラッシュ(/)が付かず、後ろにファイルへのデータセット内のパスが付いた データセット名が表示されます。 エラーにより、またはdnode_tの場合のようにオブジェクトに実際のファイルパスが 関連付けられていないことにより、ファイルパスに対するオブジェクト番号を正常に testpool/dnode:<0x0> 変換できない場合。後ろにオブジェクト番号の付いたデータセット名が表示されま す。(上記コマンド結果に記載例はありません) Copyright 2012-2016 FUJITSU LIMITED 66 Oracle Solaris 11 ZFS 構築/運用手順書 メタオブジェクトセット(MOS)のオブジェクトが破壊された場合は、後ろにオブジェク <metadata> ト番号の付いた<metadata>という特別なタグが表示されます。(上記コマンド結果 に記載例はありません) ディレクトリまたはファイルのメタデータの中で破壊が発生している場合は、そのファイルを別の場所 に移動するしかありません。任意のファイルまたはディレクトリを別の場所に安全に移動することで、元 のオブジェクトを復元することができます。 ストレージプール全体の損傷を修復する ストレージプールのメタデータで損傷が発生していて、ストレージプールを開くことができない場合は、 ストレージプールをバックアップから復元する必要があります。流れは以下の通りです。 zpool status を使用して表示された構成を保存 データセットのレイアウトやローカルに設定されたさまざまなプロパティが 記述されているファイルを別の安全な場所に保存 zpool destroy -f を使用してストレージプールを破棄 ストレージプールの構成とデータセットのレイアウトを使用して完全な構成を再構築 バックアップまたは採用している復元方法を使ってデータを生成 Copyright 2012-2016 FUJITSU LIMITED 67 Oracle Solaris 11 ZFS 構築/運用手順書 3-23-5.起動できないシステムの修復 ZFS は、エラーが発生した場合でも安定した状態となるように設計されていますが、予期しない異常な操 作によりストレージプールにアクセスしたときにパニックが発生することがあります。この状況から回復する には起動時にどのストレージプールも探さないように ZFS を設定する必要があります。 以下にその手順を記述します。 boot -m milestone=none で起動 ルートファイルシステムを書き込み可能としてマウント /etc/zfs/zpool.cacheファイルの名前を変更するかこのファイルを別の場所に移動 svcadm milestone all を実行 fmdump -eV を実行し、問題が発生している可能性のあるストレージプールを確認 問題のあるプールを除き、ストレージプールを 1 つずつインポート Copyright 2012-2016 FUJITSU LIMITED 68 Oracle Solaris 11 ZFS 構築/運用手順書 3-23-6.ZFS コマンドの履歴表示 正常に実行された ZFS コマンド(zfs および zpool)は自動的に記録されています。この機能により、ユー ザやサポート担当者は実行された ZFS コマンドを特定し、トラブルシューティング等に役立てることが出来ま す。 zpool history コマンドを使用した例を示します。 # zpool history -il testpool History for 'testpool': 2015-03-06.13:56:31 zfs create testpool/home/user1 [user root on host:global] 2015-03-06.13:56:31 [internal property set txg:135594] $share2=3 dataset = 70 [user root on host] 2015-03-06.14:04:20 [internal snapshot txg:135723] dataset = 132 [user root on host] 2015-03-06.14:04:25 zfs snapshot testpool/home/user1@snap1 [user root on host:global] ☛ ☛ -i オプションにより、診断目的の内部イベント情報を表示します。上記例では[internal~、で始まる情報です。 -l オプションにより、ユーザ名、ホスト名、および操作が実行されたゾーン名を表示します。上記例では[user root on host:global]、が表示された情報です。 ☛ オプション、およびストレージプール名は省略可能です。オプションを省略した場合は、実行コマンドの履歴のみ表 示されます。ストレージプール名を省略した場合は、全てのストレージプールの履歴が表示されます。 Copyright 2012-2016 FUJITSU LIMITED 69 Oracle Solaris 11 ZFS 構築/運用手順書 参考1. ファイルシステムの共有、共有解除(Oracle Solaris 11 11/11) Oracle Solaris 11 11/11 の ZFS におけるファイルシステムの共有は 2 ステップの手順で実施します。1 つ 目のステップで共有の作成(zfs set share)を行い、2 つ目のステップで NFS 共有を公開(sharenfs=on)しま す。 1)sharenfs プロパティの状態確認 現在のファイルシステムの sharenfs プロパティを確認します。 # zfs get sharenfs testpool/home NAME PROPERTY VALUE testpool/home sharenfs off SOURCE default 2)共有されているファイルシステムの確認 共有されているファイルシステムがないことを確認します。 # share # ☛ ☛ ファイルシステムの共有の状態は share コマンドで確認ができます。 共有されているファイルシステムがない場合は何も出力されません。 3)共有の作成 共有を作成します。(1 ステップ目) # zfs set share=name=t1,path=/export/zfs,prot=nfs testpool/home name=t1,path=/export/zfs,prot=nfs ☛ ☛ ☛ 「share=name」は共有名を指定します。 「path」は共有するファイルシステムまたは NFS 共有のパスを指定します。 「prot」は NFS または SMB 等の共有プロトコルを指定します。 4)共有の公開 作成した共有を公開します。(2 ステップ目) # zfs set sharenfs=on testpool/home 5)sharenfs プロパティの表示 sharenfs プロパティを確認して、共有が公開されたことを確認します。 # zfs get sharenfs testpool/home NAME PROPERTY VALUE testpool/home sharenfs on SOURCE local Copyright 2012-2016 FUJITSU LIMITED 70 Oracle Solaris 11 ZFS 構築/運用手順書 6)共有されているファイルシステムの確認 共有されているファイルシステムを確認します。 # share t1 /export/zfs nfs sec=sys,rw 7)共有の解除 ファイルシステムの共有を解除します。 # zfs unshare testpool/home # # share # ☛ ☛ -a オプションを使用すると、共有されているすべてのファイルシステムの共有を解除します。 ファイルシステムの共有の状態は share コマンドで確認ができます。 8)共有の再開 ファイルシステムの共有を再開します。 # zfs share testpool/home # # share t1 /export/zfs nfs sec=sys,rw Copyright 2012-2016 FUJITSU LIMITED 71 Oracle Solaris 11 ZFS 構築/運用手順書 参考2. ZFS 操作の監視 Oracle Solaris 11.3 以降から、ファイルシステムおよびストレージプールの操作を監視できます。 監視可能な操作は下記の通りです。 表 11:監視可能な操作 ファイルシステムの操作 (zfs コマンド) ストレージプールの操作 (zpool コマンド) ・ZFS データ送受信 (send/receive) ・ファイルシステム検証 (scrub) ・スナップショット破棄 (destroy) ・プール再同期 (resilver) 1)scrub 実行中のプールの進捗状況を表示 ファイルシステム検証(scrub)の進捗状況を表示します。 # zpool monitor -t scrub 5 POOL PROVIDER PCTDONE TOTAL SPEED rpool scrub 6.8 20.8G 506M rpool scrub 26.9 20.8G 737M rpool scrub 63.0 20.8G 1.03G : ☛ ☛ TIMELEFT 39s 21s 7s 上記例では、「-t scrub」で対象の操作を指定し、「5」で進捗状況を取得する間隔(秒)を指定しています。 進捗状況は、Ctrl+C を入力するか、該当の処理が完了するまで出力し続けます。間隔(秒)を指定しなかった場合は、 コマンド投入時の状況が 1 行だけ表示されます。 Copyright 2012-2016 FUJITSU LIMITED 72 Oracle Solaris 11 ZFS 構築/運用手順書 付録1. ZFS プロパティの紹介 ZFS プロパティについては、以下の URL を参照して下さい。 「ZFS のプロパティの概要」 https://docs.oracle.com/cd/E62101_01/html/E62701/gazss.html#scrolltoc Copyright 2012-2016 FUJITSU LIMITED 73 Oracle Solaris 11 ZFS 構築/運用手順書 改版履歴 改版日時 版数 改版内容 2012.11 1.0 新規作成 2015.5 1.1 Oracle Solaris 11.2 対応 2016.5 1.2 Oracle Solaris 11.3 対応 Copyright 2012-2016 FUJITSU LIMITED 74