(Translated by https://www.hiragana.jp/)
OpenVZ - Wikipedia コンテンツにスキップ

OpenVZ

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
OpenVZ
OpenVZ
作者さくしゃ コミュニティ
サポート企業きぎょう パラレルス
初版しょはん 2005ねん (19ねんまえ) (2005)
最新さいしんばん
7.0 / 2016ねん7がつ25にち (2016-07-25)
リポジトリ ウィキデータを編集
プログラミング
言語げんご
C
対応たいおうOS Red Hat Enterprise Linux 5, 6, 7
プラットフォーム x86, x64
種別しゅべつ OSレベル仮想かそう
ライセンス GNU GPL v.2
公式こうしきサイト openvz.org
テンプレートを表示ひょうじ

OpenVZ(オープンブイジー)は、Linuxカーネルをベースに開発かいはつされた Red Hat Enterprise Linux (RHEL) ようオペレーティングシステム (OS) レベルのサーバ仮想かそうソフト。

Parallels Virtuozzo Containers for Linuxのオープンソースばんであり、1つの物理ぶつりサーバじょう複数ふくすう独立どくりつしたLinuxインスタンスを作成さくせいすることができる。ただし、Linuxカーネルをすべてのインスタンスで共有きょうゆうするため、Linux以外いがい環境かんきょうWindowsなど)を動作どうささせることはできない。

特徴とくちょう

[編集へんしゅう]

ハイパーバイザかた(ハードウェアレベル)の仮想かそうソフトであるVMwareXenくらべてオーバーヘッドすくないとされ、稼動かどうさせる環境かんきょうすうっている。より高密度こうみつどできるため、バーチャル・プライベート・サーバ (VPS) での使用しようにおいて、コストダウンをはかることができる。

チェックポイントとライブマイグレーションにも対応たいおうしている。ゲストOS(コンテナ)が稼働かどうちゅうのまま、べつのマシンにうつすことができる。simfsを利用りようした場合ばあい、メモリの内容ないようなどのみが保存ほぞんされ、ファイルシステム内容ないよう保存ほぞんされないが、ファイルシステムにploopを使つかった場合ばあいスナップショットることができ、その場合ばあい、ファイルシステムの内容ないよう復元ふくげんしたり、変更へんこう差分さぶんだけを管理かんりしたりできる。

RHEL 5はんでは、仮想かそうメモリ単位たんいでしかメモリの制限せいげんをかけられなかったが、RHEL 6でLinux カーネル 2.6.32になり、cgroups開発かいはつすすみ、VSwap[1]使つかえるようになり、物理ぶつりメモリやスワップメモリでも制限せいげんをかけられるようになった。コンテナない物理ぶつりメモリが枯渇こかつし、スワップメモリを使つかはじめても、ホストの物理ぶつりメモリがあまっている場合ばあいは、実際じっさいにはすぐにディスクへのしがはじまるわけではなく、人工じんこうてきにコンテナの速度そくどおそくしスワップアウトをエミュレートし、本当ほんとうにホストの物理ぶつりメモリが枯渇こかつしたときにはじめてディスクへのしがはじまる。

対応たいおうOS

[編集へんしゅう]

公式こうしきにはRed Hat Enterprise Linux (RHEL) にのみ対応たいおうしている。RHELクローンのCentOSでも動作どうさし、Parallels Virtuozzo ContainersほうではCentOSも公式こうしきにサポートしている。Linuxカーネルを改造かいぞうしているため、ディストリビューションおよびそのバージョンにつよ依存いぞんしている。

Ubuntu 10.04またはDebian 6.0にインストールするには、RPMファイルをdebに変換へんかんすることで可能かのう[2][3]元々もともとのDebian 5.0、6.0ではパッケージにふくまれているが、サポートが技術ぎじゅつてき困難こんなんであるという理由りゆうから、Debian 7.0 ではパッケージを廃止はいし予定よてい[4]。Debianから派生はせいしているUbuntuでは8.04はふくまれているが、10.04ではパッケージにふくまれていない[5]

ゲストOSのほうは、主要しゅようLinuxディストリビューションいちとお対応たいおうしている。

カーネル

[編集へんしゅう]

OpenVZのカーネルはLinuxカーネルをOpenVZコンテナをサポートするように修正しゅうせいくわえたものである。修正しゅうせいされたカーネルは仮想かそう、コンテナ同士どうし隔離かくり、リソース管理かんり、チェックポイントの機能きのうつ。

仮想かそう隔離かくり

[編集へんしゅう]

それぞれのコンテナは別々べつべつ分離ぶんりされていて、だいむね隔離かくりされた物理ぶつりサーバのようにうごく。以下いかものをそれぞれ隔離かくりして所有しょゆうしている。

