2016年5月(第4.0版)
富士通株式会社
Oracle Solaris 11 ZFSを使ってみよう
(構築・運用ガイド)
はじめに 1/2
目的
•
Oracle Solaris 11の標準ファイルシステムであるZFS (Zettabyte(ゼタバイト) File System) の
構築・運用方法について紹介します。
対象読者
•
Oracle SolarisとRAIDの基礎知識を有している方
•
『Oracle Solaris 11 ZFSを使ってみよう(概要・設計ガイド)』を参照された方
留意事項
•
本資料では、Solaris環境をOracle VM Server for SPARC上に構築した場合の手順を記載して
います。一部Oracle VM Server for SPARCに依存した内容がありますのでご了承ください。
例: ディスクやネットワーク・インターフェースなどのデバイス名がOracle VM Server for SPARC固有の 値となっており、物理サーバ環境とは異なります。
•
本資料は、Oracle Solaris 11.3に基づいています。
Oracle Solaris 11 に関する最新情報は、Oracle社のマニュアルをご参照ください。
⁃ Oracle Solaris 11 Documentation
http://www.oracle.com/technetwork/documentation/solaris-11-192991.html
ドキュメントの位置づけ
⁃ Oracle Solaris ZFSを使ってみよう http://www.fujitsu.com/jp/sparc-technical/document/#zfs Oracle Solaris 11 ZFSを使ってみよう (概要・設計ガイド) Oracle Solaris 11 ZFSを使ってみよう(構築・運用ガイド) Oracle Solaris 11 ZFSを使ってみよう(構築・運用手順書) 運用 導入 設計はじめに 2/2
本書での表記
•
コマンドのセクション番号は省略しています。
例: ⁃ ls(1) ⇒ lsコマンド ⁃ shutdown(1M) ⇒ shutdownコマンド•
以下の用語は略称を用いて表記する場合があります。
略称 正式名称目次
1.
ストレージプールの構築
2.
ファイルシステムの構築
3.
スナップショットとクローンの作成
4.
バックアップ/リストア
5.
ミラーディスクの切り離し
参考情報
付録
1.ストレージプールの構築
ストレージプール構築の概要
作成するストレージプールの環境
本章では、ストレージプールの構成変更方法や作成方法などを説明します。 構築するストレージプールの構成は以下のとおりです。
ストレージプールの操作
•
ルートプール(システム領域)の構成変更
ルートプール「rpool」にディスクを追加し、ミラー構成へ変更します。•
ストレージプール(ユーザー領域)の作成
ミラー(RAID1)構成、RAID-Z構成、RAID-Z2構成のストレージプール(「mirpool」、「rzpool」、「rz2pool」)を それぞれ作成します。•
ホットスペアディスクの登録
「mirpool」と「rzpool」でホットスペアディスクを共有させます。•
ストレージプールの確認
「rpool」 を例にして、ストレージプールの状態を確認します。OS上のマウントイメージ
ミラー
RAID-Z
RAID-Z2
ミラー
rpool mirpool rzpool rz2pool
ホットスペアディスク /
/mirpool /rzpool /rz2pool /rpool
ルートプール(システム領域)の構成変更
シングル構成からディスクを追加して、多面ミラー構成に変更します。
•
デフォルト(OSインストール時)のルートプールの構成は、単一のディスクです。
OSインストール後にシングル構成からミラー構成に変更できます。
ディスク追加
# zpool attach rpool c2d0s0 c2d1s0
rpool
c2d0s0rpool
ミラー c2d0s0 c2d1s0
ミラーディスクの追加(zpool attachコマンド)
ディスク追加 ミラー c2d0s0 c2d1s0rpool
c2d2s0 ミラー c2d0s0 c2d1s0rpool
2面ミラー構成から3面ミラー構成へ
単独ディスク構成から2面ミラー構成へ
# zpool attach rpool c2d0s0 c2d2s0
書式:zpool attach プール名 ミラー元ディスク ミラーディスク
• SPARC M10でファームウェアXCP2230以降の場合、ルートプールにディスク全体(EFIラベル)を使用できます。 XCP2230以前の場合には、ディスクスライス(SMIラベル)を使用する必要があります。
ストレージプール(ユーザー領域)の作成
ストレージプール(ユーザー領域)を作成します。
•
ストレージプールのRAIDレベル(RAID 0, RAID 1, RAID-Z, RAID-Z2など)は、
作成時に指定します。
ミラー
mirpool
# zpool create mirpool mirror c2d3 c2d4
c2d3 c2d4
書式:zpool create プール名 [RAID] ディスク名 ・・・
RAID-Z
rzpool
c2d5 c2d6rz2pool
c2d7 c2d8 c2d9 RAID-Z2ミラー(RAID 1)構成
RAID-Z構成
RAID-Z2構成
ミラー(RAID 1)構成
# zpool create rzpool raidz c2d5 c2d6
RAID-Z構成
# zpool create rz2pool raidz2 c2d7 c2d8 c2d9
RAID-Z2構成
ストレージプールの作成(zpool createコマンド)
ホットスペアディスクの登録
ストレージプールのディスク故障に備えて、ホットスペアディスク
を設定できます。
•
ホットスペアディスクは、複数のストレージプールで共有できます。
# zpool add mirpool spare c2d10 # zpool add rzpool spare c2d10
ホットスペアディスクの登録(zpool addコマンド)
ミラーmirpool
c2d3 c2d4 RAID-Zrzpool
c2d5 c2d6登録
登録
ホットスペアディスク共有 ※ 同時に複数のホットスペアディスクを登録できます。# zpool remove mirpool c2d10
ホットスペアディスクの登録を解除するには(zpool removeコマンド)
ホットスペアディスク c2d10
書式:zpool add プール名 spare 登録するホットスペアディスク名 [追加ホットスペアディスク]
書式:zpool remove プール名 登録するホットスペアディスク名
• 同じディスクを複数のストレージプールにホットスペアディスクとして登録することで、ホットスペアディスク を共有できます。
ストレージプールの確認 1/3
ストレージプールの状態確認には、主に以下のコマンドを使用します。
•
zpool listコマンド
ストレージプールの名称や使用容量などの基本的な情報を確認します。
•
zpool statusコマンド
上記に加えて、エラーデータや障害の有無などの詳細情報を確認します。
# zpool listNAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 11.9G 6.09G 5.78G 51% 1.00x ONLINE /mnt
①
②
③
④
⑤
⑧
①: ストレージプール名 ②: ストレージプールのサイズ ③: 割り当てられた物理容量 ④: 割り当てられていない容量 ⑤: 使用されているディスク量 ⑥: 重複除外された量 ⑦: 状態 ONLINE 正常な状態 OFFLINE 管理者が手動でオフラインにした状態 FAULTED 仮想デバイスへのアクセスができない状態 DEGRADED 仮想デバイスに障害が発生しているが使用可能な状態 UNAVAILABLE デバイス、仮想デバイスのアクセスできない状態 REMOVE システム稼動中にデバイスが物理的に取り出された状態 ⑧: ZFS代替ルートプール、代替ルートプールのマウントポイント⑥
⑦
出力形式
※ 代替ルートプールとは、ルートプールから起動できなくなった場合に、
ストレージプールの基本情報の確認(zpool listコマンド)
ストレージプールの確認 2/3
# zpool status プール: rpool state: ONLINE
scan: none requested config:
NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror ONLINE 0 0 0 c0d0s0 ONLINE 0 0 0 c0d1s0 ONLINE 0 0 0 errors: No known data errors
①: ストレージプール名 ②: ストレージプールの状態 ③: スクラブおよび再同期化の状態 ④: ストレージプール名、RAID、ディスク名 ⑤: 状態 ⑥: 読み込みエラー数 ⑦: 書き込みエラー数 ⑧: チェックサムエラー数 ⑨: エラー情報
正常の場合は、「既知のデータエラーはありません」(No known data errors)が出力されます。
①
②
③
④
⑤
⑥
⑦
⑧
⑨
出力形式
ストレージプールの詳細情報の確認(zpool statusコマンド)
ストレージプールの確認 3/3
ストレージプールのプロパティ情報を確認できます。
# zpool get all rpool
NAME PROPERTY VALUE SOURCE rpool size 11.9G -rpool used 5.95G -rpool available 5.92G -rpool capacity 50%
-# zpool get bootfs,listsnapshots rpool
NAME PROPERTY VALUE SOURCE rpool bootfs rpool/ROOT/SRU1111_BE local rpool listsnapshots on default
指定したプロパティのみ表示 されます。
ストレージプールのプロパティ情報の確認(zpool getコマンド)
プロパティを「,」(カンマ) で区切りながら指定します。
《参考》ストレージプールのプロパティ
プロパティ名 意味 allocated 物理的に割り当てられているプール内のストレージ領域の量を識別する読み取り専用の値です。 altroot 代替ルートディレクトリを識別します。 autoexpand 自動プール拡張を制御します。 autoreplace 自動デバイス交換を制御します。 bootfs ルートプールのデフォルトのブート可能ファイルシステムを識別します。 cachefile プール構成情報がキャッシュされる場所を制御します。 capacity 使用されるプール領域の割合(%)を識別する読み取り専用の値です。 dedupditto 複製解除されたブロックの参照カウントのしきい値を設定します。 dedupratio プールに対して達成された読み取り専用の複製解除率です。 delegation 特権のないユーザーにファイルシステムに対して定義されているアクセス権を許可できるかどうかを制御します。 failmode 壊滅的なプール障害が発生した場合のシステムの動作を制御します。 free 割り当てられていないプール内のブロック数を識別する読み取り専用の値です。 guid 一意の識別子を識別する読み取り専用プロパティです。 health 現在の健全性を識別する読み取り専用プロパティです。 listshares プール内の共有情報が zfs list コマンドで表示されるようにするかどうかを制御します。 listsnapshots プールに関連付けられているスナップショット情報が zfs listコマンドで表示されるようにするかどうかを制御し ます。 readonly プールを変更できるかどうかを指定します。 size ストレージプールの合計サイズを識別する読み取り専用プロパティです。 version プールの現在のディスク上バージョンを識別します。《参考》ストレージプールの実効容量の確認方法 1/2
ストレージプールの実効容量を確認するには、
zfs listコマンドを使用します。
•
現在使用中の容量と空き容量が、「USED」と「AVAIL」にそれぞれ表示されます。
•
実効容量は、「USED」と「AVAIL」の合計値となります。
• RAID構成によって、 zpool list コマンドでは実効容量を確認できないことがあります。 →詳しくは「《参考》ストレージプールの実効容量の確認方法 2/2」参照
• 詳細については、以下の「ZFS の領域の問題を解決する」を参照してください。
https://docs.oracle.com/cd/E62101_01/html/E62701/gbbym.html
# zfs list upool_1
NAME USED AVAIL REFER MOUNTPOINT
upool_1 608K 4.89G 288K /upool_1
5GB 5GBRAID-Z
upool_1
片方のディスクが パリティのため、 実効容量は約5GB5GBディスク×2
実行例 : RAID-Z構成のストレージプール
ストレージプールの実効容量の確認(zfs listコマンド)
書式: zfs list ストレージプール名《参考》ストレージプールの実効容量の確認方法 2/2
zpool listコマンドで表示される容量は、RAID構成によって意味合いが異なります。ご注意ください。
# zpool list upool_1
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT upool_1 9.94G 2.16M 9.94G 0% 1.00x ONLINE -5GB 5GB 5GB
RAID-Z2
5GB 5GBRAID-Z
5GB 5GBミラー
# zpool list upool_2
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT upool_2 14.9G 3.23M 14.9G 0% 1.00x ONLINE
-# zpool list upool_3
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT upool_3 4.97G 1.38M 4.97G 0% 1.00x ONLINE
-upool_1
一方のディスクが パリティのため、 実効容量は5 GB 2つのディスクが パリティのため、 実効容量は5 GB 実効容量は5 GBupool_2
upool_3
ディスクの合計容量を表示
ディスクの合計容量を表示
実効容量を表示
RAID-Z構成の場合
RAID-Z2構成の場合
ミラー構成の場合
2.ファイルシステムの構築
ファイルシステム構築の概要
作成するファイルシステムの環境
本章では、ファイルシステムの作成方法やファイルシステムのプロパティの設定方法を説明します。 構築するファイルシステムの構成は以下のとおりです。
ファイルシステムの操作
•
ファイルシステムの作成
既存のストレージプール「rz2pool」にファイルシステムを作成します。•
ファイルシステム名の変更、マウント/アンマウント、ファイルシステムの使用状況確
認
•
プロパティの設定
ファイルシステムプロパティを設定して、各種機能(マウントポイントの変更、NFS共有設定、ファイルシステムの割り当て制限 と予約、ユーザー/グループ割り当て制限、データ重複の検知・排除、データ暗号化)を実現します。•
ファイルシステムの確認
ファイルシステムの使用状況やプロパティ情報を確認します。•
ファイルシステムの削除
rz2pool rz2pool/data1 rz2pool/data2 rz2pool/data3 rz2pool/data3/filedir rz2pool data2 data3 data1 filedirディレクトリツリー
ファイルシステムツリー
ストレージプール
/rz2pool /fs1 /zfs /ファイルシステムの作成
ファイルシステム名を指定してファイルシステムを作成します。
•
ファイルシステムを作成すると、「マウントポイントの作成」と「マウント」が
自動的に実行されます。
ファイルシステム作成
# zfs create rz2pool/data1
ファイルシステムの作成(zfs createコマンド)
ファイルシステムの作成(途中階層を同時に作成する場合)
# zfs create –p rz2pool/data3/filedir rz2pool data3 data1 filedirrz2pool
rz2pool
※ ファイルシステム名と同じマウントポイントが/(ルート)直下に作成され、マウントされます。 • ファイルシステムの作成と同時にマウントポイントを指定することも可能です(mountpointプロパティ)。 # zfs create -o mountpoint=/zfs/fs4 rz2pool/data4ファイルシステム名の変更
作成したファイルシステムの名称を変更できます。
# zfs rename rz2pool/data3/filedir rz2pool/data3/files
ファイルシステム名の変更(zfs renameコマンド)
rz2pool data3 data1 filedir rz2pool data3 data1 filesファイルシステム名変更
• ファイルシステム名を変更すると、同時にマウントポイントも変更されます。マウント/アンマウント
ZFSはOS起動時またはファイルシステム作成時に自動マウントされます。
手動でマウント/アンマウントすることもできます。
# zfs mount rz2pool/data1
ファイルシステムのマウント(zfs mountコマンド)
# zfs unmount rz2pool/data1
ファイルシステムのアンマウント(zfs unmountコマンド)
• アンマウントはファイルシステムまたはマウントポイントを指定して行いますが、マウントはファイルシステム の指定のみで行います。 • UFSと同じ方法でマウントすることもできます。 →詳しくは「《参考》レガシーマウントの設定」参照プロパティの設定 1/9
代表的なファイルシステムプロパティの設定方法を説明します。
代表的なプロパティ
•
マウントポイントの変更
mountpointプロパティ•
NFS共有設定
share.nfsプロパティ•
ファイルシステムの割り当て制限と予約
quotaプロパティ、reservationプロパティ•
ユーザー/グループ割り当て制限
defaultuserquotaプロパティ、defaultgroupquotaプロパティ、 userquota@userプロパティ、groupquota@groupプロパティ•
データ重複の検知・排除
dedupプロパティ•
データ暗号化
encryptionプロパティ
プロパティの設定(zfs setコマンド ほか)
# zfs set <プロパティ>=value ・・・ ※ プロパティ名と値を指定します。値の指定方法は、プロパティによって異なります。 ※ zfs createコマンド(ファイルシステム作成)など、zfs setコマンド以外で指定できるプロパティもあります。プロパティの設定 2/9
-マウントポイントの変更-
マウントポイントの変更
# zfs set mountpoint=/zfs/fs1 rz2pool/data1
マウントポイントの変更(mountpointプロパティ)
マウントポイント
変更
マウント
※ mountpointプロパティの値を指定しない場合は、デフォルトでファイルシステム名と同じマウントポイントが /(ルート)直下に作成されます。 • マウントポイントを変更してもファイルシステム名は変更されません。 /zfs / /rz2pool /data1 /data3 /files /zfs / /rz2pool /data1 /data3 /files /fs1プロパティの設定 3/9
-NFS共有設定-
NFS共有設定
Solaris 11.1以降の場合
※ sharenfsプロパティはshare.nfsプロパティに変更されます。Solaris 11 11/11の場合
•
2つの手順で共有設定を行います。1つ目の手順で共有を作成(zfs set share)し、
2つ目の手順でNFS共有を公開(sharenfs=on)します。
※ Solaris 11.1でも、この設定方法を使用できます。# zfs set share.nfs=on rz2pool/data5
共有の設定(share.nfsプロパティ)
書式:share.nfs=[on|off] データセット
# zfs set share=name=d5,path=/rz2pool/data5,prot=nfs rz2pool/data5 name=d5,path=/rz2pool/data5,prot=nfs
# zfs set sharenfs=on rz2pool/data5
(2)
共有の公開(sharenfsプロパティ)
(1)
共有の作成(zfs set shareコマンド)
書式:name=共有の名前、path=NFS共有のパス、prot=NFSまたはSMBなどのプロトコル データセット 書式:sharenfs=[on|off] データセット • データセット: ストレージプール内に作成される、ファイルシステム、ボリューム、スナップショット、クローンの総称です。プロパティの設定 4/9
-ファイルシステムの割り当て制限と予約-
ファイルシステムの割り当て制限と予約
# zfs set quota=600M rz2pool/data3
# zfs set reservation=500M rz2pool/data3
ファイルシステムの使用可能領域の確保(reservationプロパティ)
使用可能領域の上限設定(quotaプロパティ)
事前に領域を確保できます。
プロパティの設定 5/9
-ユーザー/グループ割り当て制限-
ユーザー/グループ割り当て制限
# zfs set groupquota@group1=500M rz2pool/data3 # zfs set userquota@user1=300M rz2pool/data3
ユーザーが複数のグループに所属しており、ユーザーとそのプライマリグループ、セカンダリグループに それぞれ割り当て制限がされている場合、各プロパティ中の最低値が優先されます。 例:以下のような値で割り当て制限がされている場合は、最小値のユーザーで指定した300Mが優先されます。 ユーザー 300M ←最小値の300Mが優先されます。 プライマリグループ 500M セカンダリグループ 700M
# zfs set defaultgroupquota=50gb rz2pool/data3 # zfs set defaultuserquota=25gb rz2pool/data3
ユーザー割り当て制限のデフォルト値設定(defaultuserquotaプロパティ)
グループ割り当て制限のデフォルト値設定(defaultgroupquotaプロパティ)
特定ユーザーへの割り当て制限(userquota@userプロパティ)
特定グループへの割り当て制限(groupquota@groupプロパティ)
1ユーザーごとの使用容量の上限を設定できます。 1グループごとの使用容量の上限を設定できます。 特定のユーザーに対する使用容量の上限を設定できます。 特定のグループに対する使用容量の上限を設定できます。プロパティの設定 6/9
-データ重複の検知・排除-
データ重複の検知・排除
•
データセットごとに重複除外機能を設定できます。
•
複数のファイルにおける重複したデータ領域(データブロック)を検知・排除
することで、ストレージプールの容量を節約します。
書式: zfs set dedup=[on | off][対象とするファイルシステム名]
# zfs set dedup=on rpool/data1
重複除外機能の設定(dedupプロパティ)
• 仮想化やバックアップ時にディスク容量の有効活用が可能です。dedupプロパティon(有効)
dedupプロパティoff(無効)※デフォルト
ファイル2 ファイル1 ファイル2 ファイル1 A B C A B C B C D B C D A B C A B C B C D B C D 同一のデータブロックはファイル間で共有 重複したデータブロック データブロックプロパティの設定 7/9
-データ重複の検知・排除-
dedupプロパティを有効(on)にする場合の留意事項
•
zdbコマンドを使用して重複除外率(dedup)と必要メモリを計算します。
重複除外率が「2」以上かつ、搭載メモリに対して必要メモリに余裕があれば
容量節約効果を発揮でき、性能への影響も最少に抑えることができます。
# zdb -S rpool(重複除外対象のストレージプール) Simulated DDT histogram:bucket allocated referenced
______ ______________________________ ______________________________ refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE --- --- --- --- --- --- --- --- ---1 ---165K 6.93G 6.93G 7.50G 165K 6.93G 6.93G 7.50G 2 9.66K 337M 337M 379M 20.9K 763M 763M 853M :
Total 177K 7.29G 7.29G 7.92G 267K 16.3G 16.3G 17.0G
dedup = 2.15, compress = 1.00, copies = 1.05, dedup * compress / copies = 2.05
※ 重複除外は、同一ストレージプール内のdedup=onに設定したデータセット内もしくはデータセット間で行われます。ファイルシステムが 異なってもストレージプールが同じであれば重複除外されます。 ※ dedup=onに設定後に書き込まれたデータに対して有効になります。設定前に書き込まれたデータに関しては、重複除外されません。 ※ zfs listコマンドで表示される容量は、重複除外分は考慮されません。参照容量が表示されるので実際の使用量よりも多く表示されます。 必要メモリ=割り当てられているブロック数×320(※1) ※1:320 … 係数(dedupテーブルのサイズ(バイト)) • 必要メモリ計算方法については下記をご参照ください。
『Oracle Solaris 11.3でのZFSファイルシステムの管理』(Oracle社)
https://docs.oracle.com/cd/E62101_01/pdf/E62701.pdf
必要メモリの計算方法
重複除外率(dedup)… 2.15 必要メモリ… 56.64 M (177 K x 320 = 56.64 M)左の例の場合
重複除外率が2以上で必要メモリ に余裕がある。 dedupプロパティを有効にすると 効果がある。プロパティの設定 8/9
-データ暗号化-
データ暗号化
•
暗号化ポリシー(※1)は、zfs createコマンドによるファイルシステムの作成時に、
データセット単位で設定できます。
•
暗号化ポリシー(※1)の変更はできません。
# zfs create –o encryption=on rz2pool/data4 Enter passphrase for ‘rpool/home’:******** Enter again:********
ファイルシステムの暗号化(encryptionプロパティ)
ファイルシステムの暗号化が有効になっていることを確認
# zfs get encryption rz2pool/data4
NAME PROPERTY VALUE SOURCE rz2pool/data4/ encryption on local
ファイル システム
ファイル
システム 暗号化鍵でコード化
プロパティの設定 9/9
-読み取り専用設定、データ圧縮-
読み取り専用設定
データ圧縮
# zfs set readonly=on rz2pool/data1
# zfs set compression=on rz2pool/data1
※ onとlzibは同値です。 gzipとgzip-6は同値です。
ファイルシステムの読み取り専用設定(readonlyプロパティ)
ファイルシステムのデータ圧縮(compressionプロパティの設定)
ファイルシステムのデータを自動で圧縮します。 次の圧縮形式を指定できます。
[on | lzjb | gzip | gzip-[0-9]]
ファイルシステムの確認 1/2
ファイルシステムの使用状況とマウントポイントを確認できます。
# zfs list
NAME USED AVAIL REFER MOUNTPOINT rpool 12.2G 12.3G 384K /rpool : rz2pool/data3 590K 4.86G 303K /rz2pool/data3 rz2pool/data3/filedir 287K 4.86G 287K /rz2pool/data3/filedir
出力形式
①:データセット名 ②:使用済み領域サイズ ③:使用可能領域サイズ ④:データセットの使用済み領域サイズ ⑤:マウントポイント①
②
③
④
⑤
すべてのファイルシステム情報を確認(zfs listコマンド)
指定したファイルシステムの情報を確認
# zfs list rz2poolNAME USED AVAIL REFER MOUNTPOINT rz2pool 1.65M 4.86G 319K /rz2pool
# zfs list -r rz2pool
NAME USED AVAIL REFER MOUNTPOINT rz2pool 1.65M 4.86G 319K /rz2pool
rz2pool/data1 287K 4.86G 287K /rz2pool/data1 rz2pool/data3 590K 4.86G 303K /rz2pool/data3 rz2pool/data3/filedir 287K 4.86G 287K
ファイルシステムの確認 2/2
データセット単位でファイルシステムのプロパティ情報を確認できます。
# zfs get all rz2pool
NAME PROPERTY VALUE SOURCE rz2pool aclinherit restricted default rz2pool aclmode discard default
:
--<<省略>>--出力形式:
①:データセット名 ②:プロパティ名 ③:プロパティの値 ④:プロパティの状態 default 明示的に設定されていない(デフォルト値) local 明示的に設定した値 - 読み込み専用 inherited form データセット名 表示されているデータセット名からの継承①
②
③
④
ファイルシステムのプロパティ情報の確認(zfs getコマンド)
# zfs get type rz2pool
NAME PROPERTY VALUE SOURCE rz2pool type filesystem
-①
②
③
④
指定したプロパティ情報を個別に確認
指定したプロパティのみ表示 されます。
ファイルシステムの削除
zfs destroyコマンドでファイルシステムを削除します。
ファイルシステム削除 # zfs destroy rz2pool/data1
ファイルシステムの削除(zfs destroyコマンド)
配下のファイルシステムも再帰的に削除
# zfs destroy –r rz2pool/data3 rz2pool data3 data1 filedirrz2pool
rz2pool
※ 指定したファイルシステムがアンマウントされ、削除されます。 ※ data3を指定して削除した場合、配下のfiledirも削除されます。-rオプションにより、
配下のファイルシステムも
同時に削除できます。
《参考》ファイルシステムのプロパティ 1/4
プロパティ名 意味 備考 available データセットおよびその子すべてが使用可能な容量。 compressratio このデータセットに対して達成された圧縮比。 creation このデータセットが作成された時間。 defer_destroy スナップショットがzfs destroy –dコマンドを使用して遅延破棄としてマークされている場合は オン。 それ以外の場合、このプロパティはオフ。 keychangedate 指定したデータセットに対するzfs key –c操作によりラップ鍵を最後に変更した日付。 鍵の変更操作が実行されていない場合、keychangedateは作成日付と同じ。 keystatus データセットの暗号化鍵のステータスを識別する。 Solaris 11 11/11以降 mounted ファイルシステムの場合は、ファイルシステムが現在マウントされているかどうかを示す。 origin ファイルシステムまたはボリュームのクローンを作成した場合は、クローンの作成元のスナッ プショット。この作成元は、クローンが存在するかぎり(–rまたは–fオプションを使用しても)破 棄できない。 referenced このデータセットでアクセス可能なデータ量。rekeydate このデータセットに対するzfs key –Kまたはzfs clone –K操作によりデータ暗号化鍵を最後に変
更した日付。 Solaris 11 11/11以降 type データセットのタイプ。filesystem、volume、snapshotのいずれか。 used このデータセットおよびそのすべての子孫が消費する容量を調べる。 usedbychildren このデータセットの子によって使用される容量。 Solaris 10 10/09以降 usedbydataset このデータセット自体によって使用される容量。 Solaris 10 10/09以降
usedbyrefreservation このデータセットの refreservation セットによって使用される容量。 Solaris 10 10/09以降
《参考》ファイルシステムのプロパティ 2/4
プロパティ名 意味 備考 userused@user 指定されたユーザーによって消費される、このデータセットの容量。 Solaris 10 10/09以降 userrefs このスナップショットでユーザーを保持する数。ユーザーの保持は、zfs holdコマンドを使用し て設定。 groupused@group 指定されたグループによって消費される、このデータセットの容量。 Solaris 10 10/09以降 volblocksize ボリュームの場合に、ボリュームのブロックサイズを指定。 aclmode chmod(2)の実行に中ACLが変更される方法を制御する。 aclinherit ファイルとディレクトリが作成されるときにACLエントリをどのように継承するかを制御する。 atime ファイルを読み取るときにファイルのアクセス時間を更新するかどうかを制御する。 canmount 指定のファイルシステムがzfs mountコマンドを使ってマウントできるかどうかを制御する。 checksum データの完全性を検証するために使用するチェックサムを制御する。 compression このデータセットで使用される圧縮アルゴリズムを制御する。 copies このデータセットに関して保存されるデータのコピー数を制御する。 dedup データセットに対して複製解除を適用するかどうかを制御する。 Solaris 11 11/11以降 devices このファイルシステムでデバイスノードを開くことができるかどうかを制御する。 exec このファイルシステム内部からプロセスを実行可能かどうかを制御する。 logbias このデータセットに対する同期要求を ZFS で最適化する方法を制御する。mlslabel データセットをゾーンにマウントできるかどうかを指定する機密ラベル。 Trusted Extensions有
効時
mountpoint このファイルシステムで使用されるマウントポイントを制御する。
nbmand ファイルシステムをnbmand(非ブロッキング強制ロック)でマウントするべきかどうかを制御
する。
《参考》ファイルシステムのプロパティ 3/4
プロパティ名 意味 備考 quota データセットおよびその子孫が消費できる容量を制限する。 sync ファイルシステムトランザクションを同期する程度を指定する。 userquota@user 指定されたユーザーによって消費される容量を制限する。 Solaris 10 10/09以降 groupquota@group 指定されたグループによって消費される容量を制限する。 Solaris 10 10/09以降 readonly このデータを変更できるかどうかを制御する。 Solaris 11 11/11以降 recordsize ファイルシステムに格納するファイルの推奨ブロックサイズを指定する。 refquota 1つのデータセットが消費できる容量を制限する。 refreservation データセットに保証される最小容量。 reservation データセットおよびその子孫に保証される最小容量。 rstchown ユーザーがchown(1)またはchown(2)システムコールでファイルの所有権を与えることをファ イルシステムで制限するかどうかを指定する。 Solaris 11 11/11以降secondarycache セカンダリキャッシュ(L2ARC)にキャッシュされる内容を制御する。 Solaris 10 10/09以降
setuid 設定されたUIDビットが、このシステムで順守されるかどうかを制御する。 shadow ZFSファイルシステムをURIで記述されたファイルシステムのshadowとして識別する。 sharenfs ZFSデータセットをNFS共有として作成および公開するかどうかを制御する。 share.nfs 同上 Solaris 11.1以降 sharesmb ZFS データセットをSMB共有として作成および公開するかどうかを制御する。 share.smb 同上 Solaris 11.1以降 snapdir ファイルシステムのルートで、.zfsディレクトリを非表示にするか、表示するかを制御する。 version このファイルシステムのディスク上バージョン。 volsize ボリュームの論理サイズを指定する。 vscan 通常ファイルを開くときや閉じるときに、ファイルのウイルススキャンを実行するかどうかを 制御する。
《参考》ファイルシステムのプロパティ 4/4
プロパティ名 意味 備考 xattr このファイルシステムで拡張属性が有効かどうかを制御する。 zoned データセットを非大域ゾーンから管理するかどうかを制御する。 casesensitivity ファイルシステムで使用するファイル名照合アルゴリズムで、大文字と小文字を区別するか、 区別しないか、または両方の照合方式の組み合わせを許可するかを指定する。 normalization ファイルシステムで2つのファイル名を比較するとき常にファイル名のunicode正規化を実行す るかどうか、およびどの正規化アルゴリズムを使用するかを指定する。 utf8only UTF-8 文字コードセットに存在しない文字が含まれているファイル名をファイルシステムで拒 否するかどうかを設定する。 encryption 暗号化されたデータセットに使用する暗号化アルゴリズムと鍵長を定義する。 Solaris 11 11/11以降multilevel 自動的に生成される明示的な機密ラベル属性で個別にラベル付けするかどうかを制御する。 Trusted Extensions有
効時
keysource データセットの鍵をラップする鍵の形式と場所を定義する。作成時に指定する必要あり。 Solaris 11 11/11以降
defaultuserquota デフォルトのユーザー割り当て制限をする。 Solaris 11.3以降
《参考》レガシーマウントの設定
UFSと同じ方法でマウントすることもできます。
•
レガシーマウントとは、従来のファイルシステム(UFS)と同様に、/etc/vfstabや
mountコマンドで管理することです。
•
mountpointプロパティに「legacy」を指定することで設定します。
•
レガシーマウントは、Solaris ゾーンで共有ファイルシステムを指定する際などに
設定します。
# zfs set mountpoint=legacy rz2pool/data4
レガシーマウントの設定(mountpointプロパティ)
# mount –F zfs rz2pool/data4 /zfs/legacy
マウント(mountコマンド)
# umount /zfs/legacy
アンマウント(umountコマンド)
※ レガシーマウントの設定をした場合、手動マウント/手動アンマウントは、zfs mount/zfs unmountコマンドではなく、 mount/umountコマンドを使用します。 ファイルシステムタイプには「zfs」 を指定します。3.スナップショットとクローンの作成
スナップショットとクローン作成の概要
スナップショットとクローン作成
本章では、スナップショットとクローンの作成・操作方法を説明します。
スナップショットの操作、クローンの操作
•
スナップショットの作成
•
スナップショット名の変更
•
スナップショットの差分表示
•
クローンの作成
•
ファイルシステムの置き換え
•
スナップショットへのロールバック
•
自動スナップショットの設定
2015/01/01 snapshot スナップショット クローンスナップショットの作成
データセット(主にファイルシステム)を指定して、スナップショット
を作成します。
# zfs snapshot rz2pool/data1@20150101 書式:zfs snapshot [ファイルシステム名@スナップショット名] rz2pool data3 data1 filedir rz2pool data3 data1 filesスナップショットの
作成
20150101data1@ data1のスナップ ショット作成
スナップショットの作成(zfs snapshotコマンド)
• スナップショットは、指定したデータセットと同じストレージプール内に作成されます。 • -r オプションを指定することで、指定したデータセット配下すべてのデータセットのスナップショットを同時に 作成できます。 # zfs snapshot -r rz2pool/data1@snap1スナップショット名の変更
スナップショット作成後にスナップショット名を変更できます。
# zfs rename rz2pool/data1@20150101 rz2pool/data1@before
スナップショット名の変更(zfs renameコマンド)
スナップショット
名の変更
data1@ 20150101 data1@before rz2pool data3 data1 files rz2pool data3 data1 files 書式:zfs rename [変更前のスナップショット名][変更後のスナップショット名] • スナップショットは、「データセット名」@「スナップショット名」の形で作成されます。そのため、スナップ ショット名を変更すると、@よりあとの「スナップショット名」の部分が変更されます。スナップショット差分表示
2つのスナップショットの差分を確認できます。
スナップショットA(データ更新前)
rz2pool/data1@before
スナップショットの差分表記
$ zfs diff rz2pool/data1@before rz2pool/data1@after M /rz2pool/data1/ + /rz2pool/data1/file01.txt
スナップショットB(データ更新後)
rz2pool/data1@after
M :ファイルまたはディレクトリの変更を示す R :ファイルまたはディレクトリの名前が変更された - :ファイルまたはディレクトリが、古いスナップ ショットには存在し、新しいスナップショットに は在しない + :ファイルまたはディレクトリが、新しいスナップ ショットには存在し、古いスナップショットには 存在しない data1 files データ更新 rz2pool data3 files data1@ after data1@ before data1 rz2pool data1@ before data3 data1のスナップ ショット作成
スナップショットの差分確認
(zfs diffコマンド)
file01.txt 書式:zfs diff [スナップショット名1][スナップショット名2] • zfs diffコマンド実行時にスナップショットを1つだけ指定した場合、ファイルシステムの現在の状態との差分が 表示されます。 • -rオプションで、指定したスナップショットとすべての子スナップショットの差分が表示されます。クローンの作成
スナップショットからデータセットのクローンを作成します。
# zfs clone rz2pool/data1@before rz2pool/data1-clone
書式:zfs clone [スナップショット名][クローンのファイルシステム名] rz2pool data3 data1 files
クローンの作成
data1@ before rz2pool data3 data1 files data1@before data1-clone
スナップショットから クローンを作成
クローンの作成(zfs cloneコマンド)
• クローンは、指定した同一ストレージプール内の別のファイルシステム配下にも作成できます。 例: # zfs clone rz2pool/data1@before rz2pool/data3/data1-clone
暗号化されたファイルシステムのクローンの作成
# zfs snapshot rz2pool/data4@encryption
# zfs clone rz2pool/data4@encryption rz2pool/data4-clone Enter passphrase for ‘rz2pool/data4-clone’:******
Enter again:******
※ 暗号化されたファイルシステムのクローンを作成する際に、ポリシーが適用され、パスワードが求められます。
ファイルシステムの置き換え
元ファイルシステム(マスター)とクローンの依存関係を入れ替えて、
クローンをマスターファイルシステムにします。
# zfs promote rz2pool/data1-clone
元ファイルシステムとクローンの置き換え(zfs promoteコマンド)
rz2pool data1 data1@ before data1-clone rz2pool data1 data1-clone@ before data1-clone ファイルシステム スナップショット クローン ファイルシステム スナップショット クローン置き換え
依存関係 依存関係 書式:zfs promote [クローンのファイルシステム名] • ZFSでは、クローンとファイルシステムの依存関係を置き替えることができます。置き換え後には、スナップ ショット名も変更されます。 • クローンとファイルシステムでは、異なるプロパティが設定されているため、置き換え後にファイルシステムの プロパティを環境に合わせて設定する必要があります。スナップショットからのロールバック
スナップショットからロールバックすることで、ファイルシステムをス
ナップショット作成時の状態に戻します。
# zfs rollback rz2pool/data1@rollback 書式:zfs rollback [スナップショット名] rz2pool data3 data1 filesロールバック
data1@ rollback rz2pool data3 data1 files data1@ rollback スナップショット作成時 の状態に戻す data1のスナップ ショット作成
ロールバック(zfs rollbackコマンド)
• ZFSでは、スナップショットからロールバックすることができます。 • ロールバック後、ロールバックしたスナップショットは残ります。自動ZFSスナップショット
一定の間隔でスナップショットを自動で作成します。
作成タイミング 保持可能な数 frequent snapshots 15分ごと 4 hourly snapshots 毎時 24 daily snapshots 毎日 31 weekly snapshots 毎週 7 monthly snapshots 毎月 12
自動スナップショットプロパティの設定変更(com.sun:auto-snapshotプロパティ)
# zfs set com.sun:auto-snapshot=true rz2pool/data1
自動スナップショットサービスの有効化
# svcadm enable svc:/system/filesystem/zfs/auto-snapshot:frequent # svcadm enable svc:/system/filesystem/zfs/auto-snapshot:hourly
元データ frequent snapshots hourly snapshots daily snapshots weekly snapshots monthly snapshots
書式: zfs set com.sun:auto-snapshot=[true | false][対象とするファイルシステム名]
書式: svcadm enable svc:/system/filesystem/zfs/auto-snapshot:作成タイミング
• 自動スナップショット機能を有効にするデータセット、作成タイミングを指定できるのでディスクの有効活用も できます。
4.バックアップ/リストア
ZFSでは、ストリームの送信/受信によって、ファイルシステムのバッ
クアップ/リストアを実現します。
バックアップ/リストアの概要
バックアップ/リストアのながれ
ZFSでは、ストリームの送信/受信によって、ファイルシステムのバックアップ/リストアを実現します。 本章では、ストリームの送信/受信の方法を説明します。
バックアップ/リストアの方法
•
方法1:フルバックアップ/リストア
ストレージプール内のすべてのファイルシステムをバックアップ/リストアします。•
方法2:特定のファイルシステムのバックアップ/リストア
•
方法3:差分バックアップ/リストア
ストレージプール内のすべてのファイルシステムを差分バックアップ/差分リストアします。 ストリームの受信(リストア) ストリームの送信(バックアップ) ストレージプール ファイル システム スナップ ショット ストリーム方法1:フルバックアップ/リストア 1/2
ストレージプール内のすべてのファイルシステムをバックアップ/
リストアします。
(2)
ストリームの
送信
ストリーム(1)
ファイルシステム全体の
スナップショットの作成
rz2pool data3 data1 files data1@ backup1 / data2@ backup1 files@ backup1 rz2pool@ backup1 data2 rz2pool data3 data1 files / data2 data3@ backup1(3)
ストリーム
受信
方法1:フルバックアップ/リストア 2/2
バックアップ
リストア
# zfs snapshot -r rz2pool@backup1
(1)
ファイルシステム全体のスナップショットの作成
# zfs send -R rz2pool@backup1 > /mnt/snap2_1.dat
(2)
ストリームの送信
# zfs receive -d -F rzpool < /mnt/snap2_1.dat
(3)
ストリームの受信
※ ストリームの送信先は任意です。
※ -d オプションを指定せずに、-R オプションを指定して作成したストリームは、下記のエラーが出力され受信できません。
cannot receive: must use -d to receive replication (send -R) stream
-r オプションを指定すると、スナップショット作成時に指定したファイルシステムとすべての下位ファイル システムのスナップショットを同時に作成します。 -R オプションで指定されたスナップショットのすべての下位ファイルシステムのストリームを送信し、1つの ファイルに保存します。 ストリーム送信時に-R オプションを指定した場合は、-d オプションを指定します。 -F オプションでストリームを受信する前にファイルシステムを最新の状態にロールバックします。
方法2:特定のファイルシステムのバックアップ/リストア 1/2
特定のファイルシステムをバックアップ/リストアします。
data1@ backup1 rz2pool data3 data1 files / data2 rz2pool data3 data1 files / data2(2)
ストリームの
送信
ストリーム(3)
ストリームの
受信
(1)
特定のファイルシステム(rz2pool/data1)の
スナップショットの作成
方法2:特定のファイルシステムのバックアップ/リストア 2/2
バックアップ
リストア
# zfs snapshot rz2pool/data1@backup1
(1)
特定のファイルシステムのスナップショットの作成
# zfs send rz2pool/data1@backup1 > /mnt/snap3_1.dat
(2)
ストリームの送信
# zfs receive rzpool/data1 < /mnt/snap3_1.dat
方法3:差分バックアップ/リストア 1/3
ストレージプール内のすべてのファイルシステムを差分バックアップ
/リストアします。
(1)
スナップショットの作成(backup1)
ストリーム ストリーム (差分) / data1 data1@ backup1 data1@ backup2 rz2pool rz2pool@ backup1 rz2pool@ backup2 / data1 data1@ backup1 rz2pool rz2pool@ backup1 ストリーム(2)
ストリームの
送信
(5)
ストリームの
受信
backup1のストリーム(4)
差分ストリーム
の送信
(6)
差分ストリーム
の受信
(3)
スナップショットの作成(backup2)
backup1とbackup2の 差分ストリーム方法3:差分バックアップ/リストア 2/3
バックアップ
# zfs snapshot -r rz2pool@backup1
(1)
スナップショットの作成
# zfs send -R rz2pool@backup1 > /mnt/snap4_1.dat
(2)
ストリームの送信
# zfs snapshot -r rz2pool@backup2
(3)
スナップショットの作成
# zfs send -R -i rz2pool@backup1 rz2pool@backup2 > /mnt/snap4_2.dat
方法3:差分バックアップ/リストア 3/3
リストア
# zfs receive -d -F rz2pool < /mnt/snap4_1.dat
(5)
ストリームの受信
# zfs receive -d -F rz2pool < /mnt/snap4_2.dat
(6)
差分ストリームの受信
ストリームの受信
ストリーム差分ストリーム
の受信
ストリーム (差分) backup1とbackup2の 差分ストリーム rz2pool rz2pool@ backup1 / data1 data1@ backup1 / data1 data1@ backup1 data1@ backup2 rz2pool@ backup1 rz2pool@ backup2 rz2pool backup1の ストリーム《参考》ストリーム送信時の進捗表示
zfs sendコマンドの進捗状況を確認できます。
ZFSの退避に関するスケジュールや計画の精度改善に役立ちます。
# zfs send -Rv rpool@backup | gzip | pv > /upool/backup/rpool.zfs.gz sending full stream to rpool@backup
sending full stream to rpool/OVM@backup
sending full stream to rpool/OVM/inst_svr@backup sending full stream to rpool/OVM/uar2@backup sending full stream to rpool/OVM/uar1@backup sending full stream to rpool/VARSHARE@backup sending full stream to rpool/VARSHARE/pkg@backup
sending full stream to rpool/VARSHARE/pkg/repositories@backup sending full stream to rpool/VARSHARE/zones@backup
sending full stream to rpool/export@backup
sending full stream to rpool/export/home@backup sending full stream to rpool/ROOT@backup
sending full stream to rpool/ROOT/solaris@install
sending @install to rpool/ROOT/solaris@2015-01-05-16:14:20 sending @2015-01-05-16:14:20 to rpool/ROOT/solaris@backup sending full stream to rpool/ROOT/solaris/var@install
sending @install to rpool/ROOT/solaris/var@2015-01-05-16:14:20 sending @2015-01-05-16:14:20 to rpool/ROOT/solaris/var@backup estimated stream size: 108G
11.6GB 0:23:37 [3.61MB/s] [ <=> ] コマンド実行直後に バックアップ対象のすべての スナップショットを表示 実行後に作成される zfsストリームファイルの サイズを表示 (圧縮前のサイズ) 作成途中のサイズ、経過時間、 速度を表示 • Solaris 11.2からzfs sendコマンドの進捗状況を確認する機能が追加されました。
5.ミラーディスクの切り離し
ミラーディスクを切り離して、そのディスクで新たにストレージプール
を作成する方法を説明します。
ミラーディスクの切り離しの概要
ミラーディスクの切り離しの環境
本章では、ミラーディスクを切り離して、そのディスクで新たにストレージプールを作成する方法を説明します。 構築する環境は以下のとおりです。
ミラーディスクの切り離しのながれ
• 手順1:ミラー構成の変更(2面ミラー構成から3面ミラー構成に) • 手順2:3面ミラー構成のディスクの切り離しと新規ストレージプールの作成 • 手順3:新規ストレージプールのインポート • 手順4:新規ストレージプールにディスクを追加し、2面ミラー構成の作成 • 手順5:新規ストレージプールの構成確認mirpool
c2d3 c2d4 c2d11mirpool2
c2d11 c2d12 c2d12 ミラー ミラー 追加(attach)mirpool2
c2d11 切り離し(split) 接続(import) 手順1 手順2 手順3 手順4 手順5 ※ 切り離し後、新規 ストレージプールが 作成されます。 • 新規ストレージプールは、容易に別サーバへ移動できます。 ※ ミラー構成のストレージプールからミラーディスクを切り離し、切り離したミラーディスクをインポートすることで切り離し元と同一の ファイルシステムとデータを保持した新規ストレージプールを作成します。インポート後は、ディスクを追加して2面ミラー構成を組みます。手順1:ミラー構成の変更
2面ミラー構成から3面ミラー構成を作成し、ミラーディスク切り離しの
準備をします。
mirpool
c2d3 ミラー c2d4mirpool
c2d3 c2d4 ディスク追加# zpool attach mirpool c2d3 c2d11
ディスクの追加(zpool attachコマンド)
c2d11 ミラーミラーディスクの追加イメージ図
書式:zpool attach プール名 ミラー元ディスク ミラーディスク • 2面ミラー構成のミラーディスクからディスクを切り離すこともできますが、切り離し後はディスクの冗長性が 失われます。ディスクの冗長性を維持したい場合は、3面ミラーをお勧めします。手順2:3面ミラー構成のディスクの切り離し
3面ミラー構成のディスクを切り離し、新規ストレージプールを作成
します。
mirpool2
mirpool
c2d3 c2d4mirpool
c2d3 c2d4 ミラー c2d11 ミラー c2d11 切り離し(split)# zpool split mirpool mirpool2
ストレージプールの切り離し(zpool splitコマンド)
※ 切り離すディスク名を指定しない場合、デフォルト設定では最後にストレージプールへ接続されたディスク(ここではc2d11) が切り離されます。zpool statusコマンドの表示順がディスクの接続順となります。
※ 作成されたストレージプール(mirpool2)には、作成元のストレージプール(mirpool)と同一のデータが存在します。
《参考》ディスクを指定してストレージプールを切り離す
# zpool split mirpool mirpool2 c2d11
ミラーディスクの切り離しイメージ図
書式:zpool split ストレージプール名 新規ストレージプール名 切り離すディスク名 • 少ない負荷でストレージプールからディスクを切り離すことができます。 →ディスク切り離し中のディスク負荷については「《参考》zpool split実行時のディスク負荷率」参照。 • ディスクの切り離しと同時に新規ストレージプールが作成され、エクスポート(export) されます。 ※再同期化が進行中の場合、ディスクを切り離すことはできません。手順3:切り離したディスクのインポート
切り離したディスクを新規ストレージプールにインポートします。
•
ミラーディスクの切り離しによって作成される新規ストレージプールは、接続が
解除(エクスポート)された状態で作成されます。
•
新規ストレージプールを使用する場合は、手動でインポートを実行します。
接続(import)mirpool2
mirpool
c2d3 c2d4 ミラー c2d11mirpool
c2d3 ミラー c2d4mirpool2
c2d11
切り離したディスクのインポート(zpool import コマンド)
# zpool import mirpool2
※ プール名を指定しない場合インポート可能なストレージプールを確認できます。 # zpool import --《省略》--mirpool2 ONLINE c2d11 ONLINE
ミラーディスクの認識イメージ図
• 少ない負荷でディスクをインポートすることができます。 →切り離したディスクのインポート中のディスク負荷については「《参考》zpool import実行時のディスク負荷率」参照。 書式:zpool import 新規ストレージプール名手順4:新規ストレージプールでの2面ミラー構成の作成
新規ストレージプールにディスクを追加し、2面ミラー構成を作成します。
mirpool2
c2d11 c2d12 ミラーmirpool2
c2d11 c2d12 追加(attach)# zpool attach mirpool2 c2d11 c2d12
書式:zpool attach プール名 ミラー元ディスク ミラーディスク
2面ミラー構成の作成イメージ図
手順5:新規ストレージプールの構成確認
新規ストレージプールの構成を確認します。
ファイルシステムの確認(zfs listコマンド)
# zfs list
NAME USED AVAIL REFER MOUNTPOINT mirpool 173K 9.78G 23K /mirpool mirpool/dataset 42K 9.78G 21K /mirpool/dataset mirpool/dataset/test 21K 9.78G 21K /mirpool/dataset/test mirpool2 175K 9.78G 23K /mirpool2 mirpool2/dataset 44K 9.78G 23K /mirpool2/dataset mirpool2/dataset/test 21K 9.78G 21K /mirpool2/dataset/test / test mirpool mirpool/dataset mirpool/dataset/test dataset test mirpool2 mirpool2/dataset mirpool2/dataset/test /mirpool /mirpool2 dataset 書式:zfs list • mirpoolとmirpool2のファイルシステム構成が同じであることを確認します。
《参考》zpool split実行時のディスク負荷率
少ない負荷でストレージプールからディスクを切り離すことができます。
zpool split 実行5秒間のディスク負荷率
extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
0.2 0.2 1.7 2.5 0.0 0.0 0.0 25.7 0 0 c0d3 0.2 0.2 1.6 2.5 0.0 0.0 0.0 26.3 0 0 c0d4 0.5 0.1 5.7 2.0 0.0 0.0 0.0 11.3 0 0 c0d11 4.0 27.9 135.6 77.8 0.0 1.2 0.0 37.8 0 32 c0d3 4.0 27.9 135.6 77.8 0.0 1.4 0.0 44.7 0 37 c0d4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c0d11 0.0 19.0 0.0 473.1 0.0 0.8 0.0 40.4 0 20 c0d3 0.0 19.0 0.0 473.1 0.0 0.8 0.0 41.5 0 22 c0d4 16.0 61.0 922.6 123.5 0.0 2.2 0.0 28.2 0 58 c0d11 0.0 37.1 0.0 524.0 0.0 1.5 0.0 39.8 0 35 c0d3 0.0 37.1 0.0 524.0 0.0 1.7 0.0 45.5 0 41 c0d4 0.0 51.1 0.0 535.6 0.0 1.6 0.0 31.6 0 42 c0d11 0.0 30.9 0.0 60.8 0.0 1.5 0.0 48.7 0 35 c0d3 0.0 30.9 0.0 60.8 0.0 1.5 0.0 49.4 0 35 c0d4 0.0 40.9 0.0 524.1 0.0 1.2 0.0 29.2 0 35 c0d11 項目 説明 r/s 読み込み(数/秒) w/s 書き込み(数/秒) kr/s 読み込み(kB/秒) kw/s 書き込み(kB/秒) wait 待機中の平均トランザクション数 acty 処理中の平均トランザクション数 wsvc_t 平均サービス時間(ミリ秒) asvc_t 平均サービス時間(ミリ秒) %w トランザクションの待機時間の割合 %b ディスクビジー(トランザクション 処理中)の割合 device 使用ディスク
各項目内容
「iostat –sxnp 1 20」コマンド実行結果 • 切り離し実行時に数秒間(上記では約4秒)だけディスク負荷が発生します。 ※測定値は検証環境での参考値です。 ※iostatコマンドの初回出力は、デバイスがオンラインになってからの累積値です。《参考》zpool import実行時のディスク負荷率
少ない負荷でディスクをインポートすることができます。
extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
0.2 0.3 2.7 3.2 0.0 0.0 0.0 28.6 0 0 c0d3 0.2 0.3 2.6 3.2 0.0 0.0 0.0 29.8 0 0 c0d4 0.5 0.3 8.1 2.8 0.0 0.0 0.0 14.3 0 0 c0d11 5.0 0.0 1276.0 0.0 0.0 0.0 0.0 8.5 0 4 c0d3 5.0 0.0 1276.0 0.0 0.0 0.1 0.0 10.7 0 5 c0d4 30.9 0.0 2695.6 0.0 0.0 0.1 0.0 3.5 0 8 c0d11 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c0d3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c0d4 15.0 92.0 840.0 849.5 0.0 3.2 0.0 29.9 0 73 c0d11 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c0d3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c0d4 0.0 33.0 0.0 286.6 0.0 1.0 0.0 30.1 0 26 c0d11 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c0d3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c0d4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c0d11
zpool import 実行5秒間のディスク負荷率
「iostat –sxnp 1 20」コマンド実行結果 項目 説明 r/s 読み込み(数/秒) w/s 書き込み(数/秒) kr/s 読み込み(kB/秒) kw/s 書き込み(kB/秒) wait 待機中の平均トランザクション数 acty 処理中の平均トランザクション数 wsvc_t 平均サービス時間(ミリ秒) asvc_t 平均サービス時間(ミリ秒) %w トランザクションの待機時間の割合 %b ディスクビジー(トランザクション 処理中)の割合 device 使用ディスク各項目内容
• 接続実行時に数秒間(上記では約3秒)だけディスク負荷が発生します。 ※測定値は検証環境での参考値です。 ※iostatコマンドの初回出力は、デバイスがオンラインになってからの累積値です。ストレージプールの入出力統計情報
ストレージプール、または、ストレージプールを構成するデバイス
(ディスク)ごとに入出力統計情報を確認できます。
•
Solaris標準のiostatコマンドと同様に、ZFSにもデータの入出力の統計情報を表示す
るコマンドが実装されています。
# zpool iostat rz2pool 5
capacity operations bandwidth
pool used avail read write read write --- --- --- --- --- --- ---rz2pool 230K 29.7G 0 13 682 12.3K
ストレージプールの統計情報(zpool iostatコマンド)
デバイスの統計情報
# zpool iostat -v rz2pool
capacity operations bandwidth pool used avai read write read write --- --- --- --- --- --- ---rz2pool 230K 29.7G 0 0 23 443 raidz2 230K 29.7G 0 0 23 443 c2d7 - - 0 0 71 4.74K c2d8 - - 0 0 71 4.74K c2d9 - - 0 0 263 4.74K --- --- --- --- --- --- ---書式:zpool iostat [-v] [プール名] [秒] -vオプションを指定すると、仮想デバイス全体のレイアウトと入出力統計を取得できます。 pool ストレージプール名、デバイス名 capacity used 使用済みデータサイズ avail 使用可能データサイズ operation read 入出力読み取り操作数 write 入出力書き込み操作数 bandwidth read 読み取りデータ量 write 書き込みデータ量 表示間隔を指定します。この例では、 5秒間隔で表示します。