libvirt 命令行交互工具之virsh

简介: libvirt是当前主流VM最低层库、IBM PowerVM也不例外,libvirt是深入玩虚拟化必须玩转的东西; 简单测试玩玩libvirt 的virsh命令行交互工具, 你我都知libvirt大体上主要有3个组件,分别是: 1.  libvirt daemon进程 2.  命令行工具virsh 3.  libvirt API virsh命令使用        virsh [OPTIONS]         virsh既有命令行模式,也有交互模式,在命令行直接输入virsh就进入交互模式,virsh 后面跟命令参数,则是命令行模式。

libvirt是当前主流VM最低层库、IBM PowerVM也不例外,libvirt是深入玩虚拟化必须玩转的东西;

简单测试玩玩libvirt 的virsh命令行交互工具,

你我都知libvirt大体上主要有3个组件,分别是:

1.  libvirt daemon进程

2.  命令行工具virsh

3.  libvirt API

virsh命令使用

       virsh <command> <domain-id> [OPTIONS]

        virsh既有命令行模式,也有交互模式,在命令行直接输入virsh就进入交互模式,virsh 后面跟命令参数,则是命令行模式。下面主要介绍交互式用法。

virsh 回车

help <command> 单独help命令会显示所有的可用命令,如果后面有command,则会简单的解释该命令的用法

quit/exit 退出交互窗口

version 显示相关版本号

cd directory 从当前目录跳转到directory,此命令只能用在交互模式

pwd  显示当前目录

connect URI optional 连接到超级管理程序,

uri  显示超级管理程序的标准URI,可以用在shell mode

hostname 显示超级管理程序的主机名

nodeinfo  显示一个node的基本信息

list optional 显示正在running的domin,虚拟机共有7中状态

          running  虚拟机正在运行在cpu上

 idel  虚拟机是闲置的,没有在运行,在等待IO或者休眠时虚拟机会进入这种状态

 paused  虚拟机处于暂停状态,一般情况下是被admin运行了virsh   suspend才会处于这种状态,但是仍然消耗资源,只不过不被超级管理程序调度而已。

 shutdown 虚拟机在关闭过程中

 shut off  虚拟机没有运行,已经完全关闭

 crashed  虚拟机崩溃

 dying  虚拟机处于垂死的状态,但是又没完全关闭或崩溃

virsh shutdown <domin> 关闭虚拟机domin,如果不设置domin则关闭所有的虚拟机

virsh destory <domin> 强制关闭虚拟机

virsh start <domin>  启动虚拟机

 

以下的命令可以直接操作domain

 

autostart [--disable] domain-id 配置一个domain后自动该domain disable是禁止启动

 

console domain-id 通过串行线路连接至虚拟机

 

create FILE optional --console --paused 通过XML文件才创建一个虚拟机,也可以先用dumpxml导出已有的虚拟机的配置文件,然后修改使用,默认的虚拟机创建后都是直接running,加上 paused参数后,新创建的虚拟机不会直接running

 

 

 

define FILE  从XML配置文件定义一个domian,相当于注册一个domain但是不启动。

 

destroy domain-id 直接关闭一个虚拟机,不给机器反映时间,类似于直接拔电源

 

dommemstat domain  获取domain的内存状态

 

edit domain-id  编辑XML配置文件,等效于:

 

            virsh dumpxml domain > domain.xml

 

            edit domain.xml

 

            virsh define domain.xml

virsh destroy id 关机(类似切断电源)

 

  virsh start one-28 (开机,类似加电启动)

 

managedsave domain-id  保存当前运行的虚拟机的状态,当虚拟机再次启动的时候会恢复到之前保存的状态

 

