安装KVM
调整虚拟机
- 修改虚拟机内存,至少设置成2 GB
- 在“硬件”选项卡中单击“处理器”, 在虚拟化引擎中勾选
- 添加硬盘,将最大磁盘大小修改为“50”
- 至此,虚拟机设置完成
检查CPU参数
启动虚拟机,我们查看以下,内存是否更改成功 [root@kvm ~]# free
检查CPU是否开启虚拟化支持[root@kvm ~]# grep -Ei 'vmx|svm' /proc/cpuinfo
如果显示为空,就要检查你虚拟机设置,是否打“√”
挂载新磁盘
使用lsblk命令,检查虚拟机是否新增一块50 GB的磁盘 [root@kvm ~]# lsblk
接下来格式化这块磁盘,格式化成ext4格式 [root@kvm ~]# mkfs.ext4 /dev/sdb
格式化完成后,我们挂载磁盘,先创建挂载目录/kvm_data,然后进行挂载
[root@kvm ~]# mkdir /kvm_data
[root@kvm ~]# mount /dev/sdb /kvm_data/
这种方式挂载,重启虚拟机后,需要再次重新挂载,我们为了方便开机后可以自动挂载,编写/etc/fstab文件,添加文件最末一行[root@kvm ~]# vi /etc/fstab
/dev/sdb /kvm_data ext4 defaults 0 0
关闭防火墙和selinux
关闭防火墙并设置开机不自启
[root@kvm ~]# systemctl stop firewalld
[root@kvm ~]# systemctl disable firewalld
关闭SELinux,编辑/etc/selinux/config,将enforcing修改为disabled[root@kvm ~]# vi /etc/selinux/config
SELINUX=disabled
修改完成后,重启虚拟机,使其生效,使用getenforce查看[root@kvm ~]# getenforce
安装KVM
上述操作完成后,我们使用Yum进行安装KVM[root@kvm ~]# yum install -y virt-* libvirt bridge-utils qemu-img
启动KVM
配置网卡
增加桥接网卡ifcfg-br0
[root@kvm ~]# cd /etc/sysconfig/network-scripts/
[root@kvm network-scripts]# cp ifcfg-ens33 ifcfg-br0
修改桥接网卡ifcfg-br0的内容
[root@kvm network-scripts]# vi ifcfg-br0
[root@kvm network-scripts]# cat ifcfg-br0
TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.16.5
NETMASK=255.255.255.0
GATEWAY=192.168.16.2
DNS1=114.114.114.114
DNS2=8.8.8.8
修改NAT网卡ifcfg-eno16777736
[root@kvm network-scripts]# vi ifcfg-ens33
[root@kvm network-scripts]# cat ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
NAME=eno16777736
DEVICE=eno16777736
ONBOOT=yes
BRIDGE=br0
修改完成网卡内容后,重新启动网卡服务并查看网卡信息[root@kvm network-scripts]# service network restart
启动libvirtd服务
首先检查KVM模块是否加载[root@kvm network-scripts]# lsmod|grep kvm
启动libvirtd并检查是否成功启动
[root@kvm network-scripts]# systemctl start libvirtd
[root@kvm network-scripts]# ps -ef |grep libvirt
启动成功后,使用brctl命令可以看到两个网卡
[root@kvm ~]# cd
[root@kvm ~]# brctl show
命令行安装CentOS 7
CentOS7镜像下载地址:
http://mirrors.163.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2003.iso
首先,通过SCRT上传CentOS 7镜像到/tmp目录下,如果没有镜像的可以自行下载。上传后,使用ll命令查看/tmp目录下是否存在CentOS 7镜像文件[root@kvm ~]# ll /tmp/
镜像存在,接下来使用virt-install进行CentOS 7的安装
[root@kvm ~]# virt-install --name=test --memory=512,maxmemory=1024
--vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7
--location=/tmp/CentOS-7-x86_64-DVD-1511.iso
--disk path=/kvm_data/test.img,size=10
--bridge=br0
--graphics=none
--console=pty,target_type=serial
--extra-args="console=tty0 console=ttyS0"
接下来我们开始配置“Timezone settings”,输入“2”,按Enter键
- 输入2,进行时区设置
“Timezone settings”时区设置选择 5) Asia亚洲,再选择城市 62) Shanghai上海 输入完毕后,可以发现2的[!]变成了[x],证明配置完毕。 - 接下来我们配置“Software selection”,选择“4”,在选择“c”,因为默认就是minimalinstall,按Enter键
- 接下来我们配置“Installation Destination”,选择“5”,其余的依次选择“c”,按Enter键
- 接下来配置“Root password”,选择8,按Enter键
- 依次输入两次密码,密码相同,我设置的为123456
- 配置完成,选择“b”,按Enter键后,开始安装
- [root@localhost ~]#
//按“Ctrl+]”键,退出终端,回到宿主机。
[root@kvm ~]#
虚拟机管理
KVM基本管理
查看虚拟机列表[root@kvm ~]# virsh list
进入指定的虚拟[root@kvm ~]# virsh console test
关闭虚拟机 virsh shutdown test
开启虚拟机 virsh start test
类似stop,这个是强制停止 virsh destroy test
彻底销毁虚拟机,会删除虚拟机配置文件,virsh list --all就看不到virsh undefine test
宿主机开机该虚拟机也开机 virsh autostart test
解除开机启动 virsh autostart --disable test
挂起 virsh suspend test
恢复 virsh resume test
克隆虚拟机
关闭虚拟机后,再次进行克隆[root@kvm ~]# virsh shutdown test
查看虚拟机配置文件/etc/libvirt/qemu/,看是否增加test02.xml文件 [root@kvm ~]# ls /etc/libvirt/qemu/
启动刚刚克隆的虚拟机test02,首先查看虚拟机列表,然后启动克隆的虚拟机test02[root@kvm ~]# virsh list --all
快照管理
创建快照 [root@kvm ~]# virsh snapshot-create test
查看test.img信息 [root@kvm ~]# qemu-img info /kvm_data/test.img
列出所有快照[root@kvm ~]# virsh snapshot-list test
查看当前快照详细信息[root@kvm ~]# virsh snapshot-current test
查看所有快照配置文件[root@kvm ~]# ls /var/lib/libvirt/qemu/snapshot/test/
恢复指定快照[root@kvm ~]# virsh snapshot-revert test 1588485687
删除指定快照 [root@kvm ~]# virsh snapshot-delete test 1588485687
磁盘格式
查看虚拟磁盘格式[root@kvm ~]# qemu-img info /kvm_data/test.img
创建2 GB的RAW格式磁盘 [root@kvm ~]# qemu-img create -f raw /kvm_data/test_1.img 2G
RAW格式的磁盘转换为qcow2格式[root@kvm ~]# qemu-img convert -O qcow2 /kvm_data/test_1.img
查看test1.img大小[root@kvm ~]# ls -lh /kvm_data/test_1.img
将test02转成raw格式 [root@kvm ~]# qemu-img convert -O raw /kvm_data/test02.img /kvm_data/test02_2.img
更改磁盘格式和文件路径,然后启动test02虚拟机[root@kvm ~]# virsh edit test02
查看磁盘所属用户和组[root@kvm ~]# ls -l /kvm_data/
启动虚拟机test02,然后再次查看磁盘所属用户和组 [root@kvm ~]# virsh start test02
磁盘扩容
首先扩容RAW格式[root@kvm ~]# qemu-img resize /kvm_data/test02_2.img +2G
查看test02_2.raw信息[root@kvm ~]# qemu-img info /kvm_data/test02_2.img
进入虚拟机test02,使用fdisk -l查看磁盘
[root@kvm ~]# virsh console test02
[root@localhost ~]# fdisk -l
退出终端,关闭test02虚拟机,重新启动,然后再次进入虚拟机test02,使用fdisk -l查看磁盘
[root@kvm ~]# virsh destroy test02
Domain test02 destroyed
[root@kvm ~]# virsh start test02
Domain test02 started
[root@kvm ~]# virsh console test02
[root@localhost ~]# fdisk -l
使用新增加的这2 GB磁盘,分区
[root@localhost ~]# fdisk /dev/vda
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3):
//按Enter键
First sector (20971520-25165823, default 20971520):
//按Enter键
Using default value 20971520
Last sector, +sectors or +size{K,M,G} (20971520-25165823, default 25165823):
//按Enter键
Command (m for help): w
//保存退出并退出终端
除了对已有磁盘扩容外,还可以额外增加磁盘[root@kvm ~]# qemu-img create -f raw /kvm_data/test02_3.raw 5G
使用virsh edit编辑test02虚拟机,将新磁盘增加到test02虚拟机[root@kvm ~]# virsh edit test02
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/kvm_data/test02_2.img'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06'
function='0x0'/>
</disk>
//找到这一部分内容,在下面增加以下内容
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/kvm_data/test02_3.raw'/>
<target dev='vdb' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x09'
function='0x0'/>
</disk>
调整CPU内存、网卡
查看虚拟机配置信息[root@kvm ~]# virsh dominfo test
编辑虚拟机内存
[root@kvm ~]# virsh edit test
…………
<memory unit='KiB'>1048576</memory>
//最大内存
<currentMemory unit='KiB'>524288</currentMemory>
//可用内存
<vcpu placement='static' current='1'>2</vcpu>
//最大cpu
………………
//将以上内容修改为如下内容
…………
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>624288</currentMemory>
<vcpu placement='static' current='1'>2</vcpu>
关闭虚拟机,重启动虚拟机
[root@kvm ~]# virsh destroy test
Domain test destroyed
[root@kvm ~]# virsh start test
Domain test started
查看虚拟机配置信息[root@kvm ~]# virsh dominfo test
查看网卡列表[root@kvm ~]# virsh domiflist test
把配置文件做备份[root@kvm ~]# virsh dumpxml test > /etc/libvirt/qemu/test.xml
进入test虚拟机,查看网卡信息[root@kvm ~]# virsh console test
迁移虚拟机
首先关闭虚拟机[root@kvm ~]# virsh shutdown test
查看虚拟机磁盘所在目录[root@kvm ~]# virsh domblklist test
因为是迁移到本机,配置文件用的是test子机的配置,不改会有冲突,所以需要修改该文件。
定义新虚拟机[root@kvm ~]# virsh define /etc/libvirt/qemu/test03.xml
查看虚拟机列表[root@kvm ~]# virsh list --all