Overlay Cloudによる アカデミックインタークラウド構築事例

Overlay Cloudによる
アカデミックインタークラウド構築事例
2015.5.29
国立情報学研究所(NII)
横山重俊
1
1. はじめに
2
自己紹介
国立情報学研究所(NII)において,
クラウド基盤の企画・開発・運用を担当
本日の内容
Overlay Cloudによる
アカデミックインタークラウド構築事例
3
国立情報学研究所 について
大学共同利用機関法人 情報・システム研究機構
国立情報学研究所(National Institute of Informatics)
http://www.nii.ac.jp/
情報学研究の他,大学共同利用サービスの提供を行っています
コンテンツ
クラウド
認証連携
ネットワーク
4
2. 背景
5
アカデミックインタークラウドの必要性
現状
課題
海外
アカデミック
クラウド
北海道大学
クラウド
単一クラウドでは以下のような
課題への対応が難しい.
大阪大学
クラウド
パブリック
クラウド
九州大学
クラウド
NIIクラウド
•
•
大学毎のクラウド構築が進行
パブリッククラウドのSINET接続と利用
 リソース容量不足
 法定停電時バックアップ
 災害時バックアップ
 大規模分散データ処理
 実時間分散データ分析処理
クラウド連携による解決への期待
アカデミックインタークラウド
6
2-1. アカデミックインタークラウド
基盤
7
オンデマンドクラウド構築でクラウド連携
既存アプローチ
クラウド連携は,
クラウド運用者が運用している
異種のクラウドをネットワーク機能
とそれに付随するGlue機能によって
結びつけることにより作りだした
リソースを使って実現する.
提案アプローチ
クラウド運用者とクラウド基盤を
支えるハードウェアの運用者を
分離する.
クラウド連携は,
複数のハードウェア運用者から
確保したリソースをSINETで繋ぎ
その上にクラウドを作りだすことで
実現する.
サービス
実行用
クラスタα
サービス実行用クラスタ-β
Network with
Glue software
サービ
ス実行
用クラ
スタ-γ
クラウド-A
クラウド-B
ハードウェア-1
ハードウェア-2
クラウド-A 運用者
クラウド-B 運用者
サービス実行用クラスタα
サービス実行用クラスタ-β
サービス実行用クラスタγ
クラウド-A
クラウド-B
クラウド-C
クラウド-A 運用者
クラウド-B 運用者
クラウド-C 運用者
分離
ハードウェア-1
ハードウェア-2
SINET
ハードウェア-1運用者
ハードウェア-2運用者
8
アカデミックインタークラウド基盤
- アカデミックコミュニティクラウドのHub 大学クラウド
大学側クラスタの
VLAN_ID等と
クラウド内クラスタID
をマッピング
インタークラウド基盤
(compute)
インタークラウド基盤
(storage)
インタークラウド基盤内クラ
スタ-A
大学内クラスタ-A
連携
大学内クラスタ-B
インタークラウド基盤内クラ 物理マシンプール
スタ-B
連
携
インタークラウド基盤内クラ
インタークラウド
Object Store Service
colony
スタ-C
大学内クラスタ-C
大学内クラスタ-D
連携
インタークラウド基盤内クラ 物理マシンプール
スタ-D
あたかも大学側クラスタに
クラスタが追加されたごとく
あたかもローカルと同一
オブジェクトストアのごとく
あたかも大学間が同一データ内
で直結されるがごとく
9
アカデミックインタークラウド基盤 GUI
DEMO
10
2-2 Overlay Cloud
11
Overlayという発想によるインタークラウド
大学内あるいは
大学間共有の
クラスタ
Inter-cloud (Virtual Cloud)
Overlay Network
(VXLAN等)
SINET
Network
Overlay Compute
(Docker等)
AWS
EC2
北大
クラウド
(Compute)
Compute
Overlay Storage
・・・
AWS
S3
北大
クラウド
・・・
(Storage)
Storage
12
海運とIT
コンテンツ
コンテナ
コンテナ
管理システム
コンテナ
管理システム
連携
1950s -
海運
積荷
コンテナ
コンテナ船・
港湾システム
海運システム
IT
アプリケーション
仮想サーバ
クラウド
インタークラウド
2000s -
?
13
海運とIT
コンテンツ
コンテナ
コンテナ
管理システム
コンテナ
管理システム
連携
1950s -
海運
積荷
コンテナ
コンテナ船・
港湾システム
海運システム
IT
アプリケーション
仮想サーバ
クラウド
インタークラウド
2000s -
?
14
海運における Separation of Concerns
Separation of Concerns
15
海運における Separation of Concerns
コンテナの中
Separation of Concerns
コンテナの外
コンテナ輸送網
New System
インフラ利用
Separation of Concerns
インフラ運用
16
海運とIT
コンテンツ
コンテナ
コンテナ
管理システム
コンテナ
管理システム
連携
1950s -
海運
積荷
コンテナ
コンテナ船・
港湾システム
海運システム
IT
アプリケーション
仮想サーバ
クラウド
インタークラウド
2000s -
コンテナ
= VM?
17
コンテナ = Container
Virtual Cloud
Cluster
Cluster
L2Tunnels
BM
BM
Real
Cloud Provider
Cluster
L2Tunnels
VM
VM
Real
Cloud Provider
VM
L2Tunnels
VM
Real
Cloud Provider
VM
VM
Real
Cloud Provider
BM: Bare-metal Machine / VM: Virtual Machine
18
Overlay Cloud
Applications
Containerの中
Separation of Concerns
Containerの外
Cloud利用
Overlay Cloud
Overlay
Cloud
New System
BM
Cluster
Cluster
Cluster
L2Tunnels
L2Tunnels
L2Tunnels
BM
VM
VM
VM
VM
VM
VM
Separation of Concerns
Cloud運用
Real
Cloud Provider
Real
Cloud Provider
Real
Cloud Provider
Real
Cloud Provider
: docker, BM: Baremetal Machine, VM: Virtual Machine
19
アカデミックインタークラウド基盤
ベアメタルクラウド技術によるインタークラウド実現
Cloud-A
Bare-metal
Servers
Cloud-B
Bare-metal
L2
On demand
connection
Data Center- α
Bare-metal
On demand
Academic Inter-Cloud
(AIC)
Bare-metal
Servers
L2
Connection
Data Center- β
SINET ( L2VPN on demand )
20
Overlay Cloudによる適用範囲拡大
コンテナ技術によるインタークラウド実現範囲を
Public Cloudなどにも拡大
Cloud-B
Cloud-A
Docker
Virtual
Servers
Docker
Docker
Docker
Docker
Bare-metal
Servers
Bare-metal
On demand
Bare-metal
On demand
Bare-metal
Servers
L2
Connection
Public Cloud- 1
Data Center- α
L2
connection
Academic Inter-cloud
Infrastructure (AIC)
L2
Connection
Data Center- β
Docker
Virtual
Servers
L2
Connection
Public Cloud- 2
SINET ( L2VPN on demand )
21
3.クラウド群連成基盤
22
クラウド群連成基盤
• クラウド群
【各クラウド運用者が管理】
• クラウド群連成基盤 【クラウド群連成基盤運用者が管理】
– クラウド群連成基盤機能群
– クラウド群連成基盤リポジトリ
クラウド群
連成基盤機能群
構築・管理
利用
Virtual Cloud γ
Virtual Cloud γ
Provider
構築・管理
Virtual Cloud β
利用
Virtual Cloud β
Provider
クラウド群
連成基盤リポジトリ
構築・管理
利用
クラウド
クラウド群連成基盤
Virtual Cloud α
Virtual Cloud α
Provider
は、大学等のベアメタル
クラウドや仮想化クラウド
およびパブリッククラウド
を想定
クラウド
クラウド
クラウド
SINET
23
3-1.クラウド群連成基盤
プロトタイプ実装
24
プロトタイプにおけるコンテナ利用方法
Virtual Cloudの基盤を包む Base コンテナ と
Applicationを包む Applicationコンテナ の
二つのレベルでコンテナを利用する。
Base コンテナ
Application
コンテナ
Docker
クラウド群連成基盤
(クラウドリソース管理、コンテナ管理、
コンテナ間ネットワーク管理、コンテナイメージ管理)
NII
クラウド
北大
クラウド
Console /
Dashboard
Public
Cloud群
25
クラウド群連成基盤機能要件
① クラウドリソース管理
–
–
–
–
ベアメタルサーバやVMなどのホストリソースを各種のクラウド基盤から確保
ホスト環境に必要なソフトウェアパッケージ等をインストールし、初期設定
リソースのスペック(CPU、メモリ、マシンイメージ等)を要求に応じて変更
不要になったリソースを返却(または廃棄)
② Baseコンテナ管理
– Baseコンテナをデプロイ
– Baseコンテナのコンフィグレーション
– Baseコンテナを停止
③ Baseコンテナ間ネットワーク構築
– Baseコンテナどうしを接続する仮想ネットワーク(VLAN)を作成
– LANで使用するGatewayなどの他のネットワークリソースをセットアップ
④ Baseコンテナイメージ管理
– Baseコンテナのイメージリポジトリ機能
– 構築用テンプレートを管理するコードリポジトリ機能
26
クラウド群連成基盤プロトタイプ実装
プロトタイプシステムとして、オープンソース構成管理ツール Terraformを用いて
Baseコンテナのセットアップまでを自動化するための機能を実現した。
このため、 AICC Provider, VCP Provider, AICN Provider を実装した。
① クラウドリソース管理
② コンテナ管理
③ コンテナ間ネットワーク構築
④ コンテナイメージ管理
Docker
hub
https://hub.docker.com
27
3-2. コンテンツサービス
可用性向上への適用検証
28
JAIRO Cloud Backupサイト on Virtual Cloud
外部Network
Gateway
Utility Node
(Backup系)
VRRP
VCP
Manager
Utility Node
Proxy
(HAProxy)
監視
Manager
配置
情報
Base Container
Web/App Node #1
repo-A
repo-B
配置
情報
Web/App Node #2
HTTPD
HTTPD
監視
分散FS
Client
Agent
repo-A
repo-B
HTTPD
DB
Proxy
分散FS
Client
App. Container
Scale
Out
HTTPD
監視
DB
Proxy
Web/App
Node #n
Agent
配置
情報
分散FS Server
Storage
Service
Upload Files
repo-A
repo-B
DBMS
Service
repo-A
(Master)
repo-A
(Slave)
repo
repo-B
(Slave)
repo-B
(Master)
DB Node #1
DB Node #2
Storage Node #1
MySQL Replication
29
3-3.バイオインフォマティクス
データ分析パイプライン
再現環境構築への適用検証
30
Galaxyについて
• 生命科学分野におけるデータ解析作業をWeb UIで実行
– 複数のツールを組み合わせたデータ解析ワークフロー構築
– 異なるサンプルに対する繰り返し処理
– 研究者間でワークフロー、データの共有
↑
実行結果の確認、
ツールのコントロール等
←利用可能な
ツール一覧
実行履歴 →
31
FANTOM プロジェクト
• 理化学研究所が主導、2000年に発足
20カ国、114研究機関が参加する国際研究コンソーシアム
• ゲノムDNAから転写されているRNAの機能をカタログ化
• 成果は公共データとして公開され、世界中で利用可能
FANTOM5 基礎解析パイプライン部分
32
FANTOM5 基礎解析パイプライン
EXPERIMENT
FASTQ形式は、1本の塩基配列を4行のテ
キストで記述する。
⇒(4×n)行単位で分割可能
FASTQ以外の場合、分割方法は異なる。
(FASTQ)
unzip+
split
Node#1
Node#2
Node#n
input_1
input_2
input_n
(FASTQ)
(FASTQ)
(FASTQ)
rRNAdust
分散処理は、クレンジング
(rRNAdust)後でもよい。
※rRNAdustの処理負荷が比
較的小さく、FASTQ形式は分
割が単純なため
DRR*.fastq
(1385 files)
rRNAdust
rRNAdust
tmp1_1
tmp1_2
tmp1_n
(FASTQ)
(FASTQ)
(FASTQ)
delve seed
delve seed
tmp2_1
tmp2_2
(SAM)
(SAM)
delve align
ref.
human_rDNA_U1
3369.1.fa
ref.
hg19.fa
delve seed
...
delve align
tmp2_n
(SAM)
delve align
最も処理負荷が高い
SAM_1
toBAM +sort
BAM_1
BED
BED形式を作成後に
mergeしてもよい。
SAM_2
SAM to BAM +sort (samtools)
BAM_2
SAM_n
toBAM +sort
BAM_n
BAM merge +to BED
BED
33
FANTOM5 基礎解析パイプライン実行環境
Containerized
Galaxy Tool
実験環境リポジトリ
Github
DockerHub
Workflow
Repo.
Container
Repo.
Mesos/Aurora Cluster
Mesos Slave #1
Executor
import
Mesos Master
Aurora
Scheduler
.aurora
Galaxy
job
create
Mesos
Master
Workflow(a)
zookeeper
SINET
VPN
pull
Docker
Daemon
Mesos Slave #2
Executor
Docker
Daemon
.aurora
Workflow(b)
Mesos Slave #3
Executor
Workflow(c)
Docker
Daemon
Mesosへ接続可能
なように Galaxyを
Customize
File Server
Rawデータ
copy from
DDBJ
元論文の
解析結果データ
Galaxy Job
コンテナ形式
のツールを
Mesos Cluster
の上で実行
Working Dir.
copy from
Riken
34
Galaxy でのパイプライン作成
35
35
Galaxy Workflow ⇒ Aurora Job Config.
Galaxy Workflow (json)
steps: {
0: {
inputs: [ ],
output: [ ],
tool_id: "rRNAdust",
...
},
1: {
JobRunnerが
実行内容を展開して生成
proc0 = Process(
cmdline = """
""")
tool_script.sh
...
tool_script.sh
...
tool_script.sh
},
2: {
},
Aurora Job Config (python)
task = SequencialTask(
processes = [ proc0 ]
resources = Resource(cpu, ram, disk)
job = Job(
name = ....,
task = task,
Container = Container(docker = ...)
)
jobs = [ job ]
3: {
...
},
...
}
tool_script.sh
Aurora Job Config (python)
proc0 = Process( ... )
task = SimpleTask( ... )
job = Job( ... )
jobs = [ job ]
Aurora Job Config
...
Aurora Job Config
...
36
バイオインフォマティクス分野の適用状況
現状
1. FANTOM5基礎解析部分パイプライン再現性確認
2. FANTOM5基礎解析部分パイプライン分散基盤上での走行確認
3. FANTOM5基礎解析部分パイプライン分散化評価
今後の展開
1.
2.
3.
広域分散時のコンテナ配置最適化
FANTOM5以外の事例への横展開
バイオコミュニティへの試行サービス提供
37
4. まとめ
38
インタークラウドがアタリマエに
• クラウド利用の第3の波が訪れている.
(第1波) パブリッククラウドの出現 (AWS, …)
(第2波) オープンクラウドの出現 (OpenStack, …)
(第3波) コンテナエンジンの活用 (Docker, …)
• それらは共存し,インタークラウド形成する.
第3波
第2波
Web
第1波
Internet
Cloud
Computing
39
さいごに
コンテナ、つこうてな!
40
Thank you