Mais conteúdo relacionado
Semelhante a ZFSでストレージ (9)
ZFSでストレージ
- 4. こんなに速い ZFS
ところでこれをみてくれ
multistream read1m multistream write1m randomread1m randomwrite1m
4000
3556
3500
3000 2881
2677
2500
2152
MB/s
2000
1620
1500 1334
1000 850 832
480 520 527
500
447
0
stripe raidz1 raidz2
hbstudy#12
pg 4
ZFS でストレージ でもストレージだけじゃない ZFS
- 5. こんなに速い ZFS
こいつをどう思う?
random IOPS randomread2k randomwrite2k
180000
160000 157368
140000
120000
100000
IOPS
80000
60000
40000 36348
20000
4085 1117 500 429
0
stripe raidz1 raidz2
hbstudy#12
pg 5
ZFS でストレージ でもストレージだけじゃない ZFS
- 6. 測定したのはこのマシン
X4400( コントローラ )
J4400×1 SATA HDD 1TB×22
2 Quad Core CPU
64GB メモリ
SSD Read cache
100GB×1
SSD Write cache
16GB×2
OpenSolaris に入っている filebench を使用し
て計測
hbstudy#12
pg 6
ZFS でストレージ でもストレージだけじゃない ZFS
- 7. でもなんか、 RAIDZ の性能が ...
multistream read1m multistream write1m randomread1m randomwrite1m
4000
3556
3500
3000 2881
2677
2500
2152
MB/s
2000
1620
1500 1334
1000 850 832
480 520 527
500
447
0
stripe raidz1 raidz2
hbstudy#12
pg 7
ZFS でストレージ でもストレージだけじゃない ZFS
- 8. でも、もう少し速くしたい (1)
事前にキャッシュをフラッシュする・しないで比較してみよう
raidz2 no cache raidz2 on cache
7000
6042
6000
5000
4026
4000
MB/s
3000
2317
2000
1000
444 529 399 475
226
0
multistreamread 1m multistreamwrite 1m randomread 1m randomwrite 1m
hbstudy#12
pg 8
ZFS でストレージ でもストレージだけじゃない ZFS
- 9. でも、もう少し速くしたい (2)
キャッシュというのは ARC(Adaptive Replacement
Cache) のこと
raidz2 no cache raidz2 on cache
300000
259206
250000
200000
150000
IOPS
100000
50000
511 413 3611
0
randomread2k randomwrite2k
hbstudy#12
pg 9
ZFS でストレージ でもストレージだけじゃない ZFS
- 11. ここで、 ZFS のおさらい
128bit ファイルシステム
大容量のファイルに対応
HDD をストレージプールとして管理し、
簡単に HDD 増設が可能
RAID(0,1,5,6) に相当する機能を提供
Copy-on-Write によるデータ完全性の保証
スナップショット・クローン機能
Hybrid Storage Pool Architecture
hbstudy#12
pg 11
ZFS でストレージ でもストレージだけじゃない ZFS
- 12. ここで、 ZFS のおさらい
他にも重複排除とかの新機能
詳しくは、以下の資料
(OpenSolarisNightSeminar の資料 ) を参考
http://jp.sun.com/developers/events/nightSeminar/
PDF/OSNS-Solaris_ZFS-20090306.pdf
http://mediacast.sun.com/users/hiroa/media/OSNS
_ZFS-20090710.pdf/details
http://mediacast.sun.com/users/hiroa/media/OSHT
_ZFS-20091218.pdf/details
hbstudy#12
pg 12
ZFS でストレージ でもストレージだけじゃない ZFS
- 13. Hybrid Storage Pool Architecture とは
メモリ +SSD+HDD でストレージプールを構成
ARC – Adaptive Replacement Cache
メモリ上にある ZFS の Cache
L2ARC – Level 2 ARC
高速
ARC からあふれた部分を保存 メモリ
ZIL – ZFS Intent Log SSD 中速
同期書き込み用ログ領域
Disk Storage Pool HDD 低速
SATA 等の HDD
上記 ARC/L2ARC/ZIL の機能に
より、高速の Disk を使用しなくても高性能を実現
hbstudy#12
pg 13
ZFS でストレージ でもストレージだけじゃない ZFS
- 14. ARC/L2ARC の役割
ARC は、読み込み・書き込みキャッシュ
ARC はメモリを使用
ARC は動的に増えていく
最大で、メインメモリの 1GB を残した全部
もしくは全体の 3/4 を使用
ARC からこぼれたモノが L2ARC(SSD) に
書き込まれる
hbstudy#12
pg 14
ZFS でストレージ でもストレージだけじゃない ZFS
- 15. メモリが多いと ZFS は速くなる
メモリが多ければ多いほど ARC も多くなる
ARC にあるデータは、アクセスが速くなる
結論
メモリが多いと ZFS は速い!
L2ARC に落ちると遅くなる。が、 L2ARC を HDD より
速い SSD 上に置くと、 HDD のみより速くなる
hbstudy#12
pg 15
ZFS でストレージ でもストレージだけじゃない ZFS
- 16. ZFS で CPU パワーが必要な訳
ZFS で CPU パワーが必要な処理
ブロック単位の Checksum
RAIDZ のパリティ計算
圧縮
重複排除
hbstudy#12
pg 16
ZFS でストレージ でもストレージだけじゃない ZFS
- 17. ブロック単位の Checksum
ZFS は、ブロックごとに Checksum を保存
Checksum と比較することでデータの完全性を保証
セルフヒーリング
データを重複化してた場合は、正常データのみを読み込
み、異常データを正常データで上書き
Checksum 計算に CPU が必要
CPU の暗号化支援機能を使用可能
CPU の暗号化支援機能で、 CPU 使用率を低下
hbstudy#12
pg 17
ZFS でストレージ でもストレージだけじゃない ZFS
- 18. 圧縮・重複排除
圧縮は CPU が実行
重複排除は Checksum を元に同じデータの
ブロックがあるかどうかを探す
これら機能を ON にしていると、
CPU パワーがより必要になる
hbstudy#12
pg 18
ZFS でストレージ でもストレージだけじゃない ZFS
- 19. RAIDZ のパリティ計算
RAIDZ はソフトウェア RAID
パリティ計算を CPU で行う
RAIDZ2 だとさらに倍。 RAIDZ3 だと3倍
ストライプ幅がパリティ計算量を決める
あまり長いストライプ幅すると、計算量が増える
HDD は 7 個以下にしたときがパフォーマンス
がよい
hbstudy#12
pg 19
ZFS でストレージ でもストレージだけじゃない ZFS
- 20. RAIDZ 構成の例
Stripe RAIDZ2 WIDE(≒ RAID6)
(可用性:低、性能:高、容量:大) (可用性:中、性能:低、容量:大)
Stripe RAIDZ2
SSD SSD
スペア
RAIDZ(≒ RAID5) RAIDZ2(≒ RAID6)
(可用性:高、性能:中、容量:中) (可用性:高、性能:中、容量:中)
RAIDZ RAIDZ RAIDZ2
RAIDZ RAIDZ RAIDZ2
SSD SSD
スペア RAIDZ スペア
hbstudy#12
pg 20
ZFS でストレージ でもストレージだけじゃない ZFS
- 21. RAIDZ を追加するとき
同じ RAIDZ 構成なら、追加可能
仮想デバイス (mirror や
raidz 等の単位 ) を
RAIDZ2
ストライプの様に接続
SSD RAIDZ2
仮想デバイス間で スペア
アクセスが分散する RAIDZ2
RAIDZ2
HDD を増やした方が SSD
スペア
速くなる RAIDZ2
SSD RAIDZ2
スペア
hbstudy#12
pg 21
ZFS でストレージ でもストレージだけじゃない ZFS
- 22. では実際に ZFS でストレージを ...
どういうハードウェアで?
CPU とメモリはいっぱい積もう。
RAID 構成は?
HW RAID? それとも RAIDZ/RAIDZ2 ?
どうやって繋ぐ?
NFS ですか? iSCSI ですか?
でも、 Gbit Ether だと遅い
SSD はどう使う?
拡張はどうする?
hbstudy#12
pg 22
ZFS でストレージ でもストレージだけじゃない ZFS
- 23. RAIDZ vs Hardware RAID
安い RAID カードには圧勝 ( のはず )
実際には CPU の差なので
キャッシュメモリ量も圧勝
高い RAID カードでも 4GB とか?
しかも、容易に増やせる
結論
特に理由がなければ RAIDZ で万全
hbstudy#12
pg 23
ZFS でストレージ でもストレージだけじゃない ZFS
- 24. NFS の場合
ZFS で NFS は意外と速いです
カーネル空間で動く
まともに NFSv4 が動きます
NFS を開発した会社を言ってみろ
ただし、普通に動かすと何故か遅い
誰が悪い?
原因は ZIL
hbstudy#12
pg 24
ZFS でストレージ でもストレージだけじゃない ZFS
- 25. ZIL(ZFS Intent Log) の役割
ZIL は、同期書込時に使用されるログ情報
O_DSYNC つきで open() したり、 fsync() が実施されたと
きなど
NFS も iSCSI も同期書き込み
ARC から HDD への書き込みは、非同期
5 〜 30 秒に一度シーケンシャルに書き込む
→ HDD へ一度に書き込むので速い
同期書き込み時にも、非同期で HDD に書き込
むための機構が ZIL
ZIL が役に立つのはクラッシュ時
クラッシュ時には、 ZIL から復旧する
hbstudy#12
pg 25
ZFS でストレージ でもストレージだけじゃない ZFS
- 26. ZIL で遅くなる場合
NFS や iSCSI などでアクセス
大抵同期書き込み
ZIL を分離していない場合
同期書き込み時に ZIL へのアクセスが集中する。
ZIL が分離されていないと、 ZIL へのアクセスが他の
HDD アクセスと競合して遅くなる
hbstudy#12
pg 26
ZFS でストレージ でもストレージだけじゃない ZFS
- 28. iSCSI の場合
NFS より遅い!
iscsitgt の一部がユーザ空間で動くから
でも、 COMSTAR なら大丈夫
COMSTAR はカーネル空間で動く!
COMSTAR とレガシー iSCSI(iscsitgt) では
数倍の性能差が出る!
詳細は brendan さんのブログ参照
http://blogs.sun.com/brendan/entry/iscsi_be
fore_and_after
hbstudy#12
pg 28
ZFS でストレージ でもストレージだけじゃない ZFS
- 29. COMSTAR って何者?
COMSTAR とは?
Common Multiprotocol SCSI Target
OpenSolaris のストレージフレームワーク
OpenSolaris の Volume を SCSI Target に
Volume
生 HDD 、 ZFS Volume 、ファイル
接続先
iSCSI 、 FC 、 FCoE 、 InfiniBand など
hbstudy#12
pg 29
ZFS でストレージ でもストレージだけじゃない ZFS
- 30. COMSTAR をもっと知るには
COMSTAR には OpenSolaris 勉強会 for
Admin( 仮 ) が効きます
http://wikis.sun.com/display/JpOpenSolaris/TokyoOpenSol
arisStudyGroup
神資料その1
「 COMSTAR で iSCSI 」
http://docs.google.com/present/view?id=dpdpddx_4dnvjv7c9
神資料その2
「前回の COMSTAR ネタに刺激されてしまったので、オ
レも COMSTAR を使ってみた。」 ( 仮 )
http://wikis.sun.com/download/attachments/204308497/osol_co
mstar_20100522.pdf
hbstudy#12
pg 30
ZFS でストレージ でもストレージだけじゃない ZFS
- 31. SSD の使い方
L2ARC に使うか ZIL に使うか
L2ARC は ARC より遅い
L2ARC にお金をつぎ込むより、メモリを増やし
た方が良い
ZIL を使う場合は、少なくとも分離する。
できれば SSD におく。
結論
SSD はまず ZIL で使え
hbstudy#12
pg 31
ZFS でストレージ でもストレージだけじゃない ZFS
- 35. 拡張時には、 Offline にする必要が ...
iSCSI ディスクなら Online で増設
USB とか FC とかでも出来るけど
devfsadm でデバイス再構成
接続したディスクを再起動なしに認識出来る
/reconfigure 作って再起動とか
boot -r とかは必要ない
hbstudy#12
pg 35
ZFS でストレージ でもストレージだけじゃない ZFS
- 37. iSCSI ディスクを使う構成例
RAID にしてみる サーバ
RAIDZ
LACP で
束ねる
Switch
iSCSI ディスク
hbstudy#12
pg 37
ZFS でストレージ でもストレージだけじゃない ZFS
- 39. サーバ側で ZFS の理由
ARC を有効に使える
ARC が一番速いので、 ARC がサーバ側にあ
る方が有利
Network/FC などディスクと繋ぐ経路が
ボトルネックになる
OpenSolaris が素敵
Solaris コンテナとかね
hbstudy#12
pg 39
ZFS でストレージ でもストレージだけじゃない ZFS
- 46. スナップショットでバックアップ
バックアップはスナップショット単位
バックアップは zfs send
# zfs send rpool@snap > /tmp/snap.zfs.img
リストアは zfs receive
# zfs receive rpool2 < /tmp/snap.zfs.img
ZFS ツリーもいっぺんにバックアップ
# zfs snapshot -r rpool/export@snap
# zfs send -R rpool/export@snap >
/tmp/snap.zfs.img
# zfs receive < /tmp/snap.zfs.img
hbstudy#12
pg 46
ZFS でストレージ でもストレージだけじゃない ZFS
- 47. 2サーバ間でバックアップ
ファイルベースなので、サーバ間でバックアッ
プ・リストア可能
# zfs snapshot -r rpool/zone@20100610
# zfs send -R rpool/zone@20100610 |
ssh serverB zfs receive rpool
差分バックアップも
# zfs snapshot -r rpool/zone@20100611
# zfs send -R -i rpool/zone@20100610
rpool/zone@20100611 | ssh serverB zfs receive rpool
hbstudy#12
pg 47
ZFS でストレージ でもストレージだけじゃない ZFS
- 48. 差分バックアップの例
ServerA ServerB
rpool@20100610 rpool@20100610
snapshot 全体のコピー
hbstudy#12
pg 48
ZFS でストレージ でもストレージだけじゃない ZFS
- 49. 差分バックアップの例
ServerA ServerB
rpool@20100611 rpool@20100611
rpool@20100610 rpool@20100610
snapshot 差分のコピー
hbstudy#12
pg 49
ZFS でストレージ でもストレージだけじゃない ZFS
- 50. 差分バックアップの例
ServerA ServerB
rpool@20100612 rpool@20100612
rpool@20100611 rpool@20100611
rpool@20100610 rpool@20100610
snapshot 差分のコピー
hbstudy#12
pg 50
ZFS でストレージ でもストレージだけじゃない ZFS
- 52. 差分バックアップの削除例
Before After
rpool@20100612 rpool@20100612
rpool@20100611
rpool@20100610 rpool@20100610
snapshot 差分の削除
hbstudy#12
pg 52
ZFS でストレージ でもストレージだけじゃない ZFS
- 53. 差分バックアップの利用例
Zone の同期による Active-Standby 構成
Zone 部分を二台のサーバで同期
片系がダウンしても、もう片方で動作
Zone の領域は ZFS
これを Attach/Detach することが出来る
% pfexec zoneadm -z zonename attach
% pfexec zoneadm -z zonename detach
Zone の情報は Standby 機にコピー
% pfexec zonecfg -z zonename export |
ssh ServerB pfexec zonecfg -z zonename
hbstudy#12
pg 53
ZFS でストレージ でもストレージだけじゃない ZFS
- 54. Zone の Active-Standby 構成
ServerA ServerB
Attach Zone Detach
起動中
Zone 同期 Zone
hbstudy#12
pg 54
ZFS でストレージ でもストレージだけじゃない ZFS
- 55. Zone の Active-Standby 構成
ServerA ServerB
Attach Zone Attach
起動中
Zone Zone
hbstudy#12
pg 55
ZFS でストレージ でもストレージだけじゃない ZFS
- 56. ZFS 同期による Active−Stanby 構成
簡単な方式なので、クリティカルな場面では使
えない
同期間隔があるので、データロストする
→データは別の場所に置く必要あり
DB などには向かない構成
DB を止めてからスナップショットを取れば、整
合性は保たれます
ちなみに、 Zone だけでなく
Dom-U の領域も同様の方法で ...
hbstudy#12
pg 56
ZFS でストレージ でもストレージだけじゃない ZFS
- 57. クローンによる起動環境の複製
OpenSolaris では beadm で、 Boot
Environment( 起動環境 =BE) を管理
新しい BE は、現 BE の複製 ( クローン )
クローンなので、差分しか増えない
BE は grub 画面で選択可能
BE の削除は自由
ただし、起動中の BE は削除出来ない
BE に対する操作も可能
beadm mount で、領域をマウント出来る
マウント後設定ファイル修正など
hbstudy#12
pg 57
ZFS でストレージ でもストレージだけじゃない ZFS
- 59. BE 複製の問題点
rpool を ZFS upgrade すると旧 BE で立ち上
がらなくなる可能性あり
rpool とデータ領域は、 zpool ごと分けるのが
お勧め
hbstudy#12
pg 59
ZFS でストレージ でもストレージだけじゃない ZFS
- 60. ストレージだけじゃない ZFS まとめ
ZFS サイコー
スナップショット・クローンは有用
send/receive でバックアップも楽々
設計がめんどくさいのはどれも一緒
Zone の多重化もそこはかとなく出来る
ちゃんとやりたければ OpenHA がある
BE を使うことで複数環境を切り替え
アップデート時に新しい BE に更新する
サービス停止時間の低減
ZFS サイコー
hbstudy#12
pg 60
ZFS でストレージ でもストレージだけじゃない ZFS
- 63. 参考資料
OpenSolaris Night Seminar 資料
http://jp.sun.com/developers/events/nightSeminar/PDF/OSN
S-Solaris_ZFS-20090306.pdf
http://mediacast.sun.com/users/hiroa/media/OSNS_ZFS-
20090710.pdf/details
http://mediacast.sun.com/users/hiroa/media/OSHT_ZFS-
20091218.pdf/details
OpenSolaris 勉強会 for Admin( 仮 ) 資料
http://docs.google.com/present/view?
id=dpdpddx_4dnvjv7c9
http://wikis.sun.com/download/attachments/204308497/osol
_comstar_20100522.pdf
hbstudy#12
pg 63
ZFS でストレージ でもストレージだけじゃない ZFS
- 64. 参考資料
ZFS Best Practices Guide
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_
Practices_Guide
ZFS Evil Tuning Guide
http://www.solarisinternals.com/wiki/index.php/ZFS_Evil_T
uning_Guide
一番最後のリンク集も参考になります
http://www.solarisinternals.com/wiki/index.php/ZFS_Evil_T
uning_Guide#Integrated_RFEs_that_introduced_or_chang
ed_tunables
Brendan Gregg 氏のブログ
http://blogs.sun.com/brendan/
hbstudy#12
pg 64
ZFS でストレージ でもストレージだけじゃない ZFS