...

Oracle Solaris 11 ZFS 構築/運用手順書

by user

on
Category: Documents
8

views

Report

Comments

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
Fly UP