Docker向けの軽量Linux OS 主要3種を比較する

2015年3月6日(金)
佐藤 司森元 敏雄

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のインストールを実施

リソースCPUMemoryHDD
割当量1core1GB8GB

(2)ディスク使用量

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

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

製品名CoreOSCentOS Atomic HostFedora(21) AtomicSnappy Ubuntu Core
ディスク使用量304MB1.6GB804MB306MB

(3)簡易負荷テスト

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

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

リソースパラメータCoreOSCentOS Atomic HostSnappy Ubuntu Core
CPUCPU使用率1%5%1%
Memoryfree(KB)583056396672605376
buff(KB)15908523618584
cache(KB)289188302092272492

発生させた負荷量が少なかったが、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コンテナ環境での性能比較の結果を紹介する予定だ。

株式会社アーベルソフト

インフラ基盤の設計・構築・運用までの全ての工程を担当。最近は、OSS製品を活用したインフラ基盤の提供を行っている。利用するOSS製品の調査・研究も行っており、現在は、DockerとTerraformに注目している。
>株式会社アーベルソフト

TIS株式会社

R&D部門である戦略技術センター所属。
金融系の大規模システム開発やプライベートクラウド開発環境の構築・運用の経験を生かし、OSS製品を中心としたの技術調査・検証を担当。
> TIS株式会社

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています