searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Libvirt与Virsh介绍及常用命令

2023-10-26 07:51:22
162
0

Libvirt基本介绍

    Libvirt是用于管理虚拟化平台的开源的API,后台程序和管理工具。

  •        一个API库,一个守护进程(Libvirtd),和一个命令行实用程序(virsh)。
  •        支持语言C,C++,Python,Perl,Ruby,,java,JavaScript,php等语言。
  •        对不同的 Hypervisor 提供不同的驱动。
  •        使用 XML 来定义各种虚拟机相关的受管理对象。

    为什么需要Libvirt?

  •       Hypervisor 种类众多,没有统一的编程接口。
  •       没有统一的方式定义虚拟机相关的各种可管理对象。

     Libvirt体系架构:                                                                                                                        图1 使用Libvirt前后的虚拟机管理方式

      libvirt的功能有哪些?

  • 虚拟机管理:启动、停止、暂停、保存、恢复和迁移等;磁盘、网卡、内存和CPU等多种设备的热拔插。
  • 远程机器支持:远程机器上运行libvirtd,则所有的libvirt功能都可访问和使用。
  • 存储管理:任何运行了libvirtd的主机都可以管理不同类型的文件:qcow2、vmdk、raw、NFS、LVM、磁盘设备分区、iSCSI等。
  • 网络接口管理:任何运行了libvirtd的主机都可以管理物理和逻辑的网络接口。
  • 虚拟网络:任何运行了libvirt daemon的主机都可以用来管理和创建虚拟网络。

Virsh基本介绍

     libvirt项目的源代码中就包含了virsh这个虚拟化管理工具的代码。virsh是用于管理虚拟化环境中的客户机和Hypervisor的命令行工具,与virt-manager等工具类似,它也是通过调用libvirt API来实现虚拟化的管理的。virsh是完全在命令行文本模式下运行的用户态工具,它是系统管理员通过脚本程序实现虚拟化自动部署和管理的理想工具之一。

Virsh的常用命令  

动作 命令
创建虚拟机,并安装OS virt-install
根据xml文件创建虚拟机相关 virsh create *.xml 
  virsh define *.xml
  virsh undefine
  virsh dumpxml *
关闭domain virsh destroy *
  virsh shutdown * 
  vrish reboot *
开启domain virsh start * 
删除domain virsh undefine *
连接domain virsh console *
   Ctrl+]                                   #退出
列出domain virsh list 
  virsh list --all 
附加或拆除disk virsh attach-disk *
附加或拆除网卡 virsh attach-interface  * 
  virsh detach-interface *
调整cpu virsh setvcpus  *  num
调整内存 virsh setmem  *  num
保存状态至磁盘文件 virsh save  *
从磁盘文件恢复 virsh restore *
暂停于内存或继续运行 virsh suspend *
  virsh resume *
   

Libvirt API

    libvirt API可划分为8个部分:连接 API、域 API、节点 API、网络 API、存储卷 API 、存储池 API、事件API、数据流API。

    1、连接 API:以virConnect 开头的一系列函数

        virConnectPtr virConnectOpen

        virConnectGetHostname

        virConnectClose    

    2、域 API:以virDomain 开头的一系列函数

         virDomainGetInfo

         virDomainCreate

         virDomainDefineXML()

   3、节点 API:以virNode 开头的一系列函数

        virNodeGetInfo

        virNodeGetCPUStats

       virNodeSuspendForDuration 

   4、网络 API:以 virNetwork 开头的一系列函数和部分以 virInterface 开头的函数

       virNetworkGetName(virNetworkPtr network)

       virNetworkIsActive

       virNetworkDestroy

       virInterfaceCreate

   5、存储卷 API :以 virStorageVol 开头的一系列函数

      virStorageVolGetInfo

      virStorageVolGetConnect

      virStorageVolCreateXML

      virStorageVolFree

   6、存储池 API:以virStoragePool 开头的一系列函数

      virStoragePoolLookupByName

      virStoragePoolCreateXML

      virStoragePoolDefineXML

      virStoragePoolCreate

   7、事件管理的API:以virEvent 开头的一系列函数

       Libvirt 支持事件机制,使用该机制注册之后,可以在发生特定的事件(如:域的启动、暂停、恢复、停止等)之时,得到自己定义的一些通知。

    8、数据流管理的API:以virStream 开头的一系列函数

 

