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.

OCP Serverを用いた OpenStack Containerの検証

3,591 views

Published on

2015年1月28にCTCソリューションセンタで開催された、PoC/HVDC WG Engineering Workshop での発表資料になります。
お題目としては、OCPサーバを用いてPrivate CloudやPublic Cloudを構築するために使えるBare Metal Provisioning Toolとして MAAS のご説明と、OCPサーバを用いたOpenStack + Docker 環境で benchmark を行ない性能・消費電力の観点でどのようにメリットを引き出せるのかを考察した結果についてご紹介しました。

Published in: Technology
  • Be the first to comment

OCP Serverを用いた OpenStack Containerの検証

  1. 1. OCP Serverを用いた OpenStack Containerの検証 2015-01-28 曽我部 崇 (Takashi Sogabe) Internet Initiative Japan, Inc MAAS + nova-docker OCPサーバを用いたベンチマーク
  2. 2. ハイブリッドクラウドの課題 • 容易に購入できる? • 容易に運用できる? • 性能は出る? • コストメリットはある?
  3. 3. OpenStack + Docker • Dockerによるコンテナ仮想化を、OpenStackの APIを用いて利用 – Docker + Heat – Docker driver
  4. 4. 検証内容(1) • OCP環境で BareMetal Deployment環境の構 築方法を確立し、情報を共有する – MAAS • Bare Metalサーバを直接使う
  5. 5. 検証内容(2) • OCP環境で OpenStack + Docker の構築手順 を確立し、情報を共有する – Docker Driver (nova-docker) • Icehouse にて コードが削除された
  6. 6. 検証内容(3) • OpenStack + Docker構成を性能及び省電力 の観点で比較・評価を行なう – 比較対象 • OpenStack with KVM • BareMetal (MAAS) – 測定方法 • BMCの消費電力情報を計測しながらベンチマークソフ トにより負荷を掛ける
  7. 7. Hardware構成(1) • Server – Wiwynn Winterfell (Windmill) – CPU: Xeon E5-2660 2.20GHz x2 • 16-core, 32-thread – Memory: 32GB – Disk: Intel SSDSC2BB24, 240GB – NIC: Intel 82599ES (10GbE)
  8. 8. Hardware構成(2) nova-controller nova-compute • nova-compute – OpenStack + KVM KVM OS App
  9. 9. Hardware構成(3) nova-controller nova-compute • nova-docker – OpenStack + docker driver docker App
  10. 10. Hardware構成(4) Ubuntu • Bare Metal – MAASによるdeploy App
  11. 11. Software構成 • Management Server – MAAS • OS – Ubuntu14.04LTS • OpenStack – 2015年1月の master – devstack – Network構成 • Nova-network (FLAT DHCP)
  12. 12. 測定方法(CPU) • sysbench – cpu-max-prime=100000 – Num-threads={1,2,4,8,16,32}
  13. 13. 測定方法(Disk I/O) • fio – direct write, direct read – bs=16k – size={10GB x1, 5GB x2, 2.5GB x4, 1.25GB x8, 0.625GB x16, 0.312GB x32} – numjobs={1, 2, 4, 8, 16, 32} ※ nova-docker は device mapper に対応していないため、dockerのfio 測定については bare metal server(Ubuntu14.04LTS + docker 1.4.1 を 用いる
  14. 14. 測定方法(iperf) • iperf – length 128k – parallel {1, 2, 4, 8, 16, 32} – time 30sec
  15. 15. 測定結果 (CPU, 計算時間) 0 50 100 150 200 250 300 350 0 4 8 12 16 20 24 28 32 bare-metal nova-docker nova-kvm TotalTime(sec) Number of Threads
  16. 16. 測定結果 (CPU, 消費電力) 0 50 100 150 200 250 300 350 0 4 8 12 16 20 24 28 32 bare-metal nova-docker nova-kvm PowerUsage(Watt) Number of Threads
  17. 17. 測定結果 (Disk I/O, randwrite) 0 50 100 150 200 250 300 350 0 4 8 12 16 20 24 28 32 bare-metal docker-dev-mapper nova-kvm Number of Threads Throughput(MB/s)
  18. 18. 測定結果 (Disk I/O, randread) 0 50 100 150 200 250 300 350 400 450 500 0 4 8 12 16 20 24 28 32 bare-metal docker-dev-mapper nova-kvm Number of Threads Throughput(MB/s)
  19. 19. 測定結果 (net, outbound) 7 7.5 8 8.5 9 9.5 10 0 4 8 12 16 20 24 28 32 bare-metal nova-docker nova-kvm Number of Threads Throughput(Gbps)
  20. 20. 考察(CPU) • nova-docker スレッド数が1, 2の際に性能が低 い – スレッド数が4以上になると性能低下は見られな い • 消費電力はCPUの負荷に応じて大きく変わる
  21. 21. 考察(Disk I/O) • docker (device mapper)のI/O性能は、bare metal と比べて少し低い程度 – docker(aufs)はおそらくさらに性能が低くなる • aufs を使うと direct i/o の測定が出来なかったので、グ ラフでは docker(device mapper) のみを掲載 • kvmの randwrite性能が低い • 一時データ、キャッシュの用途でローカルディスクを 使う場合、kvmはボトルネックが大きくなってしまう
  22. 22. 考察(net) • nova-dockerの場合、プロセス数が1,2,4の際 に性能低下が見られる – プロセス数が少ないときにCPU性能が十分に出て いないのが原因かもしれない – プロセス数が8以上になると、10Gbpsを使い切れ る
  23. 23. 考察(全体) • 計算処理だけが必要な場合は、KVMでも オーバーヘッドはそれほど大きくない • Disk I/Oを多用するアプリであれば、dockerを 使うことでスループットを大幅に改善できそう • Networkについては、スループットが沢山必 要であればdocker を使うことで性能向上が期 待できそう
  24. 24. nova-dockerの仕組みは? • nova-docker – OpenStack (IaaS)のAPIでアプリをdeploy – KVMに比べてインスタンスの起動時間が早い – Docker(hub)のイメージがそのまま動く – 分散処理など、orchestrationをするための仕掛け は基本的に無い Novaはmachineを抽象化しているのに対し、 Dockerはprocessを抽象化している
  25. 25. クラウド時代のアプリケーション • 今まで – 1つの大きなサーバに手動でアプリを詰め込む • クラウド時代 – 沢山の小さなサーバに自動でアプリを詰め込む Server Hypervisor App1 App2 App3 Server Kubernetes, Mesos, etc. App Server Server
  26. 26. Heat + Docker • Heat – 複数のアプリを一括してdeployできるツール • novaで生成されたインスタンスに対して Docker API を操作する – Scheduler は無いので、deploy先は手動で割り当 てる – Disk I/O性能を上げるのが目的であれば、Ironic 等のbare metal deploymentが別途必要
  27. 27. OpenStack API + Docker API DockerOpenStack Nova Docker or Ironic Nova Docker Docker in Docker の環境で様々なOrchestratorを動かす
  28. 28. 様々なOrchestratorとの連携 Docker Magnum Mesos Heat Solum CloudFoundary KubernetesOpenShift PaaS Patform Orchestrator for Distributed System OpenStack Components
  29. 29. Magnum • OpenStackのContainer向けSchedulerサービス – Docker, Kubernetesに対応 – APIは新たに設計 • Bay – Work がscheduleされたNodeの集合。AWS ECSのclusterみたいなもの? – Bay model(テンプレートみたいなもの)を指定して Bay を生成する • Node – Workが実際に動作するHost(BareMetal or Virtual) • Pod – 同一Host上で動作するContainerの集合 • Service – Podsとアクセスpolicyが定義された抽象レイヤ • Replication Controller – 設定数のPodsが動作していることを保証するための、Podsグループの抽象レイヤ • Container – Docker container
  30. 30. Documents / Tools • https://github.com/iij/ocpj-poc-openstack – MAASを用いてOCPサーバをインストールする方 法 – nova-docker インストール方法 – Benchmark手順

×