超详细!KVM虚拟化

一、知识点

熟练掌握虚拟机的基本管理、克隆、快照、磁盘管理、配置调整、虚拟机迁移。

二、环境配置1、基础环境

主机名

IP地址

CPU、内存

硬盘

网卡

kvm

192.168.200.206

2vCPU开启虚拟化、4G

20G+50G

net

三、实操1、基础环境

关闭防火墙、selinux、iptables、查看系统是否支持虚拟化

[root@kvm~]systemctldisablefirewalldRemovedsymlink/etc/systemd/system//etc/systemd/system//[root@kvm~]vi/etc/selinux/configSELINUX=disabled[root@kvm~]iptables-X[root@kvm~]iptables-saveCompletedonWedMar1018:10:102021[root@kvm~]查看内存大小4G[root@kvm~]查看CPU是否支持虚拟化vmx:intel\svm:AMD[root@kvm~]cat/proc/cpuinfo|grepsvm格式化硬盘[root@kvm~]检查是否格式化成功[root@kvm~]挂载硬盘[root@kvm~]mount/dev/sdb/kvm_data/vi/etc/fstab/dev/sdb/kvm_dataext4defaults00
3、安装KVM
[root@kvm~]cpifcfg-eno16777736ifcfg-br0[root@kvmnetwork-scripts]viifcfg-eno16777736TYPE=EthernetBOOTPROTO=staticNAME=eno16777736DEVICE=eno16777736ONBOOT=yesBRIDGE=br0[root@kvmnetwork-scripts]ipa1:lo:LOOPBACK,UP,LOWER_UPmtu65536qdiscnoqueuestateUNKNOWNlink/loopback00:00:00:00:00:00brd00:00:00:00:00:00/8scopehostlovalid_lftforeverpreferred_lftforeverinet6::1/128scopehostvalid_lftforeverpreferred_lftforever2:eno16777736:BROADCAST,MULTICAST,UP,LOWER_UPmtu1500qdiscpfifo_fastmasterbr0stateUPqlen1000link/ether00:0c:29:87:40:d7brdff:ff:ff:ff:ff:ff3:br0:BROADCAST,MULTICAST,UP,LOWER_UPmtu1500qdiscnoqueuestateUPlink/ether00:0c:29:87:40:d7brdff:ff:ff:ff:ff:/24_lftforeverpreferred_lftforeverinet6fe80::60e0:29ff:fe15:bfec/64scopelinkvalid_lftforeverpreferred_lftforeversystemctlstartlibvirtd[root@kvmnetwork-scripts]查看网卡[root@kvmnetwork-scripts]virt-install--name=test--memory=512,maxmemory=1024--vcpus=1,maxvcpus=2--os-type=linux--os-variant=rhel7--location=/tmp/CentOS-7-x86_64-=/kvm_data/,size=10--bridge=br0--graphics=none--console=pty,target_type=serial--extra-args="console=tty0console=ttyS0"ERRORHostdoesnotsupportanyvirtualizationoptions

安装虚拟机遇到一个报错:通过yuminstall-yopenssl解决

virt-install--name=test--memory=512,maxmemory=1024--vcpus=1,maxvcpus=2--os-type=linux--os-variant=rhel7--location=/tmp/CentOS-7-x86_64-=/kvm_data/,size=10--bridge=br0--graphics=none--console=pty,target_type=serial--extra-args="console=tty0console=ttyS0"


第一个设置是设置语言、第二个设置是选择时区、第三个是设置安装源、第四个是软件的选择、第五个是安装得目标、第七个是network不需要设置、第八个是root密码、第九个是否要创建普通用户。

这里我们从1开始设置

输入1回车进入语言界面


回车显示全部、按68回车选择中文、按1显示简体中文

回车继续2选择亚洲、上海

回车继续选择5、安装目标


回车继续使用所有的空间c


继续标准分区选1



c继续

选8设置root密码


密码设置太简单,yes

按b开始安装


安装完成,回车退出,重启


CTRL+】返回宿主机

