Windows Azure Storage
再入門
kyrt @takekazuomi
公開情報から読むWindows Azure Storageの仕組み
http://www.slideshare.net/takekazuomi/gwab-windows-azure-storage
アジェンダ
• Storageの3つの種類とAzure Platform内のRole
• WASのアーキテクチャ コンポーネント
• ストレージスタンプのレイヤー構造
• ストリームレイヤーの概要
• sealed extentsのeraser coding
• パーテーションレイヤの概要
• コミット ログ ストリーム、ブルーム フィルター
• Gen2の変更点
2013/4/27 kyrt @takekazuomi 2
blob, table, queue
• 種類は3つ、Windows Azure Platform の基盤を構成する分散
Storage
• Blobが大活躍
Blob Table Queue
rest file system
• Block/Page
• CDN
• Virtual Machine OS/Data
Disk
• Azure Drive
• etc
structure data
key/value
schema less
• diagnostics
• etc
messaging queue
• storage base rpc
• etc
2013/4/27 kyrt @takekazuomi 3
partitionは分散の単位
• Blob, Table ,Queueのpartition
• Blobは、URL毎、Tableは、 partition key、Queueはqueue毎で別のpartition
• partitionのパフォーマンスターゲット
• 2,000 tran/s(queue/table)
• 480Mbps/s (blob)
• アカウント全体
• 20,000 tran/s(table,queue)※
• 受信 – 10GBps
• 送信 – 15GBps
参照:
http://blogs.msdn.com/b/windowsazure/archive/2012/11/02/windows-
azure-s-flat-network-storage-and-2012-scalability-targets.aspx
2013/4/27 kyrt @takekazuomi 4
Windows Azure Storageの
アーキテクチャーコンポーネント
s
front end
partition Layer
stream layer
storage stamp
VIP
s
front end
partition Layer
stream layer
storage stamp
VIPDN
S
ロケーション
サービス
アカウント管理
DNS参照
blob, table, queueへ
のアクセス
stamp間リプリケーション
2013/4/27 kyrt @takekazuomi 5
3つのレイヤー
• stream layer
• このレイヤでデータをディスクに永続化。DFSのようなもの。stream と呼ば
れるファイルを使い。保存方法とリプリケーションを実装する。streamは、
extentのordered list。
• このレイヤは、Blob, Tableなどの構造やセマンティックに依存しない。
• partition layer
• 高レベルのデータ構造(blob, table, queue)を実装
• オブジェクトに対するトランザクションの順序付、一貫性の確保を実装
• オブジェクトデータのキャッシュ
• front end
• リクエストのpartition server へ転送
• serverと、 partitionの割り振りを管理するpartition mapを保持
2013/4/27 kyrt @takekazuomi 6
stream layer
• stream へのWriteは、Appendのみ
• Open/Close/Delete/Rename/Read/Apped/Concat
pointer of extent E1
B1
1
B1
2
・
・
・
B1
x
extent E1 - sealed
pointer of extent E2
B2
1
B2
2
・
・
・
B2
x
extent E2 - sealed
pointer of extent E3
B3
1
B3
2
・
・
・
B3
x
extent E1 - sealed
pointer of extent E4
B4
1
B4
2
B4
3
extent E1 - unsealed
stream //bar
2013/4/27 kyrt @takekazuomi 7
sealed extentの最適化
• シールされたextentをreplication -> erasure codingで最適化
• リード・ソロモン符号を使って最適化
• 単純に3重にリプリケーションした場合3倍のコストだが1.3-1.5倍の
コストに低減できる
この辺りは日々改善
• Local Reconstruction Codes (LRCs)
• LRCは3つの障害があっても100%の復元でき、3つのレプリカや
6+3リードソロモンより耐久性に優れている。
• LCRはリードソロモンより14%データオーバーヘッドが小さく、少な
いデータフラグメントの読み込みで復旧することができる
2013/4/27 kyrt @takekazuomi 8
partition layer architecture
partition map
table
partition
manager
partition server 1 partition server 1 partition server 1
paxos
lock
service
front end
stream layer
partition layer
updateread
update lease
watch lease
assign partition
2013/4/27 kyrt @takekazuomi 9
partition layer
• Object Table
• partition layerの主な仕事はOTの管理と運用
• OT内は、Range Partition( low-keyからhigh-keyまで)に分かれてい
て、 Range Partitionは スタンプ内のパーティション サーバー 分散し
ます
• Range Partitionの範囲は負荷によって変動
• Range Partitionとpartition serverの割り振りは、 Partition Manager
(クラスタ)が行い。調停にはPaxosロック サービス が使われます
2013/4/27 kyrt @takekazuomi 10
range partition の処理
commit log stream
meta data stream
row data stream
blob data stream
stream layer
partition layer
memory table row page cache bloom filter
readwrite
2013/4/27 kyrt @takekazuomi 11
第2世代storageの改善点
参照: http://satonaoki.wordpress.com/2012/11/03/windows-azure%E3%81%AE%E3%83%95%E3%83%A9%E3%83%83%E3%83%88-
%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF-
%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E3%81%A82012%E5%B9%B4%E7%89%88%E3%82%B9/
ストレージSKU
ストレージ ノード
ネットワーク速度
コンピューティング
とストレージとの間
のネットワーク
ロード バランサー
ジャーナリングに使
われるストレージデ
バイス
第1世代 1Gbps 階層型ネットワーク
ハードウェア ロード
バランサー
ハード ディスク ドラ
イブ (HDD)
第2世代 10Gbps
フラット ネットワー
ク
ソフトウェア ロード
バランサー
SSD
2013/4/27 kyrt @takekazuomi 12
Azure Storage Client
• .NET Framework
• https://github.com/WindowsAzure/azure-sdk-for-node
nuget
• node.js
• https://github.com/WindowsAzure/azure-sdk-for-node npm
• java
• https://github.com/WindowsAzure/azure-sdk-for-java maven
• python
• https://github.com/WindowsAzure/azure-sdk-for-python PyPI
• ruby
• https://github.com/WindowsAzure/azure-sdk-for-ruby
gem2013/4/27 kyrt @takekazuomi 13
最後に
• 今回の内容は、Azure Storage TeamがSOSPで発表した内容に
基づいています
• 23rd ACM Symposium on Operating Systems Principles
(SOSP)
"Windows Azure Storage: A Highly Available Cloud Storage
Service with Strong Consistency“
翻訳もあります
• Windows Azure ストレージ: 高可用性と強い一貫を両立する ク
ラウド ストレージ サービス
• http://msdn.microsoft.com/ja-jp/windowsazure/dd439432#leaning
2013/4/27 kyrt @takekazuomi 14

