美文网首页
KVM部署安装记录

KVM部署安装记录

作者: 桩i | 来源:发表于2019-05-22 18:49 被阅读0次

安装

]# yum install qemu-kvm libvirt virt-install
]# systemc tl start libvirtd
]# systemctl enable libvirtd

启动后可以看到网卡多了一个virbr0的网口,这个是libvirt默认的nat网口(默认IP是192.168.122.1),在更新的版本会发现有virbr0-nic、vnet0等网口,这些都是给虚拟机用的网口。

创建虚拟机

[root@localhost ~]# virt-install --name=study01 --memory=512,maxmemory=1024 --vcpus=1,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/tmp/CentOS-7-x86_64-DVD-1611.iso --disk path=/kvm_data/study01.img,size=10 --bridge=virbr0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"
然后会出现类似安装操作系统的界面,让你选择语言,时区,磁盘等
参考ZeroOne01的博客

配置文件

配置文件在/etc/libvirt/qemu/下面
数据文件在--disk path指定的目录下的img文件

编辑配置文件

uuid=`uuidgen`             #随机uuid                   
mac1=`openssl rand -base64 8 | md5sum | cut -c1-2`            #随机两位mac
mac2=`openssl rand -base64 8 | md5sum | cut -c1-2`
sed -i "10c <uuid>$uuid</uuid>" study02.xml                  #替换第十行的UUID
#修改配置中虚拟磁盘名称  
#修改虚拟机名
#修改第66行的mac地址
sed -i "66c  <mac address='52:54:00:f6:$mac1:$mac2'/>" study02.xml
virsh define /qemu/study02.xml           #加载配置文件
virsh start study02                           #开启虚拟机

操作虚拟机

virsh list --all  #列出所有虚拟机
virsh destroy NAME   #停止虚拟机
virsh undefine NAME   #删除虚拟机

参考snale learning linux的博客

克隆虚拟机

virt-clone --connect=qemu:///system -o kubespray1 -n kubespray3 -f /data/kubespray/kubespray4.img

-o:指定被克隆虚拟机的名字,用virsh list可以看到,此虚拟机必须为关机状态
-n:新虚拟机的名字
-f:新虚拟机磁盘文件位置
参考:亦非我所愿的博客

virsh start kubespray1     #启动虚拟机
virsh console kubespray1    #连接虚拟机

KVM脚本创建单个虚拟机


#!/bin/bash
#创建单个虚拟机(需要电脑中存在模板虚拟机)
single_initialize_define(){
    while true
    do
        read -p "请输入新虚拟机名称:" newname
        if [ $newname ];then
            break
        else
            echo "************"
            echo "请输入姓名!"
            echo "************"
        fi
    done
 
    while true
    do
        current_free_mem=`free -h|awk '/^Mem/{print $4}'|sed  -r 's/(.*).$/\1/'`
        mem_total=`free -h|awk '/^Mem/{print $2}'|sed  -r 's/(.*).$/\1/'`
        echo "目前本机内存总大小:${mem_total} G"
        echo "当前空闲内存大小为:${current_free_mem} MB"
        read -p "请输入新虚拟机内存大小(单位G):" newmemary
        if [ $newmemary ];then
            if [[ $newmemary < $mem_total ]];then
                break
            else
                echo "**********************************"
                echo "输入的数值必须小于当前内存总大小!"
                echo "**********************************"
            fi
        else
            echo "********************"
            echo "请输入新虚拟机内存!"
            echo "********************"
        fi
    done
 
    while true
    do
        core=`cat /proc/cpuinfo| grep "processor"| wc -l`
        echo "可用core个数:${core}"
        read -p "请输入新虚拟机处理器核数:" newcpu
        if [ $newcpu ];then
            if [ $newcpu -le $core ];then
                break
            else
                echo "******************************"
                echo "不能超过可用个数或者输入错误!"
                echo "******************************"
            fi  
        else
            echo "**************"
            echo "输入不能为空!"
            echo "**************"
        fi
    done
    uuid=`uuidgen`
    src_path=/mnt/lv2/centos7.0.qcow2 
    src_xml=/etc/libvirt/qemu/centos7.0.xml
    new_path=/mnt/lv1/${newname}.qcow2
    new_path_sed="\/mnt\/lv1\/${newname}.qcow2"
    new_xml=/etc/libvirt/qemu/${newname}.xml
}
#镜像、xml复制
copy_img(){
    cp $src_path $new_path
    cp $src_xml $new_xml
}
#修改xml文件
modification_xml(){
    sed -ri "s/(<name>).*(<\/name>)/\1${newname}\2/" $new_xml
    sed -ri "s/(<uuid>).*(<\/uuid>)/\1${uuid}\2/" $new_xml
 
    mem_kb=$(($newmemary*1024*1024))
 
    sed -ri "s/(<memory.*>).*(<\/memory>)/\1${mem_kb}\2/" $new_xml
    sed -ri "s/(<currentMemory.*>).*(<\/currentMemory>)/\1${mem_kb}\2/" $new_xml
    sed -ri "s/(<vcpu.*>).*(<\/vcpu>)/\1${newcpu}\2/" $new_xml
    sed -ri "s/(<source file=').*('\/>)/\1${new_path_sed}\2/" $new_xml
 
    mac_addr=`openssl rand -hex 3 | sed -r 's/..\B/&:/g'`
 
    sed -ri "s/(<mac address='..:..:..:).*('\/>)/\1${mac_addr}\2/" $new_xml 
    
}
#运行
single_initialize_define
copy_img
modification_xml
virsh define $new_xml
#------------------------------------------------------------------------------------

脚本原文地址:皮蛋儿皮蛋的CSDN博客

相关文章

  • KVM部署安装记录

    安装 启动后可以看到网卡多了一个virbr0的网口,这个是libvirt默认的nat网口(默认IP是192.168...

  • 部署安装KVM

    CentOS版本: 安装KVM 先验证CPU是否支持KVM;如果结果中有vmx(Intel)或svm(AMD)字样...

  • kvm安装部署

    1.虚拟化介绍 1.什么是虚拟化通过模拟物理服务器的硬件,实现在一台物理机上可以同时运行多个操作系统,也称为虚拟机...

  • 部署KVM虚拟化平台

    部署KVM虚拟化平台 1、安装前准备 1)服务器或者PC的CPU能支持VT技术 2)虚拟机中安装KVM要勾选:处理...

  • 1、KVM安装部署

    1)kvm相关安装包及其作用 配置远程图形化支持 手动加载内核模块 启动libvirtd服务 这个服务会在本地安装...

  • WebVirtMgr + KVM 环境中的Windows虚拟机部

    Author: Xu FC KVM 部署见: KVM + Openvswitch 环境 在 CentOS 7 上的...

  • WebVirtMgr + KVM 环境中的Linux虚拟机部署

    Author: Xu FC KVM 部署见: KVM + Openvswitch 环境 在 CentOS 7 上的...

  • centos install vagrant with kvm

    先检查一下是否支持KVM 安装kvm等环境 安装vagrant 安装vagrant-libvirt插件 创建kvm...

  • kvm实践

    esxi安装部署 参考文档 kvm虚拟机迁移到esxi上 直接使用qemu-img convert 转换为vmdk...

  • KVM管理工具Webvirtmgr安装

    确保kvm已经安装成功,见 centos7安装kvm本文基于docker安装,见 centos7安装docker ...

网友评论

      本文标题:KVM部署安装记录

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