#02-01 ZFS によるストレージ仮想化 (2012-04-20)

67
<Insert Picture Here> ZFS によるストレージ仮想化 旧題: ZFS とオペレーティングシステムの融合 Solaris 11 に見る、次世代ファイルシステム - ZFS - 日本オラクル株式会社 Solaris エバンジェリスト 野崎 宏明

description

Solaris ナイトセミナー #2-01

Transcript of #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Page 1: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

<Insert Picture Here>

ZFS によるストレージ仮想化旧題: ZFS とオペレーティングシステムの融合 Solaris 11 に見る、次世代ファイルシステム - ZFS -

日本オラクル株式会社Solaris エバンジェリスト野崎 宏明

Page 2: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 2

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。

Page 3: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 3

スピーカー自己紹介

• 学生時代• JDK 1.1でPrologの推論機構を実装し検索エンジンの真似ごと

• 1998年4月(日本)サン・マイクロシステムズ入社• ふと気づけば社会人1415年目

• ほぼずっとSE (Sはシステム?セールス?)• 主にSolaris、開発環境、Sun Rayシンクライアント

• 今は主に通信事業者様担当

• Oracle では SC (Sales Consultant) と呼ばれます

• 1年だけサポートエンジニア• Java VMの解析

• Solarisエバンジェリスト(宣教師?!)• 最近は特にZFSの宣伝係としての出番増

Page 4: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 4

内容

• ZFS 概要

• Oracle Solaris 11 における ZFS 強化点• 暗号化

• 重複排除

• 性能向上

• Solaris 11 Express 2010.11 からの主な強化点

• その他の強化点

• OSの一機能からOS全体との融合とOSの進化

Page 5: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 5

ZFS 概要

Page 6: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 6

ファイルシステム・ボリューム管理

• どのセクタにどうデータを書くか

• 開発者の腕(?)の見せどころ• どのセクタにどうデータを書くか: 固定型、拡張型

• 容量をうまく使えるか: 容量変更方法と制限

• 安全か: 冗長性、書き込み方法、誤り検出

• 便利か: 属性情報、スナップショット、バックアップ、リモートコピー、..

• 高速か: データの配置、メモリの有効利用

• 管理しやすいか

Page 7: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 7

ところが従来型ファイルシステムやボリューム管理の問題点

• 拡張性

• 堅牢性

• 機能

• 性能

• 管理性

• ....ZFSでは?

Page 8: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, 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 2011.1.2.1, S10: Solaris 10 8/11 (zpool ver 29 but dedup not supported)

Page 9: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 9

ストレージプール

• 従来のファイルシステム・ボリューム管理• ファイルシステム管理がボリュームや物理ディスクに依存

• 容量拡張ひとつとっても容易ではない

• ストレージ管理 = ディスク/ボリューム/ファイルシステムの容量/性能/属性..管理

• ZFS• システム内共有プールに物理ストレージを登録・格納

• 必要なときにその容量が使用される

• 容量拡張はプールに物理ディスクを追加するだけ

拡張性!

非常に容易な容量管理

Page 10: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 10

ファイルシステムの切り出し: 自動容量割当

ファイルシステム1

ファイルシステム2

ファイルシステム3

拡張性!

StoragePool

/ (root)

usr db export

webファイルシステム4あるファイルシステムに

対してどのデバイスのどこが使われるかはZFSが自動で決定

ストレージデバイスをファイルシステムで抽象化・仮想化

ストレージ管理 =プールを作れば後は属性と名前の管理

Page 11: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 11

トランザクションベースの書込時コピー(Copy-On-Write)

はじめの状態 コピーを作成して変更を記録(CoW)

ポインタ(間接ブロック)をCoW Uber-blockを更新

元データ

新データ

新ポインタ

元ポインタ New Uber-block

Uber-block

堅牢性!

アプリケーションから見える状態

アプリケーションから見える状態

アプリケーションから見えない状態

アプリケーションから見えない状態

Page 12: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 12

