kyrt @takekazuomi

1
ふりかえり Windows Azure
2014/3/6 1.0.0

kyrt Takekazu Omi
takekazu.omi@kyrt.in
@takekazuomi
ふりかえり Windows Azure
Japan Geo も開設した、Windows Azure
今が“ふりかえり”のいい時期です。
今一度、最初の疑問にもどって、Windows Azureを捉え直してみましょう
2014/2/26

kyrt @takekazuomi

3
結局のところ、レンサバと何処が違
うの?
Key Word は、巨大データセン
ター、自動運用
• 100万台を超えるサーバを持って
いる(バルマー、WPC 2013)
• http://www.publickey1.jp/blog/13/ms
100googleamazon.html

• 数十万台のサーバを備える最新
データセンター、管理はわずか数
十人
• http://www.publickey1.jp/blog/09/pos
t_52.html

シカゴにあるMicrosoftのデータセンター内部 提供:Microsof
2014/2/26

kyrt @takekazuomi

4
サーバー数は

Google > Microsoft > Amazon
「そして Yahoo や Facebook 、そのほかどの企業も、10万ユニットかそれ以下の規模で
ある」
バルマー談 WPC 2013

kyrt @takekazuomi

5
サーバーってどんなの?
• 先日、 MSがサーバー設計をOpen
Compute Project にコントリビュート

• http://www.opencompute.org/wiki/Motherboard/
SpecsAndDesigns#Specs_and_Designs

• Rack(3 or 4c), Chassis(12U, 24sb), Server
blades(1U,)
• server blades (compute or storage)
• 最大96 server / rack
• 10 E5-2400 each compute blade

• ChassisManager

• サーバー診断、電力供給、ファンコントロール
等H/W管理用のCodeをコントリビュート
• https://github.com/MSOpenTech/ChassisManag
er/
kyrt @takekazuomi

Microsoft’s Cloud Server Hardware
from Data Center Knowledge

6
The Fabric Controller (FC) – 自動運用
• cloud operating system の “kernel”
• datacenter hardware の管理
• Windows Azure service の管理

• 4つの主な役割
• Datacenter リソースの確保
• Datacenter リソースの
調達
• Service lifecycle の管理
• Service health の管理

SQL
Server

Word

Server

SQL
Azure

Datacenter

Windows Azure Internals AZR302 - Mark Russinovich

• FCは、Infrastructureをcodeで制御ために仕組み
• Infrastructures as Code !

Exchange
Online
省力化の例
• ハードウェアの故障
• 修理、交換せずに別のものを使う
• 故障数がスレッショルドを超えたら
対応

• 同一構成のハードウェアに揃える
• 代わりに使える物理サーバーが増え
る
• A1, A2, A3, A4 は同じ物理サーバー、
A5,A6,A7(多分同じ)、A8,A9(??)
Windows

Azure クラウドサービスに InfiniBand 採用の
A8、A9 インスタンスを追加

kyrt @takekazuomi

8
InfrastructureをCode
で・・・・
InfrastructureがCodeで制御できるようになると、世界が変わります

kyrt @takekazuomi

9
開発言語

アプリケーション
キャッシュ

Web
サイト

クラウド
サービス

ID

仮想
マシン

モバイル
サービス

コンピューティング

?

サービスバス

メディア

CDN

バックアップ

HPC

SQL

データベース

ビックデータ

テーブル

データ管理

BLOB

データ分析

仮想
ネットワーク

統合

トラフィック
マネージャー

ネットワーク

世界規模のクラウド基盤
サーバー/ ネットワーク/ データセンター
高度な自動化

柔軟性

統合リソース管理

従量課金

北米4カ所、ヨーロッパ2カ所、アジア2カ所、日本2カ所
豪州2カ所 + CDN 24 カ所

2014/2/26

kyrt @takekazuomi

10
Windows Azure Storage
例としてStorage を深堀りして見よう!

2014/2/26

kyrt @takekazuomi

12
Windows Azure Storage は基盤
• Azureの随所で使われている、Cloud 永続化レイヤー
• Blob, Table, Queueがある。3つは共通の仕組上に構築
• Azure内でも諸々の用途に利用
Diagnostics

Table

CDN

CloudDrive