More Related Content

PPT
CometPub20070223
PPTX
Postgresqlのワーキングセットが大きくなる現象について
PDF
Reverse proxyによるWebサーバの負荷分散構成
PDF
PPTX
CakePHP3使ってみて
PDF
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
PPTX
RPCノード構築方法【Litecoin】
PDF
Ssaw08 0617
CometPub20070223
Postgresqlのワーキングセットが大きくなる現象について
Reverse proxyによるWebサーバの負荷分散構成
CakePHP3使ってみて
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
RPCノード構築方法【Litecoin】
Ssaw08 0617

What's hot (7)

PPTX
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
PPTX
Windows Azure Storage:Best Practices and Internals
PPTX
ParliamentでGeoSPARQL
PDF
新生Lagopus2017(仮称)
PDF
membase
PDF
ニューラルネットワーク勉強会5
PDF
【学習メモ#9th】12ステップで作る組込みOS自作入門
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
Windows Azure Storage:Best Practices and Internals
ParliamentでGeoSPARQL
新生Lagopus2017(仮称)
membase
ニューラルネットワーク勉強会5
【学習メモ#9th】12ステップで作る組込みOS自作入門
Ad

Similar to Introduction to windows azure storage (20)

PPTX
ふりかえり Windows Azure
PDF
Microsoft Azure Storage 概要
PPTX
201910 azure seminar
PPTX
Azure Storage Partition Internals
PPTX
Persistence on Azure - Microsoft Azure の永続化
PPTX
20151024 Azureデータストア概要
PPTX
CLR/H勉強会44回目 Windows Azureストレージについて
PDF
今こそ知りたい!Microsoft Azureの基礎
PPTX
第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編
PDF
Windows Azure Storage Client 2.1 のBuffer Pooling
PDF
Windows Azureプラットフォーム 現場からの報告
PPTX
Tech Night Recap Sapporo - Build 2023 Azure
PDF
[Japan Tech summit 2017] DAL 005
PDF
はじめての Azure 開発
PPT
Keynote
PDF
今改めて学ぶ Microsoft Azure 基礎知識
PDF
Azure reliability v0.1.21.0422
PPTX
Windows Azureストレージ機能のまとめとWindows Server 2016(vNext)のストレージ新機能
PDF
Part 2: Data & AI 基盤 (製造リファレンス・アーキテクチャ勉強会)
PDF
俺的 Build 2020 Update まとめ
ふりかえり Windows Azure
Microsoft Azure Storage 概要
201910 azure seminar
Azure Storage Partition Internals
Persistence on Azure - Microsoft Azure の永続化
20151024 Azureデータストア概要
CLR/H勉強会44回目 Windows Azureストレージについて
今こそ知りたい!Microsoft Azureの基礎
第8回 Tokyo Jazug Night Ignite 2017 落穂拾い Storage編
Windows Azure Storage Client 2.1 のBuffer Pooling
Windows Azureプラットフォーム 現場からの報告
Tech Night Recap Sapporo - Build 2023 Azure
[Japan Tech summit 2017] DAL 005
はじめての Azure 開発
Keynote
今改めて学ぶ Microsoft Azure 基礎知識
Azure reliability v0.1.21.0422
Windows Azureストレージ機能のまとめとWindows Server 2016(vNext)のストレージ新機能
Part 2: Data & AI 基盤 (製造リファレンス・アーキテクチャ勉強会)
俺的 Build 2020 Update まとめ
Ad

