先進的計算基盤システムシンポジウム sacsis2009 slide suzaki

29
1 LoopBack Content Addressable Storage による仮想ディスクの性能評価 @ SACSIS 先進的計算基盤システムシンポジウム2009 広島 http://www.hpcc.jp/sacsis/2009/ 須崎有康 [1] , ,八木豊志樹 [1] ,飯島賢吾 [1] ,渡辺義人 [2] [1] 独立行政法人 産業技術総合研究所 [2] 株式会社 アルファシステムズ

Upload: kuniyasu-suzaki

Post on 31-May-2015

1.320 views

Category:

Technology


0 download

DESCRIPTION

LoopBack Content Addressable Storage による仮想ディスクの性能評価 @ SACSIS 先進的計算基盤システムシンポジウム2009 広島 http://www.hpcc.jp/sacsis/2009/ 須崎有康[1], ,八木豊志樹[1] ,飯島賢吾[1],渡辺義人[2] [1] 独立行政法人産業技術総合研究所 [2] 株式会社アルファシステムズ

TRANSCRIPT

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

1

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

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

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

須崎有康[1], ,八木豊志樹[1] ,飯島賢吾[1],渡辺義人[2]

[1] 独立行政法人 産業技術総合研究所

[2] 株式会社 アルファシステムズ

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

2

概要• LBCASとはLoopBackとCAS(Content Addressable Storage)を組

みわせたネットワーク透過仮想ディスク– LoopBack

• ブロックデバイスの仮想化– ブロックデバイス → ファイル

– CAS• アクセス方法の仮想化(間接アドレスシング)

– 番地によるアドレスシング→ 内容による検索

• OS配信のために開発– OS Circular

• 本発表は性能評価が主題

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

3

発表内容

• LBCAS(ネットワーク透過ディスク)の詳細– CASとは– Storage Cache と Memory Cache

• LBCASの性質– ディスクプリフェッチ(readahead)の影響

– データ、分割サイズ、ネットワークレイテンシの影響

• OS起動に対する 適化– ファイルシステムのデータブロックの再配置

• ext2optimizer

– ネットワークに対する 適化

• まとめ

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

4

CASとは• ブロック内容による間接アドレッシングを行うストレー

ジ管理技術• 基本的アイデアはPlan9のVenti [FAST’02]と同じ

• ハッシュ値によるブロック管理

– 同一コンテンツのブロックは同一ハッシュ値で管理(重複)される。0クリ

アされたブロックの総容量を削減できる。

• ハッシュの衝突困難性を利用し、ブロックは追加のみ。古いイメージにも戻ることができ、永続アーカイブとして利用可能。

File System

Address SHA-10000000-0003FFF 4ad36ffe8…0004000-0007FFF 974daf34a…0008000-000BFFF 2d34ff3e1…000C000-000FFFF 974daf34a…… …

CAS Storage Archive

Indexing

専用Protocol

重複

read 8000

新しいSHA-1で追加Indexの書換え

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

5

LBCAS: Loopback CASの実装• 専用のCASストレージアーカイバによるブロック管理ではなく、ファイルに

よるブロック管理– 小さい“ブロックファイル”からLoopbackファイル(仮想ディスク)を再構成– ブロックファイル名はSHA-1値

– ブロックファイルは容量削減且つ、ダウンロードの高速化のため圧縮

• 間接アドレッシングもファイル(Mapping Table)で管理– クライアントではドライバがMapping Table からLoopback ファイルとして再構

成• SHA-1値によるファイル内容検証が可能

CAS StorageArchive

Mapping Table File

4ad36ffe8…

974daf34a…

2d34ff3e1…

Block File

Address SHA-10000000-0003FFF 4ad36ffe8…0004000-0007FFF 974daf34a…0008000-000BFFF 2d34ff3e1…000C000-000FFFF 974daf34a…… …

LBCASdriver

File System

Loopbakファイル(仮想ディスク)

Loopbackすることで通常のディスクとしてマウント

Loopbackファイルに再構成

ファイルとして抽象化

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

6

Block Device

256KB

4KB Page

ext2

Mapping Table and block files

map01.idx4ad36ffe8…974daf34a…2d34ff3e1…3310012a……

HTTP Server (original) Client A

VM

On DemandDownload

ブロックファイル作成とネットワーク透過仮想ディスク

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

7

• Storage Cache– ダウンロードの抑制

• 必要なブロックファイルがあればネットワーク不要になる

