OpenVZ は時代遅れか?

OpenVZ 開発者のブログに Is OpenVZ obsoleted? と題して現在の状況を説明した記事が掲載されていました。

OpenVZ は時代遅れだという理由でよくあげられる 3 点について反論する内容となっています。

  1. OpenVZ のカーネルは 2.6.32 という古いバージョンをベースにしている (2013 年ではバージョン 3.x が主流)。
  2. LXC のほうが OpenVZ より将来性がある。
  3. OpenVZ の開発は止まっており Debian でも wheezy リリースで取り除かれた。

以下超訳引用:

1. OpenVZ カーネルは古い。

OpenVZ カーネルは標準カーネルのバージョン 2.6.32 ではなく Red Hat Enterprise Linux 6 (RHEL6) のカーネルをベースにしている。このカーネルはバージョン番号こそ 2.6.32 であるが、 Red Hat によりサポートされ、最新カーネルの最新機能やセキュリティフィクスが随時バックポートされており、 2013 年に使うプロダクションサーバのためのカーネルとして遜色はない。

RHEL7 がリリースされたら、そのカーネル (バージョン 3.10?) をベースにした OpenVZ カーネルもリリースする予定。それまでは RHEL6 ベースのカーネルが最新かつ最良の選択である。 2.6.32 というバージョン番号に惑わされてはならない。

2. OpenVZ と LXC の将来性。

当初 OpenVZ カーネルは標準カーネルとは独立に開発されてきたが、 2005 年にこれが間違いであると気づき、現在は OpenVZ カーネルの機能を標準カーネルへと統合する作業を進めている。これまでにネットワーク名前空間や CRIU など 2000 以上のチェンジセットが統合された。

LXC は実際にはこれらカーネルのコンテナ機能を利用するユーザ空間ツールである。現時点で LXC が使うカーネルの機能の少なくとも半分は OpenVZ 由来のもの。まだ標準カーネルに統合されていない OpenVZ の機能 (リソースアカウンティング、ploop など) は LXC では使えず、その意味では OpenVZ は LXC++ であるといえる。

OpenVZ カーネルの機能統合が完成した暁には、OpenVZ は LXC と同様なユーザ空間ツールのひとつとなり、最新の標準カーネルで共に使うことができるようになるかもしれない (すでに vzctl 4.0 は標準カーネルでも使えるようになった)。

3. OpenVZ の開発は止まっており Debian でも wheezy リリースで取り除かれた。

Debian は wheezy のリリースより OpenVZ カーネルのサポートを中止した。カーネルのメンテナンスには多大なリソースが必要であり、この決定は理解できる。そして、これは Debian プロジェクトのカーネルパッケージング方針の決定であり、 OpenVZ の開発が停止したということではない。

とまあ趣旨はこれまでの主張から変化がないのですが、 3. に対する回答として OpenVZ プロジェクトによるオフィシャルな Debian パッケージリポジトリ が登場したのはよいニュースです。ぜひ試してみたいと思います。

ここで Debian の事情がわざわざとりあげられたのは、私を含め Debian による OpenVZ のサポートを便利に使っていた人がそれだけ多かったということでしょう。セキュリティ対応などの手間を考えると、独自パッチを含むカーネルは誰かがパッケージを作ってサポートしてくれるのでなければ、私もプロダクションのサーバで使う気は起きません。

これまでは Debian で OpenVZ 最新カーネルを試そうと思えば alien で RPM パッケージを無理矢理インストール するか自分でビルドするかくらいしかなかったのですが、Debian wheezy できちんと他のパッケージと整合性が取られたパッケージが提供されるのは、それだけでもたいへんありがたいことです。

しかしながら、いくら RHEL6 の 2.6.32 カーネルが安定しており鉄板だといっても、やはり新しいカーネルの機能やデバイスドライバは使いたいわけで、その点では最新標準カーネルで利用可能な LXC の活用も研究していく必要がありそうです。

カーネル標準のコンテナ機能も LXC も日々進化しており、ディストリビューションによるサポート (特に Ubuntu) も充実してきていることから、インハウスなシステム限定であれば十分に使えるレベルになっています。

個人的にぜひ使いたいカーネル新機能として安定した btrfs や dm-thin-pool があるのですが、次の Debian jessie や Ubuntu 14.04 LTS の頃にはプロダクションで使えるレベルのものが出揃っているのではないでしょうか。

RHEL7 ベースの OpenVZ カーネルも、いつになるかわかりませんがリリースされれば選択肢のひとつになるかもしれません。

2013/10/16 03:35:00 JST