More from Takekazu Omi (20)

PDF
jazug34 Container Apps Key Vault
PDF
bicep 0.5 pre
PDF
Bicep + VS Code で楽々Azure Deploy
PDF
Bicep 入門 MySQL編
PDF
//Build 2021 FASTER 紹介
PDF
//build 2021 bicep 0.4
PDF
bicep 紹介
PDF
bicep dev container
PDF
Introduction of Azure Docker Integration
PPTX
Cosmos DB Consistency Levels and Introduction of TLA+
PPTX
20180421 Azure Architecture Cloud Design Patterns
PPTX
Azure Application Insights とか
PDF
life with posh
PPTX
Cosmos DB 入門 multi model multi API編
PPTX
Global Azure Bootcamp 2017 DocumentDB Deep Dive
PPTX
Azure Service Fabric Cluster の作成
PPTX
Azure Service Fabric Actor
PPTX
祝GA、 Service Fabric 概要
PPTX
Azure Fabric Service Reliable Collection
PPTX
Servcie Fabric and Cloud Design Pattern
jazug34 Container Apps Key Vault
bicep 0.5 pre
Bicep + VS Code で楽々Azure Deploy
Bicep 入門 MySQL編
//Build 2021 FASTER 紹介
//build 2021 bicep 0.4
bicep 紹介
bicep dev container
Introduction of Azure Docker Integration
Cosmos DB Consistency Levels and Introduction of TLA+
20180421 Azure Architecture Cloud Design Patterns
Azure Application Insights とか
life with posh
Cosmos DB 入門 multi model multi API編
Global Azure Bootcamp 2017 DocumentDB Deep Dive
Azure Service Fabric Cluster の作成
Azure Service Fabric Actor
祝GA、 Service Fabric 概要
Azure Fabric Service Reliable Collection
Servcie Fabric and Cloud Design Pattern

