环境
hostname | IP | service |
---|---|---|
kvm01 | 192.168.236.156 | kvm |
kvm02 | 192.168.236.157 | kvm |
nfs | 192.168.236.156 | nfs |
安装
安装方式1: 安装centos系统时,选择安装类型为 Virtualizaiton Host
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OViLaLib-1627877859168)(images/image-20210802092357499.png)]
安装方式2:在已有的centos上安装kvm
使用kvm需要确认内核开启了kvm的模块
lsmod |grep kvm
kvm_intel 188740 0
kvm 637289 1 kvm_intel
irqbypass 13503 1 kvm
安装kvm相关工具
yum install libvirt virt-install qemu-kvm -y
创建虚拟主机
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos701 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/iso/CentOS-7-x86_64-DVD-2009.iso --network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos702 --memory 1024 --vcpus 1 --disk /opt/centos702.qcow2,format=qcow2,size=10 --cdrom /opt/iso/CentOS-7-x86_64-DVD-2009.iso --network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
virt-type: 虚拟化类型
os-type: 操作系统类型
os-variant: 操作系统发行版
name: 虚拟机名字 (唯一)
memory: 内存大小 M
vcpus: CPU核数
disk: 磁盘文件
format: 磁盘文件格式,有raw和qcow2,默认为raw
size: 磁盘大小,G
cdrom: 镜像文件
network: 网络,默认为NAT
graphics: 图形化
noautoconsole: 不自动试图连接到客户机控制台。默认调用一个VNC客户端显示图形控制台,或者运行"virsh" "console"显示文本控制台
virsh 命令
virsh list 只显示正在运行的
virsh list --all 显示所有
virsh shutdown 关机 需要存在系统
virsh destroy 关机 强制关机
virsh reboot 重启 需要存在系统
virsh start 开机
导出配置文件
virsh dumpxml
virsh dumpxml centos701 > vm_centos701_$(date +%F).xml
删除配置
virsh undefine 建议先destroy 在undefine
virsh define 导入配置
virsh edit 修改配置
virsh domrename 重命名
virsh suspend 挂起
virsh resume 恢复
virsh autostart 开机自启
virsh autostart --disable 取消开机自启
使用console进入虚拟机
kvm宿主机执行
grubby --update-kernel=ALL --args="console=ttyS0"
重启
执行 virsh console
磁盘管理
qemu-img info 查看磁盘信息
qemu-img info centos701.raw
qemu-img create 创建磁盘
qemu-img create test.row 3G
qemu-img create -f qcow2 test.qcow2 3G
qemu-img resize 调整磁盘大小
qemu-img resize test.row 4G 调整到4G
qemu-img resize test.row +4G 加4G
qemu-img resize test.row -4G 减4G 不要对磁盘进行缩容的操作,防止数据丢失
qemu-img convert 磁盘格式转换
-c 压缩
将centos701.raw的磁盘文件的raw格式转换成qcow2格式,并生成磁盘文件centos701.qcow2
qemu-img convert -f raw -O qcow2 centos701.raw centos701.qcow2
快照
只有qcow2格式支持快照,快照保存在qcow2的磁盘文件中
virsh snapshot-create-as 创建快照
virsh snapshot-create-as centos701 --name test 创建centos701快照test
virsh snapshot-list 查看快照
virsh snapshot-list centos701
virsh snapshot-revert 恢复快照
virsh snapshot-revert centos701 --snapshotname test
virsh snapshot-delete 删除快照
virsh snapshot-delete centos701 --snapshotname test
修改密码
qemu-guest-agent 虚拟机中运行该软件,可以实现在宿主机修改密码
在宿主机上修改密码
virsh set-user-password --user root --password 123456 centos701
克隆
完全克隆和链接克隆
完全克隆
自动
virt-clone -o centos701 -n centos701_clone -f /opt/centos701_clone.qcow2
virt-clone -o centos702_clone -n centos702_clone_clone --auto-clone 配置文件在/etc/libvirt/qemu/下
手动
1.克隆配置文件
virsh dumpxml centos702 > centos702_clone.xml
2.克隆磁盘
qemu-img convert -f qcow2 -O qcow2 centos702.qcow2 centos702_clone.qcow2
3.修改配置文件
vim centos702_clone.xml
"修改虚拟机名字"
"删除uuid"
"删除mac"
"修改disk路径和格式"
4.导入配置文件
virsh define centos702_clone.xml
链接克隆
1.克隆配置文件
virsh dumpxml centos701_clone > centos701_clone_link_clone.xml
2.创建链接的磁盘
qemu-img create -f qcow2 -b centos701_clone.qcow2 centos701_clone_link_clone.qcow2
3.修改配置文件
vim centos701_clone_link_clone.xml
"修改虚拟机名字"
"删除uuid"
"删除mac"
"修改disk路径和格式"
4.导入配置文件
virsh define centos701_clone_link_clone.xml
配置桥接网络
1.编辑宿主机的网卡配置文件,取消dhcp
cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=8807c9b6-ef63-4988-8fba-36fc15bbf71e
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.236.156
NETMASK=255.255.255.0
GATEWAY=192.168.236.2
DNS1=223.5.5.5
DNS2=8.8.8.8
2.关闭NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager
3.创建桥接网络 /etc/sysconfig/network-scripts/ifcfg-ens33被修改,新增/etc/sysconfig/network-scripts/ifcfg-br0配置文件
virsh iface-bridge ens33 br0
取消桥接
virsh iface-unbridge br0
新建虚拟机设置桥接模式
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos703 --memory 1024 --vcpus 1 --disk /opt/centos703.qcow2,format=qcow2,size=10 --cdrom /opt/iso/CentOS-7-x86_64-DVD-2009.iso --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
将现有虚拟机的nat模式修改成桥接模式
1.关闭需要修改的的虚拟机
virsh shutdown centos701
2.修改配置
virsh edit centos701
<interface type='bridge'>
<source bridge='br0'/>
热添加磁盘
查看centos701虚拟机的磁盘情况
virsh domblklist centos701
1.创建磁盘
qemu-img create -f qcow2 centos701_add01.qcow2 2G
2.附加磁盘到虚拟机centos701 默认是raw格式,通过subdriver参数指定格式 此时为临时生效,需永久生效需加上--config参数(重启生效)
virsh attach-disk centos701 /opt/centos701_add01.qcow2 vdb --subdriver qcow2
3.格式化磁盘(虚拟机中操作)
mkfs.xfs /dev/vdb
4.挂载(虚拟机中操作)
数据盘扩容
1.卸载磁盘(虚拟机中操作)
2.分离需要扩容的数据盘
virsh detach-disk centos701 vdb
3.扩容
qemu-img resize centos701_add01.qcow2 +2G
4.附加磁盘
virsh attach-disk centos701 /opt/centos701_add01.qcow2 vdb --subdriver qcow2
5.重新挂载(虚拟机中操作)
6.同步文件系统(虚拟机中操作)
xfs_growfs /dev/vdb
迁移
kvm分静态和动态迁移,静态迁移就是关机迁移,动态迁移就是不关闭服务器进行迁移
静态迁移
1.确认需要迁移的虚拟主机已关机
2.导出配置文件
virsh dumpxml centos701 > vm_centos701.xml
3.将导出的配置文件拷贝到目标宿主机
scp vm_centos701.xml root@192.168.236.157:/etc/libvirt/qemu/
4.查看磁盘文件
virsh domblklist centos701
目标 源
------------------------------------------------
vda /opt/centos701.qcow2
hda -
5.将需要迁移的虚拟主机所使用的所有磁盘文件拷贝到目标宿主机
scp /opt/centos701.qcow2 root@192.168.236.157:/opt/
6.在目标宿主机上定义该虚拟主机
virsh define /etc/libvirt/qemu/vm_centos701.xml
7.在目标宿主机上查看虚拟主机
virsh list --all
Id 名称 状态
----------------------------------------------------
- centos701 关闭
8.正常启动和管理
动态迁移
基于共享存储系统nfs,实现动态迁移
1.创建nfs共享存储
# 安装nfs
yum -y install nfs-utils rpcbind
# 编辑共享目录
cat /etc/exports
/opt/ 192.168.236.156/24(rw,sync,no_root_squash,no_all_squash)
/etc/libvirt/qemu/ 192.168.236.156/24(rw,sync,no_root_squash,no_all_squash)
# 检查
showmount -e 192.168.236.156
Export list for 192.168.236.156:
/etc/libvirt/qemu 192.168.236.156/24
/opt 192.168.236.156/24
# KVM02上挂载
vim /etc/fstab
192.168.236.156:/opt /opt nfs defaults 0 0
192.168.236.156:/etc/libvirt/qemu /etc/libvirt/qemu nfs defaults 0 1
mount -a
2. 编写hosts文件
cat /etc/hosts
192.168.236.156 kvm01
192.168.236.157 kvm02
3. 迁移 热迁移需保证被迁移主机处在运行状态
virsh migrate --live --verbose centos702 qemu+ssh://192.168.236.157/system --unsafe # 临时迁移
virsh migrate --live --verbose centos702 qemu+ssh://192.168.236.157/system --unsafe --persistent # 永久迁移
版权声明:本文为qq_42502583原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。