KVM:virsh、virt-Manager、Virt-install、Virt-viewer、libvirt

 

复制代码
KVM 工具集合:virsh、virt-Manager、Virt-install、Virt-viewer、libvirt等
=========================================================================================================
KVM 工具集合
    libvirt:操作和管理KVM虚机的虚拟化 API,使用 C 语言编写,可以由 Python,Ruby, Perl, PHP, Java 等语言调用。可以操作包括 KVM,vmware,XEN,Hyper-v, LXC 等在内的多种 Hypervisor。
    virsh:基于 libvirt 的 命令行工具 (CLI)
    virt-Manager:基于 libvirt 的 GUI 工具
    virt-v2v:虚机格式迁移工具
    virt-* 工具:包括 Virt-install (创建KVM虚机的命令行工具), Virt-viewer (连接到虚机屏幕的工具),Virt-clone(虚机克隆工具),virt-top 等
    sVirt:安全工具
KVM 工具集合:virsh、virt-Manager、Virt-install、Virt-viewer、libvirt等
复制代码
复制代码
安装kvm工具;libvirt配置文件
=========================================================================================================
yum install libvirt -y          #看起来原本已经安装了,但是进行此命令时,仍然进行了一堆安装;同时安装完毕后,virsh命令可以使用了
yum install virt-install -y
yum install qemu-kvm -y
-----------------------------------------------------------------
libvirt配置文件
/etc/libvirt/libvirtd.conf
安装kvm工具;libvirt配置文件
复制代码

 

复制代码
virsh帮助;virt-install创建虚拟机;virsh常用命令
=========================================================================================================
获取帮助
    virsh help              #查看virsh所有命令,在virsh每个命令有不同的分组
    virsh help network      #查看network分组的相关命令
    virsh help domain       #查看domain分组的相关命令
    virsh help host

    virsh edit --help
    virsh dumpxml --help
    virsh net-edit --help
------------------------------------------------------------------------------------------------------------
[root@yefeng ~]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name test_os7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-2009.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole       #创建虚拟机

------------------------------------------------------------------------------------------------------------
常用命令
    virsh list --all
    virsh dumpxml test_os7 > test_os7_txt.xml   #查看VM配置;导出的信息比virsh edit更详细
    virsh edit test_os7                         #配置VM

    virsh list --all                            #列出所有虚拟机
    virsh destroy centos7                       #拔电源关机destroy
    virsh shutdown centos7                      #关机shutdown
    virsh start centos7                         #开机start

    待验证命令:
    virsh dumpxml centos7 >centos7.xml          #导出配置dumpxml
    virsh define centos7.xml                    #导入配置define   
    virsh domrename centos7 web01               #重命名domrename (注意:低版本不支持)

    virsh list --all
    virsh suspend web01
    virsh resume web01
    virsh vncdisplay web01
    virsh autostart web01
    域 web01标记为自动开始
    virsh autostart --disable web01

    常用命令参考:https://www.cnblogs.com/cuiyongchao007/p/12723705.html



    常用命令输出示例:
    [root@yefeng opt]# virsh list --all
     Id    Name                           State
    ----------------------------------------------------
     1     test_os7                       running
virsh帮助;virt-install创建虚拟机;virsh常用命令
复制代码

 

 

复制代码
virsh 常用分组的操作:存储池、存储卷、虚拟机、网络、快照、libvirt编程控制
==========================================================================================================
常用分组的操作,笔记源自阿里开发者社区视频:https://developer.aliyun.com/learning/course/809/detail/13904
一、存储池
    1.1存储池 Storage Pool
        在 libvirt 中,最核心的是 Storage Pool
        Storage Pool 将存储归纳整理成为一个个不同的Storage Pool
        Storage Pool 可以跨越不同的硬件,如一个Storage Pool 可以由多个硬盘组成

    1.2存储池管理
        查看所有存储池: virsh pool-list -- all
        定义一个新的存储池:virsh pool-defne-as poolname dir ----/ home / username /. local / libvirt / images
        构建存储池:virsh pool-build  poolname
        启用存储池:virsh pool-start 、 poolname
        自启动存储池:virsh pool-autostart poolname
        删除存储池:virsh pool-undefne poolname

    1.3操作存储池
        virsh help pool               就只展示与存储池相关命令
        virsh pool-list               查看所有已经配置的存储池
        virsh help pool-list          可以查看pool-list里所有参数
        virsh pool-info iso           可以查看pool具体信息
        virsh pool-capabilities       查看pool的能力 ,表示当前支持哪些配置

    1.4创建存储池

        使用define创建存储池:
        使用virsh pool-define-as 输入要定义的名称比如vdisk格式dir
        设定--target ./设置路径
        实行pool-list--all查看所有

        vdisk还未构建所以vdisk还未激活
        virsh pool-build vdisk 对存储池进行构建
        path'.' 为相对路径,应该修改为绝对路径

        使用viest pool-edit来修改vdisk


        进入配置路径:
        执行virsh pool-start 启动vdisk
        执行virsh pool-autostart vdisk 开启池自动重启
        完成创建

        执行virsh pool-dumpxml vdisk 查看配置

