KVM

1|0安装KVM

准备一台虚拟机并开启虚拟化

 准备好镜像文件

[root@localhost ~]# ls /opt/ centos2.raw CentOS-7-x86_64-DVD-1810.iso

安装kvm虚拟化管理软件

yum install libvirt virt-install qemu-kvm -y
systemctl start libvirtd systemctl enable libvirtd

建议虚拟机内存不要低于1024M

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos7.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

vnc:远程的桌面管理工具

设置VNC

点击Option 点击Advanced 点击Expert 找到ColourLevel 默认值是pal8.修改成rgb222或者full

连接后安装系统

列表 virsh list 开机 virsh start centos7 关机 virsh shutdown centos7 拔电源关机 virsh destroy centos7

接触虚拟机记得第一时间打快照

导出配置dumpxml

virsh dumpxml centos7 > centos7-dump.xml

删除 推荐:先destroy,在undefine

virsh undefine centos7

导入配置

virsh define centos7-dump.xml

编辑配置

virsh edit centos7

2|0压缩

raw:     裸格式,占用空间比较大,不支持快照功能,性能较好,不方便传输 总50G 占用50G
qcow2: cow (copy on write)占用空间小,支持快照,性能比raw差一点,方便传输 总50G 占用2G

 把raw格式压缩为qcow2格式并启动

[root@localhost opt]# ll -h 总用量 5.7G -rw------- 1 qemu qemu 10G 10月 26 11:44 centos7.raw -rw-r--r-- 1 qemu qemu 4.3G 10月 25 16:59 CentOS-7-x86_64-DVD-1810.iso
[root@localhost opt]# qemu-img convert -c centos7.raw -O qcow2 centos7.qcow2

修改centos7 xml文件

[root@localhost opt]# virsh edit centos7 <emulator>/usr/libexec/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/opt/centos7.qcow2'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </disk>
virsh destroy centos7
virsh start centos7
[root@localhost opt]# virsh list Id 名称 状态 ---------------------------------------------------- 7 centos7 running
[root@localhost opt]# virsh list Id 名称 状态 ---------------------------------------------------- 7 centos7 running

3|0console命令行登录

在kvm centos7虚拟机上操作

grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
[root@localhost ~]# cat /boot/grub2/grub.cfg linux16 /vmlinuz-0-rescue-7d79a0ab69b449eb8994b30a692da3c8 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet console=ttyS0,115200n8
reboot

在宿主机上用console登录kvm虚拟机

按一次回车

[root@localhost opt]# virsh console centos7 连接到域 centos7 换码符为 ^] CentOS Linux 7 (Core) Kernel 3.10.0-957.el7.x86_64 on an x86_64 localhost login:

4|0快照

raw不支持做快照,qcow2支持快照,并且快照就保存在qcow2的磁盘文件中

创建快照

virsh snapshot-create-as centos7 centos7-snap-01

查看快照

virsh snapshot-list centos7

还原快照

virsh snapshot-revert centos7 --snapshotname centos7-snap-01

删除快照

virsh snapshot-delete centos7 --snapshotname centos7-snap-01

5|0克隆

克隆前需要关闭相关虚拟机

完整克隆

virt-clone --auto-clone -o centos7 -n centos7-clone

[root@localhost opt]# ls
centos7-clone.qcow2 centos7.qcow2 centos7.raw CentOS-7-x86_64-DVD-1810.iso web-10.qcow2 web-20.qcow2

 链接克隆

生成虚拟机磁盘文件

qemu-img create -f qcow2 -b centos7.qcow2 web-20.qcow2

查看磁盘文件信息

qemu-img info web-20.qcow2

如遇到mac地址冲突可删除配置文件中的mac标签

<mac address='52:54:00:d3:07:a5'/>

6|0链接克隆创建桥接网络虚拟机

链接克隆,生成虚拟机磁盘文件

qemu-img create -f qcow2 -b centos7.qcow2 web-20.qcow2

关闭NetworkManager

systemctl stop NetworkManager
systemctl disable NetworkManager

创建桥接网卡

virsh iface-bridge ens33 br0

默认NAT模式需要修改配置
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

virsh edit centos7

<interface type='bridge'>
<mac address='52:54:00:55:aa:fa'/>
<source bridge='br0'/>
在宿主机上,重启虚拟机生效

桥接模式导入虚拟机并进行启动测试

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web-20 --memory 1024 --vcpus 1 --disk /opt/web-20.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

 使用Xshell连接web-20

设置域开机自启

virsh autostart web-20

7|0热添加技术

kvm虚拟机在线热添加硬盘

创建磁盘文件

qemu-img create -f qcow2 -b centos7.qcow2 add.qcow2

临时生效

virsh attach-disk web-20 /opt/add.qcow2 vdb --subdriver qcow2

