美文网首页
Centos7 安装部署KVM (学习测试神器!)

Centos7 安装部署KVM (学习测试神器!)

作者: ImitationShow丶吃 | 来源:发表于2020-06-11 16:47 被阅读0次
    KVM (全称是 Kernel-based Virtual Machine) 是 Linux 下 x86 硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块 kvm.ko 提供和虚拟化核心架构和处理器规范模块。全虚拟化,可以快速部署新的环境,能使用qcow2磁盘格式,利用类似写实复制的功能,节约磁盘空间和创建时间。
    快速创建虚拟机的模板,可以参考使用
    # 需要准备 :[ .kvm-master.xml / .kvm-master.qcow2]
    # 已经创建的虚拟机的 xml文件 / img文件 可以做为模板
    #!/bin/bash
    . /etc/init.d/functions
    ONF_DIR=/etc/libvirt/qemu
    IMG_DIR=/var/lib/libvirt/images
    function createvm(){
        if  [ -e ${IMG_DIR}/${1}.img ];then
            echo "警告 xn ${1}.img 已经存在"
            return 1
        else
            qemu-img create -b ${IMG_DIR}/.kvm-master.qcow2 -f \
                qcow2 ${IMG_DIR}/${1}.img 40G &>/dev/null
            sed -e "s,kvm-name,${1}," ${IMG_DIR}/.kvm-master.xml >${CONF_DIR}/${1}.xml
            sudo virsh define ${CONF_DIR}/${1}.xml &>/dev/null
            echo "' xn ${1} 创建成功"
        fi
    }
    if (( $# == 0 ));then
      echo "$0 xn1 xn2 xn3 ... ..."
    else
      for i in $@;do
          createvm ${i}
      done
    fi
    exit 0
    
    安装 KVM
    1. 如何查看当前linux服务器是否支持虚拟化
    grep -E '(svm|vmx)' /proc/cpuinfo
    
    # 输出有SVM或VMX,表明CPU支持虚拟化技术:
    # svm - AMD 的虚拟化技术AMD-V
    # vmx  - Intel 的虚拟化技术Intel-VT
    
    # 使kvm虚拟机的支持虚拟化嵌套:
    modinfo kvm_intel | grep nested
    # parm: nested:bool
    cat /sys/module/kvm_intel/parameters/nested
    # 如果上面的显示结果不是 Y 的话需要开启 nested,执行以下:
    modprobe -r kvm-intel
    modprobe kvm-intel nested=1
    cat /sys/module/kvm_intel/parameters/nested
    # 上面的显示结果是 Y,已经 正确开启 虚拟化嵌套
    
    #添加到内核自启动
    tee /etc/sysconfig/modules/kvm.modules <<-'EOF'
    modprobe -r kvm-intel
    modprobe kvm-intel nested=1
    EOF
    
    chmod 755 /etc/sysconfig/modules/kvm.modules
    source /etc/sysconfig/modules/kvm.modules
    
    2. 安装KVM相关包文件
    yum install -y  virt-*  libvirt  bridge-utils qemu-img
    
    3. 确认载入kvm模块
    lsmod | grep kvm
    
    4. 启动libvirtd服务(必须)
    systemctl start libvirtd && systemctl enable libvirtd
    
    KVM 已经完成安装了,接下来配置网络
    方式一:
    # 配置桥接网卡
    tee /etc/sysconfig/network-scripts/ifcfg-br0 <<-'EOF'
    TYPE=Bridge
    NAME=br0
    DEVICE=br0
    IPADDR=10.0.10.129
    NETMASK=255.255.255.0
    GATEWAY=10.0.10.1
    EOF
    # 配置本地网卡与桥接网卡相同
    echo 'BRIDGE=br0' >> /etc/sysconfig/network-scripts/ifcfg-eth0
    # 重启网络服务 (注意可能会导致网络启动失败,无法 ssh连接)
    # 或者增加一个备份网卡,保障
    systemctl restart network
    
    方式二:
    # 拷贝当前的网卡文件,并修改名字
    cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0
    # 增加一个桥接网卡
    tee /etc/sysconfig/network-scripts/ifcfg-br0 <<-'EOF'
    TYPE=Bridge
    BOOTPROTO=dhcp
    DEFROUTE=yes
    PEERDNS=yes
    PEERROUTES=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=br0
    DEVICE=br0
    ONBOOT=yes
    EOF
    # 配置本地网卡与桥接网卡相同
    echo 'BRIDGE=br0' >> /etc/sysconfig/network-scripts/ifcfg-eth0
    # 重启网络服务 (注意可能会导致网络启动失败,无法 ssh连接)
    # 或者增加一个备份网卡,保障
    systemctl restart network
    # 然后,ifconfig命令可以看出,eth0网卡的IP到br0上
    
    使用KVM(命令行方式)安装centos7
    # 创建 Kvm 数据基准目录
    mkdir -p /kvm/iso/ /kvm/img/
    # 下载 Centos镜像
    cd  /kvm/img/
    wget https://mirrors.aliyun.com/centos/7.7.1908/isos/x86_64/CentOS-7-x86_64-Minimal-1908.iso
    # 安装(可合理调整资源大小)
    virt-install --name=demo --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 \
    --os-type=linux --os-variant=rhel7 \
    --location=/kvm/iso/CentOS-7-x86_64-Minimal-1908.iso\
    --disk path=/kvm/img/demo.img,size=10 --bridge=br0 \
    --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"  \
    -enable-kvm -cpu qemu64,+vmx
    # 添加vmx支持
    
    图形安装的虚拟机的 默认目录
    # 存放虚拟机的img文件
    /var/lib/libvirt/images/
    # 存放虚拟机的xml文件
    /etc/libvirt/qemu/
    
    建立一台支持虚拟化的虚拟机
    修改 xml 文件 cpu 部分
    # 完全模拟物理机CPU
      <cpu mode='host-passthrough' check='none'/>
    
    管理虚拟机的一些命令
    # 假设 虚拟机 为 demo
    
    # 启动 虚拟机 demo
    virsh start demo
    # 关闭虚拟机
    virsh shutdown  demo
    # 强制停止虚拟机
    virsh destroy demo
    # 彻底销毁虚拟机,会删除虚拟机配置文件,但不会删除虚拟磁盘
    virsh undefine demo
    # 设置宿主机开机时该虚拟机也开机
    virsh autostart demo
    # 解除开机启动
    virsh autostart --disable demo
    # 挂起虚拟机
    virsh suspend demo
    # 恢复挂起的虚拟机
    virsh resume demo
    
    自己遇到的坑
    错误:
    重启服务器后,发现
    qemu://system 没有连接驱动器可用;
    读取数据时进入文件终点: 输入/输出错误。
    原因:
    KVM的相关包 装少了 
    解决方法:
    KVM的相关包 重新安装
    yum install -y  virt-*  libvirt  bridge-utils qemu-img
    
    错误:
    无法 virsh console 虚拟机
    原因:
    没有 /dev/ttyS0 启用串口登录
    解决方法:
    systemctl start serial-getty@ttyS0.service
    systemctl enable serial-getty@ttyS0.service
    

    相关文章

      网友评论

          本文标题:Centos7 安装部署KVM (学习测试神器!)

          本文链接:https://www.haomeiwen.com/subject/fagbtktx.html