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