虚拟化KVM管理
# kvm网络
kvm虚拟机的网络模式有两种:桥接模式和NAT模式(默认)
1)NAT模式(默认):也是用户模式,数据包由NAT方式通过主机的接口进行传送,可以访问公网,但是无法从外部访问虚拟机网络,所以一般不会用到。网络依赖内核转发会自动添加(net.ipv4.ip_forward=1)
2)Bridge:也就是桥接模式,这种模式允许虚拟机像一个独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持,一般有线网卡都支持。
# kvm的Bridge网络模式
# 创建桥接网卡br1
- 创建桥接网卡,建议先备份 ifcfg-eth1 网卡配置文件
virsh iface-bridge eth1 br1
在centos7 系统里面,会修改目录下/etc/sysconfig/network-scripts 如ifcfg-eth1 的网卡配置,同时新增ifcfg-br1的网卡配置
- 取消桥接网卡
virsh iface-unbridge br1
会把ifcfg-br1 的配置覆盖掉ifcfg-eth1 的配置,会发现缺省一些参数,比如:DEFROUTE=yes,TYPE=Ethernet,DNS1=XXXXXX
- 查看
virsh net-list
,brctl show
# 桥接模式的kvm虚拟机
- 方式一
链接克隆centos7,进入到数据源目录:qemu-img create -f qcow2 -b centos7.qcow2 centos7-02.qcow2
基于centos7-02虚拟机数据盘起虚拟机,且网络是“bridge=br1”,如果虚拟机内部网络配置的是dhcp,则网段就是和宿主机同IP网段,
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-02 --memory 1024,maxmemory=2048 --vcpus 1 --disk /data/centos7-02.qcow2 --boot hd --network bridge=br1 --graphics vnc,listen=0.0.0.0 --noautoconsole
- 方式二
编辑已经存在的 NAT网络模式 的虚拟机配置,virsh edit centos7
以下是通过创建bridge虚拟机生成的配置
<interface type='bridge'>
<source bridge='br1'/>
<model type='virtio'/>
重启虚拟机,才能生效配置,我这里默认虚拟机内部网络是dhcp
# kvm虚拟机在线热添加
查看帮助:virsh attach-disk --help
# 添加硬盘
给centos7-02 添加硬盘
- 创建虚拟硬盘,
cd /data
qemu-img create -f qcow2 data-centos7-02.qcow2 50G
- 给虚拟机热添加硬盘,** --config ** 永久添加修改 xml配置, 默认subdriver格式是raw格式
临时生效:virsh attach-disk centos7-02 /data/data-centos7-02.qcow2 vdb --subdriver qcow2
永久生效:virsh attach-disk centos7-02 /data/data-centos7-02.qcow2 vdb --subdriver qcow2 --config
- 查看
virsh domblklist centos7-02
- 登录到虚拟机初始化,挂载硬盘
mkdir /data && mkfs.xfs /dev/vdb && mount /dev/vdb /data
# 扩容硬盘
- qemu扩容虚拟硬盘
a.虚拟机 umount 卸载硬盘;b,登录到宿主机,剥离虚拟硬盘;c,宿主机扩容虚拟硬盘;d,重新添加硬盘;e.虚拟机挂载
- 剥离虚拟硬盘,需提前卸载,防止数据丢失
virsh detach-disk centos7-02 vdb
- 扩容虚拟硬盘
qemu-img resize /data/data-centos7-02.qcow2 100G
- 添加硬盘,** --config ** 永久添加修改 xml配置
virsh attach-disk centos7-02 /data/data-centos7-02.qcow2 vdb --subdriver qcow2
默认subdriver格式是raw格式
- 登录虚拟机刷新block,innod
挂载:mount /dev/vdb /data
,刷新innod,block块:xfs_growfs /data/
,如果是ext4:resize2fs /dev/vdb
# 添加网卡
- 给虚拟机centos7-02 添加网卡
临时生效:virsh attach-interface centos7-02 --type bridge --model virtio --source br1
永久生效:virsh attach-interface centos7-02 --type bridge --model virtio --source br1 --config
- 删除网卡(登录虚拟机查看网卡的mac地址)
查看:virsh domiflist centos7-02
virsh detach-interface centos7-02 --type bridge --mac 52:54:00:42:c9:23
参数说明
type: 桥接模式,,或者nat模式 model: 默认 “rtl8139”,网卡名为ensXXX,如果网卡名为eth0 改为virtio source: 桥接网卡名
# 添加内存,CPU
- 添加内存,在启动之前配置内存启动参数:
--memory 1024,maxmemory=2048
,
临时生效:virsh setmem centos7-02 2048M --live
永久添加:virsh setmem centos7-02 2048M --live --config
- 添加CPU,在启动之前配置CPU启动参数:
--vcpus 1,maxvcpus=10
,记录:在虚拟化中,绑定cpu性能最高:--vcpus cpuset=1-2
临时生效:virsh setvcpus centos7-02 8 --live
永久添加:virsh setvcpus centos7-02 8 --live --config
# kvm热迁移
- 注意
1,挂载目录结构一致;2,宿主机创建桥接网络;3,添加hosts解析;4,data01机器启动nfs挂载,kvm机器挂载数据盘目录
- kvm01机器(迁移到 192.168.108.20)
创建桥接网卡:virsh iface-bridge eth1 br1
迁移命令:virsh migrate --live centos7-02 qemu+ssh://192.168.108.20/system --unsafe
# V2V迁移(二)ESXI 到KVM迁移
V2V迁移(二)ESXI 到KVM迁移 (opens new window)