データ

従来のチェックサム: ブロック単位堅牢性?

• チェックサム• 誤り検出(訂正)用情報

• ブロックのチェックサムを計算• 当該ブロック内のみでの誤り検出

• =ブロック単位で誤っていない場合は検出できない(silent data corruption)

• 検出可: bit rot

• 検出不可: phantom writes, misdirected read/writes,accidental overwrites, DMA parity errors, driver bugs

checksumデータ

checksum{ブロック

CERN の実験33700ファイル(約8.7TB) 中

22ファイルで発生など

荷物を倉庫に格納依頼 配送過程

倉庫前中身検査

出荷前中身検査

チェックサムで保護される

チェックサムで保護されない

(ブロック単位チェックサムのイメージ)

そもそもこの倉庫で正しいかも未確認

Page 13: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 13

ZFS: End-to-Endチェックサム

• データとチェックサムを分離• ファイルシステムがあらかじめチェックサムを計算

• データとチェックサムが本当に正しい場所に書かれているかも確認できる

• ツリー全体用のチェックサム• silent data corruption への対策

• IOパス全体のチェック

• bit rot

• phantom writes

• misdirected read/writes

• accidental overwrites

• DMA parity errors

• driver bugs

堅牢性! 荷物を配送業者に渡す前にチェックサムを計算

倉庫から帰ってきた荷物のチェックサムを計算し

格納前のチェックサム値と比較

アドレスの値チェックサムで指しているアドレスが

本当にそこでよいのかも確認

Page 14: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 14

全ての機能がOSに付属機能!

Current Data

snapshotuber-block

originaluber-block

• スナップショット

• クローン

• バックアップ・リストア

• リモートコピー

• NFS

• iSCSI

• CIFS (Solaris 10はSamba経由)

• 圧縮• 実は複数コアで並列圧縮

• 重複排除 (Solaris 10 は非対応)

• 暗号化 (Solaris 11 Express 2010.11 以降)

snapshot original

!

Page 15: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 15

ファイルシステム作成手順

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作成時に自動でマウント

管理性!

プール名

ファイルシステム名

Page 16: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 16

性能!

Hybridストレージプール (HSP)

!

性能管理も非常に容易

Page 17: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 17

性能!

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

!

Page 18: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 18

PoolPool

オンライン拡張

ヘテロ環境での大規模統合共有ストレージ

HDDの追加128ビット

ファイルシステム

オンラインでのディスクドライブ追加

・大規模ファイルシステムを簡単に構築可能・GB単価が安いディスクを使用可能・SSDをファイルシステムの二次キャッシュと して使用できファイルシステムの入出力が HDDのみで構築した場合に比べ高速になる

・メールデータの保存・オフィスファイルの保存・画像データの保存・データマイニング等の計算データ保存

メイン SnapShotコピー

リモートサーバーリモートサーバー

ローカルサーバーリモートレプリケーション機能で大規模ファイルシステムのデータのバックアップも簡単に実現

Solaris Linux Windows

NFS/iSCSI/CIFS/FC

ZFS の活用

Page 19: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 19

ZFS: 仮想化の強力なストレージインフラ• 仮想マシン/仮想OS (またはそのイメージ) の• (大量一括)高速作成、配備

• シンプロビジョニング

• スナップショット・ロールバック

• 自動圧縮

• 重複排除

• ストレージのRAID化

• オンラインストレージ容量拡張

• Flashの自動最適使用

• 共有ディスクプロビジョニング

• Oracleによる仮想化ソリューション• Oracle Solaris コンテナ/ゾーン、Oracle VM Server for SPARC,

Oracle VM Server for x86, Oracle VM VirtualBox, Oracle VDI

• VMware, Xen, KVM, ..

• リモートコピー

• ブロック単位差分バックアップ

• 包括的管理・監視ツール

• 強力なデータ保護

• 他ホストへの移動

• HA

• 動的リソース配分

ZFS + 仮想化

開発用途に用いて時間、リソース、費用の節約も!

Page 20: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 20

サーバー仮想化環境での共有ストレージ

Active DirectoryServer

Virus ScanningServer

BackupServer

共有ストレージNFSiSCSI

VM2

VM1

VM4

VM3

VM6 VM7 VM5

VM5

HA / 簡易HA / マイグレーション

・OSイメージサーバー用共有ストレージとして活用

ZFS + 仮想化

Page 21: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 21

7720

7420

73207120

Sun ZFS ストレージアプライアンス(ZFSSA)• Unified Storage / Sun ZFS Storage 7000• Solaris 11 ベースの NAS ヘッド

• オープンアーキテクチャ

• データ形式、プロトコル(NFS, FTP, WebDAV, iSCSI, CIFS, FC,InfiniBand (iSER, SRP, IPoIB, NFS/RDMA), NDMP, ..)

• オープンソースソフトウェア採用

• コストパフォーマンス

• ZFS と Flash (SSD)

• Hybridストレージプール

• DTrace Analytics

• リアルタイム

• システム性能確認

• 容量プランニング

• 課題特定

〜177TB〜432TB

〜1728TB

DTrace Analytics

S7420137,000 IOPS

SPC-110,703 MBPS

SPC-2267,928 nfs ops/s

(ORT 1.31ms)SPECsfs2008

S7320134,140 nfs ops/s

(ORT 1.51ms)SPECsfs2008

Page 22: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 22

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 対応「さくらのクラウド」ストレージ

• グリー株式会社様

• ログ解析システム

• 某電機機器メーカー様

• 社内メールストレージ

• 某放送事業者様

• 放送データファイルサーバー

• Exalogic Elastic Cloud (内蔵NAS)

• ソフトバンクテレコム株式会社様

• ホワイトクラウド エンタープライズ PaaSpowered by Oracle

• Exadata D2D バックアップ

• 某通信事業者様、SI様、教育サービス業様、証券会社様、半導体メーカー様、自動車部品メーカー様、請求書発行業者様、金融業者様、製薬ソリューション業者様

Page 23: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 23

ZFS: 革新的ファイルシステム -ですが既に10年以上の蓄積

ZFS 1 ZFS 2 ZFS 3

機能•スナップショット•リモートコピー•バックアップ•ファイル共有

Storage Pool

管理性•極めて簡素

•プール構造•ボリューム管理の統合•属性値による管理

拡張性•事実上無制限

•プール容量•ファイルシステム容量•ファイル数•ディレクトリ数

•圧縮•重複排除

堅牢性•Copy-on-Write•トランザクション処理•End-to-Endチェックサム•自己修復•暗号化

性能•Hybridストレージプール•Read-modify-writeの排除•入出力のパイプライン処理

全てがOSの機能

new!

new!

Page 24: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 24

ZFS: 広範なインフラ向けソリューションの理想的なストレージ基盤

データベースDWH

webインフラストラクチャコンテンツ

マネジメント

デスクトップ統合仮想化

デスクトップ用ファイルサービス /

インフラストラクチャ

NASEメールなどアーカイブ

ハイパフォーマンスコンピューティング

バックアップデータ

プロテクション

事業継続災害対策

クラウドコンピューティング

/ ストレージ

• 多くの機能を低コストで、多くの応用例、多くの事例

Page 25: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 25

Solaris 11におけるZFS強化点

Page 26: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 26

暗号化 ZFS

Page 27: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 27

暗号化ZFS

• データの内容秘匿のため暗号化鍵でコード化• データ暗号化鍵はラップ用鍵で暗号化される

• これまでどおりの ZFS 管理モデルに統合

• 既存プールでも利用可能• プールバージョンを30以上にアップグレードする必要あり

• 鍵管理の権限委譲が可能• 管理者、エンドユーザー

• ゾーン

• 「鍵使用」と「鍵変更」の分掌

• 外部預託の仕組みも作ることができる

!

Page 28: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 28

暗号化ZFS

暗号化をどこに設定するか

• ZFS のデータセット単位で暗号化ポリシーを設定• ほとんどのシステムではプールは1-2個だがデータセットは多数

• 現在 AES-128 / 192 / 256 をサポート

• デフォルトでは aes-128-ccm

• 他の方式もサポート可能なデザイン

• iSCSI、FCoEターゲットは ZVOL を暗号化

• イニシエータ側での鍵管理無し

• NFSv2,v3,v4、CIFS (SMB) でデータセット共有可能

• NAS クライアント側では鍵管理無し

!

Page 29: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 29

暗号化ZFS

ディスク上で何が暗号化されるか

• 暗号化される• 全アプリケーションデータ

• POSIX 層のデータ

• パーミッション、ACL、所有者

• ディレクトリ構造

• 全 ZVOL データ

• (スナップショットでも同様)

• (クローンでも同様)

• 暗号化されない• プールのメタデータ

• プールの履歴

• RAID構成情報

• データセット属性値

• データセット名

• データセットのユーザー属性値

データデータデータ情報情報情報情報データデータデータ情報情報情報情報データデータデータ情報情報情報情報

Page 30: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 30

暗号化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

!

!

Page 31: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 31

暗号化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 !

Page 32: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 32

暗号化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

!

Page 33: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 33

重複排除(deduplication)

Page 34: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 34

重複排除 (deduplication)• ブロック単位の重複検知・排除機構• 同一内容データブロックは全体で1コピーだけを格納

• 格納されているブロックと同一内容のブロックはオンライン(オンザフライ)で除去される(格納されない)

• 共通部分は複数ファイルで共有

• メタデータは重複排除対象外

• 重複判定を実行するための専用ディスク領域等は不要

• チェックサム(SHA256)を使用して重複判定

• 圧縮、暗号化と同時利用可能

• 特に効果の高い適用範囲• 仮想化

• サーバーバックアップ

• 開発環境

• ZFSに統合済み (アドオンではない)• 特別なハードウェア不要

• デザイン上容量制限無し

• 直近では性能向上を重視

!

!!

!

!!

!

Page 35: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 35

重複排除

ブロックレベルでの重複排除機構

A

BD

A1

AA

BB

CC

C

CC

CC

DD

BB

BB

A1A1

BB

CC

File 2

File 1 File 1a

3 ファイルを格納するために使われるブロック

Page 36: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 36

重複排除

構成方法

• 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 -

!

Page 37: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 37

SPA

ZFS 圧縮、暗号化、チェックサム

ZPLZPL

ZFS

DMUDMU

ARCARC

ZIOZIO

VDEVVDEV VDEVVDEV

... ...

• 圧縮

• 暗号化

• チェックサム(重複判定)

• 圧縮解除

• 複号化

• チェックサム確認

読み込み時 書き込み時

Page 38: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 38

ZFSの性能向上

Page 39: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 39

ZFS の性能向上

• 新しい ZFS システムプロセス

• logbias 属性値

• sync 属性値

• RAID-Z/ミラー ハイブリッドアロケータ

• カーネルモード iSCSI ターゲット (COMSTARによる)

• その他の性能向上 (本日は詳細は割愛させていただきます)

• SPARC T4プロセッサによる暗号化やチェックサム計算の高速化

• ブロックアロケータの効率化、高速化

• scrub/resilver時の先読み

• raw scrub/resilver

• ゼロコピー I/O

• スリムZIL

Page 40: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 40

ZFSの性能向上

新しいZFSシステムプロセス

• これまでの問題点• ZFSトランザクション処理はCPU使用量が大きい

• トランザクションが多くなると、圧縮、暗号化、重複排除などと合わせて何秒か必要なことも

• カーネルスレッドが高い優先度で動作

• 結果: webサーバーやNFSなどの遅延が増加

• 解決策 (Solaris 11)• CPU使用量の大きいカーネルスレッド用スケジューリングクラス

• このクラスをプールごとのシステムプロセスとして表す

• 優先度を量子化・可変にしてオンオフを切替、他との調整

• 結果: スループットへの影響極小で遅延を大幅削減

• 各プールのCPU使用率を見える化!

Page 41: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 41

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%以上の性能向上

!

Page 42: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 42

ZFSの性能向上

sync属性値• 同期書込の挙動をデータセットごとに制御• standard: 通常のPOSIXルールに従う (デフォルトかつ推奨)

• fsync(), O_DSYNC write() などの際、stableなストレージにコミットされてからreturn

• always: 全トランザクションが同期に

• 明示的な同期指定は不要

• 通常は性能が低下するが、ハードウェアと負荷要件によっては性能向上することもある

• disabled: 全てが非同期に

• 高速slogデバイスが無い場面で大幅な性能向上

• ただし、使用はリスクを検討して慎重に• 書込が同期である必要が無い場面

• DBやNFS操作など、アプリからの同期トランザクション要求は無視される

• 使用中の / や /var への設定は仕様外動作、データロス、リプレイアタックの危険あり

• sync属性値はzil_disabledパラメータを置き換える

!

Page 43: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 43

ZFSの性能向上

RAID-Z/ミラー ハイブリッドアロケータ

• RAID-Zグループがミラーとしても使用される• RAID-Z として使用: ユーザーデータと多くのメタデータ• 容量と書込スループットが最大化

• ミラーとして使用: 低レイテンシが要求されるメタデータ• 読込IOPS最大化、読込レイテンシ最小化

• 小さなランダムアクセスされるメタデータに有益

• データノード / 間接ブロック、ディレクトリ、重複排除テーブル

• ミラープールのような耐障害性は提供せず、性能向上のみ

• ミラー化メタデータ分の容量を消費する

• 現実世界の負荷で2-4倍の高速化を達成したものもある• 重複ブロックのある大きなファイルをコピー

• ファイルの多いディレクトリでの rm -rf

• 既存プールはバージョンを29以降にアップグレードすれば以降の書込に適用される

!

!

Page 44: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 44

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で対応

!

!

Page 45: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 45

Oracle Solaris 11 Express 2010.11 からの

主な強化点

Page 46: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 46

主な強化点

• 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 プロパティ)