0条评论
0 / 1000
榕树
2文章数
1粉丝数
榕树
2 文章 | 1 粉丝
榕树
2文章数
1粉丝数
榕树
2 文章 | 1 粉丝
原创

Libvirt与Virsh介绍及常用命令

2023-10-26 07:51:22
162
0

Libvirt基本介绍

    Libvirt是用于管理虚拟化平台的开源的API,后台程序和管理工具。

  •        一个API库,一个守护进程(Libvirtd),和一个命令行实用程序(virsh)。
  •        支持语言C,C++,Python,Perl,Ruby,,java,JavaScript,php等语言。
  •        对不同的 Hypervisor 提供不同的驱动。
  •        使用 XML 来定义各种虚拟机相关的受管理对象。

    为什么需要Libvirt?

  •       Hypervisor 种类众多,没有统一的编程接口。
  •       没有统一的方式定义虚拟机相关的各种可管理对象。

     Libvirt体系架构:                                                                                                                        图1 使用Libvirt前后的虚拟机管理方式

      libvirt的功能有哪些?

  • 虚拟机管理:启动、停止、暂停、保存、恢复和迁移等;磁盘、网卡、内存和CPU等多种设备的热拔插。
  • 远程机器支持:远程机器上运行libvirtd,则所有的libvirt功能都可访问和使用。
  • 存储管理:任何运行了libvirtd的主机都可以管理不同类型的文件:qcow2、vmdk、raw、NFS、LVM、磁盘设备分区、iSCSI等。
  • 网络接口管理:任何运行了libvirtd的主机都可以管理物理和逻辑的网络接口。
  • 虚拟网络:任何运行了libvirt daemon的主机都可以用来管理和创建虚拟网络。

Virsh基本介绍

     libvirt项目的源代码中就包含了virsh这个虚拟化管理工具的代码。virsh是用于管理虚拟化环境中的客户机和Hypervisor的命令行工具,与virt-manager等工具类似,它也是通过调用libvirt API来实现虚拟化的管理的。virsh是完全在命令行文本模式下运行的用户态工具,它是系统管理员通过脚本程序实现虚拟化自动部署和管理的理想工具之一。

Virsh的常用命令  

动作 命令
创建虚拟机,并安装OS virt-install
根据xml文件创建虚拟机相关 virsh create *.xml 
  virsh define *.xml
  virsh undefine
  virsh dumpxml *
关闭domain virsh destroy *
  virsh shutdown * 
  vrish reboot *
开启domain virsh start * 
删除domain virsh undefine *
连接domain virsh console *
   Ctrl+]                                   #退出
列出domain virsh list 
  virsh list --all 
附加或拆除disk virsh attach-disk *
附加或拆除网卡 virsh attach-interface  * 
  virsh detach-interface *
调整cpu virsh setvcpus  *  num
调整内存 virsh setmem  *  num
保存状态至磁盘文件 virsh save  *
从磁盘文件恢复 virsh restore *
暂停于内存或继续运行 virsh suspend *
  virsh resume *
   

Libvirt API

    libvirt API可划分为8个部分:连接 API、域 API、节点 API、网络 API、存储卷 API 、存储池 API、事件API、数据流API。

    1、连接 API:以virConnect 开头的一系列函数

        virConnectPtr virConnectOpen

        virConnectGetHostname

        virConnectClose    

    2、域 API:以virDomain 开头的一系列函数

         virDomainGetInfo

         virDomainCreate

         virDomainDefineXML()

   3、节点 API:以virNode 开头的一系列函数

        virNodeGetInfo

        virNodeGetCPUStats

       virNodeSuspendForDuration 

   4、网络 API:以 virNetwork 开头的一系列函数和部分以 virInterface 开头的函数

       virNetworkGetName(virNetworkPtr network)

       virNetworkIsActive

       virNetworkDestroy

       virInterfaceCreate

   5、存储卷 API :以 virStorageVol 开头的一系列函数

      virStorageVolGetInfo

      virStorageVolGetConnect

      virStorageVolCreateXML

      virStorageVolFree

   6、存储池 API:以virStoragePool 开头的一系列函数

      virStoragePoolLookupByName

      virStoragePoolCreateXML

      virStoragePoolDefineXML

      virStoragePoolCreate

   7、事件管理的API:以virEvent 开头的一系列函数

       Libvirt 支持事件机制,使用该机制注册之后,可以在发生特定的事件(如:域的启动、暂停、恢复、停止等)之时,得到自己定义的一些通知。

    8、数据流管理的API:以virStream 开头的一系列函数

 

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0