CentOS7之KVM虚拟化,一

一、KVM介绍

KVM,基于内核的虚拟机(英语:Kernel-based Virtual Machine,缩写为 KVM),

是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor。

KVM在2007年2月被导入Linux 2.6.20核心中,以可加载核心模块的方式被移植到FreeBSD及illumos上。

KVM在具备Intel VT或AMD-V功能的x86平台上运行。它也被移植到S/390,PowerPC与IA-64平台上。在Linux内核3.9版中,加入ARM架构的支持。

KVM目前由Red Hat等厂商开发,对CentOS/Fedora/RHEL等Red Hat系发行版支持极佳。

二、KVM部署及使用

1.系统环境查询

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core) 
[root@localhost ~]# uname -r
3.10.0-862.el7.x86_64
[root@localhost ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31
[root@localhost ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

8月 12 17:42:59 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
8月 12 17:42:59 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
8月 12 18:01:18 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewall daemon...
8月 12 18:01:19 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@localhost ~]# hostname -I
192.168.137.103 192.168.122.1
验证CPU是否支持虚拟化,输入有vmx或svm就支持,支持虚拟化则就支持KVM
[root@localhost ~]# cat /proc/cpuinfo | egrep 'vmx|svm'
有vmx或svm内容输出就支持,支持虚拟化则就支持KVM
查看是否加载KVM

 [root@promote images]# lsmod | grep kvm

 kvm_intel 174841 0

 kvm 578518 1 kvm_intel

 irqbypass 13503 1 kvm

 已经加载,如果没有加载,则执行以下命令,加载KVM

 [root@localhost ~]#modprobe kvm

2.安装KVM虚拟化软件

安装依赖包(使用本地yum源)

# yum install libvirt* virt-* qemu-kvm* -y

说明:

libvirt    # 虚拟机管理
virt       # 虚拟机安装克隆
qemu-kvm   # 管理虚拟机磁盘

启动KVM

# systemctl start libvirtd.service
# systemctl status libvirtd.servic

2.安装第一台KVM虚机

[root@localhost ~]# virt-install 
--virt-type kvm
--os-type=linux
--os-variant rhel7
--name centos7
--memory 1024
--vcpus 1
--disk (虚拟硬盘绝对路径),format=raw,size=10
--cdrom (iso镜像文件绝对路径)
--network network=default
--noautoconsole

注意:需要先将镜像文件拷贝到 设置的路径下

参数说明

参数

参数说明

--virt-type HV_TYPE

要使用的管理程序名称 (kvm, qemu, xen, ...)

--os-type

系统类型

--os-variant DISTRO_VARIANT

在客户机上安装的操作系统,例如:'fedora18'、'rhel6'、'winxp' 等。

-n NAME, --name NAME

客户机实例名称

--memory MEMORY

配置客户机虚拟内存大小

--vcpus VCPUS

配置客户机虚拟 CPU(vcpu) 数量。

--disk DISK

指定存储的各种选项。

-cdrom CDROM

光驱安装介质

-w NETWORK, --network NETWORK

配置客户机网络接口。

--graphics GRAPHICS

配置客户机显示设置。

虚拟化平台选项:

-v, --hvm

这个客户机应该是一个全虚拟化客户机

-p, --paravirt

这个客户机应该是一个半虚拟化客户机

--container

这个客户机应该是一个容器客户机

--virt-type HV_TYPE

要使用的管理程序名称 (kvm, qemu, xen, ...)

--arch ARCH

模拟 CPU 架构

--machine MACHINE

机器类型为仿真类型

其它选项:

--noautoconsole

不要自动尝试连接到客户端控制台

--autostart

主机启动时自动启动域。

--noreboot

安装完成后不启动客户机。

3.KVM虚机管理

virsh命令常用参数总结

参数

参数说明

基础操作

list

查看虚拟机列表,列出域

start

启动虚拟机,开始一个(以前定义的)非活跃的域

shutdown

关闭虚拟机,关闭一个域

destroy(危险)

强制关闭虚拟机,销毁(停止)域

vncdisplay

查询虚拟机vnc端口号

配置管理操作

dumpxml

导出主机配置信息

undefine

删除主机

define

导入主机配置

domrename

对虚拟机进行重命名

挂起与恢复

suspend

挂起虚拟机

resume

恢复虚拟机

自启动管理

autostart

虚拟机开机启动

autostart --disable

取消虚拟机开机启动

以上参数通过“virsh --help获得。

查看虚拟机配置文件

[root@localhost ~]# cat /etc/libvirt/qemu/test01.xml

修改KVM虚拟机配置的方法

[root@localhost ~]# virsh edit test01    (使用该命令修改可以对文件进行语法校验)