KVMを利用した仮想マシン準備の方法を備忘録として記載する。
1.KVMのインストール
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install qemu-kvm virt-manager libvirt-clients libvirt-bin bridge-utils qemu-utils virtinst
パッケージ名 |
主な使い道 |
qemu-kvm |
kvm本体 |
virt-manager |
GUI操作 |
libvirt-clients libvirt-bin |
virshコマンド |
bridge-utils |
brctlコマンド |
qemu-utils |
qemu-img操作 |
virtinst |
virt-installコマンド |
2.仮想マシン構築
2-1.GUIで仮想マシン構築する場合
0.ISOイメージを/var/lib/libvirtd/image/配下等に配置
1.virt-manager起動
# systemctl start libvitd
# systemctl enable libvirtd
# reboot
# virt-manager
2.コンピュータのアイコンをクリック
3.「ローカルのインストールメディア(ISOイメージまたはCD-ROMドライブ)」を指定して進む
4.配意したisoイメージを指定して進む
5.自動判定されない場合はOSの種類、バージョンを指定
6.メモリーとCPU数を指定
7.ディスクサイズを指定
8.仮想マシンと接続するネットワーク名を指定
2-2.CLIで仮想マシン構築する場合
0.ISOイメージを/var/lib/libvirtd/image/配下等に配置
1.virt-installコマンド実行
virt-install --name <ドメイン名> ¥
--vcpus 1 --memmory 512 ¥
--graphics spice,listen=0.0.0.0 ¥
--noauto console --network network=default,model=virtio ¥
--cdrom /var/lib/libvirt/images/<isoファイル名> ¥
--os-variant <OS名> ¥
--disk pool=default,size=5,bus=virtio,format=qcow2
3.ホスト側で仮想ネットワーク設定(仮想ブリッジ等)
3-1.GUIでネットワークを構築する場合
3-2.CLIでネットワークを構築する場合
3-2-1.仮想ブリッジの設定
#vi /etc/network/interfaces
#仮想ブリッジにIPを振るので物理NICには振らない
auto eno1
iface eno1 inet manual
mtu 9000
auto bridgeA
iface bridgeA inet static
address xxx.xxx.xxx.xxx/xx
netmask xxx.xxx.xxx.xxx
bridge-ports eno1
mtu 9000
3-2-2.同じブリッジ内の仮想マシン間疎通のためのFirewall設定
# iptables -A INPUT -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 --dport 53 -j ACCEPT -i bridgeA
# iptables -A INPUT -p udp -s 0.0.0.0/0 -d 0.0.0.0/0 --dport 53 -j ACCEPT -i bridgeA
# iptables -A INPUT -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 --dport 67 -j ACCEPT -i bridgeA
# iptables -A INPUT -p udp -s 0.0.0.0/0 -d 0.0.0.0/0 --dport 67 -j ACCEPT -i bridgeA
# iptables -A FORWARD -p all -s 0.0.0.0 -d 0.0.0.0/0 -j ACCEPT -i bridgeA -o bridgeA
# iptables -A FORWARD -p all -s 0.0.0.0 -d 0.0.0.0/0 -j REJECT --reject-with icmp-port-unreachable -o bridgeA
# iptables -A FORWARD -p all -s 0.0.0.0 -d 0.0.0.0/0 -j REJECT --reject-with icmp-port-unreachable -i bridgeA
# iptables -A OUTPUT -p udp -s 0.0.0.0/0 -d 0.0.0.0/0 --dport 68 -j ACCEPT -o bridgeA
※GUIで設定した隔離されたネットワーク相当の場合
※複数の仮想マシンにホスト側の同一仮想ブリッジとつないだインタフェースを持たせ、複数仮想マシン間で疎通を取りたい場合にはFirewall設定が必要。
4.ホスト側ネットワークと仮想マシンのアタッチ
4-1.GUIでネットワークをアタッチする場合
1.仮想マシンの画面を開く。表示➡詳細を選択。
2.ハードウェアを追加ボタンを押下。
3.ネットワークを選択
4.ネットワークソースに手順3作成したネットワークを選択。デバイスのモデルはvirtioあたりを指定しておく。
5.完了ボタンを押下
4-2.CLIでネットワークをアタッチする場合
1.virsh attach-interfaceコマンドを実行する
# virsh attach-interface --type bridge --source bridgeA --model モデル名 仮想マシン名
5.仮想マシン側でインタフェース情報を設定(CentOS7の場合)
$ nmcli connection add type ethernet eth1 con-name eth1
$ nmcli connection modify eth1 ipv4.method manual
$ nmcli connection modify eth1 ipv4.addresses xxx.xxx.xxx.xxx
$ nmcli connection down eth1
$ nmcli connection up eth1
最終更新:2020年04月26日 15:32