KVM实战之(一)如何实现KVM虚拟化

kvm是一种全虚拟化技术,是内核级别的


环境介绍
centos7.3文本安装,安装epel源
工具介绍
libvirt 管理kvm本身
virt-install 安装虚拟机
virt-manager 图形化管理创建删除虚拟机的工具(类是于virtorbox的界面)
openssh-askpass 若是采用图形化管理远程虚拟机,需要此软件支持

#查看cpu是否支持虚拟化(需要在bios中开启)
    cat /proc/cpuinfo | grep -E '(vmx|svm)'

#安装KVM的相关软件
    yum install qemu-kvm libvirt virt-install qemu-kvm-tools virt-top
#附加,ubuntu如何安装kvm
    sudo apt install virt-manager virtinst qemu qemu-kvm virt-top

#查看kvm内核模块有无被加载
    lsmod |grep kvm

#启动libvirt服务并加入到开机自启动
    systemctl start libvirtd.service
    systemctl enable libvirtd.service

#查看libvirt服务的状态(下面两种方法都可以)
    systemctl status libvirtd.service
    systemctl is-active libvirtd.service

创建虚拟机的步骤

#准备工作,创建iso系统镜像及其存放目录以及虚拟机存放目录
    mkdir /iso /kvm-hosts
#第一:创建磁盘
    qemu-img create -f raw /kvm-hosts/kvm-web01.raw 10G
#第二:创建虚拟机
    virt-install --name kvm-web01 --virt-type kvm --ram 512 --cdrom=/iso/CentOS-7-x86_64-DVD-1611.iso --disk path=/kvm-hosts/kvm-web01.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7
    #也可以在安装时指定网卡为桥接模式:--network bridge=br0
    #有时为了实现kvm嵌套虚拟化,可以在创建虚拟机时加入:--cpu core2duo,+vmx

#第三:通过vnc客户端输入物理机ip:5900连接过去,默认起始端口是5900,随着虚拟机的开启,会依次变大5901,5902

#注意:创建好虚拟机后,他会在/etc/libvirt/qemu目录下创建一个以虚拟机名字命名的xml文件
#可以通过virt edit 虚拟主机名   来修改这个xml文件

虚拟机磁盘格式

    raw 超级简单,没有头文件,不支持动态增长,它是裸设备,性能好,但没有一些特性功能
    qcow2   是集各种技术为一体的超级镜像格式,支持内部快照,加密,压缩等一系列功能

virt-install参数介绍

    --virt-type     指定虚拟机类型(kvm,qemu,xen)
    --name          指定虚拟机的名字
    --raw           指定内存大小
    --cpu           指定cpu参数(默认为1)
    --cdrom         指定镜像
    --disk          指定磁盘路径
    --network       指定网络类
    --graphics vnc      配置虚拟机显示设置,比如vnc
    --noautoconsole     不要自动尝试连接客户端控制台
    --os-type=linux     指定系统类型
    --os-variant=rhel7  指定分支系统类型

KVM基本操作

    #查看所有的虚拟机
        virsh list --all
    #查看运行的虚拟机
        virsh list
    #关闭虚拟机
        virsh destroy 域名
        (这种方式的关闭,是一种删除的方式,只是在virsh list 中删除了该虚拟机,注意这里的域名就是你看到的虚拟机名字)
    #挂起虚拟机
        virsh suspend 域名
    #恢复被挂起的虚拟机
        virsh resume 域名
    #子机随宿主主机启动而启动
        virsh autostart 域名
    #取消随宿主机启动而启动
        virsh autostart --disable 域名
    #删除创建的虚拟机
        virsh undefine 域名   #只会删除/etc/libvirt/qemu下的xml文件,不会删除磁盘文件(需手工)
    #从一个xml文件定义虚拟机
        virsh define 域名
    #启动虚拟机
        virsh start 域名
    #关闭虚拟机
        virsh shutdown 域名
    #编辑虚拟机配置文件
        virsh edit 域名

    #将虚拟机配置文件xml导出并重命名
        virsh dumpxml kvm-demo > new.xml
    #列出虚拟机所有的磁盘块镜像
        virsh domblklist kvm-web01

    #检查磁盘是否有错误
        qemu-img check /kvm-hosts/kvm-web01.raw
    #查看磁盘信息
        qemu-img info /kvm-hosts/kvm-web01.raw

    #查看qemu支持那些CPU
        /usr/libexec/qemu-kvm -cpu ?

小技巧:如何查看虚拟机运行时的具体参数,比如磁盘类型,内存大小

#一个虚拟机就是一个kvm进程,所以可以通过查看kvm进程,得知其具体的参数
    ps -ef |grep kvm

创建虚拟机是指定另一种显示协议(非VNC而是spice),监听接口也不是0.0.0.0 而是具体接口IP

    virt-install --name kvm-docker-ceshi --virt-type kvm --ram 1024 --cdrom=/iso/ubuntu-16.04.5-server-amd64.iso --disk path=/kvm-hosts/kvm-docker-ceshi.qcow2 --network network=default --graphics spice,listen=127.0.0.1  --noautoconsole --os-type=linux

声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/165.html

最后编辑于:2020/1/14作者: 辣条①号

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注