• Memory Cache– ファイル読出し,圧縮展開の抑制

LBCASの実装

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

8

発表内容

• LBCAS(ネットワーク透過ディスク)の詳細– CASとの違い– Storage CacheとMemory Cache

• LBCASの性質– ディスクプリフェッチ(readahead)の影響

– データ、分割サイズ、ネットワークレイテンシの影響

• OS起動に対する 適化– ファイルシステムのデータブロックの再配置

• ext2optimizer

– ネットワークに対する 適化

• まとめ

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

9

LBCASの問題点(オーバーヘッド)• データおよびアクセスパターンによる性能差

– 静的特性:• データの性質から来るブロックファイルの重複率や圧縮率の違い

– 動的特性:• I/Oリクエスト(サイズと数)や参照局所性による性能差

• LBCASサイズによる性能差

– 1 I/Oリクエストが1ファイルダウンロードにならない

– ブロックファイル内の有効データ(充足率)の低下により、容量のロスより性能効率の低下が問題となる

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

10

readaheadとLBCAS

current_window ahead_window

start ahead_start I/O

sequential read from application

current_window

sequential read from application

ahead_window

Expand to “max_readahead”

LBCASDownload block files Map to loopback device

I/O

LBCASCached

BA2C1… D3E14…

D3E14…

3B441… 2A121…

• readaheadはLinux kernelのディスク先読み機構。– 先読みサイズはキャッシュヒット率に依存。– 先読みサイズを大きくすることでI/O回数を減らすことができる。

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

11

LBCASの振る舞い、および性能解析• LBCASとデータ特性

– LBCASサイズ (64KB, 128KB, 256KB, 512KB)– 8.5GBに下記のデータを保存

• zero clear• random• ext3(Ubuntu 3.5GB )• NTFS(WindowsXP 8.4GB)

• アクセスパターンベンチマーク– 読出し専用ディスクに負荷をかけるアクセス

• 解析– LBCASサイズの影響– ネットワークレイテンシの影響

ファイルの一部全ファイルの全内容全ブロック特徴

ランダムランダムシーケンシャルパターン

仮想計算機経由ファイルシステム経由ブロックレベルアクセスレベル

boottardd

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

12

ベンチマークの違い

• LBCAS内でのブロックファイルアクセスの違い– I/Oリクエストサイズの違いにより複数のブロックファイルに跨る場合がある

1.249 (634KB)15,57846,746512KB

1.499 (384KB)31,15731,167256KB

1.999 (256KB)62,3159128KB

2.999 (192KB)62,3151864KB

平均3ファイル2ファイル1ファイルext2/dd

1.063 (554KB)5,91387,519512KB

1.128 (324KB)11,83881,541256KB

1.255 (161KB)23,74069,286128KB

1.510 (97KB)15,23516,79060,71264KB

平均3ファイル2ファイル1ファイルext2/tar

アクセスパターン

I/O リクエスト

dd tar

Av. 128KB Av. 37KB

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

13

ベンチマークに対するLBCASの振る舞い

59,327

55,955

52,012

47,286

MemoryCache

33,518

36,527

39,694

42,989

StorageCache

40,018

49,222

64,754

92,711

Uncompress

6,500

12,695

25,060

49,772

Download

93,432512KB

93,379256KB

93,026128KB

92,99164KB

Requests(Av: 37KB)

tar ext2(3.5GB)

70,498

79,264

96,788

131,802

MemoryCache

343

353

407

745

Storage Cache

7,404

14,217

27,851

55,153

UncompressD+S=U

7,061

13,862

27,444

54,408

Download

62,324512KB

62,324256KB

62,324128KB

62,32464KB

Requests(Av: 128KB)

dd ext2(8.4GB)

効果少

非効率(細かい離散アクセス)

ほぼ同数

倍以上

効果大

効果大

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

140

100

200

300

400

500

600

700

64KB 128KB 256KB 512KB 64KB 128KB 256KB 512KB

etc

uncompress

file

download

LBCASの消費時間

0

100

200

300

400

500

600

700

64KB 128KB 256KB 512KB 64KB 128KB 256KB 512KB

etc

uncompress

file

download

LBCAS-HTTP LBCAS-SSD

LBCAS-HTTP LBCAS-SSD

Second

Second

④無駄な展開の抑制が重要

②書込みオーバーヘッドを少なくした方が有利

