CentOS上安装KVM虚拟机

KVM是Linux内核的模块,采用硬件辅助虚拟化技术 Intel-VT,AMD-V,KVM实现了CPU的虚拟化。QEMU工作在用户态,实现了I/O的虚拟化。当我们创建虚拟机时,使用的其实是QEMU-KVM技术。QEMU为用户态工具,模拟虚拟机的创建,KVM工作在内核态,实际完成虚拟机的创建过程。

安装KVM

所以,在VMware的虚拟机(实验环境)上安装运行KVM虚拟机,需要支持虚拟化 Intel-VT,AMD-V。如下图。需要勾选选项框“虚拟化Intel VT-x或AMD-V”。
如果是灰色的无法勾选,那么需要修改虚拟机配置文件vmx,加入下面的配置行,然后可以勾选了:

hypervisor.cpuid.v0 = "FALSE"
mce.enable = "TRUE"

CentOS上安装KVM虚拟机_第1张图片
执行命令,检查CPU是否支持虚拟化了:

egrep '(vmx|svm)' /proc/cpuinfo

在这里插入图片描述
1、安装KVM:

yum -y install qemu-kvm 
yum -y install libvirt
yum -y install virt-install
yum -y install bridge-utils

2、验证安装结果

lsmod | grep kvm

CentOS上安装KVM虚拟机_第2张图片
3、开启kvm服务,并且设置开机自动启动

systemctl start libvirtd
systemctl enable libvirtd
创建虚拟机

方式1:virsh-install安装

virt-install --virt-type kvm --os-type=linux \
--name vmtest --memory 1024 --vcpus 1 \
--disk /home/permitRoot/vmtest.qcow2,format=qcow2,size=10 \
--cdrom /home/permitRoot/CentOS-7-x86_64-DVD-1804.iso \
--network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

cdrom方式启动的虚拟机,创建完成需要安装系统。
下载vnc,连接到虚拟机,开始安装CentOS系统。安装后重启。

nodeIP:5900

在这里插入图片描述
这时候进入到虚拟机,会发现网络不通

在宿主机上添加br网桥:
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-br0

修改ifcfg-br0

TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
#UUID=2d6daa42-c176-4e0c-b481-cd60a0eace3a
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.8.123
PREFIX=24
GATEWAY=192.168.8.2
IPV6_PRIVACY=no

修改ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=2d6daa42-c176-4e0c-b481-cd60a0eace3a
DEVICE=ens33
ONBOOT=yes
#IPADDR=192.168.8.123
#PREFIX=24
#GATEWAY=192.168.8.2
#IPV6_PRIVACY=no
#HWADRR=00:0c:29:20:6c:44
BRIDGE=br0

systemctl restart network

然后ifconfig查看br0已经创建成功:
CentOS上安装KVM虚拟机_第3张图片
关闭虚拟机,修改虚拟机,启动kvm网桥网络模式:

virsh edit vmtest

CentOS上安装KVM虚拟机_第4张图片
启动虚拟机,然后VNC可以进去之前创建的虚拟机vmtest,设置静态IP以及DNS了。设置好可SSH登录了。

方式2:从XML文件创建
方式1创建了一个虚拟机,可以用它的XML文件,修改下,用于创建新的虚拟机。如下:

cd /etc/libvirt/qemu
cp vmtest.xml vmtest2.xml

原XML中的文件

type='kvm'>
  vmtest</name>
  bfeb889d-3346-4129-a2c9-429a06055e11</uuid>
  'KiB'>1048576</memory>
  'KiB'>1048576</currentMemory>
  'static'>1</vcpu>
  
    <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
    'hd'/>
  </os>
  
    />
    />
  </features>
  'custom' match='exact' check='partial'>
    'allow'>Broadwell</model>
  </cpu>
  'utc'>
    'rtc' tickpolicy='catchup'/>
    'pit' tickpolicy='delay'/>
    'hpet' present='no'/>
  </clock>
  destroy</on_poweroff>
  restart</on_reboot>
  destroy</on_crash>
  
    -to-mem enabled='no'/>
    -to-disk enabled='no'/>
  </pm>
  
    /usr/libexec/qemu-kvm</emulator>
    type='file' device='disk'>
      'qemu' type='qcow2'/>
      '/home/permitRoot/vmtest.qcow2'/>
      'hda' bus='ide'/>
      
type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> type='file' device='cdrom'> 'qemu' type='raw'/> 'hdb' bus='ide'/> />
type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> type='usb' index='0' model='ich9-ehci1'>
type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x7'/> </controller> type='usb' index='0' model='ich9-uhci1'> '0'/>
type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/> </controller> type='usb' index='0' model='ich9-uhci2'> '2'/>
type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/> </controller> type='usb' index='0' model='ich9-uhci3'> '4'/>
type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/> </controller> type='pci' index='0' model='pci-root'/> type='ide' index='0'>
type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> type='bridge'> '52:54:00:a3:16:4e'/> 'br0'/> type='rtl8139'/>
type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> type='pty'> type='isa-serial' port='0'> 'isa-serial'/> </target> </serial> type='pty'> type='serial' port='0'/> </console> type='mouse' bus='ps2'/> type='keyboard' bus='ps2'/> type='vnc' port='-1' autoport='yes' listen='0.0.0.0'> type='address' address='0.0.0.0'/> </graphics>

主要修改配置name、uuid、source file、MAC地址。
生成MAC地址:

echo 52:54:00:`openssl rand -hex 3 | sed 's/\(..\)/\1:/g; s/.$//'`

生成UUID:

uuidgen

source file:

#复制方式1创建好的磁盘镜像文件,这样从磁盘启动的虚拟机,已经安装好了CentOS系统
cp vmtest.qcow2 vmtest.qcow2
#修改XML:
#略
<source file='/home/permitRoot/vmtest2.qcow2'/>
#略

virsh操作虚拟机

virsh define /etc/libvirt/qemu/vmtest2.xml
virsh start vmtest2
virsh list --all

环境搭建就到这里,查看一下我创建的虚拟机:
CentOS上安装KVM虚拟机_第5张图片

你可能感兴趣的:(虚拟化实战,运维)