6、虚拟机基本管理

检查虚拟机是否被挂载

[root@kvm~]ll-h/kvm_data/:13lost+found-rw-------1qemuqemu11GMar1117:44
①、查看虚拟机列表

不加–-all只列举出开机状态的虚拟机,

[root@kvm~]virshconsoletestConnectedtodomaintestEscapecharacteris^]CentOSLinux7(Core)_64onanx86_64dhclienteth0[root@localhost~]virshshutdowntestDomaintestisbeingshutdownvirshconsoletesterror:Thedomainisnotrunningvirt-clone--originaltest--nametest02--file/kvm_data/''|10GB00:15Clone'test02'
②、查看快照信息
[root@kvm~]virshsnapshot-listtestNameCreationTimeState------------------------------------------------------------161-03-1201:10:01+0800shutoff查看快照信息[root@kvm~]virshsnapshot-createtestDomainsnapshot1615484184created[root@kvm~]ls/var/lib/libvirt/qemu/snapshot/
⑥、恢复指定快照
[root@kvm~]virshsnapshot-deletetest1615482601Domainsnapshot1615482601deleted
9、磁盘格式

查看虚拟磁盘格式,命令如下:

[root@kvm~]qemu-imgcreate-fraw/kvm_data/test_1.img2GFormatting'/kvm_data/test_1.img',fmt=rawsize=2147483648RAW格式的磁盘转换为qcow2格式,命令如下:[root@kvm~]ls-lh/kvm_data/test_1.:11/kvm_data/test_1.img[root@kvm~]qemu-imgconvert-Oraw/kvm_data//kvm_data/test02_2.raw

更改磁盘格式和文件路径,然后启动test02虚拟机,命令如下:

[root@kvm~]ls-l/kvm_data/total3310628drwx------2rootroot16384Apr2900:20lost+found-rw-r--r--1rootroot10737418240May316:14test02_2.raw-rw-------1rootroot1133772800May316:02:11test_1.img-rw-r--r--1rootroot197120May316:05test_1.qcow2-rw-------1rootroot10739384832May314:14

启动虚拟机test02,然后再次查看磁盘所属用户和组,命令如下:

[root@kvm~]ls-l/kvm_data/total3310628drwx------2rootroot16384Apr2900:20lost+found-rw-r--r--1qemuqemu10737418240May316:14test02_2.raw-rw-------1rootroot1133772800May316:02:11test_1.img-rw-r--r--1rootroot197120May316:05test_1.qcow2-rw-------1rootroot10739384832May314:14//启动后所属组变化成qemu的是test02_2.raw,证明这个磁盘正在被使用
10、磁盘扩容

我们知道,在这里磁盘一共有两种格式,一种是RAW格式,一种是qcow2格式,接下来我们分别给这两种磁盘格式进行扩容。

首先扩容RAW格式,命令如下:

[root@kvm~]qemu-imginfo/kvm_data/test02_2.rawimage:/kvm_data/test02_2.rawfileformat:rawvirtualsize:12G(12884901888bytes)disksize:1.0G

进入虚拟机test02,使用fdisk-l查看磁盘,命令如下:

[root@kvm~]fdisk-lDisk/dev/vda:10.7GB,10737418240bytes,20971520sectorsUnits=sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytesDisklabeltype:dosDiskidentifier:0x0005b865DeviceBootStartBlocksIdSystem/dev/vda1*2048102604751200083Linux/dev/vda2102604820978eLinuxLVMDisk/dev/mapper/centos-root:9093MB,9093251072bytes,17760256sectorsUnits=sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytesDisk/dev/mapper/centos-swap:1073MB,1073741824bytes,2097152sectorsUnits=sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytes//可以看到磁盘还是10GB

退出终端,关闭test02虚拟机,重新启动,然后再次进入虚拟机test02,使用fdisk-l查看磁盘,命令如下:

