云原生—虚拟化管理工具virsh(三)
virsh是用于管理虚拟化环境中的客户机和Hypervisor的命令行工具,与virt-manager等工具类似,它也是通过调用libvirt API来实现虚拟化的管理的。
目录
virsh简介
libvirt项目的源代码中就包含了virsh这个虚拟化管理工具的代码。virsh是用于管理虚拟化环境中的客户机和Hypervisor的命令行工具,与virt-manager等工具类似,它也是通过调用libvirt API来实现虚拟化的管理的。virsh是完全在命令行文本模式下运行的用户态工具,它是系统管理员通过脚本程序实现虚拟化自动部署和管理的理想工具之一。
工作模式
交互模式:是连接到相应的Hypervisor上,然后输入一个命令得到一个返回结果,直到用户使用“quit”命令退出连接。
非交互模式:是直接在命令行中在一个建立连接的URI之后添加需要执行的一个或多个命令,执行完成后将命令的输出结果返回到当前终端上,然后自动断开连接。
连接方式
由于支持多种Hypervisor,libvirt需要通过唯一的标识来指定如何才能准确地连接到 本地或远程的Hypervisor。为了达到这个目的,libvirt使用了在互联网应用中广泛使用 的URI[(Uniform Resource Identifier,统一资源标识符)来标识到某个Hypervisor 的连接。libvirt中连接的标识符URI,其本地URI和远程URI有一些区别,下面分别介绍 一下它们的使用方式。
本地URI
在libvirt的客户端使用本地的URI连接本系统范围内的Hypervisor,本地URI的一般格式如下:
driver[+transport]:///[path][?extral-param]
在libvirt中,本地连接QEMU/KVM的几个URI示例如下:
·qemu:///session:连接到本地的session实例,该连接仅能管理当前用户的虚拟化资源。
·qemu+unix:///session:以Unix domain sockect的方式连接到本地的session实例,该连接仅能管理当前用户的虚拟化资源。
·qemu:///system:连接到本地的system实例,该连接可以管理当前节点的所有特权用户可以管理的虚拟化资源。
·qemu+unix:///system:以Unix domain sockect的方式连接到本地的system实例,该连接可以管理当前节点的所有特权用户可以管理的虚拟化资源。
远程URI
远程URI和本地URI是类似的,只是会增 加用户名、主机名(或IP地址)和连接端口来连接到远程的节点。远程URI的一般格式 如下:
driver[+transport]://[user@][host][:port]/[path][?extral-param]
其中,transport表示传输方式,其取值可以是ssh、tcp、libssh2等;user表示连接 远程主机使用的用户名,host表示远程主机的主机名或IP地址,port表示连接远程主机 的端口。其余参数的意义与本地URI中介绍的完全一样。
在远程URI连接中,也存在使用system实例和session实例两种方式,这二者的区别 和用途,与本地URI中介绍的内容是完全一样的。
在libvirt中,远程连接QEMU/KVM的URI示例如下:
·qemu+ssh://root@example.com/system:通过ssh通道连接到远程节点的system实 例,具有最大的权限来管理远程节点上的虚拟化资源。建立该远程连接时,需要经过 ssh的用户名和密码验证或者基于密钥的验证。
·qemu+ssh://user@example.com/session:通过ssh通道连接到远程节点的使用 user用户的session实例,该连接仅能对user用户的虚拟化资源进行管理,建立连接时 同样需要经过ssh的验证。
·qemu://example.com/system:通过建立加密的TLS连接与远程节点的system实例相 连接,具有对该节点的特权管理权限。在建立该远程连接时,一般需要经过TLS x509 安全协议的证书验证。
·qemu+tcp://example.com/system:通过建立非加密的普通TCP连接与远程节点的 system实例相连接,具有对该节点的特权管理权限。在建立该远程连接时,一般需要经 过SASL/Kerberos认证授权。
登入测试
在使用virsh这个libvirt客户端工具时,可以用“-c”或“--connect”选项来指定建立到某 个URI的连接。只有连接建立之后,才能够操作。
使用virsh连接到本地的Hypervisor的示例如下:
[root@kvm-host ~]# virsh -c qemu:///system
使用virsh连接到远程的Hypervisor的示例如下:
[root@kvm-host ~]# virsh -c qemu+ssh://root@192.168.158.31/system
除了针对QEMU、Xen、LXC等真实Hypervisor的驱动之外,libvirt自身还提 供了一个名叫“test”的傀儡Hypervisor及其驱动程序。test Hypervisor是在libvirt中仅仅 用于测试和命令学习的目的,因为在本地的和远程的Hypervisor都连接不上(或无权限 连接)时,test这个Hypervisor却一直都会处于可用状态。使用virsh连接到test Hypervisor的示例操作如下:
[root@kvm-host ~]# virsh -c test:///default list
常用命令
virsh工具有很多命令和功能,更详细的参考文档可以在Linux系统中通过“man virsh”命令查看帮助文档。这里将virsh 常用命令划分为5个类别来分别进行介绍
1、域管理的命令
2、宿主机和Hypervisor的管理命令
3、网络的管理命令
4、存储池和存储卷的管理命令
5、其他常用命令
更多推荐
所有评论(0)