KVM virt-cloneによる仮想マシンの複製


こんにちは、ADN事業部のt_oookaです。
スマートフォン向けアドネットワークサービスnend(ネンド)のインフラを担当
させていただいています。

今回は、初回ということで検証作業等でいつもお世話になっているKVMについて
触れてみようと思います。

仮想マシンの作成

さしあたりサーバ(物理)に「CentOS6.3」がインストールされており、仮想化関連の
パッケージがインストール済みの状態を前提に進めていきます。

# virsh list --all
Id    Name                           State
—————————————————-

現時点では、仮想マシンが作成されていない状態ですので、最初にテンプレート
となる仮想マシンを作成します。

# virt-install                                               \
--name centos63                                              \
--hvm                                                        \
--os-type=Linux                                              \
--os-variant=rhel6                                           \
--ram 1024                                                   \
--vcpu=1                                                     \
--graphics none                                              \
--disk=/var/lib/libvirt/images/centos63,format=qcow2,size=5  \
--network bridge=virbr0                                      \
--location http://ftp.riken.jp/Linux/centos/6.3/os/x86_64/   \
--extra-args='console=tty0 console=ttyS0,115200n8'

この後、テキストモードでのOSインストールとなるので、適宜設定を
行います。

・ホスト名の設定
centos63

・ネットワークの設定
eth0
ipaddress : 192.168.122.2
netmask   : 255.255.255.0
default gateway : 192.168.122.1

# virsh list --all
Id    Name                           State
—————————————————-
1     centos63                       running

ホストから仮想マシンのコンソールへ接続する場合は以下のようにします。

# virsh console centos63

また、sshで接続する場合は、以下の通りです。

# ssh 192.168.122.2

仮想マシンの複製

ここまでで、一旦はテンプレートなる仮想マシンの作成が完了したので、
今度は、この仮想マシン(centos63)をテンプレートとして仮想マシンを
複製してみます。

まず、複製する前に複製元となる仮想マシンを停止します。

# virsh shutdown centos63

仮想マシンが停止していることを確認します。

# virsh list --all
Id    Name                           State
—————————————————-
-     centos63                       shut off

仮想マシンが停止していることが確認できたので、次は、仮想マシンを複製します。

# virt-clone                            \
--original centos63                     \
--name guest01                          \
--file /var/lib/libvirt/images/guest01

仮想マシンの複製が行われたかどうかを確認します。

# virsh list --all
Id    Name                           State
—————————————————-
-     centos63                       shut off
-     guest01                        shut off

仮想マシンの複製が行われているようなので、さっそく複製を行った
仮想マシンを起動します。

# virsh start guest01

複製を行った仮想マシンの起動を確認します。

# virsh list --all
Id    Name                           State
—————————————————-
2     guest01                        running
-     centos63                       shut off

なお、このままでは複製を行った仮想マシンについて

・ホスト名が「centos63」となっている
・eth0が認識されない

状況なので、複製を行った仮想マシンへコンソール接続を
行い、以下のファイルを修正します。

・ホスト名の修正
/etc/hosts
/etc/sysconfig/network

・ネットワークインタフェース(eth0)の修正
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/udev/rules.d/70-persistent-net.rules

# virsh console guest01

※ 以下は、複製を行った仮想マシンでの操作となります。

# vi /etc/hosts
# vi /etc/sysconfig/network
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# vi /etc/udev/rules.d/70-persistent-net.rules

※ 設定の変更を反映させるため、一旦再起動します。
# shutdown -r now

ホスト名の確認
# hostname

ネットワークインタフェース(eth0)の確認
# ifconfig eth0

今回は、仮想マシンの作成及び複製について簡単に手順を記載
いたしました。

コマンドでの操作となりますが、かなり容易に仮想マシンの
作成・複製が行えます。

ただ、複製する仮想マシンが多くなると、複製した仮想マシンに
都度コンソール接続して設定を変更する方法では時間ばかりが
かかってしまいますので、このあたりの操作を効率化する方法を
検討してみたいと思います。

Add a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*