查看cpu是否支持虚拟化
#如果回显有vmx或者svm,说明硬件支持虚拟化
grep -E '(svm|vmx)' /proc/cpuinfo
kvm部署与使用
本次系统环境,戴尔R330,Centos7.6
[root@kvm-188 shell]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@kvm-188 shell]# uname -r
3.10.0-957.el7.x86_64
[root@kvm-188 shell]# getenforce
Enforcing
[root@kvm-188 shell]# 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)
6月 14 16:56:18 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
6月 14 16:56:19 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
6月 14 17:00:25 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewall daemon...
6月 14 17:00:26 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@kvm-188 shell]# hostname -I
192.168.122.1 10.17.9.188
安装kvm
安装依赖包
yum install libvirt* virt-* qemu-kvm* -y
安装软件说明内容:
libvirt # 虚拟机管理
virt # 虚拟机安装克隆
qemu-kvm # 管理虚拟机磁盘
启动服务
[root@kvm ~]# systemctl start libvirtd.service
[root@kvm ~]# systemctl status libvirtd.servic
安装VNC软件,连接kvm虚拟机,安装系统使用:
下载vnc软件方法,tightvnc官网:http://www.tightvnc.com

创建虚拟机
[root@kvm-188 shell]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name dev01_201 --memory 16384 --vcpus 4 --disk /data/dev01_201.raw,format=raw,size=500 --cdrom /data/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0,port=5901 --noautoconsole
开始安装......
正在分配 'dev01_201.raw' | 500 GB 00:00:00
域安装仍在进行。您可以重新连接
到控制台以便完成安装进程。
参数说明:
--name 虚拟机名字
--memory 虚拟机内存大小
--vcpus cpu个数
--disk 磁盘文件
--cdrom 镜像文件
--graphics vnc,listen=0.0.0.0,port=5901 启动监听地址和端口,vns连接使用
在启动的同时使用vnc连接,进入系统安装
KVM虚拟机管理操作
virsh命令常用参数总结
基础操作:
list 查看虚拟机列表,列出域
list --all 查看所有
start 启动虚拟机
shutdown 关闭虚拟机
配置管理操作:
dumpxml 导出主机配置信息
undefine 删除主机
define 导入主机配置
domrename 对虚拟机进行重命名
开机自启动管理
autostart 虚拟机开机启动
autostart --disable 取消虚拟机开机启动
KVM虚拟机配置文件位置
[root@kvm ~]# ll /etc/libvirt/qemu/centos7.xml
修改KVM虚拟机配置的方法
[root@kvm ~]# virsh edit centos7
CentOS 7.X 版本console登录
在KVM(虚拟机)下开机启动并启动服务
systemctl enable [email protected]
systemctl start [email protected]
在宿主机访问
virsh console centos7 ## CentOS7是虚拟机名称
提示:进去之后回车多次即可通过账号密码登录,退出执行Ctrl+]
kvm虚拟机网络管理
1. 桥接网卡,宿主机执行:
[root@kvm-188 ~]# virsh iface-bridge em1 br0
使用附加设备 br0 生成桥接 eth0 失败
已启动桥接接口 br0
执行成功后,查看网卡配置:
[root@kvm-188 shell]# cat /etc/sysconfig/network-scripts/ifcfg-em1
DEVICE=em1
ONBOOT=yes
BRIDGE="br0"
[root@kvm-188 shell]# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="none"
IPADDR="10.17.9.188"
NETMASK="255.255.255.0"
GATEWAY="10.17.9.254"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
DHCPV6C="no"
STP="on"
DELAY="0"
2. 修改虚拟机网络配置
[root@kvm-188 ~]# virsh edit centos7(虚拟机名字)
修改前:
<interface type='network'>
<mac address='52:54:00:42:bf:bc'/>
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
修改后:
<interface type='bridge'>
<mac address='52:54:00:42:bf:bc'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
3. 虚拟机中执行:
修改kvm虚拟机网卡配置文件和宿主机网关一样
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=IP地址
NETMASK=子网掩码
GATEWAY=网关
DNS1=dns服务器
4. 修改完后重启虚拟机
virsh shutdown centos7 关机
virsh start centos7 启动
克隆虚拟机
1. 查看虚拟机状态,必须是关闭状态(克隆db01_202)
[root@kvm-123 ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
1 dev01_201 running
- db01_202 关闭
2. 开始克隆,执行virsh-clone命令
[root@kvm-123 ~]# virt-clone --original db01_202 --name db01_203 --file /data/db01_203.raw
WARNING 设置图形设备端口为自动端口,以避免相互冲突。
正在分配 'db01_203.raw' | 200 GB 00:04:40
成功克隆 'db01_203'。
--name 新克隆虚拟机的名字
--file 新克隆虚拟机的磁盘文件
3. 启动虚拟机,修改IP
[root@kvm-123 ~]# virsh start db01_203
域 db01_203 已开始
[root@kvm-123 ~]# virsh console db01_203
连接到域 db01_203
换码符为 ^] # 会卡在这里,按回车登陆
删除虚拟机
查看所有虚拟机
[root@kvm-123 ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
1 db01_203 running
2 db01_202 running
3 dev01_201 running
- git_201 关闭
- moban_200 关闭
删除git_201,只是删除了虚拟机的配置文件
虚拟机运行中,可以强制停止
[root@kvm-123 ~]# virsh destroy git_201
域 git_201 被删除
# 删除虚拟机配置文件
[root@kvm-123 ~]# virsh undefine git_201
域 git_201 已经被取消定义
[root@kvm-123 ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
1 db01_203 running
2 db01_202 running
3 dev01_201 running
- moban_200 关闭
删除磁盘文件,和日志文件
# 查找所有相关文件
find / -name "*git_200*" -type f
# 删除磁盘文件和日志文件
rm /data/git_200.raw -f
rm /var/log/libvirt/qemu/git_200.log -f
调整磁盘大小
[root@kvm-233 data]# ll -h
总用量 813G
-rwxr-xr-x. 1 qemu qemu 4.3G 6月 14 17:20 CentOS-7-x86_64-DVD-1810.iso
-rw-------. 1 qemu qemu 200G 11月 4 22:01 db01_202.raw
-rw-------. 1 qemu qemu 200G 11月 4 22:01 db01_203.raw
-rw-------. 1 qemu qemu 500G 11月 4 22:01 dev01_201.raw
-rw------- 1 qemu qemu 500G 11月 4 22:01 git_201.raw
drwxr-xr-x 5 root root 46 10月 31 11:44 logs
-rw------- 1 root root 400G 11月 4 22:01 moban.raw
drwxr-xr-x 7 root uploadcdn 80 10月 24 21:21 webroot
-rw------- 1 qemu qemu 500G 11月 4 22:01 wiki_205.raw
# 调整磁盘大小
[root@kvm-233 data]# qemu-img resize moban.raw -100G
Image resized.
[root@kvm-233 data]# qemu-img resize moban.raw -100G
Image resized.
[root@kvm-233 data]# ll -h
总用量 812G
-rwxr-xr-x. 1 qemu qemu 4.3G 6月 14 17:20 CentOS-7-x86_64-DVD-1810.iso
-rw-------. 1 qemu qemu 200G 11月 4 22:01 db01_202.raw
-rw-------. 1 qemu qemu 200G 11月 4 22:01 db01_203.raw
-rw-------. 1 qemu qemu 500G 11月 4 22:02 dev01_201.raw
-rw------- 1 qemu qemu 500G 11月 4 22:02 git_201.raw
drwxr-xr-x 5 root root 46 10月 31 11:44 logs
-rw------- 1 root root 200G 11月 4 22:02 moban.raw
drwxr-xr-x 7 root uploadcdn 80 10月 24 21:21 webroot
-rw------- 1 qemu qemu 500G 11月 4 22:02 wiki_205.raw