It's Virtualization with KVM ( Kernel-based Virtual Machine ) + QEMU.
This requires that the CPU on your computer which has a function Intel VT or AMD-V. |
|
[1] | Install required packages. |
[root@dlp ~]#
dnf -y install qemu-kvm libvirt virt-install bridge-utils
# verify modules are loaded
[root@dlp ~]# kvm_intel 147785 0 kvm 464964 1 kvm_intel[root@dlp ~]#
systemctl start libvirtd
[root@dlp ~]#
systemctl enable libvirtd
|
[2] | Configure Bridge networking for KVM virtual machine. Replace the interface name "eno16777736" for your own environment's one. |
# add bridge "br0"
[root@dlp ~]#
nmcli c add type bridge autoconnect yes con-name br0 ifname br0
Connection 'br0' (0f4b7bc8-8c7a-461a-bff1-d516b941a6ec) successfully added.
# set IP address for br0
[root@dlp ~]#
nmcli c modify br0 ipv4.addresses 10.0.0.30/24 ipv4.method manual
# set Gateway for br0
[root@dlp ~]#
nmcli c modify br0 ipv4.gateway 10.0.0.1
# set DNS for br0
[root@dlp ~]#
nmcli c modify br0 ipv4.dns 10.0.0.1
# remove the current setting
[root@dlp ~]#
nmcli c delete eno16777736
# add an interface again as a member of br0
[root@dlp ~]#
nmcli c add type bridge-slave autoconnect yes con-name eno16777736 ifname eno16777736 master br0
# stop and start NetworkManager
[root@dlp ~]#
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000 link/ether 00:0c:29:21:57:d6 brd ff:ff:ff:ff:ff:ff 3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 52:54:00:2c:9c:e4 brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever 4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 500 link/ether 52:54:00:2c:9c:e4 brd ff:ff:ff:ff:ff:ff 5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 00:0c:29:21:57:d6 brd ff:ff:ff:ff:ff:ff inet 10.0.0.30/24 brd 10.0.0.255 scope global br0 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe21:57d6/64 scope link valid_lft forever preferred_lft forever
Create Virtual Machine
#1
2015/11/10
Install GuestOS and create a Virtual Machine. This example shows to install Fedora 23.
|
|
[1] | Install GuestOS on text mode via network, it's OK on Console or remote connection with Putty and so on. Furthermore, Virtual Machine's images are placed at /var/lib/libvirt/images by default as a Storage Pool, but this example shows to create and use a new Storage Pool. |
# create a Storage Pool
[root@dlp ~]#
mkdir -p /var/kvm/images
[root@dlp ~]#
virt-install \
Starting install...
--name fedora23 \
--ram 4096 \ --disk path=/var/kvm/images/fedora23.img,size=30 \ --vcpus 2 \ --os-type linux \ --os-variant fedora22 \ --network bridge=br0 \ --graphics none \ --console pty,target_type=serial \ --location 'http://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/23/Server/x86_64/os/' \ --extra-args 'console=ttyS0,115200n8 serial'
# installation starts
|
The example of options above means like follows. There are many options for others, make sure with "man virt-install".
--name
specify the name of Virtual Machine
--ram
specify the amount of memories of Virtual Machine
--disk path=xxx ,size=xxx
'path=' ⇒ specify the location of disks of Virtual Machine
--vcpus'size=' ⇒ specify the amount of disks of Virtual Machine
specify the virtual CPUs
--os-type
specify the type of GuestOS
--os-variant
specify the kind of GuestOS
--networkpossible to show the list of OS with follows # osinfo-query os
specify network types of Virtual Machine
--graphics
specify the kind of graphics. if set 'none', it means nographics.
--console
specify the console type
--location
specify the location of installation where from
--extra-args
specify parameters that is set in kernel
|
[2] | Install on text mode, it's the same with common procedure of installation. After finishing installation, reboot first and then login prompt is shown like follwos. |
Fedora 23 (Server Edition) Kernel 4.2.3-300.fc23.x86_64 on an x86_64 (ttyS0) Admin Console: https://10.0.0.205:9090/ or https://[fe80::5054:ff:fe19:5e12]:9090/ localhost login: |
[3] | Move to GuestOS to HostOS with Ctrl + ] key. Move to HostOS to GuestOS with a command 'virsh console (name of virtual machine)'. |
[root@localhost ~]#
[root@dlp ~]#
# Ctrl + ] key
[root@dlp ~]#
# Host's console
virsh console fedora23
# move to Guest
Connected to domain fedora23
Escape character is ^]
[root@localhost ~]#
# Enter key
# Guest's console
|
[4] | It's easy to create another VM to copy from current VM with a command below. |
[root@dlp ~]#
virt-clone --original fedora23 --name template --file /var/kvm/images/template.img
Allocating 'template.img' | 30 GB 00:00:02
Clone 'template' created successfully.
[root@dlp ~]#
ll /var/kvm/images/template.img
# disk image
-rw-r--r-- 1 root root 1729822720 Nov 9 23:05 /var/kvm/images/template.img [root@dlp ~]#
ll /etc/libvirt/qemu/template.xml
# xml file
-rw------- 1 root root 3159 Nov 9 23:05 /etc/libvirt/qemu/template.xml |
It's Virtualization with KVM ( Kernel-based Virtual Machine ) + QEMU.
This requires that the CPU on your computer which has a function Intel VT or AMD-V. |
|
[1] | Install required packages. |
[root@dlp ~]#
dnf -y install qemu-kvm libvirt virt-install bridge-utils
# verify modules are loaded
[root@dlp ~]# kvm_intel 147785 0 kvm 464964 1 kvm_intel[root@dlp ~]#
systemctl start libvirtd
[root@dlp ~]#
systemctl enable libvirtd
|
[2] | Configure Bridge networking for KVM virtual machine. Replace the interface name "eno16777736" for your own environment's one. |
# add bridge "br0"
[root@dlp ~]#
nmcli c add type bridge autoconnect yes con-name br0 ifname br0
Connection 'br0' (0f4b7bc8-8c7a-461a-bff1-d516b941a6ec) successfully added.
# set IP address for br0
[root@dlp ~]#
nmcli c modify br0 ipv4.addresses 10.0.0.30/24 ipv4.method manual
# set Gateway for br0
[root@dlp ~]#
nmcli c modify br0 ipv4.gateway 10.0.0.1
# set DNS for br0
[root@dlp ~]#
nmcli c modify br0 ipv4.dns 10.0.0.1
# remove the current setting
[root@dlp ~]#
nmcli c delete eno16777736
# add an interface again as a member of br0
[root@dlp ~]#
nmcli c add type bridge-slave autoconnect yes con-name eno16777736 ifname eno16777736 master br0
# stop and start NetworkManager
[root@dlp ~]#
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000 link/ether 00:0c:29:21:57:d6 brd ff:ff:ff:ff:ff:ff 3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 52:54:00:2c:9c:e4 brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever 4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 500 link/ether 52:54:00:2c:9c:e4 brd ff:ff:ff:ff:ff:ff 5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 00:0c:29:21:57:d6 brd ff:ff:ff:ff:ff:ff inet 10.0.0.30/24 brd 10.0.0.255 scope global br0 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe21:57d6/64 scope link valid_lft forever preferred_lft forever
Comentarios
Publicar un comentario