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