[入門編] Ubuntu Serverとその他のサーバーOSを比較する
![](https://thinkit.co.jp/sites/default/files/styles/main_image_730x/public/main_images/4697_main_1_8.png?itok=p1WtYtB1)
Ubuntu Serverとその他のディストリビューションとの違い
Ubuntu Server入門編第3回では、Ubuntu Serverとその他のサーバーOSの違いについて説明します。
自社のシステムに対して採用すべきLinux OSの種類を見極める場合、シェアや魅力的な機能の有無だけを比較するのではなく、そのOSが持つ特徴、ハードウェア基盤との組み合わせ可否、安定性、適用領域、保守サポート費用やOSベンダーの取り組み等を知っておく必要があります。
企業で利用されているLinuxディストリビューションは、日本だけでなく海外でもRed Hat Enterprise Linux(以下RHEL)が有名です。また欧州では、SAPやHAクラスタを必要とするミッションクリティカル領域でSUSE Linux Enterprise Server(以下SLES)も採用されていますが、一般的なビジネス用途も含め、LinuxサーバーOSのシェアでは、RHELが圧倒的です。
Ubuntu Serverを手掛けるCanonical社は、Red Hat社と同様、多くの優秀なLinux技術者を有しており、製品開発、コンサルティング、技術サポートなどを行う企業です。日本HPだけでなく全世界規模で各ITベンダーと密な情報交換を行っている企業の一つとして、Canonical社の多くの技術者は、Red Hat社とFedoraプロジェクトとの関係と同様に、Ubuntuコミュニティの発展に大きく貢献しています。
Red Hat社が手掛ける商用Linuxの元となる技術は、RHELの実験工房とも呼ばれる「Fedoraプロジェクト」に由来しますが、このFedoraプロジェクトやopenSUSEプロジェクトと同様に、Ubuntuのコミュニティも先進的なOSSの技術をUbuntu Serverに取り入れています。Ubuntuコミュニティの成果物は、機能の取捨選択や改良、バックポート、安定性の評価等を経て、Ubuntu ServerのLTS版に取り込まれる傾向にあります。先進的で魅力的な技術や機能であっても、エンタープライズレベルの企業ユーザーにとってリスクが残っていると判断されるような機能については、LTS版に取り込まれないか、通常版で取り込まれる傾向にあります。
これは、商用Linuxの導入可否判断において非常に重要な点で、システムの導入企画や計画、設計に関わる技術者はこれらの機能や安定性、動作実績の情報を元にしてユーザーと対話を進めます。
Red Hat社は、Fedoraプロジェクトでコミュニティが開発した成果物をベースに、RHELを商用Linux製品としてリリースします。一方、Ubuntu Serverでは、通常版で新機能の実験等を行い、比較的安定したものや必要な機能のバックポート等が行われ、長期稼働を目的としたものがLTS版としてリリースされます。本番環境での通常版の利用もありえますが、問題解決のサポートが必要な場合は、OEMベンダーの保守サポートが受けられるLTS版を利用することになります。OSSのバージョンの関係で安定性を犠牲にしても新機能を使いたいという場合は、非LTS版を導入することになりますが、ハードウェアでの動作確認、OS本体やOSSの機能および負荷試験は利用者が十分に行う必要があります。Ubuntu Serverに限らずコミュニティ版のLinuxやフリーのBSD系OSを採用する場合にも十分な事前テストが必要です。
以下では、スケールアウト型サーバー基盤で比較的利用されることの多いCentOSとの違いも含め、比較表にまとめておきます。
Ubuntu ServerのOSバージョンとisoイメージ
Ubuntu Serverは、2013年12月現在、LTS版として12.04.3がリリースされています。RHEL6.4やRHEL6.5がリリースされる度にisoイメージが異なるのと同様、Ubuntu ServerでもポイントリリースごとにOSのisoイメージが異なります。RHELの場合は、isoイメージをRed Hat Networkから入手しますが、Ubuntu Serverのisoイメージはubuntu.comのサイトから入手できます。次期LTS版が登場する2014年4月の時点では、LTS版として14.04 LTSと12.04.4 LTS、非LTS版は13.10がUbuntu Serverの利用候補になります。非LTS版とLTS版のリリースの後にハードウェアベンダー提供のサポート・マトリクスに掲載されたUbuntu Serverのバージョンと対応するサーバー機種をチェックしておくことをお勧めします。
対応アーキテクチャ
RHELの対応アーキテクチャは、32ビットのx86アーキテクチャ(i386版)、x86アーキテクチャの64ビット版(x86_64版)、IBM社のPOWERとSystem zのアーキテクチャに対応しているのに対し、Ubuntu Serverは、i386版、x86_64版の他に、ARM版が存在します。
一般的なx86サーバーには、Ubuntu Serverのx86_64版のisoイメージを使ってインストールを行いますが、省電力であるARMプロセッサを搭載した高密度なカートリッジサーバーとx86_64版の混在の利用が考えられます。UbuntuのWebサイトには、超省電力チップを搭載したカートリッジ型のサーバー「HP Moonshot」とUbuntu Serverの親和性に関する情報が掲載されています。
![](/sites/default/files/articles/474903.jpg)
インストーラが特徴的なUbuntu Server
一般的にRHELやCentOS、SLES等のインストールはGUIによるマウス操作によって行いますが、Ubuntu Serverのインストールはテキストベースで、キーボード操作によって行います。
Ubuntu Serverのインストーラは、パーティショニング、ユーザー作成、各種パッケージのインストールを行う機能以外に、MaaS(Metal-as-a-Service)と呼ばれるクラウド型のOS自動配備用サーバーの構築を半自動的に行う機能も有しています。MaaSを選択してインストールを行えば、簡単にOS配備用のサーバーを構築できるため、大量のスケールアウト型サーバーを導入する技術的なハードルを大きく下げることができます。これは、サービスプロバイダ等のスケールアウト基盤を大量に導入されるユーザーにとって重要な点です。
OS配備用のサーバー構築は、DHCP、TFTP、NFS、HTTPのプロトコルと、isoイメージ、ブート用のイメージ等の用意やノードの登録用の設定ファイル等を管理者が手動で準備し、管理者向けのWebインタフェース等を自作して管理する場合が一般的です。またクラウド型の配備になると、セキュリティやマルチテナントを意識した開発が必要になり、OSを配備するだけでも大きな負担になります。MaaSを導入すれば、これらの管理・開発の負担を軽減することができます。
Ubuntu Serverのインストーラで選択可能な様々なファイルシステム
RHELでサポートされる主なファイルシステムは、ext4やXFSです。Red Hat社のNASアプライアンス製品「Red Hat Storage」では、昨今のビッグデータを意識した利用を想定し、XFSの利用が必須となっていますが、Ubuntu Serverでも同様にXFSの利用が可能です。またreiserfsやJFS、btrfsなどのファイルシステムもサポートしています。ただし、サーバー用途で安定的に利用する場合は、現在ユーザー環境に導入されているファイルシステム周りの管理スクリプトや技術者のスキル等を考慮し、実績のあるファイルシステムを利用する方がよいでしょう。
その他のポイントとして、利用するファイルサイズ、ファイルの総容量によって、XFSの選択を考慮する必要があります。Ubuntu Serverでは、OS領域にext4ファイルシステムを利用するのが一般的です。また、GlusterFS等の分散型のファイルシステムの利用を視野に入れたビッグデータ向けのスケールアウト型NAS用途としては、XFSでの利用が一般的です。
LVMの利用シーンで比較する
RHEL系のOSでは、共有ストレージ型のHAクラスタのボリュームの利用にLVMを使うことがありますが、Ubuntu ServerでのLVMの利用シーンは主に、スケールアウト型のNAS向けの分散ファイルシステム等が考えられます。実際、Red Hat Storage等のファイルシステムではLVMが必須ですが、GlusterFSのような分散ストレージ基盤でUbuntu Serverを採用する場合も、LVMを使うことになります。Ubuntu ServerのLVMの基本機能や使用感は、RHELやCentOSとあまり変わりませんので、Red Hat系OSでのLVMの運用ノウハウを活かすことができます。
ソフトウェアRAIDの利用には注意が必要
Ubuntu Serverは、RHELのインストーラと同様にソフトウェアRAIDが選択可能です。ただし、Ubuntu ServerのソフトウェアRAIDは、RHELの場合と同様に、サーバーのCPUリソースを消費する点と、ハードディスク障害時の管理と障害切り分け等が煩雑化するため注意が必要です。ハードウェアベンダーからRAIDコントローラーのドライバーがUbuntu Server向けにリリースされていない場合等の特殊な事情においてのみ、ソフトウェアRAIDを検討してください。Ubuntu Serverでも、ソフトウェアRAIDはインストーラレベルで設定の機能を有していますが、実際の運用では、障害復旧手順等を確実に把握しておく必要がありますので、導入前に障害通知試験や障害復旧試験を十分に行ってください。
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とのコマンド、設定ファイルなどの違いについて紹介します。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- [入門編] Ubuntu Serverの基礎(前編)
- [実践編] Ubuntu Serverをスケールアウト型サーバーに配備する(後編)
- [入門編] Ubuntu Serverの基礎(後編)
- Dockerの導入前に知っておくべきこと
- Dockerの導入前の設計、CentOS 7.xとDockerのインストール
- 仮想化環境KVMのシステム管理、監視
- [入門編] RHELユーザーが知っておきたい、Ubuntu Serverとのコマンド・サービスの違い
- [実践編] Ubuntu Serverをスケールアウト型サーバーに配備する(前編)
- インストールとNICの設定
- [実践編] Ubuntu Serverの運用・管理、商用製品の利用メリットと今後の展望(後編)