OpenVZコンテナーへのOS移行



この記事では、Linuxシステムを物理サーバーまたは完全仮想化(KVM、XEN、VMware)からOpenVZコンテナーに簡単に移行できることを伝えたいと思います。 このトピックには十分な資料がありますが、最も簡単な方法について説明します。

まず、いくつかの理論計算。 コンテナ仮想化から得られる主な利点は何ですか:



しかし、欠点もあります:



VMware仮想マシンをCentOS5で変換する必要がありました。 具体的には、 VirtualPBXプロジェクトに興味がありました。その作業に必要なバンドルの構成は簡単ではありませんが、プロジェクトの作成者は、CentOS 5に基づいたVMwareイメージをアップロードしてすばやく展開します。

まず、VMwareプレーヤーを使用してVirtualPBXイメージをダウンロードして実行すると、すべてが正常に機能しますが、絶え間ない作業では、VMwareイメージを使用することに抵抗があります。 私が自由に使えるのは、KVM、OpenVZ仮想化、およびWebベースの管理を備えたいくつかのProxmox VE 2.1サーバーです。 したがって、考え直すことなく、VirtualPBXをVMwareイメージからOpenVZコンテナーに転送します。 OSを転送するには、tarメソッドを使用します。理想的には、rsyncを使用することをお勧めします。

Proxmoxを搭載したホストで、CentOS 5のテンプレートをダウンロードし、このテンプレートを使用してCTコンテナーを作成し、必要なパラメーターを設定します! 作成されたコンテナーを起動し、その動作を検証し(sshを介して、またはProxmox Webインターフェースを介してコンテナーコンソールに接続することにより)、それを停止し、転送する必要があるマシンに移動します。 これらのアクションは、Webインターフェイスを使用せずにProxmoxコンソールから実行することもできます。

物理(私の場合はVMwareイメージ)マシンで、tarアーカイブ用のディレクトリとファイルを除いてファイルを作成します。

# nano non_tar





 .bash_history lost+found /dev/* /mnt/* /tmp/* /proc/* /sys/* /usr/src/* /etc/shadow /etc/inittab /etc/mtab /etc/rc.sysinit /etc/fstab /etc/sysconfig/network /etc/modprobe.d/blacklist /etc/resolv.conf /etc/sysconfig/network-scripts/*
      
      





次に、先ほど作成したリストからディレクトリとファイルを除外して、オペレーティングシステムのルートをアーカイブします。

# tar --numeric-owner -czvf /tmp/virtualPBX_6309.tar.gz -X /root/non_tar /





結果のアーカイブをssh経由でホスト仮想化マシンにコピーします(注:コンテナーではなく、ホストマシンにコピーされます)。

# scp virtualPBX_6309.tar.gz root@IP_OpenVZ_Host:/tmp





sshを介してホストマシンに接続し、テンプレートからデプロイされたCentOS 5 / var / lib / vz / private / 100が配置されているディレクトリに移動します。100はOpenVZ仮想マシンの一意の識別子です。

# cd /var/lib/vz/private/100





そして、テンプレートの上にアーカイブを展開します(ホストマシンまたは他のOpenVZコンテナのルートセクションを上書きしないように、最近デプロイされたテンプレートのディレクトリにいることを確認してください)。

# tar xvpfz /tmp/virtualPBX_6309.tar.gz





基本的に、この段階でコンテナを起動し、OpenVZの下で設定を使用してOCの作業を楽しむことができます。

注釈:楽しみのために、CentOS 6をテンプレートにデプロイしようとしましたが、通常はdebianベースのディストリビューションを使用することを好むため、仮想マシンが正しく機能せず、あまり理解できませんでした。



上記の方法は非常に簡単です。rsyncを使用してコピーすると、最小限のダウンタイムでほぼリアルタイムでOSを転送できます。

VirtualPBXの更新について少しお話ししたいと思います。 イメージにはプロジェクトの最新ビルドが含まれていないため、更新用の小さなスクリプトを作成します。

# touch /usr/bin/virtualpbx





# chmod +x /usr/bin/virtualpbx





# nano /usr/bin/virtualpbx





次のコードを追加します。

 #!/bin/sh read -p ' -   (: 6446):' REPLY wget http://virtual-pbx.googlecode.com/files/VirtualPBX-$REPLY.tgz && echo " " || echo "  , ,         " if [ -f VirtualPBX-$REPLY.tgz ]; then tar -xzf VirtualPBX-$REPLY.tgz rm -f VirtualPBX-$REPLY.tgz cd VirtualPBX-$REPLY rpm -Fvh *.rpm if [ $? -eq 0 ]; then echo " !!!" else echo "  !!!" exit 1 fi exit 0 else echo "  !!!"</li> fi exit 1
      
      





更新するには、コマンドを与えるだけで十分です

# virtualpbx





インストールに必要なリビジョン番号を入力します。

この記事の下書きを書いた後、筆者が更新の確認を提供していることがわかりました。 内部にはスクリプト/opt/VirtualPBX/contrib/utils/check_updates.plがあり、1日に1回更新をチェックし、更新が見つかった場合は、管理インターフェイスの上部に赤いテキストが表示されます。



上記の方法を使用すると、OSに固有のファイルとディレクトリのリスト(私の例ではnon_tarファイル)を変更することにより、他のLinuxディストリビューションを転送できます。転送の設定の例はWikiにあります。 実験を頑張ってください!



記事の準備に使用した資料:

tdev.me/2011/02/create-trixbox-2-8-template-for-openvz

wiki.openvz.org/Creating_a_CentOS_5.0_Template



All Articles