[入門編] Ubuntu Serverとその他のサーバーOSを比較する
RHELとUbuntu Serverで適用可能な領域
Red Hat系のLinuxは、MySQLやPostgreSQL等のデータベース層で利用されることも少なくありません。データベースシステムは一般的に外部ストレージを有したHAクラスタ構成にするため、ベンダーによるストレージの動作認定が必要です。Red Hat系のLinuxは主要なハードウェアベンダーが自社のストレージを認定しており、かつHAクラスタソフトウェアもerrataカーネルのバージョンのレベルまで細かく認定されています。
一方、Ubuntu Serverは、現時点で商用データベースでの利用実績は多くありません。外部ストレージの動作認定も限定的であり、商用のHAクラスタソフトウェアでUbuntu Serverを正式にサポートしているものは多くありません。データベース用途やHA構成を組む場合は、実績のあるRHELやSLES等で構成することが無難です。
RHELやその他のエンタープライズ系Linux OSがバックエンド系システム(3層構成におけるデータベース層等)での利用に向いているのに対し、Ubuntu Serverはスケールアウト基盤であるWebフロントエンドでの利用に向いています。OSの標準機能にMaaSによる大量ノードへの自動配備機能が備わっている点からもその傾向が読み取れます。現在、筆者が抱えているお客様にも、データベース等のベンダーのサポートが重要視されるシステムではRHELを導入し、スケールアウト基盤ではUbuntu Serverを導入する場合が増えてきています。
仮想化技術、クラウド基盤での比較
Red Hat社は、RHELのカーネルに標準搭載されているKVM(Kernel Virtual Machine)やRed Hat Enterprise Virtualization(通称RHEV)と呼ばれる仮想化ソフトウェアを提供しています。特にRHEVは、エンタープライズ環境に対応した仮想化ソフトウェアで、使いやすいGUI管理画面、外部ストレージの接続、ライブマイグレーション等の高度な仮想化の機能が特徴です。
一方、Ubuntu Serverには、KVMとLinuxコンテナ(通称LXC)があります。Ubuntu ServerにおけるKVMを使った仮想化基盤の管理はvirt-managerを使うのが一般的ですが、あまり高度な機能は有していません。特徴的なのは、Ubuntu Serverに搭載されているLXCです。2013年12月現在、LXCは、OEMベンダーによる保守サポートがありませんが、スケールアウト型のホスティング系顧客に嬉しい仮想化の先進機能を有しています。現在、多くの商用サービスのシステムにおいて、Linuxの仮想化機能の一つであるKVMが利用されていますが、近年、Webサービスの大量のトラフィックを処理する目的や、ホスティングの仮想化基盤としてLXCが注目を浴びています。海外では、ホスティングといえばVirtuozzo(バーチュオッゾ)という名前の仮想化ソフトウェア製品が有名ですが、このVirtuozzoもLXCと同様のコンテナ技術を採用しています。
LXCの特徴はKVMに比べて非常に軽量であることと、圧倒的に大量のゲストOS(コンテナ)を実行できる集約度の高さにあります。また、CPUやメモリの利用に制限をかけることも容易にできます。これらLXCなどの先進機能に対応しているOSとしてもUbuntu Serverは魅力的です。国内でも先進的なサービスプロバイダ系のユーザーがLXCを使ったVPS(仮想専用サーバー)を安定的に稼働させることができているという報告があります。一方、安定的で実績の豊富な仮想化基盤ソフトウェアで、ハードウェアベンダーのサポートが必要であるという場合には、Ubuntu ServerのKVM機能を利用できます。Ubuntu ServerのKVMでも、virt-managerを使うことが可能ですので、他の商用Linuxディストリビューションと同様の管理手法がそのまま適用できます。
Ubuntu Serverにおいて、高度なゲストOSの管理だけでなくマルチテナントやクラウドを意識した環境を利用したい場合は、今後OpenStackの導入を検討すべきです。クラウド基盤ソフトウェア「OpenStack」は、アメリカ航空宇宙局NASAや米国の大手ホスティングベンダーRackspace社が主導し、HP Cloud部門の社員もOpenStackコミュニティのリードを務めています。
「OpenStackといえばUbuntu」という印象がありますが、近年、Red Hat社のやNovell社の技術者もOpenStackへの取り組みを活発に行っており、大手のベンダー各社がOpenStackへの取り組みを大幅に強化し、Ubuntu ServerだけでなくRHELやSLESでも動作するという状況です。ただし、OpenStackクラウド基盤の先進機能のサポートや開発基盤としてのOSという観点で見ると、Ubuntu ServerとOpenStackの歴史と親和性は無視できません。
例えば、「Ubuntu Cloud Archive」を利用すると、Ubuntu Serverの12.04系のLTS版でも、OpenStackの最新バージョンに対応できる仕組みが整備されています。また、Ubuntu Serverの通常版である13.10には、OpenStackの最新リリースであるHavanaが標準搭載されており、OpenStack基盤を手軽に利用することができるようになっています。さらに、Ubuntu Serverで動作するOpenStackには、「Ubuntu Cloud Guest」と呼ばれるパブリッククラウド基盤向けのゲストOSイメージが用意されています。現時点では、以下のクラウドサービスに対応したイメージが用意されており、ゲストOSの用意の手間を大幅に削減することができるようになっています。
- Amazon Webサービス(EC2)
- HP Cloud
- Windows Azure
- Rackspace Cloud
また、Ubuntu Serverが提供するOSSのオーケストレーションソフトウェアJujuを使えば、OpenStackの配備もマウス操作で簡単に行うことが可能となっています。一方、RHELにおいても、yumのリポジトリに追加することによって、最新のOpenStackのHavanaを導入することが可能になっており、RHELにおいても、OpenStack導入のハードルが益々低くなっています。
Ubuntu Cloud Guestに関する情報:
> http://www.ubuntu.com/download/cloud/install-ubuntu-cloud
RHELへのOpenStack Havanaの導入手順:
> http://openstack.redhat.com/Quickstart
以下では、利用シーン別にサーバーOSの適用領域を2014年1月時点での最新OSで比較してまとめました。データベースやHAクラスタの利用だけでなく、スケールアウト基盤、仮想化、最近注目を浴びるクラウド基盤での比較もありますので、導入検討の際に参考にしてみてください。
ただし、実際の導入では、個別の要求や保守の要望、個別の利用目的等を考慮する必要があるため、ベンダーの技術者との意見交換を十分行って導入可否を決めるようにしてください。
次回は、RHELに慣れたユーザーの方向けに、Ubuntu Serverとのコマンド、設定ファイルなどの違いについて紹介します。