Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduction to windows azure storage

2,021 views

Published on

Published in: Technology
  • Be the first to comment

Introduction to windows azure storage

  1. 1. Windows Azure Storage再入門kyrt @takekazuomi公開情報から読むWindows Azure Storageの仕組みhttp://www.slideshare.net/takekazuomi/gwab-windows-azure-storage
  2. 2. アジェンダ• Storageの3つの種類とAzure Platform内のRole• WASのアーキテクチャ コンポーネント• ストレージスタンプのレイヤー構造• ストリームレイヤーの概要• sealed extentsのeraser coding• パーテーションレイヤの概要• コミット ログ ストリーム、ブルーム フィルター• Gen2の変更点2013/4/27 kyrt @takekazuomi 2
  3. 3. blob, table, queue• 種類は3つ、Windows Azure Platform の基盤を構成する分散Storage• Blobが大活躍Blob Table Queuerest file system• Block/Page• CDN• Virtual Machine OS/DataDisk• Azure Drive• etcstructure datakey/valueschema less• diagnostics• etcmessaging queue• storage base rpc• etc2013/4/27 kyrt @takekazuomi 3
  4. 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.aspx2013/4/27 kyrt @takekazuomi 4
  5. 5. Windows Azure Storageのアーキテクチャーコンポーネントsfront endpartition Layerstream layerstorage stampVIPsfront endpartition Layerstream layerstorage stampVIPDNSロケーションサービスアカウント管理DNS参照blob, table, queueへのアクセスstamp間リプリケーション2013/4/27 kyrt @takekazuomi 5
  6. 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. 7. stream layer• stream へのWriteは、Appendのみ• Open/Close/Delete/Rename/Read/Apped/Concatpointer of extent E1B11B12・・・B1xextent E1 - sealedpointer of extent E2B21B22・・・B2xextent E2 - sealedpointer of extent E3B31B32・・・B3xextent E1 - sealedpointer of extent E4B41B42B43extent E1 - unsealedstream //bar2013/4/27 kyrt @takekazuomi 7
  8. 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. 9. partition layer architecturepartition maptablepartitionmanagerpartition server 1 partition server 1 partition server 1paxoslockservicefront endstream layerpartition layerupdatereadupdate leasewatch leaseassign partition2013/4/27 kyrt @takekazuomi 9
  10. 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. 11. range partition の処理commit log streammeta data streamrow data streamblob data streamstream layerpartition layermemory table row page cache bloom filterreadwrite2013/4/27 kyrt @takekazuomi 11
  12. 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フラット ネットワークソフトウェア ロードバランサーSSD2013/4/27 kyrt @takekazuomi 12
  13. 13. Azure Storage Client• .NET Framework• https://github.com/WindowsAzure/azure-sdk-for-nodenuget• 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-rubygem2013/4/27 kyrt @takekazuomi 13
  14. 14. 最後に• 今回の内容は、Azure Storage TeamがSOSPで発表した内容に基づいています• 23rd ACM Symposium on Operating Systems Principles(SOSP)"Windows Azure Storage: A Highly Available Cloud StorageService with Strong Consistency“翻訳もあります• Windows Azure ストレージ: 高可用性と強い一貫を両立する クラウド ストレージ サービス• http://msdn.microsoft.com/ja-jp/windowsazure/dd439432#leaning2013/4/27 kyrt @takekazuomi 14

×