[root@kvm~]virshstarttest02Domaintest02started[root@kvm~]fdisk-lDisk/dev/vda:12.9GB,12884901888bytes,25165824sectorsUnits=sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytesDisklabeltype:dosDiskidentifier:0x0005b865DeviceBootStartBlocksIdSystem/dev/vda1*2048102604751200083Linux/dev/vda2102604820978eLinuxLVMDisk/dev/mapper/centos-root:9093MB,9093251072bytes,17760256sectorsUnits=sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytesDisk/dev/mapper/centos-swap:1073MB,1073741824bytes,2097152sectorsUnits=sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytes

可以看到已经变成12GB了。

接下来,我们怎么使用新增加的这2GB磁盘,那就是分区,命令如下:

[root@localhost~]qemu-imgcreate-fraw/kvm_data/test02_3.raw5GFormatting'/kvm_data/test02_3.raw',fmt=rawsize=5368709120

使用virshedit编辑test02虚拟机,将新磁盘增加到test02虚拟机,命令如下

[root@kvm~]virshdestroytest02Domaintest02destroyed[root@kvm~]virshconsoletest02[root@localhost~]qemu-imgresize/kvm_data/+2GImageresized.//若提示qemu-img:Can'tresizeanimagewhichhassnapshots,需要删除快照

查看信息,命令如下:

[root@kvm~]virshdestroytestDomaintestdestroyed[root@kvm~]virshconsoletest[root@localhost~]fdisk/dev/vdaWelcometofdisk().Changeswillremaininmemoryonly,(mforhelp):nPartitiontype:pprimary(2primary,0exted,2free)eextedSelect(defaultp):pPartitionnumber(3,4,default3):Firstsector(20971520-25165823,default20971520):Usingdefaultvalue20971520Lastsector,+sectorsor+size{K,M,G}(20971520-25165823,default25165823):Usingdefaultvalue25165823Partition3oftypeLinuxandofsize2GiBissetCommand(mforhelp):w/保存并退出终端

新增一块qcow2格式的磁盘,命令如下:

[root@kvm~]virshedittest………………disktype='file'device='disk'drivername='qemu'type='qcow2'/sourcefile='/kvm_data/'/targetdev='vda'bus='virtio'/addresstype='pci'domain='0x0000'bus='0x00'slot='0x06'function='0x0'//disk//找到这一部分内容,在下面增加以下内容disktype='file'device='disk'drivername='qemu'type='qcow2'/sourcefile='/kvm_data/test_2.img'/targetdev='vdb'bus='virtio'/addresstype='pci'domain='0x0000'bus='0x00'slot='0x08'function='0x0'//disk………………

关闭test虚拟机,重新启动,然后进入该虚拟机,使用fdisk-l查看磁盘,命令如下:

[root@kvm~]virshstarttestDomainteststarted[root@kvm~]fdisk-lDisk/dev/vda:12.9GB,12884901888bytes,25165824sectorsUnits=sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytesDisklabeltype:dosDiskidentifier:0x0005b865DeviceBootStartBlocksIdSystem/dev/vda1*2048102604751200083Linux/dev/vda2102604820978eLinuxLVM/dev/vda320973209715283LinuxDisk/dev/vdb:5368MB,5368709120bytes,10485760sectorsUnits=sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytesDisk/dev/mapper/centos-root:9093MB,9093251072bytes,17760256sectorsUnits=sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytesDisk/dev/mapper/centos-swap:1073MB,1073741824bytes,2097152sectorsUnits=sectorsof1*512=512bytesSectorsize(logical/physical):512bytes/512bytesI/Osize(minimum/optimal):512bytes/512bytes

退出终端

11、调整CPU内存、网卡

查看虚拟机配置信息,命令如下:

[root@kvm~]virshedittest…………memoryunit='KiB'1048576/memory//最大内存currentMemoryunit='KiB'524288/currentMemory//可用内存vcpuplacement='static'current='1'2/vcpu//最大cpu………………//将以上内容修改为如下内容…………memoryunit='KiB'1048576/memorycurrentMemoryunit='KiB'624288/currentMemoryvcpuplacement='static'current='1'2/vcpu…………