==============================================================================
二、存储卷
2.1存储卷Storage Volume
    存储池被创建之后,就可以在存储池中创建存储卷。
    存储卷是实际用来存储数据的单位。
    存储卷有明确的大小的限制。

2.2存储卷管理
    virsh vol-create-as poolname volumename 10GiB --format aw|bochs|raw|qcow|qcow|vmdk
    virsh vol-upload --pool poolname volumename volumepath
    virsh vol-list poolname
    virsh vol-resize --pool poolname volumename 12GiBe
    virsh vol-delete --pool poolname volumename
    virsh vol-dumpxml --pool poolname volume #查看详情

2.3使用存储卷
    virsh 控制存储卷
    virsh help volume查看存储卷提供的命令


2.4创建存储卷
    virsh help vol-create-as查看创建存储卷的信息
    virsh pool-list查看池的名字
    virsh vol-create-as 加上池的名字vdisk加上卷的名字datafile 容量10GiB --format
    virsh vol-list vdisk 查看定义好的卷
    virsh vol-list defult  查看之前存在的卷
    virsh vol-info datafile --pool vdisk 查看卷的信息

    resize 对磁盘进行扩容
    容量修改到12GiB
    查看容量修改后:

==============================================================================
三、虚拟机
3.1虚拟机Domain
    在libvirt中,每一个虚拟机都被称为Domain,我们对于虚拟机的操作,实际上是对于Domain的操作。

3.2管理虚拟机
    virt-install --name debian(名字) --memory 1024(内存大小) --vcpus=2,maxvcpus =4(cpu数量) --cpu host --cdrom$HOME/iso/debian.iso(使用的镜像路径)--disk size=2(磁盘大小),format=raw (磁盘格式)--network user(使用的网络) --virt-type kvm (虚拟化类型)创建虚拟机
    virt-install -- name demo --memory 512 -- disk /home/user/VMs/mydisk.img --import导入创建好的虚拟机

    virsh list--all查看所有虚拟机
    virsh start domain启动虚拟机
    virsh shutdown domain关闭虚拟机
    virsh edit domain编辑虚拟机

3.3虚拟机管理操作
    virsh help domain查看命令
    通过list查看虚拟机基本信息
    vcpuinfo查看cpu具体信息
    使用install创建虚拟机
    Virtual-install设置名字、内存、cpu大小、镜像路径、磁盘大小、磁盘格式使用网络以及虚拟化类型。

==============================================================================
四、网络
4.1网络Network
    libvirt默认会创建一个NAT网桥,用于虚拟机和外界进行沟通。

    除了NAT,libvirt还支持以下几种网络配置
    bridge——birdge创建一个虚拟设备,它通过一个物理接口直接共享数据。使用场景为:宿主机有静态网络、不需与其它域连接、要占用全部进出流量,并且域运行于系统层级。
    Network——这是一个虚拟网络,它可以与其它虚拟机共用。使用场景为:宿生机有动态网络(例如: NetworkManager) 或使用无线
    macvtap---直接连接到宿主机的一个物理网络接口
    user---本地网络,仅用于用户对话

4.2网络
    Macvtap——直接连接到宿主机的一个物理网络接口
    User——本地网络,仅用于用户会话。

4.3创建custom
    创建 vi network.xml,粘贴上修改好的文件,保存退出
    查看net-create帮助
    
==============================================================================
五、快照
    5.1快照Snapshot
        虚拟机快照保存了虚拟机在某个指定时间点的状态(包括操作系统和所有的程序),利用快照,我们可以恢复虚拟机到某个以前的状态,比如测试软件的时候经常需要回滚系统。
    5.2管理快照
        virsh snapshot-create-as domain snapshot1 -- -disk- -only --atomic创建快照
        virsh snapshot-list domain查看快照
    5.3创建快照
        查看快照命令:snapshot
        
==============================================================================
六、libvirt编程控制
    libvirt提供编程语言的SDK,你可以通过编程来控制虚拟机
    实际编程中的操作
    Gitlab——libvirt
    使用交互式方式了解libvirt的使用
    libvirt官方给出教程,可查看教程进行学习。
virsh 常用分组的操作:存储池、存储卷、虚拟机、网络、快照、libvirt编程控制
复制代码

 

参考资料
世民谈云计算---KVM 介绍https://www.cnblogs.com/sammyliu/category/696699.html

阿里云KVM视频 https://developer.aliyun.com/learning/course/809/detail/13904
深入学习KVM https://www.cnblogs.com/cuiyongchao007/p/12723705.html
虚拟化(1)_virsh 基本命令 https://www.cnblogs.com/sunnybowen/p/10516837.html
kvm之 virt-install工具命令详解https://www.cnblogs.com/nulige/p/8319838.html
ubuntu下使用virt-install安装虚拟机并配置桥接网络https://blog.csdn.net/zhaihaifei/article/details/58156297
虚拟化技术的实现(完全虚拟化、硬件辅助虚拟化) https://blog.csdn.net/gui951753/article/details/81507924

posted @   雲淡風輕333  阅读(478)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示