Introduction to windows azure storage

  • 1. Windows Azure Storage 再入門 kyrt @takekazuomi 公開情報から読むWindows Azure Storageの仕組み http://www.slideshare.net/takekazuomi/gwab-windows-azure-storage
  • 2. アジェンダ • Storageの3つの種類とAzure Platform内のRole • WASのアーキテクチャ コンポーネント • ストレージスタンプのレイヤー構造 • ストリームレイヤーの概要 • sealed extentsのeraser coding • パーテーションレイヤの概要 • コミット ログ ストリーム、ブルーム フィルター • Gen2の変更点 2013/4/27 kyrt @takekazuomi 2
  • 3. blob, table, queue • 種類は3つ、Windows Azure Platform の基盤を構成する分散 Storage • Blobが大活躍 Blob Table Queue rest file system • Block/Page • CDN • Virtual Machine OS/Data Disk • Azure Drive • etc structure data key/value schema less • diagnostics • etc messaging queue • storage base rpc • etc 2013/4/27 kyrt @takekazuomi 3
  • 4. partitionは分散の単位 • Blob, Table ,Queueのpartition • Blobは、URL毎、Tableは、 partition key、Queueはqueue毎で別のpartition • partitionのパフォーマンスターゲット • 2,000 tran/s(queue/table) • 480Mbps/s (blob) • アカウント全体 • 20,000 tran/s(table,queue)※ • 受信 – 10GBps • 送信 – 15GBps 参照: http://blogs.msdn.com/b/windowsazure/archive/2012/11/02/windows- azure-s-flat-network-storage-and-2012-scalability-targets.aspx 2013/4/27 kyrt @takekazuomi 4
  • 5. Windows Azure Storageの アーキテクチャーコンポーネント s front end partition Layer stream layer storage stamp VIP s front end partition Layer stream layer storage stamp VIPDN S ロケーション サービス アカウント管理 DNS参照 blob, table, queueへ のアクセス stamp間リプリケーション 2013/4/27 kyrt @takekazuomi 5
  • 6. 3つのレイヤー • stream layer • このレイヤでデータをディスクに永続化。DFSのようなもの。stream と呼ば れるファイルを使い。保存方法とリプリケーションを実装する。streamは、 extentのordered list。 • このレイヤは、Blob, Tableなどの構造やセマンティックに依存しない。 • partition layer • 高レベルのデータ構造(blob, table, queue)を実装 • オブジェクトに対するトランザクションの順序付、一貫性の確保を実装 • オブジェクトデータのキャッシュ • front end • リクエストのpartition server へ転送 • serverと、 partitionの割り振りを管理するpartition mapを保持 2013/4/27 kyrt @takekazuomi 6
  • 7. stream layer • stream へのWriteは、Appendのみ • Open/Close/Delete/Rename/Read/Apped/Concat pointer of extent E1 B1 1 B1 2 ・ ・ ・ B1 x extent E1 - sealed pointer of extent E2 B2 1 B2 2 ・ ・ ・ B2 x extent E2 - sealed pointer of extent E3 B3 1 B3 2 ・ ・ ・ B3 x extent E1 - sealed pointer of extent E4 B4 1 B4 2 B4 3 extent E1 - unsealed stream //bar 2013/4/27 kyrt @takekazuomi 7
  • 8. sealed extentの最適化 • シールされたextentをreplication -> erasure codingで最適化 • リード・ソロモン符号を使って最適化 • 単純に3重にリプリケーションした場合3倍のコストだが1.3-1.5倍の コストに低減できる この辺りは日々改善 • Local Reconstruction Codes (LRCs) • LRCは3つの障害があっても100%の復元でき、3つのレプリカや 6+3リードソロモンより耐久性に優れている。 • LCRはリードソロモンより14%データオーバーヘッドが小さく、少な いデータフラグメントの読み込みで復旧することができる 2013/4/27 kyrt @takekazuomi 8
  • 9. partition layer architecture partition map table partition manager partition server 1 partition server 1 partition server 1 paxos lock service front end stream layer partition layer updateread update lease watch lease assign partition 2013/4/27 kyrt @takekazuomi 9
  • 10. partition layer • Object Table • partition layerの主な仕事はOTの管理と運用 • OT内は、Range Partition( low-keyからhigh-keyまで)に分かれてい て、 Range Partitionは スタンプ内のパーティション サーバー 分散し ます • Range Partitionの範囲は負荷によって変動 • Range Partitionとpartition serverの割り振りは、 Partition Manager (クラスタ)が行い。調停にはPaxosロック サービス が使われます 2013/4/27 kyrt @takekazuomi 10
  • 11. range partition の処理 commit log stream meta data stream row data stream blob data stream stream layer partition layer memory table row page cache bloom filter readwrite 2013/4/27 kyrt @takekazuomi 11
  • 12. 第2世代storageの改善点 参照: http://satonaoki.wordpress.com/2012/11/03/windows-azure%E3%81%AE%E3%83%95%E3%83%A9%E3%83%83%E3%83%88- %E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF- %E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E3%81%A82012%E5%B9%B4%E7%89%88%E3%82%B9/ ストレージSKU ストレージ ノード ネットワーク速度 コンピューティング とストレージとの間 のネットワーク ロード バランサー ジャーナリングに使 われるストレージデ バイス 第1世代 1Gbps 階層型ネットワーク ハードウェア ロード バランサー ハード ディスク ドラ イブ (HDD) 第2世代 10Gbps フラット ネットワー ク ソフトウェア ロード バランサー SSD 2013/4/27 kyrt @takekazuomi 12
  • 13. Azure Storage Client • .NET Framework • https://github.com/WindowsAzure/azure-sdk-for-node nuget • node.js • https://github.com/WindowsAzure/azure-sdk-for-node npm • java • https://github.com/WindowsAzure/azure-sdk-for-java maven • python • https://github.com/WindowsAzure/azure-sdk-for-python PyPI • ruby • https://github.com/WindowsAzure/azure-sdk-for-ruby gem2013/4/27 kyrt @takekazuomi 13
  • 14. 最後に • 今回の内容は、Azure Storage TeamがSOSPで発表した内容に 基づいています • 23rd ACM Symposium on Operating Systems Principles (SOSP) "Windows Azure Storage: A Highly Available Cloud Storage Service with Strong Consistency“ 翻訳もあります • Windows Azure ストレージ: 高可用性と強い一貫を両立する ク ラウド ストレージ サービス • http://msdn.microsoft.com/ja-jp/windowsazure/dd439432#leaning 2013/4/27 kyrt @takekazuomi 14