• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
先進的計算基盤システムシンポジウム SACSIS2009 Slide Suzaki
 

先進的計算基盤システムシンポジウム SACSIS2009 Slide Suzaki

on

  • 1,855 views

LoopBack Content Addressable Storage ...

LoopBack Content Addressable Storage
による仮想ディスクの性能評価

@ SACSIS 先進的計算基盤システムシンポジウム2009 広島

http://www.hpcc.jp/sacsis/2009/

須崎有康[1], ,八木豊志樹[1] ,飯島賢吾[1],渡辺義人[2]
[1] 独立行政法人産業技術総合研究所
[2] 株式会社アルファシステムズ

Statistics

Views

Total Views
1,855
Views on SlideShare
1,855
Embed Views
0

Actions

Likes
0
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    先進的計算基盤システムシンポジウム SACSIS2009 Slide Suzaki 先進的計算基盤システムシンポジウム SACSIS2009 Slide Suzaki Presentation Transcript

    • LoopBack Content Addressable Storage による仮想ディスクの性能評価 @ SACSIS 先進的計算基盤システムシンポジウム2009 広島 http://www.hpcc.jp/sacsis/2009/ 須崎有康[1], ,八木豊志樹[1] ,飯島賢吾[1],渡辺義人[2] [1] 独立行政法人 産業技術総合研究所 [2] 株式会社 アルファシステムズ 1
    • 概要 • LBCASとはLoopBackとCAS(Content Addressable Storage)を組 みわせたネットワーク透過仮想ディスク – LoopBack • ブロックデバイスの仮想化 – ブロックデバイス → ファイル – CAS • アクセス方法の仮想化(間接アドレスシング) – 番地によるアドレスシング→ 内容による検索 • OS配信のために開発 – OS Circular • 本発表は性能評価が主題 2
    • 発表内容 • LBCAS(ネットワーク透過ディスク)の詳細 – CASとは – Storage Cache と Memory Cache • LBCASの性質 – ディスクプリフェッチ(readahead)の影響 – データ、分割サイズ、ネットワークレイテンシの影響 • OS起動に対する最適化 – ファイルシステムのデータブロックの再配置 • ext2optimizer – ネットワークに対する最適化 • まとめ 3
    • CASとは • ブロック内容による間接アドレッシングを行うストレー ジ管理技術 • 基本的アイデアはPlan9のVenti [FAST’02]と同じ • ハッシュ値によるブロック管理 – 同一コンテンツのブロックは同一ハッシュ値で管理(重複)される。0クリ アされたブロックの総容量を削減できる。 • ハッシュの衝突困難性を利用し、ブロックは追加のみ。古いイ メージにも戻ることができ、永続アーカイブとして利用可能。 CAS Storage Archive Indexing File System 重複 専用 Address SHA-1 Protocol 0000000-0003FFF 4ad36ffe8… 新しいSHA-1で追加 0004000-0007FFF 974daf34a… Indexの書換え read 8000 0008000-000BFFF 2d34ff3e1… 000C000-000FFFF 974daf34a… 4 … …
    • LBCAS: Loopback CASの実装 • 専用のCASストレージアーカイバによるブロック管理ではなく、ファイルに よるブロック管理 – 小さい“ブロックファイル”からLoopbackファイル(仮想ディスク)を再構成 – ブロックファイル名はSHA-1値 – ブロックファイルは容量削減且つ、ダウンロードの高速化のため圧縮 • 間接アドレッシングもファイル(Mapping Table)で管理 – クライアントではドライバがMapping Table からLoopback ファイルとして再構 成 • SHA-1値によるファイル内容検証が可能 Mapping Table File Address SHA-1 CAS Storage 0000000-0003FFF 4ad36ffe8… 0004000-0007FFF 974daf34a… Block File Archive 0008000-000BFFF 2d34ff3e1… 4ad36ffe8… File System 000C000-000FFFF 974daf34a… … … 974daf34a… Loopbackするこ LBCAS Loopbakファイル とで通常のディス (仮想ディスク) driver 2d34ff3e1… クとしてマウント … Loopbackファイ ファイルとし 5 ルに再構成 て抽象化
    • ブロックファイル作成とネットワーク透過仮想ディスク HTTP Server (original) Client A VM Block Device Mapping Table and block files 4KB Page map01.idx 4ad36ffe8… ext2 256KB 974daf34a… … 2d34ff3e1… 3310012a… On Demand … Download … … … … 6
    • LBCASの実装 • Storage Cache – ダウンロードの抑制 • 必要なブロックファイルがあれば ネットワーク不要になる • Memory Cache – ファイル読出し,圧縮展開の抑制 7
    • 発表内容 • LBCAS(ネットワーク透過ディスク)の詳細 – CASとの違い – Storage CacheとMemory Cache • LBCASの性質 – ディスクプリフェッチ(readahead)の影響 – データ、分割サイズ、ネットワークレイテンシの影響 • OS起動に対する最適化 – ファイルシステムのデータブロックの再配置 • ext2optimizer – ネットワークに対する最適化 • まとめ 8
    • LBCASの問題点(オーバーヘッド) • データおよびアクセスパターンによる性能差 – 静的特性: • データの性質から来るブロックファイルの重複率や圧縮率の違い – 動的特性: • I/Oリクエスト(サイズと数)や参照局所性による性能差 • LBCASサイズによる性能差 – 1 I/Oリクエストが1ファイルダウンロードにならない – ブロックファイル内の有効データ(充足率)の低下により、容量 のロスより性能効率の低下が問題となる 9
    • readaheadとLBCAS • readaheadはLinux kernelのディスク先読み機構。 – 先読みサイズはキャッシュヒット率に依存。 – 先読みサイズを大きくすることでI/O回数を減らすことができる。 BA2C1… D3E14… Download block files LBCAS Map to loopback device start ahead_start I/O current_window ahead_window Expand to sequential read “max_readahead” from application 3B441… 2A121… D3E14… Cached LBCAS I/O current_window ahead_window 10 sequential read from application
    • LBCASの振る舞い、および性能解析 • LBCASとデータ特性 – LBCASサイズ (64KB, 128KB, 256KB, 512KB) – 8.5GBに下記のデータを保存 • zero clear • random • ext3(Ubuntu 3.5GB ) • NTFS(WindowsXP 8.4GB) • アクセスパターンベンチマーク – 読出し専用ディスクに負荷をかけるアクセス dd tar boot アクセスレベル ブロックレベル ファイルシステム経由 仮想計算機経由 パターン シーケンシャル ランダム ランダム 特徴 全ブロック 全ファイルの全内容 ファイルの一部 • 解析 – LBCASサイズの影響 – ネットワークレイテンシの影響 11
    • dd tar ベンチマークの違い アクセスパターン Av. 128KB Av. 37KB I/O リクエスト • LBCAS内でのブロックファイルアクセスの違い – I/Oリクエストサイズの違いにより複数のブロックファイルに跨る場合がある ext2/dd 1ファイル 2ファイル 3ファイル 平均 ext2/tar 1ファイル 2ファイル 3ファイル 平均 64KB 8 1 62,315 2.999 (192KB) 64KB 60,712 16,790 15,235 1.510 (97KB) 128KB 9 62,315 1.999 (256KB) 128KB 69,286 23,740 1.255 (161KB) 256KB 31,167 31,157 1.499 (384KB) 256KB 81,541 11,838 1.128 (324KB) 12 512KB 46,746 15,578 1.249 (634KB) 512KB 87,519 5,913 1.063 (554KB)
    • ベンチマークに対するLBCASの振る舞い dd ext2 Requests Download Storage Uncompress Memory (8.4GB) (Av: 128KB) Cache D+S=U Cache 64KB 62,324 54,408 745 55,153 131,802 効果大 128KB 62,324 27,444 407 27,851 96,788 効果少 256KB 62,324 13,862 353 14,217 79,264 ほぼ同数 512KB 62,324 7,061 343 7,404 70,498 tar ext2 Requests Download Storage Uncompress Memory (3.5GB) (Av: 37KB) Cache Cache 64KB 92,991 49,772 42,989 92,711 47,286 効果大 128KB 93,026 25,060 39,694 64,754 52,012 倍以上 256KB 93,379 12,695 36,527 49,222 55,955 512KB 93,432 6,500 33,518 40,018 59,327 13 非効率(細かい離散アクセス)
    • LBCASの消費時間 Second 700 ddの内訳 600 ②書込みオーバーヘッドを少なくした方が有利 500 400 etc uncompress ①ダウンロードのオーバーヘッド file 300 が大きい download 200 ③Storage Cacheでは差が小さい 100 0 64KB 128KB 256KB 512KB 64KB 128KB 256KB 512KB LBCAS-HTTP LBCAS-SSD Second 700 tarの内訳 600 500 400 ④無駄な展開の抑制が重要 etc uncompress file 300 download 200 100 0 64KB 128KB 256KB 512KB 64KB 128KB 256KB 512KB 14 LBCAS-HTTP LBCAS-SSD
    • レイテンシの影響 Red 64KB Blue 128KB Green 256KB Throughput / File 12Mbps (ext3 tar) Purple 512KB 0ms LBCASサイズ 64KB 128KB 256KB 512KB (ファイル数) (49,722) (25,060) (12,695) (6,500) 700 5.0Mbps 0msec LAN 642 457 439 551 25msec 国内 3,690 2,220 1,500 1,200 50msec 6,447 3,809 2,445 1,886 25ms 100msec 海外 12,111 7,009 4,354 3,107 終了時間(second) 3.5Mbps 4000 • Internetではレイテンシの影響は大 50ms きく、LBCASサイズが大きくダウン ロードファイル数が少ないほど有利 7000 – レイテンシ長いほど差が拡大 2.5Mbps 100ms ファイルサイズ 15 による差が拡大 14000
    • LBCASの特徴 • LBCASサイズとI/Oリクエストの関係 LBCASサイズ 少 LBCASサイズ 大 ファイル数 多 ファイル数 少 データの特徴 展開ロス 少 の改善 展開ロス 大 スループット 小 スループット 大 LBCAS内の処理 Storage Cacheで有利 ネットワークで有利 OSからのI/Oリクエスト サイズ 小 サイズ 大 回数 多 回数 少 アクセスパターンの改善 • Internetで効率的にするにはLBCASを大きくする必要がある – ファイルシステムのデータブロックを再配置することで、I/Oサイズの拡大 (回数の減少)、および展開ロスの低減を図る 16
    • 発表内容 • LBCAS(ネットワーク透過ディスク)の詳細 – CASとの違い – Storage Cacheと Memory Cache • LBCASの性質 – ディスクプリフェッチ(readahead)の影響 – データ、分割サイズ、ネットワークレイテンシの影響 • OS起動に対する最適化 – ファイルシステムのデータブロックの再配置 • ext2optimizer – ネットワークに対する最適化 • まとめ 17
    • LBCASから起動するための最適化 • 起動時のFSアクセスに対する最適化 – アクセスプロファイルに従ったブロック再配置 (ext2optimizer)により参照局所性を高め、ページキャッシュ ヒット率を上げる • ネットワークに対する最適化 – 起動プロファイルによる先行ダウンロード(DLAHEAD) • 比較対象 – 転送されるOS (4GB LBCAS) • Linux(KNOPPIX4.0.2 kernel 2.6.12) – クライアント ThinkPAD X60, KVM-60 18
    • アクセスプロファイルによる再配置 App ext2optimizer App User Access Profile Kernel (via /proc/ ) VFS VFS File System Driver (ext2/3) File System Driver (ext2/3) Profiler Page Cache (Memory) Page Cache (Memory) Block Driver Block Driver (Loopback) (Loopback) readaheadの拡大 I/O回数の低減 19 Reallocate
    • ブロック再配置:ext2optimizer [LinuxKongress06] • アクセスプロファイルに従ってi-nodeのデータブロックアドレスの付 け替えのみ – ドライバの変更不要 – ファイルから見るとフラグメンテーションを起こす場合がある – キャッシュヒット率が上がり、readaheadのサイズが大きくなる Mode Mode Owner info Owner info Size Size Timestamps Timestamps Direct Direct Blocks Blocks Indirect Indirect Blocks Blocks Double Double Indirect Indirect Triple Triple Indirect Indirect 20
    • DAVL (Disk Allocation Viewer for Linux)によるext2opt解析 Original Ext2opt 起動で使われる Fragmentation 0.09% Fragmentation 0.27% ブロック システム ブロック 非連続 連続 ブロック ブロック 集約することで少ない LBCASブロック数になる 21
    • 起動時の読出し位置 • ext2optimzerでの最適化効果 赤:normal 青:ext2opt Time (s) 参照の局所化 0 1.0 2.0 3.0 4.0 22 Address (GB)
    • ext2optimizerが及ぼすI/Oへの影響 Normal ext2opt 読出しファイル総量(数,平 126MB 126MB 均ファイルサイズ) (file:3,636 size:28KB) (file:3,636 size:28KB) 読出し要求データ総量 101MB 101MB I/Oリクエスト 182MB 2/3 112MB Readaheadによる先読み (freq:5500, 1/3 (freq:1700, を含む(数,平均I/Oサイズ) size:33KB) 1/2 size:67KB) • ダウンロード総量MB(展開後MB)、ブロックファイル内の有効データ割合%、[ファイル数] Normal 1/2 以下 ext2opt高い有効データ割合 少ないファイル数 64KB 72.5(228), 80.0%, [3,477] 37.0(115),97.5%, [1,761] 128KB 85.1(270), 67.2%,[2,063] 37.4(120),93.4%, [914] 256KB 107(342), 53.2%, [1,303] 38.3(127),88.5%, [485] 23 512KB 142(457), 39.7%, [871] 39.5(140),80.4%, [267]
    • LBCASの消費時間 Time (s) 100 90 80 • 起動時間に対する 70 LBCAS 60 Boot 50 LBCAS 40 30 20 10 38.7% 39.8% 43.1% 49.8% 21.3% 20.1% 22.3% 26.3% 0 64KB 128KB 256KB 512KB 64KB 128KB 256KB 512KB Normal Ext2Opt Time (s) 50 45 40 512KBでは効率の • LBCAS内の内訳 35 悪い展開が増大 30 etc 19.3% 23.6% 32.4% 41.0% uncompress レイテンシが長くなると小さい 25 file LBCASサイズは影響が大きい。 20 download 15 Storage Cache後の展開オー 10 21.7% 26.4% 30.7% 35.5% バーヘッドも考慮して256KBを 5 76.5% 72.3% 62.4% 41.0% 73.7% 68.9% 64.5% 56.1% 0 標準として採用。 64KB 128KB 256KB 512KB 64KB 128KB 256KB 512KB 24 Normal Ext2Opt
    • レイテンシに対する対処 • 先行ダウンロード – DLAHEAD • 起動のプロファイルから必要なブロックファイルを先行 してStorage Cacheにダウンロードする機能 • デフォルトで4並列のストリームダウンロード • LBCASのデバイス設定時に開始 25
    • LBCASの消費時間 Time (s) 450 400 DLAHEADを使えば、 • 起動時間に対す 350 300 normal,ext2optで起動 時間が変わらない るLBCAS 250 200 Boot LBCAS 150 100 50 0 Latency 0ms 25ms 50ms 100ms Time (s) 450 400 350 • LBCASの内訳 300 250 etc uncompress 200 storage 150 download 100 DLAHEADを適用すれば起動時 50 のレイテンシは隠ぺいできる 0 2O L( ) 2O L( ) 2O L( ) 2O L( ) ) ) ) ) r m p t( ) DL %) No 2O 8%) DL ) No 2O 3%) DL ) rm pt( ) DL ) Ex alD 65% Ex alD 89% Ex alD 93% Ex alD 96% 4% 9% 1% 7% No t2O 62% pt 34% pt 29% No 2O 6% pt 58% Normalでも50msecまで隠 pt 0.9 DLAHEADが (3 (4 (3 (4 t (9 8 9 r m p t( r m p t( Ex a l ( Ex a l ( Ex a l ( Ex a l rm rm rm rm 一部間に合わ ぺい No No No No t t ない 26 Latency 0ms 25ms 50ms 100ms
    • 展開 • 任意のOSをインストールなしでネットワークから起 動させる “OS Circular” 27
    • 関連研究 Stream download SBUML [JSSST] LivePC of Moka5 streaming streaming Peabody CAS[IEEE MSS’03] Our target Internet Suspend/Resume CAS [USENIX’06] Lightweight virtualization COW of VMware MobiDesk[MobiCom’04] Collective [NSDI’05] (Display, NIC only) Ventana [NSDI’06] SFS-KNOPPIX [IEEE-NCA’06] Ondemand Staleless Linux of RedHat download Bulk LiveCD Virtual Disk file for QEMU download [OS Zoo Project] 28 Real Machine Virtual Machine
    • まとめ • LBCASの性質をデータの特徴、アクセスパターン、 LBCASサイズ、レイテンシなどを変えて解析した。 – Storage Cache, Memory Cacheの重要性確認 – LBCASサイズと展開ロス、およびディスクプリフェッチの効率 の重要性確認 • OS起動に適用するためにext2ファイルシステムのデー タ再配置(ext2optimzer)を開発し、ブロック数の削減(半 分以下)と高速起動を確認した。 • ネットワークレイテンシはDLAHEADにより隠ぺいでき、 50msec程度なら影響がでないことを確認した。 29