永久生效

virsh attach-disk web-20 /opt/add.qcow2 vdb --subdriver qcow2 --config
mkfs.xfs /dev/vdb mount /dev/vdb /mnt/

[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 8.0G 1.2G 6.9G 15% /
devtmpfs 484M 0 484M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.7M 489M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda1 1014M 133M 882M 14% /boot
tmpfs 100M 0 100M 0% /run/user/0
/dev/vdb 12G 33M 12G 1% /mnt

继续扩充磁盘

umount /mnt/

在kvm虚拟机,卸载磁盘

virsh detach-disk web-20 vdb

增加容量

qemu-img resize /opt/add.qcow2 +5G

重新附加磁盘

virsh attach-disk web-20 /opt/add.qcow2 vdb --subdriver qcow2

在虚拟机进行扩容操作

mount /dev/vdb /mnt/ xfs_growfs /dev/vdb

[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 8.0G 1.2G 6.9G 15% /
devtmpfs 484M 0 484M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6.7M 489M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/vda1 1014M 133M 882M 14% /boot
tmpfs 100M 0 100M 0% /run/user/0
/dev/vdb 15G 33M 15G 1% /mnt

磁盘不建议缩容

kvm虚拟机在线热添加网卡

virsh attach-interface web-20 --type bridge --source br0 --model virtio

删除网卡

virsh detach-interface web-20 --type bridge --mac 52:54:00:94:c3:cf

kvm虚拟机在线热添加内存

临时热添加内存

virsh setmem web-20 1024M --live

永久增大内存

virsh setmem web-29 1024M --config

出现错误

[root@localhost opt]# virsh setmem web-20 2048M --live 错误:无效参数:无法将内存设置为高于最大内存

在添加虚拟机时应注意设置最大内存数--memory 512,maxmemory=2048

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

内存可以随意在线增大减小

kvm虚拟机在线热添加cpu

在添加虚拟机时应注意设置最大cpu数 --vcpus 1,maxvcpus=10

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

热添加cpu核数

virsh setvcpus web-20 4 --live

永久添加cpu核数

virsh setvcpus web-20 4 --config

cpu数只能增加

8|0kvm虚拟机热迁移

冷迁移kvm虚拟机:配置文件,磁盘文件
热迁移kvm虚拟机:配置文件,nfs共享
热迁移描述:

相比KVM虚拟机冷迁移中需要拷贝虚拟机虚拟磁盘文件,kvm虚拟机热迁移无需拷贝虚拟磁盘文件,
但是需要迁移到的宿主机之间需要有相同的目录结构虚拟机磁盘文件,也就是共享存储,本文这部分内容通过nfs来实现,当然也可以采
用Glusterfs集群文件系统来实现.

环境要求:

主机名 ip     内存 网络      软件需求  虚拟化 kvm01 192.168.88.99 2G 创建br0桥接网卡 kvm和nfs 开启虚拟化 kvm02 192.168.88.100 2G 创建br0桥接网卡 kvm和nfs 开启虚拟化 nfs01 192.168.88.10 1G 无 nfs 无

操作步骤:

在三台服务器上做好host解析和hostname

hostnamectl set-hostname nfs hostnamectl set-hostname kvm01 hostnamectl set-hostname kvm02
cat > /etc/hosts <<EOF 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.88.10 nfs 192.168.88.99 kvm01 192.168.88.100 kvm02 EOF

一:在kvm01和kvm02上安装kvm和nfs,配置桥接网卡

yum install libvirt* virt-* qemu-kvm* nfs-utils openssh-askpass -y
systemctl start libvirtd.service systemctl enable libvirtd.service

关闭NetworkManager

systemctl stop NetworkManager systemctl disable NetworkManager
virsh iface-bridge eth33 br0

二:在nfs上安装配置nfs

yum install nfs-utils -y systemctl start nfs systemctl enable nfs.service mkdir /data -p
[root@nfs ~]# vim /etc/exports /data 192.168.88.0/24(rw,async,no_root_squash,no_all_squash)
systemctl restart rpcbind systemctl restart nfs systemctl enable nfs

三:kvm01和kvm02挂载共享目录/mnt

mount -t nfs 192.168.88.10:/data /mnt

四:基于挂载目录安装一台基于桥接模式的虚拟机

cp centos7.qcow2 /mnt/
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name qianyi --memory 512,maxmemory=1024 --vcpus 1 --disk /mnt/centos7.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

把在kvm01的虚拟机热迁移到kvm02

热迁移命令:

virsh migrate --live --verbose qianyi qemu+ssh://192.168.88.100/system tcp://192.168.88.100 --unsafe

 


__EOF__

本文作者panda-wei
本文链接https://www.cnblogs.com/panda-wei/p/16825999.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   kivtx  阅读(110)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示