nttコミュニケーションズのクラウドサービス 開発を支え...
TRANSCRIPT
NTT技術ジャーナル 2017.12 29
特集
IoT/AI/SDx時代を支えるOSSへの取り組み
OpenStackへの取り組み
NTTコミュニケーションズ(NTT Com)では現在クラウドサービスとしてECL(Enterprise Cloud(1)) を 提供していますが,これらの基盤としてオープンソースソフトウェア(OSS)であるOpenStackを利用しています.NTT ComではOpenStackをはじめとした各種OSSについて調査 ・ 検証 ・利用をしており,こうしたOSSに関する知識やノウハウを共有するために,勉強会やカンファレンスなどを開催しています.■OpenStackの概要
OpenStackは仮想マシンを管理する機能や,ネットワークを制御する機能など,コンポーネントと呼ばれるさまざまな機能から構成されており,利用者は自分のサービスに合わせて必要なコンポーネントを組み合わせることで,目的にあったクラウドサービスを構築することができます.
OpenStackの 利 用 者 に はCERN,WalmartやChina Mobileなどさまざまな企業 ・ 団体が名を連ねており,世界中でOpenStackを活用 ・ 運用した事例が報告されています.また,OpenStackの開発には世界中の開発者が参加して
おり,日々,新規機能の開発や既存機能の改善が行われています.■Enterprise CloudでのOpenStack
の活用NTT Com では2013年10月,日本
で初めてOpenStackを採用したパブリッククラウドサービス「Cloudn(2)」の提供を開始しました.さらに2016年 3 月に,企業の基幹システムに適した新たなクラウドサービス「ECL 2.0」においてもOpenStackを導入しました.サービス提供開始後もユーザニーズにこたえるべく新機能のリリースを順 次 進 め て お り,2017年 5 月 に はOpenStackのコンポーネントであるHeat* 1 をベースとして,仮想サーバやストレージ,ネットワーク等の各種リソースを一括して作成 ・ 削除し,システム構築を容易にするDeployment Manager(3)をリリースしました.また,2018年春以降にOpenStackのコンポーネントであるTrove* 2 をベースとした,MySQLやPostgreSQL等のリレーショナルデータベースを容易に構築できるサービスをリリースする予定です.これらのHeatやTroveをはじめとしたECL 2.0で利用されているコンポーネントついては,サービスのベースとして導入するだけでなく,セキュ
リティ強化などの各種機能改善の提案やバグの報告 ・ 修正などのコミュニティに対して積極的に働きかけを行っています.ECLは世界 7 カ国(日本,米国,英国,ドイツ,シンガポール,香港,オーストラリア)に展開され(2017年 9 月現在),それぞれの拠点がNTT Comの高品質かつセキュアな回線で接続されています.NTT Comは今後もOSSを活用して,「キャリアクラウド」ならではのグローバルシームレスなクラウドサービスを進化させていきます.
OpenStack Summit Boston 2017での発表内容
OpenStackの新バージョンのリリースに合わせて半年に 1 度開催される国際イベント「OpenStack Summit(4)」では,公募で集まった投稿の中から,コミュニティの一般投票を経て,各セッショントラックの座長が最終的に採否を決める方式を取っています.ここ数回は1000件程の応募から20%前後が採択されるかたちとなっています.今回,2017年 5 月に米国 ・ ボスト
OpenStack OSS 技術イベント
*1 Heat:テンプレートに従ってオーケストレーションを行うOpenStackのコンポーネント.
*2 Trove: OpenStack上 でDatabase as a Serviceを提供するOpenStackのコンポーネント.
NTTコミュニケーションズのクラウドサービス開発を支えるOSSとそのコミュニティ活動NTTコミュニケーションズではシステムの開発や運用においてオープンソースソフトウェア(OSS)を利用する機会が増えてきました.クラウドサービスでは,OSSであるOpenStackを活用するだけでなく,OpenStackへのコントリビュートや,関連団体への加盟,イベントでの発表など,OpenStackコミュニティに対して積極的な働きかけをしています.また,OSSに関するNTTグループ横断的な勉強会や,NTTグループ外との技術交流を行うイベントを主催しています.
小お ぐ ら
倉 真ま ひ と
人 /張ちょう
暁ぎょうしょう
晶
松まつした
下 正ま さ き
樹 /松まつもと
本 赳たけあき
明
Ankit Purohit /原は ら だ
田 和かずあき
明
NTTコミュニケーションズ
NTT技術ジャーナル 2017.1230
IoT/AI/SDx時代を支えるOSSへの取り組み
ンで開催されたサミットでNTT Com 技術開発部が行った 2 件の発表について紹介します.
① OpenStack内部で利用されているミドルウェアRabbitMQの性能チューニングについて
② GPU(Graphics Processing Unit)付き仮想マシンに代わるGPUコンテナの提供方法比較について
■Scale-Out RabbitMQ Cluster Can Improve Performance While Keeping High AvailabilityOpenStackを大規模に運用する際
に,コンポーネントの内外で非同期処理を行う際に利用されるMQ(Message Queue)がボトルネックになるといわれています.この問題を解決する方法として,OpenStackの運用者の間では,MQをチューニングする方法や,複数のMQクラスタに処理を分け,負荷分散を行う方法が知られています.しかしながら,運用者が複数のMQクラスタのチューニングや運用を行うことは容易ではありません.NTT Comでは
ECL 2.0の大規模化を見越し,MQの性能,ならびに運用の改善が必要となっています.ボストンでの発表では,NTT ソフトウェアイノベーションセンタ(SIC)と共同で,運用,ならびにOpenStackの内部動作の改善方法について発表を行いました.運用の改善として,OpenStackで一般的に用いられるMQの 1 つであるRabbitMQのクラスタ設定を見直し,内部のデータの冗長化を確保したまま,1 つのRabbitMQクラスタをスケールアウトさせることで性能の改善を行う方式を検証し,その結果を紹介しました(図 1 ).また,仮想マシンの管理を行うコンポーネント “nova” の各ノードに処理を調整する “conductor” の機能がボトルネックになり得ることを突き止め,conductorに流れるデータを複数のconductorノードに分散させる方式を検証し,その結果を紹介しました(図 2 ).■Container as a Service on GPU Cloud:
Our Decision among K8s, Mesos,Docker Swarm, and OpenStack ZunAI(人工知能)やビッグデータ分
析などのワークロードを効率的に処理するため「GPUコンピューティング」が 近 年 注 目 さ れ て お り,Amazon,Microsoft,Googleを含む多くのクラウドプロバイダではGPU付き仮想マシンを提供し始めました.GPU環境の最良の構築 ・ 運用方法を探るため,本発表ではさまざまなOSSツールを比較検証し,その結果を紹介しました
(表).機械学習などの本来のタスクに集中
したいクラウドユーザにとって環境設定の手間が少なく,またリソースを効率的に管理したいクラウド管理者にとってGPUリソースを公平に分配できることが重要です.仮想マシンの代わりにDocker* 3 やnvidia-docker* 4 などのコンテナ技術を用いることで,ゲストOS,ライブラリ,デバイスドラ
図 1 RabbitMQクラスタにおけるQueueの分散
Queues
Queues
SingleRabbitMQ node
クライアント クライアント
クラスタリング
Queues Queues
RabbitMQCluster
1
3
5
2
1
4
2
5
3
6
6
4
*3 Docker: Docker社が提供するコンテナエンジン.以前はOSSになっていましたが,現在はMobyプロジェクトに移行され,その成果物を基として,Docker製品が開発されています.
*4 nvidia-docker: NVIDIAが公式に提供しているDockerからNVIDIAのGPUを利用するためのコンテナイメージとそのユーティリティ群.
NTT技術ジャーナル 2017.12 31
特集
イバの間の依存関係や組合せを考慮せずに迅速にアプリケーションをデプロイでき環境設定が省力化できます.しかしどのGPUコンテナをどのサーバに配置すべきかを決めるスケジューリングの機能性に関しては成熟しておらず,GPUリソースの公平な提供方法は自明ではありませんでした.そこで,社内利用目的のGPUコンテナ基盤を構築する過程で,主要なコンテナ管
表 比較検証結果
GPUクラスタ一元管理
GPUの指定複数割当て GPUの分離 Docker
サポートバッチタスク実行可能か
OpenStack Zun × × × ○ ×
Docker Swarm/ Swarm Mode × × × ○ ×
Apache Mesos ○ ○ ○ × ○
Kubernetes ○ ○ ○ ○ ○
図 2 conductorの改善
(a) 現状のconductorに対するメッセージング
nova-compute
nova-compute
nova-compute
nova-compute
nova-conductor
nova-conductor
nova-conductor
Queue<conductor> データベース
RabbitMQ
(b) 改善方式
nova-compute
nova-compute
nova-compute
nova-compute
nova-conductor
nova-conductor
nova-conductor
Queue<conductor>
Queue<reply_xxx>
Queue<conductor.host 1 >
Queue<conductor.host 2 >
Queue<conductor.host 3 >
データベース
RabbitMQ
NTT技術ジャーナル 2017.1232
IoT/AI/SDx時代を支えるOSSへの取り組み
理ツールKubernetes,Apache Mesos,Docker Swarm,OpenStack Zun等を調査 ・ 比較検証しました.その結果,複数GPU指定可否,他コンテナとのリソース分離,Dockerサポート有無 な ど の 評 価 軸 で 最 良 と な っ たKubernetesを採用して検証環境(図3 )を構築し,構築運用のノウハウや実際のユースケースも合わせて紹介しました.
NTTグループ内外での勉強会, イベント
■コンテナ ・ クラウドネイティブ勉強会2015年10月 よ り,SICと 協 力 し,
NTTグループ内のエンジニアたちとコンテナ技術について学び,意見交換をする場としてコンテナ勉強会を始
めました.コンテナ勉強会ではOSSと し て 公 開 さ れ て い るDockerや,Kubernetes,Apache Mesosなどの知識や運用ノウハウ,またDockerConやKubeConなどのカンファレンスへの参加レポートの共有などを行ってきました.しかしながら,今後はコンテナだけではなくもう少し幅広い技術や知識が必要になると考え,第 6 回から名前をクラウドネイティブ* 5 勉強会に変え,その目的を「NTTグループ内のクラウドにかかわるエンジニアの情報共有や悩み相談を行いクラウドに関するノウハウの蓄積を行う.また,ユースケースを基にクラウドネイティブなシステムの設計手法や検討事項などを議論することでクラウドネイティブなシステム設計を行う際のノウハウ蓄積を行う」とし,引き続きNTTグ
ループのエンジニアたちと知識の共有や議論を行っています.■NTT Tech Conference
NTT Comでは,内製力の向上をめざしてソフトウェア人材の育成に力を入れています.その一環として,ソフトウェアに関する取り組みを広く知っていただくために,“NTT Tech Conference”(5)を企画し,NTTグループのエンジニア有志が集まって開催しています.
NTT Tech Conferenceは,NTTグループのエンジニアが,自身の技術的な知識や取り組みについて発表をすることで,NTTグループ内外のエンジニアたちと技術交流を行うことを目的に開催されています.2017年 8 月10
図 3 検証環境概念図
GPU× 8(Tesla P100)
Minion Node 1
GPU× 4(Tesla GRID K2)
Minion Node 2
GPU× 2(Tesla K10)
Minion Node 3
GPU× 2(Tesla K10)
Keystone
Minion Node 4
OpenStack 環境
複数台のGPU搭載サーバで Kubernetes のクラスタを構成
MasterNode
GPUリソースを指定
コンテナを配備・管理
ユーザ
Keystone 連携によるマルチテナントの実現
*5 クラウドネイティブ : クラウド上での利用を前提として設計されたシステムやサービス.
NTT技術ジャーナル 2017.12 33
特集
日に開催した第 2 回では,NTTグループ内外から221名の参加者が集まり,ナレッジの共有や技術についての議論を行いました.第 2 回のセッションには「OSS開発コミュニティ参加のお誘い ─NTTグループのOSS活動例─」というタイトルで,NTTグループにいるOSSの開発者たちが参加者たちと各OSSの開発状況や開発の方法について議論や意見を交わすセッションもあり,各OSSコミュニティの開発への参加の仕方を共有する場面や,開発方法やコミュニティの状況についての意見交換をする場面がありました(写真).
NTT Comでは,今後もOSSをはじめとしたソフトウェア技術に関する交流の場としてNTT Tech Conferenceの開催を行っていく予定です.
今後の展開
NTT Comでは今後もユーザニーズに迅速にこたえるために,OpenStackをはじめとしたOSSを活用したサービス開発に取り組んでいきます.また,OSSを活用するだけでなく,機能提案 ・ 改善などを通じてOSSコミュニティの成長に対しての貢献も行っていきます.そして,NTTグループの内製力強化をめざし,NTTグループ内外のエンジニアたちと技術交流を行う勉強会やイベントを行いながら,グループ全体での技術レベルの向上をめざしていきます.
■参考文献(1) http://www.ntt.com/business/services/cloud/
iaas/enterprise-cloud.html(2) http://www.ntt.com/business/services/cloud/
iaas/cloudn.html(3) https://ecl.ntt.com/documents/service-
descriptions/dpm/dpm.html(4) h t t p s : //www .opens t a ck . o rg/summi t/
boston-2017/
(5) https://ntt-developers.github.io/ntt-tech-conference/
(後列左から) 張 暁晶/ 奥村 昌和/ 小倉 真人/ 松下 正樹/ Ankit Purohit
(前列左から) 松本 赳明/ 原田 和明
NTTComでは今後もOSSに関する活動や,NTTグループ内外に対しての技術イベントを行っていく予定です.興味のある方はぜひNTTTechConferenceなどの技術イベントにご参加ください.
◆問い合わせ先NTTコミュニケーションズ 技術開発部 クラウドコアTU
TEL ₀₃-₆₇₃₃-₉₇₇₄FAX ₀₃-₅₄₃₉-₀₄₈₃E-mail cloud-ia ntt.com
写真 NTT Tech Conferenceの様子