ファイル
システムライブラリ、アプリケーション、仮想かそうされた/procや/sys、仮想かそうされたロックなど。
ユーザーとグループ
それぞれのコンテナは独自どくじのrootユーザーをち、ユーザーやグループは独立どくりつしている。
プロセスツリー
それぞれのコンテナは独立どくりつしたプロセスをち、プロセスはinitのプロセスとなっている。プロセスID (PID) は仮想かそうされており、init PIDはちゃんと1になっている。
ネットワーク
ネットワークデバイスは仮想かそうされていて、固有こゆうIPアドレスっていて、iptables やルーティングは独自どくじのものをてる。
デバイス
必要ひつようならば、コンテナはネットワークインタフェースシリアルポート、ディスクパーティションなどリアルデバイスにアクセスすることが出来できる。
IPCオブジェクト
共有きょうゆうメモリ、セマフォメッセージパッシングなども独立どくりつしている。

リソース管理かんり

[編集へんしゅう]

OpenVZのリソース管理かんりは、ディスククォータ、CPUスケジューラー、I/Oスケジューラー、ユーザービーンカウンタからなる。これらのリソースはコンテナが実行じっこうちゅうさい起動きどうすることなしに変更へんこうすることが可能かのう

ディスククォータ

[編集へんしゅう]

かくコンテナは個別こべつのディスククォータをち、ディスクブロックすうとinodeすうだいむね、ファイルすうになる)で管理かんりされる。コンテナないでは、標準ひょうじゅんてきなツールでユーザーごとやグループごとにディスククォータをかけることも出来できる。

CPUスケジューラー

[編集へんしゅう]

OpenVZのCPU スケジューラーは公平こうへいなスケジューリング戦略せんりゃくを2段階だんかい実装じっそうしている。

だい1段階だんかいでは、コンテナごとのcpuunitもとづいて、スケジューラはCPUタイムスライスをどのコンテナにるかめる。だい2段階だんかいでは、標準ひょうじゅんのLinuxのスケジューラがコンテナないのどのプロセスを実行じっこうするか、Linuxのプロセス優先ゆうせん順位じゅんいもとづいてめる。

コンテナごとにことなるcpuunitることが出来できる。CPU利用りよう時間じかんはcpuunit比例ひれいして分配ぶんぱいされる。

ぜんCPU 時間じかんの10% など、厳密げんみつ限界げんかい設定せっていすることも出来できる。

I/Oスケジューラー

[編集へんしゅう]

上記じょうきのCPUスケジューラー同様どうよう、OpenVZではI/O スケジューラーも同様どうように2段階だんかいおこなっている。ジェンス・アクスボーCFQ英語えいごばんI/Oスケジューラ英語えいごばん利用りようしている。

それぞれのコンテナはI/Oの優先ゆうせん順位じゅんいっていて、利用りよう可能かのうなI/O帯域たいいきをその優先ゆうせん順位じゅんいもとづいて分配ぶんぱいする。それひとつのコンテナがI/Oを使つかたすということは出来できなくなっている。ただし、simfsを使用しようした場合ばあい、ホストがわext4などのジャーナリングがボトルネックとなって公平こうへい分配ぶんぱいできない場合ばあいがある。

ユーザービーンカウンタ

[編集へんしゅう]

ユーザービーンカウンタはコンテナごとに設定せっていされ、最低さいてい上限じょうげん設定せっていする。21項目こうもくある。あらゆる側面そくめん設定せってい可能かのうであり、コンテナがシステムリソースを使つかたすことを制限せいげんすることが出来できる。

以下いか項目こうもく一覧いちらん

  • 主要しゅようなパラメータ
    • numproc - プロセスすう
    • numtcpsock - TCPソケットすう
    • numothersock - TCP以外いがいのソケットすう
    • vmguarpages
  • てきなパラメータ
    • kmemsize - カーネルないのスワップ不可能ふかのうメモリサイズ
    • tcpsndbuf - TCP送信そうしんバッファ
    • tcprcvbuf - TCP受信じゅしんバッファ
    • othersockbuf - のソケットのバッファ
    • dgramrcvbuf - データグラム (UDP) 受信じゅしんバッファ
    • oomguarpages
    • privvmpages
  • 補助ほじょてきなパラメータ
    • lockedpages - スワップされないメモリ
    • shmpages - 共有きょうゆうメモリ
    • physpages - 物理ぶつりメモリサイズ
    • numfile - オープンファイルすう
    • numflock - ファイルロックすう
    • numpty - ptyすう
    • numsiginfo - siginfoすう
    • dcachesize
    • numiptent - NETFILTER (IPパケットフィルタリング)すう
    • swappages - スワップメモリサイズ

ライセンス

[編集へんしゅう]

OpenVZは、GPLバージョン2にもとづいて配布はいふされている。どう技術ぎじゅつ使用しようした商用しょうようソフトとしてパラレルス販売はんばいするParallels Virtuozzo Containers for Linuxがある。

脚注きゃくちゅう

[編集へんしゅう]
  1. ^ VSwap - OpenVZ Linux Containers Wiki
  2. ^ Install kernel from RPM on Ubuntu 10.04 - OpenVZ Linux Containers Wiki
  3. ^ Install kernel from RPM on Debian 6.0 - OpenVZ Linux Containers Wiki
  4. ^ Bug#642380: Cannot chkpnt (live migrate) VEs - linux.debian.kernel
  5. ^ OpenVZ - Community Ubuntu Documentation

関連かんれん項目こうもく

[編集へんしゅう]

外部がいぶリンク

[編集へんしゅう]