VIRTUALIZACION EN FEDORA 23 CON KVM-II - MODO CONSOLA


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 ~]#
lsmod | grep kvm

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 ~]#
systemctl stop NetworkManager; systemctl 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 \
--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'
Starting install...    
# 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
'size=' ⇒ specify the amount of disks of Virtual Machine
--vcpus
specify the virtual CPUs
--os-type
specify the type of GuestOS
--os-variant
specify the kind of GuestOS
possible to show the list of OS with follows
# osinfo-query os
--network
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 ~]#    
# Ctrl + ] key

[root@dlp ~]#    
# Host's console
[root@dlp ~]#
virsh console fedora23
   
# move to Guest

Connected to domain fedora23
Escape character is ^]    
# Enter key
[root@localhost ~]#    
# 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 ~]#
lsmod | grep kvm

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 ~]#
systemctl stop NetworkManager; systemctl 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