KVM虚拟化2

使用桥接网络

如果创建虚拟机时没有指定,默认创建的是NAT模式的,网段192.168.122.0/24

创建好磁盘文件后执行创建一台具有桥接模式的虚拟机

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

#创建桥接网卡(宿主机执行,永久修改)
virsh iface-bridge eth0 br0
#取消桥接网卡
virsh iface-unbridge br0

进入虚拟机修改网卡配置文件(不是DHCP自动获取)

/etc/sysconfig/network-scripts/ifcfg-eth0

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
IPADDR="10.0.0.101"
NETMASK="255.255.255.0"
GATEWAY="10.0.0.254"
DNS1="223.5.5.5"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"

然后就可以尝试xhell通过连接外网IP连接虚拟机

将NAT修改为桥接魔兽

直接在宿主机修改虚拟机配置文件

 <interface type='bridge'>
<mac address='52:54:00:55:aa:fa'/>
<source bridge='br0'/>

然后还是要修改虚拟机网卡配置文件

两种上网方式

NAT模式

执行 :virsh iface-bridge eth0 br0之后会生成一个virbr0网桥(等效于交换机),所有的虚拟主机以及宿主机都通过它连接外部网络,每个虚拟机都有一个vnat网卡,通过eth0连接vnat网卡,网卡连接virbr0虚拟交换机连接外网
#需要开启内核转发参数和修改iptables

桥接模式

字太多懒得打,上图给自己想象回忆下
KVM虚拟化2

#####NAT桥接共存
KVM虚拟化2

热添加硬盘

#生成一个磁盘文件
qemu-img create -f qcow2 add01.qcow2 5G
#附加新磁盘文件
virsh attach-disk  web03  --source /data/web03-add01.qcow2 --target vdb --subdriver=qcow2
#不过添加好之后需要格式化后在进行挂载
mkfs.xfs /dev/vdb
#挂载
mount /dev/vdb /data

#临时生效
virsh  attach-disk web04 /opt/add01.qcow2 vdb --subdriver qcow2 
#永久生效
virsh  attach-disk web04 /opt/oldboy.qcow2 vdb --subdriver qcow2 --config
#所有热添加永久生效都可以通过--config达到修改配置文件作用

扩容这块磁盘

#需要先取消挂载
umount /data
#将虚拟磁盘取出(基本类似这个步骤)
virsh detach-disk centos7 --target vdb
#修改容量
qemu-img resize /data/centos7-add01.qcow2 +5G
#将磁盘文件附加回去
virsh attach-disk centos7 /data/centos7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2
 #但是挂载之后容量没有变,需要格式化一下
 xfs_growfs /data

添加一块新网卡

virsh attach-interface web01 --type bridge --source br0 --mode virtio
#但是如果宿主机没有开启DHCP他是没有IP地址的
添加桥接模式网卡(临时性)
virsh attach-interface web03 --type bridge --source br0 --model virtio
添加net模式(临时性)
virsh attach-interface web03 --type network --source default --model virtio
永久命令后面添加--config

删除
virsh detach-interface web03 --type network --mac 52:54:00:f5:b0:ce

添加内存

kvm虚拟机在线热添加内存
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

临时热添加内存
setmem web04 1024M --live
永久增大内存
setmem web04 1024M --config

kvm虚拟机在线热添加cpu
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核数
setvcpus web04 4 --live
永久添加cpu核数
setvcpus web04 4 --config

11:virt-manager和kvm虚拟机热迁移(共享的网络文件系统)

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

1):
yum groupinstall “GNOME Desktop” -y
yum install openssh-askpass -y

yum install tigervnc-server -y

vncpasswd
vncserver :1
vncserver -kill :1

热迁移

热迁移描述:

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

热迁移流程:

在kvm01上挂起虚拟机vm01,发送vm的虚拟机配置文件和运行时内存中的数据到kvm02, 接受完毕,kvm02恢复vm01,热迁移完成。

环境要求:

主机名 ip 内存 网络 软件需求 虚拟化
kvm01 10.0.0.11 2G 创建br0桥接网卡 kvm和nfs 开启虚拟化
kvm02 10.0.0.12 2G 创建br0桥接网卡 kvm和nfs 开启虚拟化
nfs01 10.0.0.31 1G 无 nfs 无
注意:需要互相做好host解析

操作步骤:

修改/etc/hosts和主机名,做好主机名解析IP地址

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

yum install libvirt* virt-* qemu-kvm* nfs-utils openssh-askpass -y

systemctl start libvirtd.service

virsh iface-bridge eth0 br0

二:在nfs01上安装配置nfs

yum install nfs-utils -y

mkdir /data

vim /etc/exports

/data 10.0.0.0/24(rw,async,no_root_squash,no_all_squash)

systemctl restart rpcbind

systemctl restart nfs

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

mount -t nfs 10.0.0.31:/data /opt

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

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

热迁移的命令:

virsh migrate --live --verbose oldboy qemu+ssh://10.0.0.12/system --unsafe

将宿主机10.0.0.11上的kvm虚拟机oldboy迁移到10.0.0.12