より深くDockerを知る 1

Snappy Ubuntu Core

Snappy Ubuntu Core

Snappy Ubuntu Coreは「最軽量のUbuntu OS」であり、前述で紹介した2つの製品よりもさらに「最小構成」であることに注力されている製品である。Snappy Ubuntu Coreは、PCやスマートフォンよりもさらにリソースが少ないIoT(Internet of Things:モノのインターネット)での利用も想定されているため、「最軽量」を意識していると考えられる。

前述のように、Snappy Ubuntu Coreは「最軽量のUbuntu OS」である。使用を開始するためには、まずフレームワークをインストールする必要がある。OS+フレームワークの組み合わせにより、様々なアプリケーションの稼働環境を最低限の手順とリソースで構築可能となっている。本記事執筆時点では、提供されているフレームワークはDockerのみだが、今後フレームワークが拡張されることが期待される。

Snappy Ubuntu Coreの管理には「Snappy」コマンドが用意されている。主に以下の用途に使用する。

  • 設定の参照・変更
  • 使用できるフレームワーク、パッケージ、コンテナの検索
  • フレームワーク、パッケージ、コンテナのインストール、アンインストール
  • サービス、コンテナの起動・停止

Snappy Ubuntu Coreの基本設定、操作は「Snappy」コマンドを利用することになる。ただし、Dockerフレームワークインストール後は、通常の「Docker」コマンドも併用が可能である。

Snappy Ubuntu Coreは軽量OSではあるが、必要な機能を選んで最低限の構成で稼働させられるベースOSであり、Docker環境の構築以外にも活用できると考えられる。

さらに開発元であるCanonicalは、2015年2月19日にIoT開発APIの提供に向けて、MicrosoftおよびAmazonとのパートナーシップ締結を発表している。IoTデバイスとクラウド上のサービスとの融合をより円滑にすることを目的としており、Snappy Ubuntu CoreのIoTデバイスへの利用が促進されるものと期待される。

軽量OSを比較する

今まで紹介した3つの製品を同一条件の仮想マシンにインストールを行い、リソース使用量やパフォーマンスの簡単な比較を行ってみた。

(1)インストールした環境

CentOS 7 x86_64上にKVM環境を構築

以下の構成の仮想マシンを3セット作成し、それぞれにOSのインストールを実施

リソース CPU Memory HDD
割当量 1core 1GB 8GB

(2)ディスク使用量

それぞれのOSのインストール直後のディスク使用量は以下となる

CoreOSとSnappy Ubuntu Coreはほぼ同容量となっているが、Red hat系ディストリビューションは若干使用量が多くなっている。Project Atomicでもさらなる軽量化を進めており、今後この差は大きく縮まるものと考えられる。

製品名 CoreOS CentOS Atomic Host Fedora(21) Atomic Snappy Ubuntu Core
ディスク使用量 304MB 1.6GB 804MB 306MB

(3)簡易負荷テスト

各OSにnginxのコンテナを5つ起動させた

この状態でCPU使用率、Memory使用量の比較を行った

リソース パラメータ CoreOS CentOS Atomic Host Snappy Ubuntu Core
CPU CPU使用率 1% 5% 1%
Memory free(KB) 583056 396672 605376
buff(KB) 15908 5236 18584
cache(KB) 289188 302092 272492

発生させた負荷量が少なかったが、CPU使用率はCentOS Atomic Hostのみが若干高い傾向が見られた。コンテナ自体は起動しているだけでほとんど何もしていなかったので、ベースOSの負荷等が考えられる。またメモリ使用量に関しても、若干ではあるがCentOS Atomic Hostが多くなる傾向が見られている。インストールされているパッケージ数(ファイル数)が多く、キャッシュメモリも多く消費されている。 

まとめ

今回はDocker向けの軽量OS 3製品を紹介した。

性能面で簡単な比較を行ったが、製品間の優劣はほとんどないと言える。そのため選択のポイントは、目的によって決まってくるだろう。
Docker稼働環境として簡単にスタートしたいのであればCoreOSを、Red Hat系OSのコンテナを使い、動作の保証やサポートが必要なのであればProject Atomicの製品を、任意のパッケージを組み合わせて使用したいのであればSnappy Ubuntu Coreを選択するのが良いだろう。

各OSの目指す方向は、ロードマップから見てとれる。Docker本体やRed Hat系ディストリビューションは、サーバ仮想化環境と競合できるような「多機能で安定したシステムの稼働環境」を志向している。それに対してCoreOSは、コンテナエンジンをDockerからRocketに変更することで「シンプルで利用者の自由度が確保される環境」を目指している。さらにSnappy Ubuntu Coreは、「多くのデバイスで必要最低限の機能を動作させる環境」を実現しようとしている。各OSは、それぞれの進化を続けていくだろう。

コンテナ自体はポータビリティが高く、どのディストリビューションであっても大部分は稼働させることができる。製品選択にあたっては、使用できるDockerのバージョンや各製品の利用可能なコンポーネント、サポートの要否によって決定されることになるだろう。

次回は、ベアメタル環境とDockerコンテナ環境での性能比較の結果を紹介する予定だ。

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る