kvm虚拟机的桥接网络
默认的虚拟机网络是NAT模式,网段192.168.122.0/24
1:创建桥接网卡
创建桥接网卡命令 virsh iface-bridge eth0 br0 取消桥接网卡命令 virsh
iface-unbridge br0
新虚拟机使用桥接模式
2默认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
桥接模式
virt-install --virt-type kvm --os-type=linux --os- variant rhel7 --name web04 --memory 1024 --vcpus 1 -- disk /data/web04.qcow2 --boot hd --network bridge=br0 -- graphics vnc,listen=0.0.0.0 --noautoconsole
如果虚拟机获取不到ip地址
3 将已有虚拟机网络修改为桥接模式
a:关机状态下修改虚拟机配置文件:
例如:virsh edit centos7
b:启动虚拟机,测试虚拟机网络
如果上层没有开启dhcp,需要手动配置ip地 址,IPADDR,NATMASK.GATEWAY,DNS1 echo 'TYPE="Ethernet" BOOTPROTO="none" NAME="eth0" DEVICE="eth0" ONBOOT="yes" IPADDR="10.0.0.102" NETMASK="255.255.255.0" GATEWAY="10.0.0.254" DNS1="223.5.5.5"' >/etc/sysconfig/network-scripts/ifcfg-eth0
热添加技术
热添加硬盘、网卡、内存、cpu
宿主机kvm
首先添加磁盘
[root@kvm1 opt]# qemu-img create -f qcow2 /opt/web04_add01.qcow2 10G [root@kvm1 opt]# qemu-img info web04_add01.qcow2 #查看
热添加磁盘
[root@kvm1 opt]# virsh attach-disk web04 /opt/web04_add01.qcow2 vdb --subdriver qcow2
不加--subdriver参数时, 创建的磁盘没有大小
临时剥离硬盘(摘取),重新添加
virsh detach-disk web01 vdb
进入虚拟机进行磁盘的初始化
[root@kvm1 opt]# virsh console web04 [root@localhost ~]# hostnamectl set-hostname web04 [root@localhost ~]# bash [root@web04 ~]# fdisk -l [root@web04 ~]# mkfs.xfs /dev/vdb #使用时进行格式化,格式化会分配inode和block大小 meta-data=/dev/vdb isize=256 agcount=4, agsize=655360 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 data = bsize=4096 blocks=2621440, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
挂载磁盘
[root@web04 ~]# mount /dev/vdb /mnt [root@web04 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 10G 1.1G 9.0G 11% / devtmpfs 488M 0 488M 0% /dev tmpfs 497M 0 497M 0% /dev/shm tmpfs 497M 6.6M 490M 2% /run tmpfs 497M 0 497M 0% /sys/fs/cgroup tmpfs 100M 0 100M 0% /run/user/0 /dev/vdb 10G 33M 10G 1% /mnt
可以写数据
[root@web04 ~]# cp /etc/services /mnt/ [root@web04 ~]# ll /mnt/
扩容
[root@kvm1 opt]# virsh detach-disk web04 vdb #摘取 [root@kvm1 opt]# qemu-img resize /opt/web04_add01.qcow2 30G #扩容 [root@kvm1 opt]# qemu-img info /opt/web04_add01.qcow2 #查看 [root@kvm1 opt]# virsh attach-disk web04 /opt/web04_add01.qcow2 vdb --subdriver qcow2 #热添加
进入虚拟机
[root@web04 ~]# umount /mnt/ [root@web04 ~]# mount /dev/vdb /mnt #直接挂载,不需要在格式化,一格式化,前面的数据会丢失 [root@web04 ~]# ll /mnt/ total 656 -rw-r--r--. 1 root root 670293 Nov 28 13:20 services [root@web04 ~]# df -h [root@web04 ~]# xfs_growfs /dev/vdb #一定要更新扩容盘的信息
冷迁移
需要重新克隆一台kvm2宿主机,和它配置一样的环境 10.0.0.99 给2G 注意勾选处理器---->虚拟化引擎(虚拟化IntelVT-x) [root@kvm2 opt]# cd /etc/yum.repos.d/ [root@kvm2 opt]# rm -f local.repo [root@kvm2 opt]# echo "192.168.37.200 mirrors.aliyun.com" >>/etc/hosts [root@kvm2 opt]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [root@kvm2 opt]# yum install libvirt virt-install qemu-kvm -y [root@kvm2 opt]# systemctl start libvirtd [root@kvm2 opt]# systemctl status libvirtd
基于完整克隆的冷迁移
[root@kvm1 opt]# virsh dumpxml web03|grep qcow2 <driver name='qemu' type='qcow2'/> <source file='/opt/web03.qcow2'/>
[root@kvm1 opt]# virsh list --all #查看是否关机 [root@kvm1 opt]# scp -rp /opt/web03.qcow2 10.0.0.99:/opt/ [root@kvm1 opt]# virsh dumpxml web03 >web03.xml [root@kvm1 opt]# scp -rp /opt/web03.xml 10.0.0.99:/opt/ [root@kvm2 opt]# virsh define web03.xml [root@kvm2 opt]# virsh start web03 [root@kvm2 opt]# virsh list [root@kvm2 opt]# virsh console web03
基于链接克隆的冷迁移
[root@kvm1 opt]# virsh list --all #查看是否关机 [root@kvm1 opt]# virsh shutdown web04 [root@kvm1 opt]# qemu-img info web04.qcow2 [root@kvm1 opt]# scp -rp web03.qcow2 web04.qcow2 10.0.0.99:/opt/ [root@kvm1 opt]# virsh dumpxml web04 > web04.xml [root@kvm1 opt]# scp -rp web04.xml 10.0.0.99:/opt/
[root@kvm2 opt]# virsh define web04.xml [root@kvm2 opt]# virsh start web04 [root@kvm2 opt]# virsh list --alls [root@kvm2 opt]# virsh edit web03
#热迁移
#热迁移kvm虚拟机:配置文件,nfs共享
[root@kvm1 ~]# rpm -qa|grep nfs nfs-utils-1.3.0-0.65.el7.x86_64 libnfsidmap-0.25-19.el7.x86_64 [root@kvm1 ~]# yum history Loaded plugins: fastestmirror ID | Login user | Date and time | Action(s) | Altered 5 | root <root> | 2019-11-27 15:06 | Install | 1 4 | root <root> | 2019-11-27 11:07 | I, U | 124 3 | root <root> | 2019-04-19 12:38 | Install | 12 2 | root <root> | 2019-04-19 12:38 | Install | 1 1 | System <unset> | 2019-04-19 12:16 | Install | 473 history list
#利用nfs实现共享上网,将kvm1和kvm2看作客户端,nfs为服务端
实现共享存储(nfs)10.0.0.31 [root@nfs ~]# systemctl restart nfs [root@nfs ~]# systemctl status nfs [root@nfs ~]# cat /etc/exports /vm 10.0.0.0/24(rw,async,no_all_squash,no_root_squash) [root@nfs ~]# systemctl restart nfs
#查看
[root@kvm1 ~]# showmount -e 10.0.0.31 Export list for 10.0.0.31: /vm 10.0.0.0/24 [root@kvm2 opt]# showmount -e 10.0.0.31 Export list for 10.0.0.31: /vm 10.0.0.0/24 [root@nfs ~]# mkdir /vm
#不能直接将/vm/ 挂载到/opt/ 否则查看/opt/为空,所以需将/opt/下的内容移走,再挂载
[root@kvm2 opt]# ls /srv/ [root@kvm2 opt]# ls web03.qcow2 web03.xml web04.qcow2 web04.xml [root@kvm2 opt]# mv /opt/* /srv/ [root@kvm2 opt]# mount -t nfs 10.0.0.31:/vm /opt/ [root@kvm2 opt]# mv /srv/web03.qcow2 /opt/ [root@nfs ~]# ls /vm web03.qcow2 [root@nfs ~]# ll -h /vm/ total 1.1G -rw------- 1 107 107 1.1G Nov 28 19:44 web03.qcow2 [root@kvm2 opt]# id qemu uid=107(qemu) gid=107(qemu) groups=107(qemu),36(kvm)
[root@kvm2 opt]# virsh list Id Name State 1 web03 running 2 web04 running [root@kvm2 opt]# ps -ef|grep qemu [root@kvm2 opt]# pkill qemu-kvm [root@kvm1 ~]# virsh list --all [root@kvm1 ~]# pkill qemu-kvm [root@kvm1 ~]# virsh list --all [root@kvm1 ~]# ll /etc/libvirt/qemu/*.xml [root@kvm1 ~]# rm -rf、 [root@kvm1 ~]# virsh list --all [root@kvm1 ~]# systemctl restart libvirtd [root@kvm1 ~]# virsh list --all [root@kvm2 srv]# echo 1024|awk '{print $1*1024}' 1048576 [root@kvm2 srv]# mv /opt/web03.qcow2 /opt/web04.qcow2 [root@kvm2 srv]# virsh define web04.xml [root@kvm2 srv]# virsh start web04 [root@kvm2 srv]# brctl show [root@kvm1 ~]# brctl show bridge name bridge id STP enabled interfaces br0 8000.000c298e67e3 yes eth0 virbr0 8000.525400ee419b yes virbr0-nic [root@kvm1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.37.200 mirrors.aliyun.com 10.0.0.100 kvm1 10.0.0.99 kvm2 [root@kvm1 ~]# scp -rp /etc/hosts 10.0.0.99:/etc/hosts [root@kvm2 srv]# virsh migrate --live --verbose web04 qemu+ssh://10.0.0.100/system --unsafe --persistent --undefinesource [root@kvm2 srv]# virsh migrate --live --verbose web03 qemu+ssh://10.0.0.100/system --unsafe --persistent --undefinesource root@10.0.0.100's password: Migration: [100 %] [root@kvm2 srv]# virsh list --all Id Name State [root@kvm1 ~]# virsh list --all Id Name State 2 web04 running 3 web03 running [root@kvm1 ~]# virsh console web04 [root@localhost ~]# ip add [root@localhost ~]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# mv ifcfg-eth0 ifcfg-eth1 [root@localhost network-scripts]# echo 'TYPE="Ethernet" > BOOTPROTO="none" > NAME="eth0" > DEVICE="eth0" > ONBOOT="yes" > IPADDR="10.0.0.102" > NETMASK="255.255.255.0" > GATEWAY="10.0.0.254" > DNS1="223.5.5.5"' >/etc/sysconfig/network-scripts/ifcfg-eth1 [root@kvm1 opt]# ls web04.qcow2 [root@kvm1 opt]# virsh migrate --live --verbose web04 qemu+ssh://10.0.0.99/system --unsafe --persistent --undefinesource root@10.0.0.99's password: Migration: [100 %] [root@kvm1 opt]# virsh list --all Id Name State 3 web03 running [root@kvm2 opt]# virsh list --all Id Name State 9 web04 running
[root@kvm1 opt]# virsh list --all #查看是否关机 [root@kvm1 opt]# virsh shutdown web04 [root@kvm1 opt]# qemu-img info web04.qcow2 [root@kvm1 opt]# scp -rp web03.qcow2 web04.qcow2 10.0.0.99:/opt/ [root@kvm1 opt]# virsh dumpxml web04 > web04.xml [root@kvm1 opt]# scp -rp web04.xml 10.0.0.99:/opt/
[root@kvm2 opt]# virsh define web04.xml [root@kvm2 opt]# virsh start web04 [root@kvm2 opt]# virsh list --alls [root@kvm2 opt]# virsh edit web03 [root@kvm1 opt]# virsh dumpxml web04|grep qcow <driver name='qemu' type='qcow2'/> <source file='/opt/web04.qcow2'/> <source file='/opt/web03.qcow2'/> <driver name='qemu' type='qcow2'/> <source file='/opt/web04_add01.qcow2'/>