OS/Dat
a Disk

Blob

Media Services

Queue

Azure Storage Clusters
2014/2/12

kyrt @takekazuomi

13
Design Goals
• 強い一貫性の元での高い可用性の実現 (Highly Available with Strong
Consistency)
• 障害や分断に直面してもデータアクセスを提供

• 永続性(Durability)

• データの複数の複製の保持、(regions 間)

• スケーラビリティ(Scalability)

• zettabytes へのスケール
• 世界中からアクセスできるglobal namespaceの提供
• peak traffic 時の、automatically scale out と load balance

• 追加情報、SOSP paper に詳細情報がでています:

• “Windows Azure Storage: A Highly Available Cloud Storage Service with
Strong Consistency”, ACM Symposium on Operating System Principals
(SOSP), Oct. 2011

2014/2/12

kyrt @takekazuomi

14
Windows Azure Storageの
アーキテクチャーコンポーネ
ント
DNS参照
blob, table, queueへ
のアクセス

ロケーション
サービス
アカウント管理

VIP

DN
S

front end

VIP

front end

partition layer
s

partition layer
s
stamp間リプリケーション

stream layer

stream layer

stamp内リプリケーション

stamp内リプリケーション

storage stamp
2014/2/12

storage stamp
kyrt @takekazuomi

15
3つのレイヤ - Architecture Layers inside
Stamps
• front end
• リクエストのpartition server へ転送
• serverと、 partitionの割り振りを管理するpartition mapを保持

• partition layer
• 高レベルのデータ構造(blob, table, queue)を実装
• オブジェクトに対するトランザクションの順序付、一貫性の確保を実装
• オブジェクトデータのキャッシュ

• stream layer
• データをディスクに永続化。stream と呼ばれるファイルを使い。保存方法と
リプリケーションを実装する。streamは、extentのordered listでwriteは、
append only
• このレイヤは、Blob, Tableなどの構造やセマンティックに依存しない
2014/2/12

kyrt @takekazuomi

16
データセンター内の配置
• Spine(スピーナ)は、上位
のネットワーク。Gen2
(Quantum10 )のネット
ワークでは、Spineを経由
してメッシュ状に接続され
ている
• TOR(Top-Of-Rack) ス
イッチ
• FC(Fabric Controller)

Spine

TO
R

TO
R

TO
R

TO
R

TO
R

Windows Azure Internals/Mark Russinovich
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/AZR302

kyrt @takekazuomi

17
CAP 定理との関係
• stream layerでは、シンプルな追加のみのデータ モデルにより、
ネットワーク分割などの障害の発生時に高可用性が維持される
• partition layerは、一貫性を保証する
• 可用性担保する(Stream)レイヤーと整合性を担保するレイヤー
(Partition Layer)で役務を分割した
• これによって、CAP定理の下記の3つの条件を同時に満足している
• 一貫性 (Consistency):全てのノードにおいて同時に同じデータが見える
• 可用性 (Availability):ノード障害により生存ノードの機能性は損なわれない
• 分断耐性 (Partition-tolerance):システムは任意の通信障害などによるメッ
セージ損失に対し、継続して動作を行う
“Windows Azure Storage: A Highly Available Cloud Storage Service with Strong Consistency”, ACM Symposium
on Operating System Principals (SOSP), Oct. 2011

2014/2/26

kyrt @takekazuomi

18
最後に
• 高密度サーバー、大規模データセンター、Infrastructure as Code は、
新しい世界(Cloud)への入り口
• Windows Azureとは、高度に自動化された大規模データセンターに
様々なサービスを載せたクラウドサービス群の名称
• Azure Storage では、DCの障害モデルとアプリケーションアーキテ
クチャの融合で分散システムにおける一貫性と可用性の問題に対し
て新たなアプローチを示した
• 従来のレンサバでは出来なかったことが可能になった

Azure 面白い
kyrt @takekazuomi

19
Appendix

2014/2/26

kyrt @takekazuomi

20
リファレンス
Azure Storage のCAP定理の話は下記のドキュメントを見てくだ
さい
• 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

• 全ての情報は2014/3/07時点のものです。
2014/2/12
kyrt @takekazuomi

21

ふりかえり Windows Azure