zoukankan      html  css  js  c++  java
  • KVM 搭建以及使用

    KVM 搭建

    一、准备环境

    操作系统:Centos7
    磁盘:100G

    二、部署操作

    2.1、关闭selinux 和 firewalld

    cp /etc/selinux/config /etc/selinux/config.bak
    
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    
    systemctl disable firewalld
    
    systemctl stop firewalld
    
    

    2.1、查询vmx或svm关键字就代表支持虚拟化,vmx是Intel的CPU,svm是AMD的CPU

    grep -Ei 'vmx|svm' /proc/cpuinfo
    

    三、按照kvm

    yum install -y  virt-*  libvirt  bridge-utils qemu-img
    

    四、添加网卡

    4.1、拷贝新的网卡

    cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak
    
    

    4.2、编辑本地网卡信息

    添加BRIDGE=br0 网卡

    vi /etc/sysconfig/network-scripts/ifcfg-ens33 
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=dhcp
    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=7e104a12-eab3-4945-b16b-a4b32285c50c
    DEVICE=ens33
    ONBOOT=yes
    BRIDGE=br0
    

    4.3、编辑新添加的网卡信息

    vi /etc/sysconfig/network-scripts/ifcfg-br0 
    TYPE=Bridge
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=dhcp
    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=br0
    DEVICE=br0
    ONBOOT=yes
    

    4.5、重启网络

    systemctl restart network
    

    五、启动kvm

    5.1、查询是否加载kvm

    [root@localhost ~]#  lsmod |grep kvm 
    kvm_intel             294912  9 
    kvm                   790528  1 kvm_intel
    irqbypass              16384  7 kvm
    

    5.2、启动libvirtd服务

    systemctl start libvirtd # 启动libvirtd
    systemctl enable libvirtd # 开机启动libvirtd
    
    [root@localhost ~]#  ps aux |grep libvirtd # 查询libvirtd 进程
    root       1153  0.0  0.0 1601224  240 ?        Ssl  Feb23   0:13 /usr/sbin/libvirtd
    root       9073  0.0  0.1 112832  2356 pts/2    S+   00:04   0:00 grep --color=auto libvirtd
    
    [root@localhost ~]# brctl show # 两个网卡
    bridge name     bridge id               STP enabled     interfaces
    br0             8000.000c29c030ab       no              ens33
                                                            vnet0
                                                            vnet1
                                                            vnet2
    virbr0          8000.52540053cd44       yes             virbr0-nic
    

    六、创建虚拟机

    6.1、上传centos7镜像

    [root@localhost tmp]# ll
    total 4415492
    -rw-r--r-- 1 qemu qemu 4521459712 Feb 10 11:19 CentOS-7-x86_64-DVD-1708.iso
    

    #创建kvm虚拟机路径
    mkdir /kvm_data/ -p 
    #创建虚拟机命令
    virt-install --name=centos_k8s_master  --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/tmp/CentOS-7-x86_64-DVD-1708.iso --disk path=/kvm_data/centos_k8s_master.img,size=50 --bridge=br0 --graphics=none --console=pty,target_type=serial  --extra-args="console=tty0 console=ttyS0"
    

    命令说明:

    · --name 指定虚拟机的名称
    · --memory 指定分配给虚拟机的内存资源大小
    · maxmemory 指定可调节的最大内存资源大小,因为KVM支持热调整虚拟机的资源
    · --vcpus 指定分配给虚拟机的CPU核心数量
    · maxvcpus 指定可调节的最大CPU核心数量
    · --os-type 指定虚拟机安装的操作系统类型
    · --os-variant 指定系统的发行版本
    · --location 指定ISO镜像文件所在的路径,支持使用网络资源路径,也就是说可以使用URL
    · --disk path 指定虚拟硬盘所存放的路径及名称,size 则是指定该硬盘的可用大小,单位是G
    · --bridge 指定使用哪一个桥接网卡,也就是说使用桥接的网络模式
    · --graphics 指定是否开启图形
    · --console 定义终端的属性,target_type 则是定义终端的类型
    · --extra-args 定义终端额外的参数

    参考连接:
    https://blog.51cto.com/zero01/2083896
    创建好虚拟机登录进去

    #**备份selinux配置文件,修改为disable状态**
    cp /etc/selinux/config /etc/selinux/config.bak
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    #**关闭防火墙**
    systemctl disable firewalld
    systemctl stop firewalld
    #**备份网卡配置文件**
    cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak
    #**修改为知道的IP信息**
    sed -i 's/BOOTPROTO=dhcp/#BOOTPROTO=dhcp/g' /etc/sysconfig/network-scripts/ifcfg-eth0 
    sed -i 's/ONBOOT=no/ONBOOT=yes/g' /etc/sysconfig/network-scripts/ifcfg-eth0 
    sed -i '$aIPADDR=128.196.126.130' /etc/sysconfig/network-scripts/ifcfg-eth0 
    sed -i '$aNETMASK=255.255.255.0' /etc/sysconfig/network-scripts/ifcfg-eth0 
    sed -i '$aGATEWAY=128.196.126.2' /etc/sysconfig/network-scripts/ifcfg-eth0 
    sed -i '$aDNS1=128.196.126.2' /etc/sysconfig/network-scripts/ifcfg-eth0 
    #**重启启动网络**
    systemctl restart network
    yum install -y net-tools
    #**重启虚拟机**
    reboot
    

    七、kvm命令

    查询虚拟机列表

    virsh list --all
    

    进入虚拟机

    virsh console test1
    

    启动虚拟机

    virsh start test1
    

    关闭虚拟机

    virsh shutdown test1
    

    开机启动虚拟机

    virsh autostart test1
    

    取消开机启动虚拟机

    virsh autostart --disable test1
    

    删除虚拟机

    virsh destroy test1
    

    销毁虚拟机

    virsh undefine test1
    

    挂载虚拟机

    virsh suspend test1
    

    恢复挂载虚拟机

    virsh resume test1
    

    kvm克隆命令
    虚拟机名称:

    [root@localhost ~]# virsh list
     Id    Name                           State
    ----------------------------------------------------
     3     centos_k8s_node2               running
     5     centos_k8s_node1               running
     7     centos_k8s_master              running
    

    创建自定义快照

    virsh snapshot-create-as centos_k8s_node2 centos_k8s_node2.bak
    

    查询快照

    virsh snapshot-list centos_k8s_node2
    

    删除快照

    virsh snapshot-delete centos_k8s_node2 centos_k8s_node2.bak
    

    恢复快照

    virsh snapshot-revert centos_k8s_node2 centos_k8s_node2.bak
    
  • 相关阅读:
    扩展欧几里得算法
    Warshall算法
    自己的博客
    使用forever运行web项目
    C#语言基础 Main 函数中的输出输入
    新手第一天学习 C#语言(进制互换)
    Django + Uwsgi + Nginx 实现生产环境部署1
    基于Flask的web微信
    python保存文件UnicodeEncodeError以及reload(sys)后print失效问题
    轮询/长轮询
  • 原文地址:https://www.cnblogs.com/pythonx/p/14437302.html
Copyright © 2011-2022 走看看