Page 47: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 47

ZFS シャドウマイグレーション• 既存ファイルシステムのオンライン移行• 2年ほど前から ZFSSA の機能として先行実装

• 利点• 新規ファイルシステムは既存ファイルシステム同様にファイル提供

• 既存ファイルシステムのファイルやディレクトリが即座にアクセス可• ファイルシステムの完全移行(コピー完了)を待つ必要が無い

• 名前変更、ファイル更新なども可能

• 新規ファイルシステムはネットワーク共有も可能• ユーザーアクセスに対応する裏で移行作業用スレッドが動作してコピー

• 手順:• 移行元ファイルシステムを読込専用でマウント

• 移行先ファイルシステムにshadowプロパティを設定

• zfs set shadow=file:///<srcpath> <dst_fs>: ローカルファイルシステムの内容を移行するとき

• zfs set shadow=nfs:///<host>:<srcpath> <dst_fs>: NFS の内容を移行するとき

• 裏で移行作業用スレッドを動かすには system/file-system/shadow-migration パッケージをインストールし、SMFでshadowdサービスを起動

!

!

Page 48: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 48

ファイル共有の改善 (share プロパティ)• 2 段階での共有設定に• share プロパティで「共有」を定義

• 「共有」は ZFSSA で先行実装されていた枠組み

