Mais conteúdo relacionado
Semelhante a Solaris 11 に見る、次世代ファイルシステムZFS (20)
Solaris 11 に見る、次世代ファイルシステムZFS
- 1. <Insert Picture Here>
ZFS とオペレーティングシステムの融合
Solaris 11 に見る、次世代ファイルシステム - ZFS -
日本オラクル株式会社
システム事業統括 ソリューション統括本部 コミュニケーションソリューション本部
シニアセールスコンサルタント
野崎 宏明
- 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. 3
- 4. 内容
• ZFS 概要
• Oracle Solaris 11 11/11における ZFS 強化点
• OSの一機能からOS全体との融合とOSの進化
• 暗号化
• 重複排除
• 性能向上
• Solaris 11 Express 2010.11 からの主な強化点
• その他の強化点
Copyright© 2011, Oracle. All rights reserved. 4
- 6. ファイルシステム
• どのセクタにどうデータを書くか
• 開発者の腕(?)の見せどころ
• どのセクタにどうデータを書くか: 固定型、拡張型
• 容量をうまく使えるか: 容量変更方法と制限
• 安全か: 冗長性、書き込み方法、誤り検出
• 便利か: 属性情報、スナップショット、バックアップ、リモートコピー、..
• 高速か: データの配置、メモリの有効利用
• 管理しやすいか
Copyright© 2011, Oracle. All rights reserved. 6
- 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. 8
- 9. 拡張性!
ストレージプール
• 従来のファイルシステム
• ファイルシステム管理がボリュームや
物理ディスクに依存
• 容量拡張ひとつとっても容易ではない
• ZFS
• プールに物理ストレージを登録・格納
• 必要なときにその容量が使用される
• 容量拡張はプールに物理ディスクを追加するだけ
Copyright© 2011, Oracle. All rights reserved. 9
- 10. 拡張性!
ファイルシステムの切り出し: 自動容量割当
/ (root)
ファイルシステム3
usr opt export
home
ファイルシステム1 ファイルシステム4
ファイル
どのデバイスの システム2
どこが使われるかは
ZFSが自動で決定
ストレージデバイスを
ファイルシステムで
抽象化・仮想化
StoragePool
Copyright© 2011, Oracle. All rights reserved. 10
- 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. 11
- 12. 堅牢性!
トランザクションベースの書込時コピー(Copy-On-Write)
Uber-block
元データ
新データ
アプリ
ケーションから アプリ
見える状態 ケーションから
はじめの状態 コピーを作成して変更を記録(CoW) 見えない状態
元ポインタ New Uber-block
新ポインタ
アプリ
ケーションから アプリ
見えない状態 ケーションから
ポインタ(間接ブロック)をCoW Uber-blockを更新 見える状態
Copyright© 2011, Oracle. All rights reserved. 12
- 13. 機能!
全ての機能がOSに付属
• スナップショット
• クローン
• バックアップ・リストア original
snapshot uber-block
snapshot
uber-block original
• リモートコピー
• NFS
• iSCSI Current
• CIFS (Solaris 10はSamba経由) Data
• 圧縮
• 重複排除 (Solaris 10 は非対応)
• 暗号化 (Solaris 11 Express 2010.11 以降)
Copyright© 2011, Oracle. All rights reserved. 13
- 14. 管理性!
ファイルシステム作成手順
/ (root)
1.プールにストレージを登録
usr opt tank
zpool create tank <block_device> ...
2.プールから home
作成時に
ファイルシステム切出 自動でマウント
zfs create tank/home
3. (省略可) 属性値設定 home
zfs set <attr>=<value> tank/home
暗号化、重複排除、圧縮、容量制限、など
• 3ステップで構成可能 ZFS
• /etc/vfstab書き換え不要
• /etc/dfs/dfstab書き換え不要 Storage Pool: tank
Copyright© 2011, Oracle. All rights reserved. 14
- 16. 性能!
Hybridストレージプールの性能効果例
Flash無し vs. Flash有り
構成 A: Flash 無しのストレージプール (DRAM + 7x 10K RPM SAS)
構成 B: Flash 有りのストレージプール
(DRAM + Read SSD + Log SSD + 5x 4200 RPM SATA)
x3.2 x2
+11%
x1/2 x1/4.9
読込IOPs 書込IOPs Raw 容量 TBあたり 消費電力
(TB) コスト (ワット)
• Flash 利用でコスト面も優位 !
• 大規模構成時のコストメリットが特に期待できる
Copyright© 2011, Oracle. All rights reserved. 16
- 17. ZFS の活用
ヘテロ環境での大規模統合共有ストレージ
・メールデータの保存
・オフィスファイルの保存
・画像データの保存 ・大規模ファイルシステムを簡単に構築可能
・GB単価が安いディスクを使用可能
・データマイニング等の計算データ保存
・SSDをファイルシステムの二次キャッシュと
Solaris Linux Windows して使用できファイルシステムの入出力が
HDDのみで構築した場合に比べ高速になる
オンラインでの
NFS/iSCSI/CIFS/FC ディスクドライブ追加
リモートレプリケー
ローカルサーバー ション機能で大規模
ファイルシステムの
データのバックアップ
も簡単に実現
Pool
オンライン メイン SnapShot
コピー
拡張
リモートサーバー
HDDの追加
128ビット
ファイルシステム
Copyright© 2011, Oracle. All rights reserved. 17
- 18. ZFS + 仮想化
ZFS: 仮想化の強力なストレージインフラ
• 仮想マシン/仮想OS (またはそのイメージ) の
• (大量一括)高速作成、配備 • リモートコピー
• シンプロビジョニング • ブロック単位差分バックアップ
• スナップショット・ロールバック • 包括的管理・監視ツール
• 自動圧縮 • 強力なデータ保護
• 重複排除 • 他ホストへの移動
• ストレージのRAID化 • HA
• オンラインストレージ容量拡張 • 動的リソース配分
• Flashの自動最適使用
開発用途に用いて
• 共有ディスクプロビジョニング 時間、リソース、費用の節約も!
• Oracle Solaris コンテナ、Oracle VM Server for SPARC,
Oracle VM Server for x86, Oracle VM VirtualBox, VMware, Xen
Copyright© 2011, Oracle. All rights reserved. 18
- 19. ZFS + 仮想化
サーバー仮想化環境での共有ストレージ
・OSイメージサーバー用共有ストレージとして活用
HA / 簡易HA / マイグレーション
VM1 VM3 VM5 Virus Scanning Active Directory
Server Server
VM2 VM4 VM6 VM7 VM5
NFS
共有ストレージ
iSCSI
Backup
Server
Copyright© 2011, Oracle. All rights reserved. 19
- 20. Sun ZFS ストレージアプライアンス(ZFSSA)
• Unified Storage / Sun ZFS Storage 7000
• Solaris ベースの NAS ヘッド
• オープンアーキテクチャ 7120
7320
• データ形式、プロトコル 〜120TB
〜192TB 7420
(NFS, FTP, WebDAV, iSCSI, CIFS, FC,
InfiniBand (iSER, SRP, IPoIB, NFS/RDMA), NDMP, ..) 〜1152TB
• オープンソースソフトウェア採用
• コストパフォーマンス ZFSSA
Gen3
• ZFS と Flash (SSD) SFP-1
ベンチマーク
• Hybridストレージプール 137,000
• DTrace Analytics IOPS 達成
• リアルタイム
• システム性能確認
• 容量プランニング
• 課題特定 DTrace Analytics
Copyright© 2011, Oracle. All rights reserved. 20
- 21. ZFS事例 • 国内事例
• 株式会社インターネットイニシアティブ様
• クラウド用NASストレージ
• ZFSSAはサンのストレージ製品で
• 株式会社 IT コア様
最速の立ち上がり
• クラウドサーバー用ストレージ
• 出荷6ヶ月でストレージ・コスト47.5億円、 • 株式会社ドワンゴ様
6,500人日のストレージ管理時間節減 • 「ニコニコ動画」用ストレージ
• 多彩な業種で採用 • さくらインターネット株式会社様
• 発売60日で100を超える新パートナが契約 • InfiniBand 対応「さくらのクラウド」ストレージ
• 初期出荷から約 3 年で • 某電機機器メーカー様
• 6000 以上のシステム、100PB 以上の • 社内メールストレージ
容量、2 億ドル以上の販売 • 某放送事業者様
• 放送データファイルサーバー
• 海外事例
• 某 SNS/ゲーム業者様
• ZFS
• ログ解析システム
• Wikimedia, Internet Archive, Joyent, • Exalogic Elastic Cloud (内蔵NAS)
Oregon州立大学, Elanders, ETH Zurich • ソフトバンクテレコム株式会社様
フランス国立核物理素粒子物理研究所 • ホワイトクラウド エンタープライズ PaaS
• ZFSSA powered by Oracle
• Signature Styles, EasySpeedy, DigiTar, Exadata D2D バックアップ
•
i365, OurStage, Last.fm, ... • 某通信事業者様、SI様、教育サービス業様、証券会社様、半
導体メーカー様、自動車部品メーカー様、請求書発行
• Oracle 社内/社外向けシステム 業者様、金融業者様、製薬ソリューション業者様
Copyright© 2011, Oracle. All rights reserved. 21
- 25. ZFS: 革新的ファイルシステム
管理性 機能
拡張性 •スナップショット
•事実上無制限 •極めて簡素 •リモートコピー
•プール構造
•プール容量 •ボリューム管理の統合 •バックアップ
•ファイル •属性値による管理 •ファイル共有
システム容量
•ファイル数
•ディレクトリ数
•圧縮 ZFS 1 ZFS 2 ZFS 3 性能
•重複排除 new! •Hybridストレージ
プール
•Read-modify-
堅牢性 writeの排除
•Copy-on-Write •入出力のパイプ
•トランザクショ ライン処理
ン処理
•End-to-End 全てがOSの機能
チェックサム
•自己修復
•暗号化 Storage Pool Solaris 11 の
new! 標準ファイルシステム
Copyright© 2011, Oracle. All rights reserved. 25
- 26. ZFS: Solaris 11 標準ファイルシステム (1)
• root/boot ファイルシステムが ZFS に
• ブート環境 (BE) という概念が導入される
• Solaris 10 では Live Upgrade の設定が必要だったことが
何も設定せずいきなり可能に
• OS動作中、裏でOSアップグレード、パッチ適用
• 旧環境へのロールバック
• しかも、
• 旧環境のコピー作成は瞬時
• 容量消費は差分のみ
• パッケージシステム IPS も root/boot が ZFS であることを前提
数 秒後
Solaris 11
その他 その他 その他
データ データ データ
現在の 現在の 現在のブート環境
ブート環境 ブート環境
更新 新しく更新された
未使用 未使用 新しい ブート環境
ブート環境 未使用
zpool zpool zpool
Copyright© 2011, Oracle. All rights reserved. 26
- 27. ZFS: Solaris 11 標準ファイルシステム (2)
• ゾーン環境は ZFS 前提に
• ゾーン複製機能は ZFS によるクローンを使用
• ゾーンへの IPS によるパッケージ配備
• ゾーンにおける BE
Copyright© 2011, Oracle. All rights reserved. 27
- 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. 28
- 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 mounted
on ’/’.
Reboot when ready to switch to this updated BE.
# init 6
(...しばらく後、リブート完了後)
# beadm list
BE Active Mountpoint Space Policy Created
-- ------ ---------- ----- ------ -------
zfsBE - - 9.38M static 2011-10-15 09:18
! zfsBE-1 NR / 10.76G static 2011-11-05 09:57
Copyright© 2011, Oracle. All rights reserved. 29
- 31. 暗号化ZFS
• データの内容秘匿のため暗号化鍵でコード化
• データ暗号化鍵はラップ用鍵で暗号化される
!
• これまでどおりの ZFS 管理モデルに統合
• 既存プールでも利用可能
• プールバージョンを30以上にアップグレードする必要あり
• 鍵管理の権限委譲が可能
• 管理者、エンドユーザー
• ゾーン
• 「鍵使用」と「鍵変更」の分掌
• 外部預託の仕組みも作ることができる
Copyright© 2011, Oracle. All rights reserved. 31
- 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. 32
- 33. 暗号化ZFS
ディスク上で何が暗号化されるか
• 暗号化される • 暗号化されない
• 全アプリケーションデータ • プールのメタデータ
• POSIX 層のデータ • プールの履歴
• パーミッション、ACL、所有者 • RAID構成情報
• ディレクトリ構造 • データセット属性値
• 全 ZVOL データ • データセット名
• (スナップショットでも同様) • データセットのユーザー属性値
• (クローンでも同様)
データデータデータ
情報情報情報情報
データデータデータ
情報情報情報情報
データデータデータ
情報情報情報情報
Copyright© 2011, Oracle. All rights reserved. 33
- 34. 暗号化ZFS
暗号化をいつ設定するか
!
• 暗号化属性値はデータセット作成時に指定
• copy-on-writeで古いクリアテキストが残るのを避けるため
# zfs create -o encryption=on tank/home/darren
Enter passphrase for ’tank/home/darren’: xxxxxxxx (←8文字以上)
Enter again: xxxxxxxx
• チェックサムは SHA256 になる
!
• 既存データセットの暗号化ポリシーは変更できない
• 暗号化アルゴリズムやチェックサムを後から無効化や変更不能
# zfs set encryption=off tank/home/darren-new
cannot set property for ’tank/home/darren-new’: ’encryption’
is readonly
Copyright© 2011, Oracle. All rights reserved. 34
- 35. 暗号化ZFS
ラップ用鍵
• keysource属性値
• ユーザー・管理者が管理するラップ用鍵の形式や場所を指定
• passphrase: PKCS#5パスワードベース暗号化を使用
• raw / hex: バイト形式または 16 進テキスト文字列
!
• ラップ用鍵は派生データセットに継承される
• クローン時に異なるラップ用鍵を指定可能
• 新たな暗号化鍵を使用することも可能
• デフォルトではoriginデータセットの鍵を使用
# zfs clone tank/home/darren@now tank/home/darren-new
Enter 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. 35
- 36. 暗号化ZFS
暗号化ZFSデータセットの作成例
!
# zfs create -o encryption=on build/fs
Enter passphrase for ‘build/fs’: xxxxxxxx (← 8文字以上、非表示)
Enter again: xxxxxxxx (← 非表示)
# zfs create build/fs/sub
# zfs get -r encryption,keysource,keystatus,checksum build/fs
NAME PROPERTY VALUE SOURCE
build/fs encryption on local
build/fs keysource passphrase,prompt local
build/fs keystatus available -
build/fs checksum sha256-mac local
build/fs/sub encryption on inherited from build/fs
build/fs/sub keysource passphrase,prompt inherited from build/fs
build/fs/sub keystatus available -
build/fs/sub checksum sha256-mac inherited from build/fs
Copyright© 2011, Oracle. All rights reserved. 36
- 38. 重複排除 (deduplication)
• ブロック単位の重複検知・排除機構
! • 同一内容データブロックは全体で1コピーだけを格納
• 格納されているブロックと同一内容のブロックはオンライン(オンザフライ)で
除去される(格納されない)
• 共通部分は複数ファイルで共有
• メタデータは重複排除対象外
• 重複判定を実行するための専用ディスク領域等は不要
• チェックサム(SHA256)を使用して重複判定
! • 圧縮、暗号化と同時利用可能
!
• 特に効果の高い適用範囲
• 仮想化 !
• サーバーバックアップ !
• 開発環境 ! !
• ZFSに統合済み (アドオンではない)
• 特別なハードウェア不要
• デザイン上容量制限無し
• 直近では性能向上を重視
Copyright© 2011, Oracle. All rights reserved. 38
- 39. 重複排除
ブロックレベルでの重複排除機構
File 2
AA A1
A1
B B CC
B B
C C CC
C C
DD
File 1 File 1a
BB
BB
A C A1
B
D
3 ファイルを格納するために使われるブロック
Copyright© 2011, Oracle. All rights reserved. 39
- 40. 重複排除
構成方法
!
• dedup属性値をデータセット(スナップショット除く)単位で指定
• デフォルトではオフ
# zfs set dedup=on tank/home
• スコープはプール単位
• dedup=onの全データセットで共通のブロックを共有
• 重複排除率確認方法 (プール内で dedup 適用データセットのみ計上)
# zpool list tank
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
tank 136G 55.2G 80.8G 40% 2.30x ONLINE -
• 有効時はzfs listの容量表示に注意
• 参照サイズの合計が表示される
• 重複排除分は考慮されず実際のディスク消費量より多く表示される
Copyright© 2011, Oracle. All rights reserved. 40
- 41. ZFS 圧縮、暗号化、チェックサム
ZFS
読み込み時 書き込み時
ZPL
ZPL
DMU
DMU
SPA ARC
ARC • 圧縮
• 圧縮解除 • 暗号化
• 複号化 ZIO
ZIO • チェックサム
• チェックサム確認 (重複判定)
VDEV
VDEV VDEV
VDEV
... ...
Copyright© 2011, Oracle. All rights reserved. 41
- 43. ZFS の性能向上
• 新しい ZFS システムプロセス
• logbias 属性値
• sync 属性値
• RAID-Z/ミラー ハイブリッドアロケータ
• カーネルモード iSCSI ターゲット (COMSTARによる)
• その他の性能向上 (本日は詳細は割愛させていただきます)
• ブロックアロケータの効率化、高速化
• scrub/resilver時の先読み
• raw scrub/resilver
• ゼロコピー I/O
• スリムZIL
Copyright© 2011, Oracle. All rights reserved. 43
- 44. ZFSの性能向上
新しいZFSシステムプロセス
• これまでの問題点
• ZFSトランザクション処理はCPU使用量が大きい
• トランザクションが多くなると、圧縮、暗号化、重複排除などと
合わせて何秒か必要なことも
• カーネルスレッドが高い優先度で動作
• 結果: webサーバーやNFSなどの遅延が増加
• 解決策 (Solaris 11)
• CPU使用量の大きいカーネルスレッド用スケジューリングクラス
• このクラスをプールごとのシステムプロセスとして表す
• 優先度を量子化・可変にしてオンオフを切替、他との調整
• 結果: スループットへの影響極小で遅延を大幅削減 !
• 各プールのCPU使用率を見える化
Copyright© 2011, Oracle. All rights reserved. 44
- 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. 45
- 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. 46
- 47. ZFSの性能向上
RAID-Z/ミラー ハイブリッドアロケータ
• RAID-Zグループがミラーとしても使用される
• RAID-Z として使用: ユーザーデータと多くのメタデータ
• 容量と書込スループットが最大化
• ミラーとして使用: 低レイテンシが要求されるメタデータ
• 読込IOPS最大化、読込レイテンシ最小化 !
• 小さなランダムアクセスされるメタデータに有益
• データノード / 間接ブロック、ディレクトリ、重複排除テーブル
• ミラープールのような耐障害性は提供せず、性能向上のみ
• ミラー化メタデータ分の容量を消費する !
• 現実世界の負荷で2-4倍の高速化を達成したものもある
• 重複ブロックのある大きなファイルをコピー
• ファイルの多いディレクトリでの rm -rf
• 既存プールはバージョンを29以降にアップグレードすれば
以降の書込に適用される
Copyright© 2011, Oracle. All rights reserved. 47
- 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. 48
- 49. Oracle Solaris 11 Express 2010.11 からの
主な強化点
Copyright© 2011, Oracle. All rights reserved. 49
- 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. 50
- 51. ZFS シャドウマイグレーション
• もとは ZFSSA の機能として先行実装
• 2年ほど前から
• 既存ファイルシステムを読込専用でマウント
• 新規ファイルシステムは既存ファイルシステム同様にファイル提供 !
• 既存ファイルシステムのファイルやディレクトリが即座にアクセス可
• ファイルシステムの完全移行(コピー完了)を待つ必要が無い
• 名前変更、ファイル更新なども可能 !
• 新規ファイルシステムはネットワーク共有も可能
• ユーザーアクセスに対応する裏で移行作業用スレッドが動作
• 手順: 移行先ファイルシステムにshadowプロパティを設定
• shadow=file:///<path> : ローカルファイルシステムの内容を移行するとき
• shadow=nfs:///<host>:<path> : NFS の内容を移行するとき
Copyright© 2011, Oracle. All rights reserved. 51
- 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. 52
- 54. ZFS その他の強化点 (1)
• ユーザー/グループ単位の容量制限 (user/group quota)
• トリプルパリティ RAID-Z
• ディスク3本の障害に耐性 (業界初)
• ZFS スナップショット差分 (zfs diff)
• スナップショットの差分を確認可能に
• zpool split
• ミラー化プールを2個の同一プールに分割
• 用途
• ディザスタリカバリ
• サイトの複製
• 物理的アーカイブを簡単に取得可能
Copyright© 2011, Oracle. All rights reserved. 54
- 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. 55
- 57. まとめ
• 変わらないもの
• ZFS: 革新的ファイルシステム
• ファイルシステムとして重要なポイントを網羅
• 拡張性、堅牢性、機能、性能、管理性
• ZFS: 広範なインフラ向けソリューションでの理想的なストレージ基盤
• 多くの機能を低コストで
• 多くの応用例、多くの事例
• クラウド時代に最適な拡張性とストレージ仮想化 !
• Solaris の強化・進化を支え、Solaris とともに強化・進化
• Solaris 11 の標準ファイルシステム
• ZFS のフル活用で Solaris も強力に
• 時代の要請に応えつつ次世代エンタープライズを見据える
!
Copyright© 2011, Oracle. All rights reserved. 57
- 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. 58
- 59. 参考情報
ZFS 参考情報
• 参考情報リンク集
hiroa blog 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オンデマンドで公開
Copyright© 2011, Oracle. All rights reserved. 59