virsh

virsh は仮想マシンソフトを扱う上で利用することの出来る対話型のシェルプログラム。

仮想ネットワークの一覧を表示

$ virsh net-list --all

ブリッジインタフェースの表示

$ brctl show

仮想マシンを作成する

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

物理NICを仮想ブリッジに接続する方法

(外部のサーバから仮想マシンに接続する必要がある場合は、こちらの方法を使用します。)

bridge-utilsパッケージをインストールする

$ sudo yum install bridge-utils

仮想ブリッジを作成する

$ brctl addbr br0
$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.000000000000       no
virbr0          8000.525400b745d4       yes             virbr0-nic
                                                        vnet0

仮想ブリッジに物理NICを接続する

$ brctl addif br0 eth0
$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.001f2966513c       no              eth0
virbr0          8000.525400b745d4       yes             virbr0-nic
                                                        vnet0

仮想ブリッジの確認

$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.001f2966513c       no              eth0
virbr0          8000.525400b745d4       yes             virbr0-nic
                                                        vnet0

仮想マシンを作成する

$ virt-install                                                 \
  --name <virtual_machine_name                                 \
  --hvm                                                        \
  --os-type=Linux                                              \
  --os-variant=rhel6                                           \
  --ram 1024                                                   \
  --vcpu=1                                                     \
  --graphics none                                              \
  --disk=/var/lib/libvirt/images/<virtual_machine_file_name>,format=qcow2,size=8    \
  --network bridge=br1                                         \
  --location http://ftp.riken.jp/Linux/centos/6/os/x86_64/     \
  --extra-args='console=tty0 console=ttyS0,115200n8'

仮想ネットワークの定義ファイル

  • /usr/share/libvirt/networks/default.xml
<network>
  <name>default</name>
  <bridge name="virbr0" />
  <forward/>
  <ip address="192.168.122.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.122.2" end="192.168.122.254" />
    </dhcp>
  </ip>
</network>
  • /usr/share/libvirt/networks/internal.xml
<network>
  <name>internal</name>
  <bridge name="virbr1" />
  <forward/>
  <ip address="192.168.123.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.123.2" end="192.168.123.254" />
    </dhcp>
  </ip>
</network>

仮想ネットワークを追加する

$ virsh net-define /usr/share/libvirt/networks/internal.xml
$ virsh net-start internal
$ virsh net-list --all
Name                 State      Autostart     Persistent
--------------------------------------------------
default              active     no            yes
internal             active     no            yes

# brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.525400b745d4       yes             virbr0-nic
virbr1          8000.5254008f6eda       yes             virbr1-nic

仮想マシンの設定を変更

$ virsh edit <virtual_machine_name>

仮想マシンを停止

$ virsh shutdown <virtual_machine_name>

仮想マシンの起動

$ virsh start <virtual_machine_name>

仮想ネットワークの削除

$ virsh net-destroy default
$ virsh net-undefine default

仮想ブリッジの削除

$ brctl delif br0 eth0
$ brctl delbr br0

コメントを残す

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