• sharenfs/sharesmb プロパティで共有する/しないをオンオフ

• 「共有」• 共有に対してオプションなどを指定

• ファイルシステムごとに複数の共有を定義でき、一意に特定する共有名が使用される

• 1 つの共有は、NFS 共有とSMB 共有の両方にオプションを定義可能

• 単一のディレクトリパスに対し複数のSMB パスを定義可能

• 設定例 (詳細は man zfs_share)• # zfs set share=name=pub,path=/pub,prot=nfs,sec=sys,rw=*,public rpool/public など

(nameとpathとprotは必須、prot後にプロトコル依存オプションを記載、「,」後はスペース無)(解除は zfs set -c share=name=pub rpool/public など)

• # zfs set sharenfs=on rpool/public (←ここで初めて公開される)

Page 49: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 49

その他の強化点(本日は詳細は割愛させていただきます)

Page 50: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 50

ZFS その他の強化点 (1)

• ユーザー/グループ単位の容量制限 (user/group quota)

• トリプルパリティ RAID-Z• ディスク3本の障害に耐性 (業界初)

• ZFS スナップショット差分 (zfs diff)• スナップショットの差分を確認可能に

• zpool split• ミラー化プールを2個の同一プールに分割

• 用途• ディザスタリカバリ

• サイトの複製

