修改虚拟机内存至少设置为2GB
添加一块50G的硬盘
编辑虚拟机设置
配置完成以后启动虚拟机
使用free命令 查看系统内存是否更改成功
检查cpu是否开启虚拟化支持 grep -Ei ‘vmx|svm’ /proc/cpuinfo
//vmx为英特尔的cpu;svm为AMD的cpu
使用lsblk命令检查虚拟机是否新增一块50GB的磁盘 对其进行格式化操作
mkfs.ext4 /dev/sdb
查看磁盘信息 blkid /dev/sdb
创建一个目录 mkdir /kvm_data
挂载 mount /dev/sdb /kvm_data
永久挂载需要进入/etc/fstab修改配置文件
/dev/sdb /kvm_data ext4 defaults 0 0
关闭防火墙和Selinux安全机制 并修改配置文件设为开机不自启
systemctl stop firewalld
systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
selinux 0
编辑/etc/selinux/config,将enforcing修改为disabled
重启虚拟机
使用yum安装kvm
yum install -y virt-* libvirt bridge-utils qemu-img
增加桥接网卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-br0
修改桥接网卡ifcfg-br0
vim ifcfg-br0
TYPE=Bridge
BOOTPROTO=none
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.150.149
NETMASK=255.255.255.0
GATEWAY=192.168.150.2
DNS1=114.114.114.114
DNS2=8.8.8.8
修改NAT网卡ens33
vim ifcfg-enf33
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0
修改完成以后重新启动网卡服务并查看网卡信息
service network restart
可以清楚的看到br0网卡出现并且带有IP,而以前的ens33网卡则没有IP。网卡配置完成
启动libvirtd服务
首先检查KVM模块是否加载 (lsmod命令用于显示已载入系统的模块)
lsmod|grep kvm
启动libvirtd并检查是否成功启动,命令如下:
systemctl start libvirtd
ps -ef |grep libvirt
启动成功后,使用brctl命令可以看到两个网卡,如下代码所示:
将centos7 上传到/tmp文件夹下
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-1804.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键
依次输入两次密码,密码相同,我设置的为root 配置完成,选择“b”,按Enter键后,开始安装
//按“Ctrl+]”键,退出终端,回到宿主机
完成虚拟机安装,已经退回到宿主机,接下来我们来通过宿主机virsh命令进行管理刚才安装的CentOS 7虚拟机。
查看虚拟机列表 virsh list
进入指定虚拟机 virsh console test 如果迟迟未动敲下回车就ok,
vrish常用命令,命令如下:
virsh shutdown test
//关闭虚拟机
virsh start test
//开启虚拟机
virsh destroy test
//类似stop,这个是强制停止
virsh undefine test
//彻底销毁虚拟机,会删除虚拟机配置文件,virsh list --all就看不到
virsh autostart test
//宿主机开机该虚拟机也开机
virsh autostart --disable test
克隆虚拟机
ctrl + ] 退会到宿主机 克隆虚拟机之前,要先关闭虚拟机,不然会提示
virsh shutdown test
virt-clone --original test --name test02 --file /kvm_data/test02.img
--original:指定克隆源虚拟机。
–name:指定克隆后的虚拟机名字。
–file:指定目标虚拟机的虚拟磁盘文件。
可用通过查看/etc/libvirt/qemu是否添加成功
接下来,我们启动刚刚克隆的虚拟机test02,首先查看虚拟机列表,然后启动克隆的虚拟机test02 这时会发现出现了两个虚拟机一个 test 、一个test02
快照管理
快照是在我们使用Vmware的时候,很常用的一个功能。它可以回到之前的某一状态。在KVM中RAW格式的虚拟磁盘不支持做快照,qcow2支持
创建快照 virsh snapshot-create test
查看test.img信息,同时会查看到快照列表 qemu-img info /kvm_data/test.img
列出所有快照 virsh snapshot-list test
查看当前快照详细信息 virsh snapshot-current test
查看所有快照的配置文件 ls /var/lib/libvirt/qemu/snapshot/test/
1615964954.xml
恢复指定快照 virsh snapshot-revert test 1615964954
删除指定快照 virsh snapshot-delete test 1615964954
磁盘格式
查看虚拟磁盘格式 qemu-img info /kvm_data/test.img
创建2GB的RAW格式磁盘
qemu-img create -f raw /kvm_data/test_1.img 2G
RAW格式的磁盘转换为qcow2格式
qemu-img convert -O qcow2 /kvm_data/test_1.img /kvm_data/test_1.qcow2
查看test1.img大小 查看tesstqcow2大小
ls -lh /kvm_data/test_1.img | ls -lh /kvm_data/test_1.qcow2
可以看到qcow2文件比较小,raw文件大小和我们指定空间大小一样是2G ,raw格式的磁盘性能比qcow2要好,但是raw格式的磁盘无法做快照 将test02转成raw格式
qemu-img convert -O raw /kvm_data/test02.img /kvm_data/test02_2.img
更改磁盘格式和文件路径,然后启动test02虚拟机,命令如下:
virsh edit test02
找到上面这部分将qcow修改为raw,/kvm_data/test02.img改为/kvm_data/test02_2.img,将type由qcow改为raw。
当我们使用 ls -l /kvm_data/ 查看磁盘用户和所属群组的时候都为root
启动虚拟机test02时在查看 启动后所属组变化成qemu的是test02_2.raw,证明这个磁盘正在被使用
磁盘扩容
我们知道,在这里磁盘一共有两种格式,一种是RAW格式,一种是qcow2格式,接下来我们分别给这两种磁盘格式进行扩容。
首先RAW扩容
qemu-img resize /kvm_data/test02_2.img +2G
查看test2_2.raw信息 变成了12G qemu-img info /kvm_data/test02_2.img
进入虚拟机test02,使用fdisk -l查看磁盘
virsh console test02
fdisk -l
可以看到磁盘还是10GB![在这里插入图片描述](https://img-blog.csdnimg.cn/20210317160105388.png)
退出终端,关闭test02虚拟机,重新启动,然后再次进入虚拟机test02,使用fdisk -l查看磁盘
virsh destroy testo2
virsh start test02
virsh console test02
fdisk -l 这时就变成了12GB
接下来,我们怎么使用新增加的这2 GB磁盘,那就是分区
fdisk /dev/vda
p primary (2 primary, 0 extended, 2 free) 一路默认即可
除了对已有磁盘扩容外,还可以额外增加磁盘
qemu-img create -f raw /kvm_data/test02_3.raw 5G
使用virsh edit编辑test02虚拟机,将新磁盘增加到test02虚拟机
virsh edit test02
主要修改source file名称为/kvm_data/test02_3.raw,target dev改为vdb,slot改为0x09,不与0x06冲突即可
关闭test02虚拟机,重新启动,然后进入该虚拟机,使用fdisk -l查看磁盘
可以看到多了一块5 GB的磁盘,退出终端。
接下来,我们扩容qcow2格式的磁盘
qemu-img create -f qcow2 /kvm_data/test_2.img 5G
使用virsh edit编辑test虚拟机,将新磁盘增加到test虚拟机
virsh edit test
关闭test虚拟机,重新启动,然后进入该虚拟机,使用fdisk -l查看磁盘
virsh destroy test
virsh start test
virsh console test
fdisk -l 磁盘大小为12GB
调整CPU内存、网卡
查看虚拟机配置信息 virsh dominfo test
编辑虚拟内存 virsh edit test
关闭虚拟机,重启动虚拟机
virsh destory test
virsh start test
查看虚拟机配置信息,看是否修改成功
除了这种修改方式之外,还有一种动态修改
virsh setmem test 800m
virsh setvcpus test 2 动态修改只可以增加不可以减少
查看配置信息是否修改成功
virsh dumpxml test > /etc/libvirt/qemu/test.xml
需要把配置写入配置文件里
查看网卡列表 virsh domiflist test
增加一块新的网卡,并设置为NAT网络模式(virbr0类似VMware的VMnet8),这里如果写–source br0,则网络模式为桥接
附加端口
virsh attach-interface test --type bridge --source virbr0
virsh dumpxml test > /etc/libvirt/qemu/test.xml 把配置文件备份
进入test虚拟机 查看网卡信息
迁移虚拟机
virsh shutdown test 关闭虚拟机
virsh domblklist test 查看虚拟机磁盘所在目录
virsh dumpxml test > /etc/libvirt/qemu/test03.xml
//如果是远程机器,需要把该配置文件拷贝到远程机器上
rsync -av /kvm_data/test.img /kvm_data/test03.img
//如果是迁移到远程,则需要把该磁盘文件拷贝到远程机器上
rsync -av /kvm_data/test.img /kvm_data/test03.img
因为是迁移到本机,配置文件用的是test子机的配置,不改会有冲突,所以需要修改该文件。如果是远程机器不用修改
vi /etc/libvirt/qemu/test03.xml
//修改uuid(随便改一下数字,位数不要变)
第一个
定义新虚拟机
virsh define /etc/libvirt/qemu/test03.xml
查看虚拟机列表,会发现新迁移的虚拟机test03 virsh list --all