<Insert Picture Here>
ZFS とオペレーティングシステムの融合Solaris 11 に見る、次世代ファイルシステム - ZFS -日本オラクル株式会社システム事業統括 ソリューション統括本部 コミュニケーションソリューション本部シニアセールスコンサルタント野崎 宏明
Copyright© 2011, Oracle. All rights reserved. 2
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
Copyright© 2011, Oracle. All rights reserved. 3
スピーカー自己紹介
• 学生時代• JDK 1.1でPrologの推論機構を実装し検索エンジンの真似ごと
• 1998年4月(日本)サン・マイクロシステムズ入社• ふと気づけば社会人14年目
• ほぼずっとSE (Sはシステム?セールス?)• 主にSolaris、開発環境、Sun Rayシンクライアント
• 今は主に通信事業者様担当
• Oracle では SC (Sales Consultant) と呼ばれます
• 1年だけサポートエンジニア• Java VMの解析
• Solarisエバンジェリスト(宣教師?!)• 最近は特にZFSの宣伝係としての出番増
Copyright© 2011, Oracle. All rights reserved. 4
内容
• ZFS 概要
• Oracle Solaris 11 11/11における ZFS 強化点• OSの一機能からOS全体との融合とOSの進化
• 暗号化
• 重複排除
• 性能向上
• Solaris 11 Express 2010.11 からの主な強化点
• その他の強化点
Copyright© 2011, Oracle. All rights reserved. 5
ZFS 概要
Copyright© 2011, Oracle. All rights reserved. 6
ファイルシステム
• どのセクタにどうデータを書くか
• 開発者の腕(?)の見せどころ• どのセクタにどうデータを書くか: 固定型、拡張型
• 容量をうまく使えるか: 容量変更方法と制限
• 安全か: 冗長性、書き込み方法、誤り検出
• 便利か: 属性情報、スナップショット、バックアップ、リモートコピー、..
• 高速か: データの配置、メモリの有効利用
• 管理しやすいか
Copyright© 2011, Oracle. All rights reserved. 7
既存ファイルシステムやボリューム管理の問題点
• 拡張性
• 堅牢性
• 機能
• 性能
• 管理性
• ....ZFSでは?
Copyright© 2011, Oracle. All rights reserved. 8
ZFSの歴史と機能比較日付 build ver S11E ZFSSA S10 内容
1996 - - - - - DIMMの管理性を目指し究極のファイルシステム開発開始
2001/10/31 - - - - - ユーザーレベルプロトタイプ
2005/10/31 - - - - - オープンソースで公開
2006/03 36 1 - - - Solaris 10 6/06 で製品として初リリース
2006/06 42 3 ◯ ◯ ◯ ダブルパリティ RAID-Z
2007/07 62 6 ◯ ◯ ◯ ブート対応
2007/07 68 7 ◯ ◯ ◯ 分離ログデバイス (slog)
2007/11 78 10 ◯ ◯ ◯ 2次読込キャッシュ (L2ARC)
2008/05 90 - ◯ ◯ × COMSTAR 対応
2008/11 - - - - - Storage 7000 シリーズ (現ZFSSAシリーズ)
2009/05 114 15 ◯ ◯ ◯ ユーザー・グループ単位容量制限
2009/07 120 17 ◯ ◯ ◯ トリプルパリティ RAID-Z
2009/11 128 21 ◯ ◯ × 重複排除
2010/09 149 30 ◯ 未 × 暗号化
build: Nevada build, ver: zpool version, S11: Solaris 11 11/11 (Nevada 175b / zpool ver 33),ZFSSA: ZFS Storage Appliance 2010.Q3, S10: Solaris 10 8/11 (zpool ver 29 but dedup not supported)
Copyright© 2011, Oracle. All rights reserved. 9
ストレージプール
• 従来のファイルシステム• ファイルシステム管理がボリュームや物理ディスクに依存
• 容量拡張ひとつとっても容易ではない
• ZFS• プールに物理ストレージを登録・格納
• 必要なときにその容量が使用される
• 容量拡張はプールに物理ディスクを追加するだけ
拡張性!
Copyright© 2011, Oracle. All rights reserved. 10
ファイルシステムの切り出し: 自動容量割当
ファイルシステム1ファイルシステム2
ファイルシステム3
拡張性!
StoragePool
/ (root)
usr opt export
homeファイルシステム4
どのデバイスのどこが使われるかはZFSが自動で決定
ストレージデバイスをファイルシステムで抽象化・仮想化
Copyright© 2011, Oracle. All rights reserved. 11
End-to-Endチェックサム• 従来のチェックサム
• 当該ブロック内に限定した誤り検出
• →ブロック単位で誤っていない場合は検出できない
• →アプリからここにデータが至る間の誤りは検出できない
ZFS• データとチェックサムを分離
• ツリー全体用のチェックサム
• IOパス全体のチェック
• bit rot, phantom writes,misdirected read/writes,accidental overwrites,DMA parity errors, driver bugs
ZFS: I/Oパス全体のチェックサム従来のチェックサム: ブロック単位
堅牢性!
Copyright© 2011, Oracle. All rights reserved. 12
トランザクションベースの書込時コピー(Copy-On-Write)
はじめの状態 コピーを作成して変更を記録(CoW)
ポインタ(間接ブロック)をCoW Uber-blockを更新
元データ
新データ
新ポインタ
元ポインタ New Uber-block
Uber-block
堅牢性!
アプリケーションから見える状態
アプリケーションから見える状態
アプリケーションから見えない状態
アプリケーションから見えない状態
Copyright© 2011, Oracle. All rights reserved. 13
全ての機能がOSに付属機能!
Current Data
snapshotuber-block
originaluber-block
• スナップショット
• クローン
• バックアップ・リストア
• リモートコピー
• NFS
• iSCSI
• CIFS (Solaris 10はSamba経由)
• 圧縮
• 重複排除 (Solaris 10 は非対応)
• 暗号化 (Solaris 11 Express 2010.11 以降)
snapshot original
Copyright© 2011, Oracle. All rights reserved. 14
ファイルシステム作成手順
1.プールにストレージを登録 zpool create tank <block_device> ...
2.プールからファイルシステム切出 zfs create tank/home
3. (省略可) 属性値設定 zfs set <attr>=<value> tank/home 暗号化、重複排除、圧縮、容量制限、など
• 3ステップで構成可能
• /etc/vfstab書き換え不要
• /etc/dfs/dfstab書き換え不要
/ (root)
usr opt tank
Storage Pool: tank
ZFS
home
home作成時に自動でマウント
管理性!
Copyright© 2011, Oracle. All rights reserved. 15
性能!
Hybridストレージプール
!
Copyright© 2011, Oracle. All rights reserved. 16
性能!
Hybridストレージプールの性能効果例
• Flash 利用でコスト面も優位• 大規模構成時のコストメリットが特に期待できる
Raw 容量
(TB)
構成 A: Flash 無しのストレージプール (DRAM + 7x 10K RPM SAS)構成 B: Flash 有りのストレージプール (DRAM + Read SSD + Log SSD + 5x 4200 RPM SATA)
消費電力
(ワット)読込IOPs 書込IOPs TBあたり
コスト
x3.2x3.2+11%+11%
x2x2
Flash無し vs. Flash有り
x1x1//22 x1x1//4.94.9
!
Copyright© 2011, Oracle. All rights reserved. 17
PoolPool
オンライン拡張
ヘテロ環境での大規模統合共有ストレージ
HDDの追加128ビット
ファイルシステム
オンラインでのディスクドライブ追加
・大規模ファイルシステムを簡単に構築可能・GB単価が安いディスクを使用可能・SSDをファイルシステムの二次キャッシュと して使用できファイルシステムの入出力が HDDのみで構築した場合に比べ高速になる
・メールデータの保存・オフィスファイルの保存・画像データの保存・データマイニング等の計算データ保存
メイン SnapShotコピー
リモートサーバーリモートサーバー
ローカルサーバーリモートレプリケーション機能で大規模ファイルシステムのデータのバックアップも簡単に実現
Solaris Linux Windows
NFS/iSCSI/CIFS/FC
ZFS の活用
Copyright© 2011, Oracle. All rights reserved. 18
ZFS: 仮想化の強力なストレージインフラ
• 仮想マシン/仮想OS (またはそのイメージ) の• (大量一括)高速作成、配備
• シンプロビジョニング
• スナップショット・ロールバック
• 自動圧縮
• 重複排除
• ストレージのRAID化
• オンラインストレージ容量拡張
• Flashの自動最適使用
• 共有ディスクプロビジョニング
• Oracle Solaris コンテナ、Oracle VM Server for SPARC,Oracle VM Server for x86, Oracle VM VirtualBox, VMware, Xen
• リモートコピー
• ブロック単位差分バックアップ
• 包括的管理・監視ツール
• 強力なデータ保護
• 他ホストへの移動
• HA
• 動的リソース配分
ZFS + 仮想化
開発用途に用いて時間、リソース、費用の節約も!
Copyright© 2011, Oracle. All rights reserved. 19
サーバー仮想化環境での共有ストレージ
Active DirectoryServer
Virus ScanningServer
BackupServer
共有ストレージNFSiSCSI
VM2
VM1
VM4
VM3
VM6 VM7 VM5
VM5
HA / 簡易HA / マイグレーション
・OSイメージサーバー用共有ストレージとして活用
ZFS + 仮想化
Copyright© 2011, Oracle. All rights reserved. 20
7720
7420
73207120
Sun ZFS ストレージアプライアンス(ZFSSA)• Unified Storage / Sun ZFS Storage 7000
• Solaris ベースの NAS ヘッド
• オープンアーキテクチャ
• データ形式、プロトコル(NFS, FTP, WebDAV, iSCSI, CIFS, FC,InfiniBand (iSER, SRP, IPoIB, NFS/RDMA), NDMP, ..)
• オープンソースソフトウェア採用
• コストパフォーマンス
• ZFS と Flash (SSD)
• Hybridストレージプール
• DTrace Analytics
• リアルタイム
• システム性能確認
• 容量プランニング
• 課題特定
〜120TB〜192TB
〜1152TB
DTrace Analytics
ZFSSAGen3SFP-1
ベンチマーク137,000
IOPS 達成
Copyright© 2011, Oracle. All rights reserved. 21
ZFS事例• ZFSSAはサンのストレージ製品で
最速の立ち上がり• 出荷6ヶ月でストレージ・コスト47.5億円、
6,500人日のストレージ管理時間節減
• 多彩な業種で採用
• 発売60日で100を超える新パートナが契約
• 初期出荷から約 3 年で• 6000 以上のシステム、100PB 以上の
容量、2 億ドル以上の販売
• 海外事例• ZFS
• Wikimedia, Internet Archive, Joyent,
Oregon州立大学, Elanders, ETH Zurich
フランス国立核物理素粒子物理研究所
• ZFSSA
• Signature Styles, EasySpeedy, DigiTar, i365, OurStage, Last.fm, ...
• Oracle 社内/社外向けシステム
• 国内事例
• 株式会社インターネットイニシアティブ様
• クラウド用NASストレージ
• 株式会社 IT コア様
• クラウドサーバー用ストレージ
• 株式会社ドワンゴ様
• 「ニコニコ動画」用ストレージ
• さくらインターネット株式会社様
• InfiniBand 対応「さくらのクラウド」ストレージ
• 某電機機器メーカー様
• 社内メールストレージ
• 某放送事業者様
• 放送データファイルサーバー
• 某 SNS/ゲーム業者様
• ログ解析システム
• Exalogic Elastic Cloud (内蔵NAS)
• ソフトバンクテレコム株式会社様
• ホワイトクラウド エンタープライズ PaaSpowered by Oracle
• Exadata D2D バックアップ
• 某通信事業者様、SI様、教育サービス業様、証券会社様、半導体メーカー様、自動車部品メーカー様、請求書発行業者様、金融業者様、製薬ソリューション業者様
Copyright© 2011, Oracle. All rights reserved. 22
ZFS: 広範なインフラ向けソリューションの理想的なストレージ基盤
データベースDWH
webインフラストラクチャコンテンツ
マネジメント
デスクトップ統合仮想化
デスクトップ用ファイルサービス /
インフラストラクチャ
NASEメールなどアーカイブ
ハイパフォーマンスコンピューティング
バックアップデータ
プロテクション
事業継続災害対策
クラウドコンピューティング
/ ストレージ
• 多くの機能を低コストで、多くの応用例、多くの事例
Copyright© 2011, Oracle. All rights reserved. 23
OSの一機能からOS全体との融合と
OSの進化
Copyright© 2011, Oracle. All rights reserved. 24
Copyright© 2011, Oracle. All rights reserved. 25
ZFS: 革新的ファイルシステム
ZFS 1 ZFS 2 ZFS 3
機能•スナップショット•リモートコピー•バックアップ•ファイル共有
Storage Pool
管理性•極めて簡素
•プール構造•ボリューム管理の統合•属性値による管理
拡張性•事実上無制限
•プール容量•ファイルシステム容量•ファイル数•ディレクトリ数
•圧縮•重複排除
堅牢性•Copy-on-Write•トランザクション処理•End-to-Endチェックサム•自己修復•暗号化
性能•Hybridストレージプール•Read-modify-writeの排除•入出力のパイプライン処理
全てがOSの機能
new!
new!Solaris 11 の
標準ファイルシステム
Copyright© 2011, Oracle. All rights reserved. 26
ZFS: Solaris 11 標準ファイルシステム (1)
• root/boot ファイルシステムが ZFS に• ブート環境 (BE) という概念が導入される
• Solaris 10 では Live Upgrade の設定が必要だったことが何も設定せずいきなり可能に• OS動作中、裏でOSアップグレード、パッチ適用
• 旧環境へのロールバック
• しかも、
• 旧環境のコピー作成は瞬時
• 容量消費は差分のみ
• パッケージシステム IPS も root/boot が ZFS であることを前提
未使用 未使用未使用
その他データ
その他データ
その他データ
現在のブート環境
数秒後
現在のブート環境
新しいブート環境
新しく更新されたブート環境
現在のブート環境
更新
zpool zpool zpoolSo
lari
s 1
1
Copyright© 2011, Oracle. All rights reserved. 27
ZFS: Solaris 11 標準ファイルシステム (2)
• ゾーン環境は ZFS 前提に• ゾーン複製機能は ZFS によるクローンを使用
• ゾーンへの IPS によるパッケージ配備
• ゾーンにおける BE
Copyright© 2011, Oracle. All rights reserved. 28
Live Upgrade → BE 管理
• Live Upgradeの lu* コマンド群は beadm コマンドに置き換え
• AI (Automated Installer) で以下の機能を提供• ミラー化ルートプール作成
• スワップとダンプのサイズ変更
• (LiveCDとテキストインストーラではこれらは行えない)
• pkg update / image-update コマンド• 新たな BE (ブート環境) を自動作成
• パッチ適用やアップグレードの前に別途 BE (ブート環境) を作成する必要が無くなった
• パッチを個別に適用する必要無し
• ミラーのattach時にブートブロックが自動適用• スペアへの切り替わり時も同様
!
!!
!
Copyright© 2011, Oracle. All rights reserved. 29
BEのアップグレード例
• 既存ZFS BEを pkg updateで更新後に新BE zfsBE-1でブート
# pkg update ...
(...しばらく後、更新完了後)
A clone of zfsBE exists and has been updated and activated.On the next boot the Boot Environment zfsBE-1 will be mountedon ’/’.Reboot when ready to switch to this updated BE.# init 6
(...しばらく後、リブート完了後)
# beadm listBE Active Mountpoint Space Policy Created-- ------ ---------- ----- ------ -------zfsBE - - 9.38M static 2011-10-15 09:18zfsBE-1 NR / 10.76G static 2011-11-05 09:57!
Copyright© 2011, Oracle. All rights reserved. 30
暗号化 ZFS
Copyright© 2011, Oracle. All rights reserved. 31
暗号化ZFS
• データの内容秘匿のため暗号化鍵でコード化• データ暗号化鍵はラップ用鍵で暗号化される
• これまでどおりの ZFS 管理モデルに統合
• 既存プールでも利用可能• プールバージョンを30以上にアップグレードする必要あり
• 鍵管理の権限委譲が可能• 管理者、エンドユーザー
• ゾーン
• 「鍵使用」と「鍵変更」の分掌
• 外部預託の仕組みも作ることができる
!
Copyright© 2011, Oracle. All rights reserved. 32
暗号化ZFS
暗号化をどこに設定するか
• ZFS のデータセット単位で暗号化ポリシーを設定• ほとんどのシステムではプールは1-2個だがデータセットは多数
• 現在 AES-128 / 192 / 256 をサポート
• デフォルトでは aes-128-ccm
• 他の方式もサポート可能なデザイン
• iSCSI、FCoEターゲットは ZVOL を暗号化
• イニシエータ側での鍵管理無し
• NFSv2,v3,v4、CIFS (SMB) でデータセット共有可能
• NAS クライアント側では鍵管理無し
!
Copyright© 2011, Oracle. All rights reserved. 33
暗号化ZFS
ディスク上で何が暗号化されるか
• 暗号化される• 全アプリケーションデータ
• POSIX 層のデータ
• パーミッション、ACL、所有者
• ディレクトリ構造
• 全 ZVOL データ
• (スナップショットでも同様)
• (クローンでも同様)
• 暗号化されない• プールのメタデータ
• プールの履歴
• RAID構成情報
• データセット属性値
• データセット名
• データセットのユーザー属性値
データデータデータ情報情報情報情報データデータデータ情報情報情報情報データデータデータ情報情報情報情報
Copyright© 2011, Oracle. All rights reserved. 34
暗号化ZFS
暗号化をいつ設定するか
• 暗号化属性値はデータセット作成時に指定• copy-on-writeで古いクリアテキストが残るのを避けるため
• チェックサムは SHA256 になる
• 既存データセットの暗号化ポリシーは変更できない• 暗号化アルゴリズムやチェックサムを後から無効化や変更不能
# zfs set encryption=off tank/home/darren-newcannot set property for ’tank/home/darren-new’: ’encryption’ is readonly
# zfs create -o encryption=on tank/home/darrenEnter passphrase for ’tank/home/darren’: xxxxxxxx (←8文字以上)Enter again: xxxxxxxx
!
!
Copyright© 2011, Oracle. All rights reserved. 35
暗号化ZFS
ラップ用鍵• keysource属性値
• ユーザー・管理者が管理するラップ用鍵の形式や場所を指定
• passphrase: PKCS#5パスワードベース暗号化を使用
• raw / hex: バイト形式または 16 進テキスト文字列
• ラップ用鍵は派生データセットに継承される• クローン時に異なるラップ用鍵を指定可能
• 新たな暗号化鍵を使用することも可能
• デフォルトではoriginデータセットの鍵を使用
• ファイルからのラップ用鍵作成例
# zfs clone tank/home/darren@now tank/home/darren-newEnter passphrase for ’tank/home/darren-new’: yyyyyyyy (←非表示)Enter again: yyyyyyyy (←非表示)
!
# pktool genkey keystore=file outkey=/rmdisk/stick/mykey \ keytype=aes keylen=256# zfs create encryption=aes-256-ccm \ -o keysource=raw,file:///rmdisk/stick/mykey tank/home/bob !
Copyright© 2011, Oracle. All rights reserved. 36
暗号化ZFS
暗号化ZFSデータセットの作成例
# zfs create -o encryption=on build/fsEnter passphrase for ‘build/fs’: xxxxxxxx (← 8文字以上、非表示)Enter again: xxxxxxxx (← 非表示)# zfs create build/fs/sub# zfs get -r encryption,keysource,keystatus,checksum build/fsNAME PROPERTY VALUE SOURCEbuild/fs encryption on localbuild/fs keysource passphrase,prompt localbuild/fs keystatus available -build/fs checksum sha256-mac localbuild/fs/sub encryption on inherited from build/fsbuild/fs/sub keysource passphrase,prompt inherited from build/fsbuild/fs/sub keystatus available -build/fs/sub checksum sha256-mac inherited from build/fs
!
Copyright© 2011, Oracle. All rights reserved. 37
重複排除(deduplication)
Copyright© 2011, Oracle. All rights reserved. 38
重複排除 (deduplication)• ブロック単位の重複検知・排除機構
• 同一内容データブロックは全体で1コピーだけを格納
• 格納されているブロックと同一内容のブロックはオンライン(オンザフライ)で除去される(格納されない)
• 共通部分は複数ファイルで共有
• メタデータは重複排除対象外
• 重複判定を実行するための専用ディスク領域等は不要
• チェックサム(SHA256)を使用して重複判定
• 圧縮、暗号化と同時利用可能
• 特に効果の高い適用範囲• 仮想化
• サーバーバックアップ
• 開発環境
• ZFSに統合済み (アドオンではない)• 特別なハードウェア不要
• デザイン上容量制限無し
• 直近では性能向上を重視
!
!!
!
!!
!
Copyright© 2011, Oracle. All rights reserved. 39
重複排除
ブロックレベルでの重複排除機構
A
BD
A1
AA
BB
CC
C
CC
CC
DD
BB
BB
A1A1
BB
CC
File 2
File 1 File 1a
3 ファイルを格納するために使われるブロック
Copyright© 2011, Oracle. All rights reserved. 40
重複排除
構成方法
• dedup属性値をデータセット(スナップショット除く)単位で指定• デフォルトではオフ
• スコープはプール単位• dedup=onの全データセットで共通のブロックを共有
• 重複排除率確認方法 (プール内で dedup 適用データセットのみ計上)
• 有効時はzfs listの容量表示に注意• 参照サイズの合計が表示される
• 重複排除分は考慮されず実際のディスク消費量より多く表示される
# zfs set dedup=on tank/home
# zpool list tankNAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOTtank 136G 55.2G 80.8G 40% 2.30x ONLINE -
!
Copyright© 2011, Oracle. All rights reserved. 41
SPA
ZFS 圧縮、暗号化、チェックサム
ZPLZPL
ZFS
DMUDMU
ARCARC
ZIOZIO
VDEVVDEV VDEVVDEV
... ...
• 圧縮
• 暗号化
• チェックサム(重複判定)
• 圧縮解除
• 複号化
• チェックサム確認
読み込み時 書き込み時
Copyright© 2011, Oracle. All rights reserved. 42
ZFSの性能向上
Copyright© 2011, Oracle. All rights reserved. 43
ZFS の性能向上
• 新しい ZFS システムプロセス
• logbias 属性値
• sync 属性値
• RAID-Z/ミラー ハイブリッドアロケータ
• カーネルモード iSCSI ターゲット (COMSTARによる)
• その他の性能向上 (本日は詳細は割愛させていただきます)
• ブロックアロケータの効率化、高速化
• scrub/resilver時の先読み
• raw scrub/resilver
• ゼロコピー I/O
• スリムZIL
Copyright© 2011, Oracle. All rights reserved. 44
ZFSの性能向上
新しいZFSシステムプロセス
• これまでの問題点• ZFSトランザクション処理はCPU使用量が大きい
• トランザクションが多くなると、圧縮、暗号化、重複排除などと合わせて何秒か必要なことも
• カーネルスレッドが高い優先度で動作
• 結果: webサーバーやNFSなどの遅延が増加
• 解決策 (Solaris 11)• CPU使用量の大きいカーネルスレッド用スケジューリングクラス
• このクラスをプールごとのシステムプロセスとして表す
• 優先度を量子化・可変にしてオンオフを切替、他との調整
• 結果: スループットへの影響極小で遅延を大幅削減
• 各プールのCPU使用率を見える化!
Copyright© 2011, Oracle. All rights reserved. 45
ZFSの性能向上
logbias属性値
• これまでの問題点• slogデバイスは限りある資源
• 遅延の許されないI/Oが多量の同期書込に埋もれてしまう
• 全ての同期書込が低レイテンシである必要は無い
• レイテンシが重要で無い場合はディスクに書く方が低コスト
• ディスク本数が多ければ帯域もslogデバイスよりはるかに大
• 解決策 (Solaris 11)• データセットごとにlogbias属性値を設定可能に
• latency または throughput
• 例: Oracle DBのredoログ: zfs set logbias=latency例: Oracle DBのデータファイル: zfs set logbias=throughput
• 30%以上の性能向上
!
Copyright© 2011, Oracle. All rights reserved. 46
ZFSの性能向上
sync属性値• 同期書込の挙動をデータセットごとに制御
• standard: 通常のPOSIXルールに従う (デフォルトかつ推奨)
• fsync(), O_DSYNC write() などの際、stableなストレージにコミットされてからreturn
• always: 全トランザクションが同期に
• 明示的な同期指定は不要
• 通常は性能が低下するが、ハードウェアと負荷要件によっては性能向上することもある
• disabled: 全てが非同期に
• 高速slogデバイスが無い場面で大幅な性能向上
• ただし、使用はリスクを検討して慎重に• 書込が同期である必要が無い場面
• DBやNFS操作など、アプリからの同期トランザクション要求は無視される
• 使用中の / や /var への設定は仕様外動作、データロス、リプレイアタックの危険あり
• sync属性値はzil_disabledパラメータを置き換える
!
Copyright© 2011, Oracle. All rights reserved. 47
ZFSの性能向上
RAID-Z/ミラー ハイブリッドアロケータ
• RAID-Zグループがミラーとしても使用される• RAID-Z として使用: ユーザーデータと多くのメタデータ
• 容量と書込スループットが最大化
• ミラーとして使用: 低レイテンシが要求されるメタデータ• 読込IOPS最大化、読込レイテンシ最小化
• 小さなランダムアクセスされるメタデータに有益
• データノード / 間接ブロック、ディレクトリ、重複排除テーブル
• ミラープールのような耐障害性は提供せず、性能向上のみ
• ミラー化メタデータ分の容量を消費する
• 現実世界の負荷で2-4倍の高速化を達成したものもある• 重複ブロックのある大きなファイルをコピー
• ファイルの多いディレクトリでの rm -rf
• 既存プールはバージョンを29以降にアップグレードすれば以降の書込に適用される
!
!
Copyright© 2011, Oracle. All rights reserved. 48
ZFSの性能向上
カーネルモード iSCSIターゲット
• Solaris 10のiSCSI targetはユーザーランド実装 (shareiscsi で設定)
• Solaris 11 のCOMSTAR port providerはカーネル内実装• ZFSSA も同様 (COMSTAR 前と比べて 2.7倍の性能向上)
• WCE (Write Cache Enabled) 設定
• HDDやHW-RAIDのWCEとより良く協調可能
• 設定手順 (shareiscsiでは設定できない)
• stmfadm create-lu: backing store を logical unit provider に登録
• itadm create-target: COMSTAR iSCSI port provider に紐付け
• iSCS MC/S (Multiple Connection per Session) も Solaris 11で対応
!
!
Copyright© 2011, Oracle. All rights reserved. 49
Oracle Solaris 11 Express 2010.11 からの
主な強化点
Copyright© 2011, Oracle. All rights reserved. 50
主な強化点
• zpool バージョン: 31 から 33 へ• 32 One MB blocksize
• 33 Improved share support
• aclmode プロパティの改善
• 値: discard, mask, passthrough をとるように
• 物理的な場所でのプールデバイスの指定
• zpool status -l にてディスクの物理的な場所を表示• /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__2/disk
• fmadm add-alias による別名定義も可能
• ZFS シャドウマイグレーション
• ファイル共有の改善 (share プロパティ)
Copyright© 2011, Oracle. All rights reserved. 51
ZFS シャドウマイグレーション
• もとは ZFSSA の機能として先行実装• 2年ほど前から
• 既存ファイルシステムを読込専用でマウント• 新規ファイルシステムは既存ファイルシステム同様にファイル提供
• 既存ファイルシステムのファイルやディレクトリが即座にアクセス可
• ファイルシステムの完全移行(コピー完了)を待つ必要が無い
• 名前変更、ファイル更新なども可能
• 新規ファイルシステムはネットワーク共有も可能
• ユーザーアクセスに対応する裏で移行作業用スレッドが動作
• 手順: 移行先ファイルシステムにshadowプロパティを設定• shadow=file:///<path> : ローカルファイルシステムの内容を移行するとき
• shadow=nfs:///<host>:<path> : NFS の内容を移行するとき
!
!
Copyright© 2011, Oracle. All rights reserved. 52
ファイル共有の改善 (share プロパティ)
• 2 段階での共有設定に• share プロパティで「共有」を定義
• 「共有」は ZFSSA で先行実装されていた枠組み
• sharenfs/sharesmb プロパティで共有する/しないをオンオフ
• 「共有」• 共有に対してオプションなどを指定
• ファイルシステムごとに複数の共有を定義でき、一意に特定する共有名が使用される
• 1 つの共有は、NFS 共有とSMB 共有の両方にオプションを定義可能
• 単一のディレクトリパスに対し複数のSMB パスを定義可能
• 設定例• # zfs set share=name=pp,path=/pub,prot=nfs,sec=sys,rw=*,public rpool/public
• # zfs set sharenfs=on rpool/public (←ここで初めて公開される)
Copyright© 2011, Oracle. All rights reserved. 53
その他の強化点(本日は詳細は割愛させていただきます)
Copyright© 2011, Oracle. All rights reserved. 54
ZFS その他の強化点 (1)
• ユーザー/グループ単位の容量制限 (user/group quota)
• トリプルパリティ RAID-Z• ディスク3本の障害に耐性 (業界初)
• ZFS スナップショット差分 (zfs diff)• スナップショットの差分を確認可能に
• zpool split• ミラー化プールを2個の同一プールに分割
• 用途• ディザスタリカバリ
• サイトの複製
• 物理的アーカイブを簡単に取得可能
Copyright© 2011, Oracle. All rights reserved. 55
ZFS その他の強化点 (2)
• zfs send/recv による NDMP バックアップ• send/recv の速度で既存 NDMP 環境に容易に統合可能
• 動的 LUN 拡張 (autoexpand属性値)
• プールの修復に関する強化点• 書き込み順序を無視するディスクへの対応
• ログが無い場合の修復
• 読込専用モードでのプールインポート
• zpool コマンドの機能拡張
• zfs send/recv の拡張• send側とrecv側で異なる属性値をsend/recv時に設定可能に
Copyright© 2011, Oracle. All rights reserved. 56
まとめと参考情報
Copyright© 2011, Oracle. All rights reserved. 57
まとめ
• 変わらないもの• ZFS: 革新的ファイルシステム
• ファイルシステムとして重要なポイントを網羅• 拡張性、堅牢性、機能、性能、管理性
• ZFS: 広範なインフラ向けソリューションでの理想的なストレージ基盤• 多くの機能を低コストで
• 多くの応用例、多くの事例
• クラウド時代に最適な拡張性とストレージ仮想化
• Solaris の強化・進化を支え、Solaris とともに強化・進化• Solaris 11 の標準ファイルシステム
• ZFS のフル活用で Solaris も強力に
• 時代の要請に応えつつ次世代エンタープライズを見据える
!
!
Copyright© 2011, Oracle. All rights reserved. 58
参考情報
Solaris 11 の ZFS 参考情報
• Oracle Solaris の管理: ZFS ファイルシステム• 日本語
• http://docs.oracle.com/cd/E26924_01/html/E25824/index.html
• http://docs.oracle.com/cd/E26924_01/pdf/E25824.pdf
• 英語
• http://download.oracle.com/docs/cd/E23824_01/html/821-1448/index.html
• http://download.oracle.com/docs/cd/E23824_01/pdf/821-1448.pdf
• ZFS Best Practice / Troubleshooting Guide• http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
• ZFS Dedup FAQ:• http://hub.opensolaris.org/bin/view/Community+Group+zfs/dedup
• ZFS Encryption FAQ:• http://hub.opensolaris.org/bin/view/Community+Group+zfs/encrypt
Copyright© 2011, Oracle. All rights reserved. 59
参考情報
ZFS 参考情報
• 参考情報リンク集
• 解説記事、アーキテクチャ、ソースツアー、デモ、マニュアル、構築時の参考情報、blog、事例、書籍
• Oracle University コース• Oracle トレーニングオンデマンド「Oracle Solaris 11 新機能」 リリース!
• http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=600
• Solaris 10 ZFS管理 (SA-2290-S10)
• ZFSの機能、プールとファイルシステム管理、操作、障害対応
• OTN (Oracle Technology Network)• http://www.oracle.com/technetwork/jp/index.html (Japan)
• http://www.oracle.com/technetwork/index.html (Global)
• 過去の ZFS ダイセミ資料もOTNオンデマンドで公開
hiroa blog zfs 検索 からリンクしました!
!
Copyright© 2011, Oracle. All rights reserved. 60
Copyright© 2011, Oracle. All rights reserved. 61 61