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 create kvm01 xxxxxxx      #create 和 define都需要一个xml格式的配置文件,但是create默认不会创建xml文件,当虚拟机关机,libvirt就不知道他了
        virsh define kvm01.xml      #define 方式创建的虚拟机是永久性虚拟机,但是创建好后默认不启动,需手动启动(xml配置文件默认路径/etc/libvirt/qemu)

    #关闭虚拟机
        virsh destroy 域名
        (这种方式的关闭,是一种删除的方式,只是在virsh list 中删除了该虚拟机,注意这里的域名就是你看到的虚拟机名字)
    #挂起虚拟机
        virsh suspend 域名
    #恢复被挂起的虚拟机
        virsh resume 域名

    #子机随宿主主机启动而启动
        virsh autostart 域名
    #取消随宿主机启动而启动
        virsh autostart --disable 域名
    #删除创建的虚拟机
        virsh undefine 域名   #只会删除/etc/libvirt/qemu下的xml文件,不会删除磁盘文件(需手工)

    #启动虚拟机
        virsh start 域名
    #关闭虚拟机
        virsh shutdown 域名
    #重启虚拟机
        virsh reboot 域名
    #强制重启虚拟机
        virsh reset 域名

    #保存虚拟机(将内存数据存储到文件中,保存需要的时间由虚拟机内存数据多少决定)
        virsh save kvm01 kvm01-2023-save
    #还原虚拟机
        virsh restore kvm01-2023-save

    #编辑虚拟机配置文件
        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 ?

    #查看虚拟机的网络类型、接口名字和mac地址
[root@node101 dnsmasq.d]# virsh domiflist kvm5644
Interface  Type       Source     Model       MAC
-------------------------------------------------------
kvm5644.0  bridge     ovs-ext    virtio      fa:a2:e0:00:00:10

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

#一个虚拟机就是一个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/240.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2023/2/11作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何? 不负遇见,不谈亏欠!

暂无评论

发表回复

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

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录