• 物理的アーカイブを簡単に取得可能

Page 51: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 51

ZFS その他の強化点 (2)

• zfs send/recv による NDMP バックアップ• send/recv の速度で既存 NDMP 環境に容易に統合可能

• 動的 LUN 拡張 (autoexpand属性値)

• プールの修復に関する強化点• 書き込み順序を無視するディスクへの対応

• ログが無い場合の修復

• 読込専用モードでのプールインポート

• zpool コマンドの機能拡張

• zfs send/recv の拡張• send側とrecv側で異なる属性値をsend/recv時に設定可能に

Page 52: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 52

OSの一機能からOS全体との融合と

OSの進化

Page 53: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 53

ZFS: 革新的ファイルシステム

ZFS 1 ZFS 2 ZFS 3

機能•スナップショット•リモートコピー•バックアップ•ファイル共有

Storage Pool

管理性•極めて簡素

•プール構造•ボリューム管理の統合•属性値による管理

拡張性•事実上無制限

•プール容量•ファイルシステム容量•ファイル数•ディレクトリ数

•圧縮•重複排除

堅牢性•Copy-on-Write•トランザクション処理•End-to-Endチェックサム•自己修復•暗号化

性能•Hybridストレージプール•Read-modify-writeの排除•入出力のパイプライン処理

