
Habrには、コンテナ仮想化の良し悪しに関する多くの記事がありますが、インストールと構成に関する段階的な手順は見つかりませんでした。 このギャップを埋めようとします。
仮想化は、サーバーリソースをより合理的に使用できるため、非常に重要なトピックです。 そして、私はOpenVZに会えてとてもうれしかったです。
OpenVZは、Linuxカーネルに基づいたオペレーティングシステムレベルでの仮想化技術の実装です。 OpenVZを使用すると、1つの物理サーバーでオペレーティングシステムの多くの隔離されたコピー、いわゆるコンテナ(仮想環境、VE)を実行できます。
OpenVZはLinuxカーネルに基づいているため、GNU / Linuxディストリビューションのみが「ゲスト」システムとして機能できます。 ただし、OpenVZのオペレーティングシステムレベルでの仮想化には、管理の容易さ、ホストシステムでの仮想コンテナーの高密度配置(通常、VPSホスティングのコストにプラスの影響)、完全な仮想化テクノロジーと比較してわずかに優れたパフォーマンスなど、多くの利点もあります。
もちろん、十分な欠陥があります。 主なものは、KVMとは異なり、OpenVZモジュールはバニラコアに含まれていないため、後者の機能には別のコアが必要であり、そのバージョンは最後からは程遠いということです。 この記事の公開時点で、最新の安定バージョンは2.6.32-042stab084.14です。 このことから、本質的には、すべてのディストリビューションがOpenVZでホストシステムとして機能できるわけではなく、2.6.32カーネルおよびそのバージョンのみで機能することがわかります。 そのため、OpenVZ-たとえば、Ubuntu 12.04 LTSのカーネルは起動しそうにありません(既に試しました)。カーネルはここではバージョン3.8です。 RedHat 6(CentOS 6、Scientific Linux 6)およびDebian 7ではすべてがインストールされ、これらのディストリビューションはParallelsによって公式にサポートされているため、すべてがそれほど悪いわけではありません。
次の欠点は、すべてのコンテナが1つのコア(ホストシステムコア)で動作し、必要なカーネルモジュールの追加が完全な仮想化テクノロジーほど簡単ではないことです。 その結果、カーネルとの緊密な統合を必要とするNFSサーバーまたはその他のサービスは、OpenVZコンテナーで動作できなくなります。 仮想化システムのその他の短所と利点は、たとえば
ここにあります 。
実践のない理論は死んでいるので、今度はOpenVZのホストシステムのインストールと構成について説明します。 ホストシステムとしてCentOS 6.5を選択しました。 OpenVZカーネルをインストールするためのリポジトリと、コンテナを操作するためのユーティリティを追加します。
カーネルとユーティリティをインストールします。
公式マニュアルには、バージョン4.4のvzctlでは、カーネルパラメーター設定(/etc/sysctl.conf)は
必要ないと書かれています。
再起動して、カーネルのバージョンを確認します。
バージョンが同じ場合、すべてが正しく行われます。そうでない場合、どのカーネルがGRUBをロードするかを確認する必要があります。 コンテナの作成に進みます。
Debian 7でコンテナを作成するためのテンプレートは
、OpenVZ Webサイトからダウンロードされ、インストールされます。
新しいコンテナを設定しましょう:
したがって、コンテナはDebian 7で作成されました。外部との通信用に、VENET接続が設定されました。
将来的には、構成ファイルを編集して、コンテナーの構成をわずかに修正できます。
物理的には、コンテナは/ vz / private / 103にあります。
コンテナが機能する場合は、/ vz / private / 103と同期するパス/ vz / root / 103を使用してすべての変更を追加することをお勧めします。
OpenVZには、コンテナ内でVETH(仮想ETHernet)またはVENET(仮想ネットワーク)ネットワークデバイスを構成する機能があります。 VETHはコンテナ内のブロードキャストメッセージを許可し、インターフェイスにMACアドレスを持っているため、DHCPを使用してアドレスの自動受信を構成したり、ブロードキャストメッセージを必要とするSambaサーバーを構成したりできます。 VETHインターフェースはvzctlを使用してのみ設定され、それ以降のすべてのインターフェース設定(IP設定、ゲートウェイなど)はコンテナー自体で実行する必要があります。 ただし、ほとんどの場合、VENET接続で十分です。 後者の利点には、VETHと比較した高速性と、ホストマシンリソースによる迅速な構成が含まれます。

コンテナネットワーク接続の詳細については、
公式のOpenVZ wikiを参照してください 。
次に、VETH接続でコンテナを作成するプロセスを説明します。 これを行うには、まずvmbr0ブリッジを作成する必要があります。 bridge-utilsパッケージをインストールしてから、vmbr0インターフェイスを構成します。
そして、eth0は次のように再構成されます。
以前は、この例のeth0の静的IPは192.168.1.30でした。
次の内容で/etc/vz/vznet.confを作成します。
ホストマシンを再起動します。
今回は、例として、別のディストリビューションを選択して、VETHネットワーク接続でコンテナーを作成します。
それに応じて設定します:
新しいコンテナのネットワーク構成を設定し、ネットワークを再起動します。
Ubuntu / Debianの場合、ネットワーク設定は/ etc / network / interfacesにあります。
その結果、ネットワーク接続(VETH)は次のようになります。
VENETが次のような場合:
コンテナまたはそのクォータは、vzctlユーティリティを介して管理されます。 最も人気のあるチームについて説明します。
もちろん、各コンテナにオーバーロードせずにクォータを設定することもできます。
ディスクボリュームとiノードの数の制限は、次のように発生します(そのような
software_limitを設定するための構文
:hardware_limit )。
ディスクI / O(ディスクI / O)の優先度も設定できます。 最高レベルは7、最低レベルは0です。デフォルトでは、ディスクI / Oは4に設定されていますが、これは変更できます。
そしてチェック:
したがって、コンテナが使用するコアの数を3に増減できます。
ホストシステムのコア数が少ない場合、当然のことながら必要な変更は行われません。
RAMとスワップメモリの量の設定は次のとおりです。
openvz.org/User_Guide/Managing_Resourcesでクォータの詳細を
ご覧ください。すべてのコンテナとその状態を表示するには、vzlistユーティリティを使用できます。
コンテナダンプを覚えておくことは非常に重要です。 これには、vzdumpという名前の無関係なユーティリティがあります。 その助けを借りて、作業を停止せずにコンテナを便利にコピー/移行/バックアップすることができます。 最初にインストールする必要があります:
そして、次のように使用できます。
そしてすぐに、新しいCTIDを持つ新しいマシンにダンプを復元する機会があります。
仮想マシンの便利な管理のために、
Proxmoxまたは
OpenVZ Web Panelをお勧めし
ますこれが私が書きたかったすべてのようです。 ご質問がある場合は、お気軽にコメントをお寄せください。
有用なリソース:www.ibm.com/developerworks/ru/library/l-openvz_1/index.htmlblog.shaggy-cat.ru/2010/03/openvz_25.htmlopenvz.org/Quick_installationopenvz.org/Installation_on_Debianopenvz.org/Quick_Installation_CentOS_6openvz.org/User_Guide/Managing_Resourceswww.altlinux.org/OpenVZopenvz.org/Cloning_VEopenvz.org/Backup_of_a_running_container_with_vzdumpwww.howtoforge.com/clone-back-up-restore-openvz-vms-with-vzdumpowp.softunity.com.ruwww.janoszen.com/2013/01/22/lxc-vs-openvz