zoukankan      html  css  js  c++  java
  • kvm2

    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'/>
    
  • 相关阅读:
    剑指offer——最小的K个数和数组中第K大的元素
    Leetcode刷题指南链接整理
    160. Intersection of Two Linked Lists
    100. Same Tree
    92. Reverse Linked List II
    94. Binary Tree Inorder Traversal
    79. Word Search
    78,90,Subsets,46,47,Permutations,39,40 DFS 大合集
    0x16 Tire之最大的异或对
    0x16 Tire
  • 原文地址:https://www.cnblogs.com/baozexu/p/11966341.html
Copyright © 2011-2022 走看看