①ダウンロードのオーバーヘッドが大きい

③Storage Cacheでは差が小さい

ddの内訳

tarの内訳

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

15

レイテンシの影響(ext3 tar)

Throughput / FileRed 64KBBlue 128KBGreen 256KBPurple 512KB

700

4000

7000

14000

3.5Mbps

2.5Mbps

5.0Mbps

12Mbps

ファイルサイズによる差が拡大

3,1074,3547,00912,111100msec 海外

1,8862,4453,8096,44750msec

1,2001,5002,2203,69025msec 国内

5514394576420msec LAN

512KB(6,500)

256KB(12,695)

128KB(25,060)

64KB(49,722)

LBCASサイズ(ファイル数)

終了時間(second)

• Internetではレイテンシの影響は大きく、LBCASサイズが大きくダウン

ロードファイル数が少ないほど有利– レイテンシ長いほど差が拡大

0ms

25ms

50ms

100ms

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

16

LBCASの特徴

• LBCASサイズとI/Oリクエストの関係

ファイル数 少

展開ロス 大スループット 大

ファイル数 多展開ロス 少スループット 小

サイズ 小回数 多

サイズ 大

回数 少

ネットワークで有利Storage Cacheで有利

LBCASサイズ 少 LBCASサイズ 大

OSからのI/Oリクエスト

LBCAS内の処理

• Internetで効率的にするにはLBCASを大きくする必要がある– ファイルシステムのデータブロックを再配置することで、I/Oサイズの拡大

(回数の減少)、および展開ロスの低減を図る

データの特徴の改善

アクセスパターンの改善

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

17

発表内容

• LBCAS(ネットワーク透過ディスク)の詳細– CASとの違い– Storage Cacheと Memory Cache

• LBCASの性質– ディスクプリフェッチ(readahead)の影響

– データ、分割サイズ、ネットワークレイテンシの影響

• OS起動に対する 適化– ファイルシステムのデータブロックの再配置

• ext2optimizer

– ネットワークに対する 適化

• まとめ

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

18

LBCASから起動するための 適化

• 起動時のFSアクセスに対する 適化– アクセスプロファイルに従ったブロック再配置

(ext2optimizer)により参照局所性を高め、ページキャッシュヒット率を上げる

• ネットワークに対する 適化– 起動プロファイルによる先行ダウンロード(DLAHEAD)

• 比較対象– 転送されるOS (4GB LBCAS)

• Linux(KNOPPIX4.0.2 kernel 2.6.12)– クライアント ThinkPAD X60, KVM-60

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

19

アクセスプロファイルによる再配置

VFS

File System Driver (ext2/3)

Profiler

Page Cache (Memory)

Access Profile(via /proc/ )

App

Kernel

User

ext2optimizer

Page Cache (Memory)

VFS

File System Driver (ext2/3)

App

Reallocate

Block Driver (Loopback)

Block Driver (Loopback)

readaheadの拡大I/O回数の低減

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

20

ブロック再配置:ext2optimizer [LinuxKongress06]

Triple Indirect

Double Indirect

Indirect Blocks

Direct Blocks

Timestamps

Size

Owner info

Mode

• アクセスプロファイルに従ってi-nodeのデータブロックアドレスの付け替えのみ– ドライバの変更不要

– ファイルから見るとフラグメンテーションを起こす場合がある

– キャッシュヒット率が上がり、readaheadのサイズが大きくなる

Triple Indirect

Double Indirect

Indirect Blocks

Direct Blocks

Timestamps

Size

Owner info

Mode

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

21

DAVL (Disk Allocation Viewer for Linux)によるext2opt解析

Original Fragmentation 0.09%

Ext2optFragmentation 0.27%

システムブロック

連続ブロック

非連続ブロック

起動で使われるブロック

集約することで少ないLBCASブロック数になる

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

22

起動時の読出し位置

• ext2optimzerでの 適化効果

Address (GB)

Tim

e (s

)

0 1.0 2.0 3.0 4.0

赤:normal青:ext2opt

参照の局所化

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

23

ext2optimizerが及ぼすI/Oへの影響ext2optNormal

182MB(freq:5500, size:33KB)

101MB

126MB(file:3,636 size:28KB)

112MB(freq:1700,size:67KB)

I/OリクエストReadaheadによる先読みを含む(数,平均I/Oサイズ)

101MB読出し要求データ総量

126MB(file:3,636 size:28KB)