关闭虚拟机,重启动虚拟机,命令如下:

[root@kvm~]virshstarttestDomainteststarted

查看虚拟机配置信息,看是否修改成功,命令如下:

[root@kvm~]virshsetmemtest800m//动态修改内存[root@kvm~]virshdominfotestId:10Name:testUUID:49d7cb9c-20dc-42dd-a260-01532b5132e5OSType:hvmState:runningCPU(s):2CPUtime:22.8sMaxmemory:1048576KiBUsedmemory:819200KiBPersistent:yesAutostart:disableManagedsave:noSecuritymodel:noneSecurityDOI:0[root@kvm~]virshdomiflisttestInterfaceTypeSourceModelMAC-------------------------------------------------------vnet1bridgebr0virtio52:54:00:93:bf:07

增加一块新的网卡,并设置为NAT网络模式(virbr0类似VMware的VMnet8),这里如果写--sourcebr0,则网络模式为桥接,命令如下:

[root@kvm~]virshdomiflisttestInterfaceTypeSourceModelMAC-------------------------------------------------------vnet1bridgebr0virtio52:54:00:93:bf:07vnet2bridgevirbr0rtl813952:54:00:29:ed:8b[root@kvm~]virshconsoletest[root@localhost~]virshshutdowntestDomaintestisbeingshutdown

查看虚拟机磁盘所在目录,命令如下:

[root@kvm~]virshdumpxmltest/etc/libvirt/qemu///如果是远程机器,需要把该配置文件拷贝到远程机器上[root@kvm~]vi/etc/libvirt/qemu//name//修改domname://修改uuid(随便改一下数字,位数不要变)disktype='file'device='disk'drivername='qemu'type='qcow2'/sourcefile='/kvm_data/'/targetdev='vda'bus='virtio'/addresstype='pci'domain='0x0000'bus='0x00'slot='0x06'function='0x0'//disk//修改磁盘路径定义新虚拟机,命令如下:[root@kvm~]virshlist--allIdNameState----------------------------------------------------6test02running-testshutoff-test03shutoff
遇到的问题:1、处理器开启虚拟化,遇见这个问题


解决方法:

管理员运行cmd

执行:bcdedit/sethypervisorlaunchtypeoff

重启就可以开启了,但是过一段时间,再重启打开虚拟机还是会遇见这个问题,只能再重启解决。

尝试把VMware升级到16也无法解决这个问题。

2、dhclienteh0获取不到IP地址
[root@localhost~]ipa1:lo:LOOPBACK,UP,LOWER_UPmtu65536qdiscnoqueuestateUNKNOWNlink/loopback00:00:00:00:00:00brd00:00:00:00:00:00/8scopehostlovalid_lftforeverpreferred_lftforeverinet6::1/128scopehostvalid_lftforeverpreferred_lftforever2:eth0:BROADCAST,MULTICAST,UP,LOWER_UPmtu1500qdiscpfifo_faststateUPqlen1000link/ether52:54:00:50:b0:bcbrdff:ff:ff:ff:ff:ff

排查问题发现我习惯关闭VMware本地DHCP服务,所以没有获取到IP地址,开启后就获取到IP地址了。


[root@localhost~]ipa1:lo:LOOPBACK,UP,LOWER_UPmtu65536qdiscnoqueuestateUNKNOWNlink/loopback00:00:00:00:00:00brd00:00:00:00:00:00/8scopehostlovalid_lftforeverpreferred_lftforeverinet6::1/128scopehostvalid_lftforeverpreferred_lftforever2:eth0:BROADCAST,MULTICAST,UP,LOWER_UPmtu1500qdiscpfifo_faststateUPqlen1000link/ether52:54:00:50:b0:bcbrdff:ff:ff:ff:ff:/24_lft1801secpreferred_lft1801secinet6fe80::5054:ff:fe50:b0bc/64scopelinkvalid_lftforeverpreferred_lftforever


免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系