Upload
takekazu-omi
View
3.256
Download
3
Embed Size (px)
Citation preview
Azure Storage Data Movement Library
PageBlob Download kyrt / Takekazu Omi
2015/9/5 R.1.1
22015/9/5 kyrt inc.
3
自己紹介
近江 武一JAZUG Azure Storage 担当(自称)Microsoft MVP for Azure http://www.slideshare.net/takekazuomi
kyrt.in
github.com/takekazuomiwhite
paper
監訳
2015/9/5 kyrt inc.
4
Data Movement LibraryAzure Storage のデータ転送ツール
⇨Azure Storage 用の ETL ライブラリ的な位置付け
kyrt inc.2015/9/5
DML Matrix元 / 先 Local Blob File Url
Local なし DownloadAsync
DownloadAsync なし
Blob UploadAsync CopyAsync CopyAsync CopyAsyncFile UploadAsync CopyAsync CopyAsync CopyAsync
5
なんのためにあるのか?
大量のデータ転送用に AzCopy というツールがある
Azure Storage Client Library で、 AzCopy と同じパフォーマンスを出すのは結構大変⇨普通に書くとかなり違う一桁違うことも
kyrt inc.2015/9/5
6
結構大変ってどういうこと?
Azure Storage の性能を限界まで引き出すためには特性に合わせたチューニングが・・・・
基本戦略1. 並列化2. 転送量の最小化
kyrt inc.2015/9/5
7
Page Blob Download 最適化
例として Page Blob の話をしますPage Blob は、 Azure の仮想マシンの
DISK を提供する仕組み。⇨vhd を page blob に配置
NTFS では、 File は sparse file になる
kyrt inc.2015/9/5
8
Page Blob での sparse file の実装
Azure Page Blob も、 sparse fileつまり、データの入ってないところは、
ダウンロードのときにスキップできるこれが、最適化の例Storage SDK だ
と、 GetPageRangesAsync() で使っている部分を拾える
kyrt inc.2015/9/5
9
Data Movement Library を使うと、この辺りを勝手にやってくれる
kyrt inc.2015/9/5
10kyrt inc.2015/9/5
foreach (var pageRange in await this.pageBlob.GetPageRangesAsync( rangesSpan.StartOffset, rangesSpan.EndOffset - rangesSpan.StartOffset + 1, accessCondition, Utils.GenerateBlobRequestOptions(this.Location.BlobRequestOptions), Utils.GenerateOperationContext(this.Controller.TransferContext), this.CancellationToken)) { rangeList.Add(new Range() { StartOffset = pageRange.StartOffset, EndOffset = pageRange.EndOffset, HasData = true }); }
https://github.com/Azure/azure-storage-net-data-movement/blob/master/lib/TransferControllers/TransferReaders/PageBlobReader.cs#L70
11
並列化実装の話はhttp://kyrt.in/2015/09/25/intro_azure_storage_data_movement_library.html
kyrt inc.2015/9/5
12
参照
2015/9/5 kyrt inc.
13
Introducing Azure Storage Data Movement Library Preview⇨ http://
blogs.msdn.com/b/windowsazurestorage/archive/2015/09/23/introducing-azure-storage-data-movement-library-preview.aspx
Getting the Page Ranges of a Large Page Blob in Segments⇨ http://
blogs.msdn.com/b/windowsazurestorage/archive/2012/03/26/getting-the-page-ranges-of-a-large-page-blob-in-segments.aspx
AzCopy コマンド ライン ユーティリティの概要⇨ https
://azure.microsoft.com/ja-jp/documentation/articles/storage-use-azcopy/
kyrt inc.2015/9/5