migrate optional --live --suspend domain-id desturi migrateuri 迁移虚拟机到其他机器 --live表示动态迁移,--suspend表示迁移到目的地时虚拟机处于paused状态,desturi是迁移到目的地主机的 URI(qemu+tcp://root@byRuiy.org/system),migrateuri是迁移机器的URI(qemu+ssh://root@byRui.org/system)

 

save domain-id state-file 保存一个正在运行的虚拟机的状态到一个文件中,以便以后恢复到此状态,一旦保存后虚拟机将不会再运行,占有的资源也会释放,virsh restore可以恢复到此前的状态。eg:save 12 /tmp/test

 

restore state-file 恢复到之前保存的一个状态.eg:restore /tmp/test

 

setmem domain-id kilobytes 改变当前虚拟机分配的内存,不立即生效,单位KB

 

setmaxmem domain-id kilobytes  设置一个虚拟机可分配的最大内存,它不改变当前使用的内存

 

setvcpus domain-id count  改变当前虚拟机的vcpu个数

 

shutdown domain-id 正常的关闭一个虚拟机

 

start domain-name  启动一个虚拟机

 

suspend domain-id  挂起一个正在运行的虚拟机,该虚拟机仍旧占用资源。

 

resume domain-id 从挂起状态恢复一个虚拟机

 

vcpuinfo domain-id 显示一些虚拟机的vcpu信息,包括几个vcpu,运行时间,和那个物理cpu亲和

 

vcpupin domain-id vcpu cpulist  把vcpu绑定到物理cpu,vcpu的数量必须提供,cpulist是一个以逗号分割的物理cpu列表

 

vncdisplay domain-id  显示vnc监听的地址和端口

 

 

快照命令

snapshots可以保存一个domain的disk memory device在某个时间点的状态以便将来会使用到,保存的文件名称必须是唯一的

snapshot-create domain xmlfile 给domain创建一个snapshot,详细内容保存在xmlfile中

snapshot-current domain 显示一个domain的当前的snapshot

snapshot-list domain  显示一个domain的所有的snapshot

snapshot-revert domain snapshot 恢复一个domian到以前的snapshot

snapshot-delete domain snapshot --children 删除一个domain的snapshot

 

如何用libvirt远程管理虚拟机?

1.  首先要用libvirt连接到被管理的虚拟宿主机hypervisors-drivers超级管理程序,此时需要一个uri;

URI配合 virsh和virt-viewer命令使用,后面可以跟一些可选项,virt-viewer可以调用一些链接参数

例如:virsh -c qemu:///system 当链接到远程机器时,可以定义几种使用的协议:ssh,tcp,tls。

当链接到远程机器时,需要使用远程主机的用户和主机名进行链接,如果没有定义链接 用户,则会使用本机环境的$USER的用户进行链接,当连接到qemu hypervisor时,接受两种链接类型:system可以有所有的访问权限,session有限制的访问。例如:

   使用full access链接至本机的qemu hypervisor,前面的-c 是为了执行后面的list命令(--connect)

 

virsh -c  qemu:///system list

 

 

 

    使用full access链接至远程主机的qemu hypervisor,每次都要输入ssh密码,改成ssh无密码登陆就不需要输入密码了,直接显示结果。

 

virsh -c qemu+ssh://byRuiy@Ruiy.org/system   直接进入交互virsh模式,后面要是没有 commanf;

 

virsh -c qemu+ssh://10.1.1.8/system list   直接显示list后的结果

 

其余连接格式如下:

 

qemu:///session                      (local access to per-user instance)
qemu+unix:///session                 (local access to per-user instance)
qemu:///system                       (local access to system instance)
qemu+unix:///system                  (local access to system instance)
qemu://example.com/system            (remote access, TLS/x509)
qemu+tcp://example.com/system        (remote access, SASl/Kerberos)
qemu+ssh://root@example.com/system   (remote access, SSH tunnelled)

 

目录
相关文章
|
3月前
|
存储 Shell
Mac终端工具Terminal (3):在Mac上的终端中执行命令和运行工具
Mac终端工具Terminal (3):在Mac上的终端中执行命令和运行工具
|
3月前
|
虚拟化 云计算 Windows
QEMU组件安装来啦
QEMU(Quick EMUlator)是一个开源的虚拟机,主要用于运行不同的操作系统和应用程序,而不需要在每个目标平台上进行实际安装。 QEMU具有快速启动和高效运行的特点,可以在同一台机器上同时运行多个虚拟机。它支持多种虚拟化技术,包括硬件模拟、二进制转换和容器化。QEMU还提供了丰富的选项和参数,以便用户根据不同的需求进行配置和控制。
|
数据安全/隐私保护 Windows
如何使用 SPICE client (virt-viewer) 来连接远程虚拟机桌面?
如何使用 SPICE client (virt-viewer) 来连接远程虚拟机桌面? 什么是SPICE? SPICE (Simple Protocol for Independent Computing Environments) 是一个用于虚拟化环境中的通讯协议。
4090 0
|
1月前
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 终端复用工具 screen命令 使用指南
【Shell 命令集合 系统管理 】Linux 终端复用工具 screen命令 使用指南
33 0
|
1月前
|
XML 数据格式
virsh一个管理虚拟机的命令行工具
virsh是一个管理虚拟机的命令行工具,提供了丰富的命令来查看、创建、管理虚拟机。以下是一些常用的virsh命令: 1. **查看帮助和版本**: - `virsh --help`:查看virsh命令的帮助信息。 - `virsh -version`:查看virsh的版本信息。 2. **查看虚拟机**: - `virsh list`:显示当前正在运行的虚拟机。 - `virsh list --all`:显示主机下的所有虚拟机,包括未运行的。 3. **创建和管理虚拟机**: - `virsh define xml`:使用XML文件定义(创建)虚拟机。
|
10月前
|
数据安全/隐私保护
IPMI管理工具使用方法
IPMI管理工具使用方法
197 0
|
10月前
|
KVM 虚拟化
KVM管理命令
KVM管理
98 0
|
机器学习/深度学习 Linux KVM
cento7安装kvm并通过qemu命令行安装其他虚拟机(红帽)
cento7安装kvm并通过qemu命令行安装其他虚拟机(红帽)
cento7安装kvm并通过qemu命令行安装其他虚拟机(红帽)
|
Ubuntu 开发工具
Ubuntu使用命令行修改图形化界面中的NetworkManager网络配置
Ubuntu使用命令行修改图形化界面中的NetworkManager网络配置
694 0
Ubuntu使用命令行修改图形化界面中的NetworkManager网络配置
|
Linux
【openstack】命令行模式创建虚拟机
【openstack】命令行模式创建虚拟机
688 0
【openstack】命令行模式创建虚拟机

热门文章

最新文章