Docker向けの軽量Linux OS 主要3種を比較する
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コンテナ環境での性能比較の結果を紹介する予定だ。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Dockerの導入前に知っておくべきこと
- Dockerをより良く使うための3つの周辺技術
- クラウド最適化の軽量版Ubuntu Core発表、MongoDBがWiredTigerを買収、Fedora 21正式版リリース、ほか
- 注目すべきDockerの周辺技術 PanamaxとKubernetes
- Dockerを理解するための8つの軸
- Red Hat、Linuxコンテナ基盤「Red Hat Enterprise Linux 7 Atomic Host」を提供開始
- 「CoreOS Container Linux」と「Fedora Atomic Host」を組み合わせた「Fedora CoreOS」プロジェクトが始動
- コンテナをエンタープライズレディに OpenShiftにかけるRed Hatの意気込みとは?
- OpenStack Magnumとコンテナ
- Dockerの導入前の設計、CentOS 7.xとDockerのインストール