全てがOSの機能

new!

new!Solaris 11 の

標準ファイルシステム

Page 54: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 54

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

Page 55: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 55

ZFS: Solaris 11 標準ファイルシステム (2)

• ゾーン環境は ZFS 前提に• ゾーン複製機能は ZFS によるクローンを使用

• ゾーンへの IPS によるパッケージ配備

• ゾーンにおける BE

Page 56: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 56

Live Upgrade → BE 管理

• Live Upgradeの lu* コマンド群は beadm コマンドに置き換え

• AI (Automated Installer) で以下の機能を提供• ミラー化ルートプール作成

• スワップとダンプのサイズ変更

• (LiveCDとテキストインストーラではこれらは行えない)

• pkg update / image-update コマンド• 新たな BE (ブート環境) を自動作成

• パッチ適用やアップグレードの前に別途 BE (ブート環境) を作成する必要が無くなった

• パッチを個別に適用する必要無し

• ミラーのattach時にブートブロックが自動適用• スペアへの切り替わり時も同様

!

!!

!

Page 57: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 57

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!

Page 58: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 58

Page 59: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 59

クラウド・ビッグデータ時代に求められるもの

• 高いCPU/メモリ/ストレージ容量効率による高集約の実現• ゾーンによる低オーバーヘッドなサーバー仮想化、DTraceによる様々な層の

ボトルネック解析、ZFS: クローン、重複排除、複数コアによる圧縮、HSP、 ...

• 先が読めないので初期投資を抑え、スモールスタート• コモディティ化した「サーバー」をネットワーク機器やストレージとする

CrossbowやCOMSTAR、ZFS: シンプロビジョニング、プールによるオンライン容量拡張かつ128ビットファイルシステム、autoexpand、ZFS on ZFS (iSCSI/FC)、 ...