読出しファイル総量(数,平均ファイルサイズ)

39.5(140),80.4%, [267]142(457), 39.7%, [871]512KB

38.3(127),88.5%, [485]107(342), 53.2%, [1,303]256KB

37.4(120),93.4%, [914]85.1(270), 67.2%,[2,063]128KB

37.0(115),97.5%, [1,761]72.5(228), 80.0%, [3,477]64KB

ext2optNormal

• ダウンロード総量MB(展開後MB)、ブロックファイル内の有効データ割合%、[ファイル数]

2/31/31/2

高い有効データ割合少ないファイル数

1/2 以下

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

24

LBCASの消費時間

0

5

10

15

20

25

30

35

40

45

50

64KB 128KB 256KB 512KB 64KB 128KB 256KB 512KB

etc

uncompress

file

download

0

10

20

30

40

50

60

70

80

90

100

64KB 128KB 256KB 512KB 64KB 128KB 256KB 512KB

Boot

LBCAS

38.7% 39.8% 43.1% 49.8% 21.3% 20.1% 22.3% 26.3%

76.5% 72.3% 62.4% 41.0% 73.7% 68.9% 64.5% 56.1%

19.3% 23.6% 32.4% 41.0%

21.7% 26.4% 30.7% 35.5%

• 起動時間に対するLBCAS

• LBCAS内の内訳

Normal Ext2Opt

Normal Ext2Opt

Time (s)

Time (s)

512KBでは効率の

悪い展開が増大

レイテンシが長くなると小さいLBCASサイズは影響が大きい。

Storage Cache後の展開オーバーヘッドも考慮して256KBを

標準として採用。

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

25

レイテンシに対する対処

• 先行ダウンロード– DLAHEAD

• 起動のプロファイルから必要なブロックファイルを先行してStorage Cacheにダウンロードする機能

• デフォルトで4並列のストリームダウンロード

• LBCASのデバイス設定時に開始

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

26

LBCASの消費時間

0

50

100

150

200

250

300

350

400

450

Norm

al(6

2%)

Ext2

Opt

(65%

)

Norm

alDL(

0.9%

)

Ex2O

ptDL

(34%

)No

rmal

(88%

)

Ext2

Opt

(89%

)

Norm

alDL(

34%)

Ex2O

ptDL

(49%

)No

rmal

(93%

)

Ext2

Opt

(93%

)

Norm

alDL(

29%)

Ex2O

ptDL

(31%

)Nor

mal

(96%

)

Ext2

Opt

(96%

)

Norm

alDL

(58%

)

Ex2O

ptDL

(47%

)

etc

uncompress

storage

download

• 起動時間に対するLBCAS

• LBCASの内訳

0

50

100

150

200

250

300

350

400

450

Boot

LBCAS

Latency 0ms 25ms 50ms 100ms

Latency 0ms 25ms 50ms 100ms

Time (s)

Time (s)

DLAHEADを使えば、normal,ext2optで起動時間が変わらない

DLAHEADが一部間に合わない

DLAHEADを適用すれば起動時

のレイテンシは隠ぺいできるNormalでも50msecまで隠

ぺい

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

27

展開• 任意のOSをインストールなしでネットワークから起

動させる “OS Circular”

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

28

Our target

Stream download

COW of VMwareCollective [NSDI’05]Ventana [NSDI’06]

Virtual MachineReal Machine

LivePC of Moka5streaming

Lightweight virtualizationMobiDesk[MobiCom’04]

(Display, NIC only)

Internet Suspend/ResumeCAS [USENIX’06]

PeabodyCAS[IEEE MSS’03]

LiveCD

SBUML [JSSST]streaming

Ondemanddownload

Virtual Disk file for QEMU[OS Zoo Project]

Staleless Linux of RedHat

Bulkdownload

SFS-KNOPPIX[IEEE-NCA’06]

関連研究

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

29

まとめ

• LBCASの性質をデータの特徴、アクセスパターン、LBCASサイズ、レイテンシなどを変えて解析した。

– Storage Cache, Memory Cacheの重要性確認

– LBCASサイズと展開ロス、およびディスクプリフェッチの効率

の重要性確認

• OS起動に適用するためにext2ファイルシステムのデータ再配置(ext2optimzer)を開発し、ブロック数の削減(半分以下)と高速起動を確認した。

• ネットワークレイテンシはDLAHEADにより隠ぺいでき、50msec程度なら影響がでないことを確認した。