Recommended
Postgresqlのワーキングセットが大きくなる現象について
Reverse proxyによるWebサーバの負荷分散構成
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
Windows Azure Storage:Best Practices and Internals
【学習メモ#9th】12ステップで作る組込みOS自作入門
Microsoft Azure Storage 概要
Azure Storage Partition Internals
Persistence on Azure - Microsoft 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
More Related Content
Postgresqlのワーキングセットが大きくなる現象について
Reverse proxyによるWebサーバの負荷分散構成
丸の内MongoDB勉強会#20LT 2.8のストレージエンジン動かしてみました
What's hot (7) HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
Windows Azure Storage:Best Practices and Internals
【学習メモ#9th】12ステップで作る組込みOS自作入門
Similar to Introduction to windows azure storage (20)
Microsoft Azure Storage 概要
Azure Storage Partition Internals
Persistence on Azure - Microsoft 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
今改めて学ぶ Microsoft Azure 基礎知識
Azure reliability v0.1.21.0422
Windows Azureストレージ機能のまとめとWindows Server 2016(vNext)のストレージ新機能
Part 2: Data & AI 基盤 (製造リファレンス・アーキテクチャ勉強会)
More from Takekazu Omi (20) jazug34 Container Apps Key Vault
Bicep + VS Code で楽々Azure Deploy
Introduction of Azure Docker Integration
Cosmos DB Consistency Levels and Introduction of TLA+
20180421 Azure Architecture Cloud Design Patterns
Azure Application Insights とか
Cosmos DB 入門 multi model multi API編
Global Azure Bootcamp 2017 DocumentDB Deep Dive
Azure Service Fabric Cluster の作成
Azure Service Fabric Actor
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
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
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