• ネットワーク経由で柔軟/高速/自動化された環境の配備、切り戻し、管理• IPS/Automated Installer、Crossbowネットワーク仮想化、ゾーン移行、各種プロトコル、

Enterprise Manager OpsCenter 12c、ZFS: クローンによるゾーンの高速複製、ブート環境、ゾーンブート環境、スナップショット、共有管理、COMSTAR連携、 ...

• 当たり前のセキュリティ• ゾーンによる環境隔離、ネットワーク帯域制御、ZFS: 暗号化、 ...

• 使うほどSolaris 11は「クラウドOS」と実感できます

全てはコストや競争力に直結

既存ユーザーには最初ちょっと慣れが必要!

他OSユーザーの方が敷居が低いかも?!

Page 60: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 60

まとめと参考情報

Page 61: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 61

まとめ

• 変わらないもの• ZFS: 革新的ファイルシステム• ファイルシステムとして重要なポイントを網羅• 拡張性、堅牢性、機能、性能、管理性

• ZFS: 広範なインフラ向けソリューションでの理想的なストレージ基盤• 多くの機能を低コストで

• 多くの応用例、多くの事例

• クラウド時代・ビッグデータ時代に最適な拡張性とストレージ仮想化

• Solaris の強化・進化を支え、Solaris とともに強化・進化• Solaris 11 の標準ファイルシステム

• ZFS のフル活用で Solaris も強力に

• 時代の要請に応えつつ次世代エンタープライズを見据える

!

!

Page 62: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 62

参考情報

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

Page 63: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 63

参考情報

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 zfshiroa blog zfs 検索 からリンクしました!

!

Page 64: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 64

予告: SPARC T4 + Solaris 11チューニング体験コース

端末

SPARC T4サーバー

グループAユーザー毎の開発用ゾーン開発ツール解析ツール

N人で2Nスレッド共有dtrace_kernel不可

グループBユーザー毎の開発用ドメイン開発ツール解析ツール

各2スレッド占有dtrace_kernel可

ユーザー毎の構築物アップロード用ゾーンWebサーバーNFSサーバー

x N x Nx 2N

ssh -Xssh -X

http

httpユーザー毎の本番環境用ゾーンgzip/pigz設定スクリプト

x2N

NFS実行

httpによるアップロードを検知し、順次実行

詳細はお問い合わせくださいもしくはアンケートまで

実行用ドメイン

Crossbowによる仮想ネットワーク zoneによる

NFSサーバー

Solaris Studio 12.3コンパイラと統合開発環境

端末

Automated Installerとzoneのcloneで作成

もちろんZFS

Page 65: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved.

T4-4 Node 1

Solaris 10 OVM

Solaris 11 OVM

T4-4 Node 2

Solaris 10 OVM

Solaris 11 OVM

T4-4 Node 3

Solaris 10 OVM

Solaris 11 OVM

T4-4 Node 4

Solaris 10 OVM

Solaris 11 OVM

ZFS STORAGE APPLIANCE

InfiniBand Network

EXADATASTORAGE

EXADATASTORAGE

EXADATASTORAGE

EXADATASTORAGE

EXADATASTORAGE

EXADATASTORAGE •ここにZFSSAが

宣伝: SPARC SuperCluster T4-4なんとあのExadataとさらにExalogicをSPARC/Solaris にて統合

Solaris 8 ZoneSolaris 9 Zone

Solaris 9アプリ

Solaris 8アプリ

Solaris 9 Zone

Solaris 8 Zone

Solaris 10 Zone

Solaris 10 Zone

まさに でないとまず達成不可能な抜群の集約率

少し前のサーバーを数百台規模

+それに

関連するストレージも

統合

集約率はコストに直結

詳細はお問い合わせください、もしくはアンケートまで

大きなものにまとめる方が

やはり集約率高

Page 66: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 66

Page 67: #02-01 ZFS によるストレージ仮想化 (2012-04-20)

Copyright© 2012, Oracle. All rights reserved. 67 67