libvirt(virsh命令介绍)_virsh list --all -bash: virsh: command not found-程序员宅基地

技术标签: Linux操作系统  libvirt  

有了virt-install是安装虚拟机的命令,当然也需要一个管理虚拟机的命令了,那就是virsh。

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

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

migrate optional --live --suspend domain-id desturi migrateuri 迁移虚拟机到其他机器 --live表示动态迁移,--suspend表示迁移到目的地时虚拟机处于paused状态,desturi是迁移到目的地主机的URI,migrateuri是迁移机器的URI。

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远程管理虚拟机?

       要用libvirt连接到超级管理程序,我们需要一个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://[email protected]/system   直接进入交互virsh模式

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://[email protected]/system   (remote access, SSH tunnelled)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cd520yy/article/details/11710313

智能推荐

探究JVM(七)手敲6000字!从论文角度剖析增量更新和原始快照-程序员宅基地

文章浏览阅读2.2k次,点赞8次,收藏15次。引言:在JVM中,使用可达性分析算法来判断一个对象是否存活。在Serial和Parallel收集器中,可达性分析的过程是STW的,这意味着在标记的过程中,对象的引用关系没有发生改变,从GC Root开始扫描,可以得到全部存活的对象。但是在CMS,G1等垃圾收集器中,采用了并发标记的方式来遍历对象图,毫无疑问,这缩短了STW的时间,但是也带来了新的问题,而增量更新和原始快照就是用来解决这个问题的不同方式。一 并发标记的问题采用了并发标记,可以让用户线程和GC线程同时工作,但是也带来了新的问题。1 浮动垃_增量更新和原始快照

js获取触发事件的元素-程序员宅基地

文章浏览阅读6.9k次。//获取事件 var e = window.event; //获取元素 obj = e.target || e.srcElement; console.log(e); checkRepeat(e.target.innerText); //获取触发事件的元素的文本_js获取触发事件的元素

毕设仿真分享 单片机推箱子游戏(AT89C51)-程序员宅基地

文章浏览阅读952次,点赞27次,收藏21次。此电路由AT89C51最小系统、LCD12864显示模块、74LS08芯片和四个独立按键组成。带中文字库的128X64 是一种具有4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192 个1616 点汉字,和128 个168 点ASCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4 行16×16 点 阵的汉字.

pycharm自动生成函数注释及注意事项-程序员宅基地

文章浏览阅读1.5w次,点赞23次,收藏33次。不少博客都说过怎么生成注释,但是照着别人的博客自己实践中很多次才成功,简单记录下首先,检查pycharm的设置:如果这里是plain的话,需要先改成其他的选项其次,假如有个函数如下:def func(a, b, c):就可以直接在func的下面输入输入三个单引号 / 双引号:def func(a, b, c): ''' # 或者是 """ # pycharm里面,输入三个单引号 / 双引号之后会自动补充对应的三个,这不影响一定要注意,在3个单引号或者3个双引号的前面,有一个t._pycharm自动生成函数注释

【指纹识别】基于模板匹配实现灰度指纹图像识别附matlab代码-程序员宅基地

文章浏览阅读632次,点赞31次,收藏16次。指纹识别是一种生物识别技术,通过分析手指上的独特纹路来识别个人身份。指纹图像通常为灰度图像,包含丰富的纹理信息。基于模板匹配的指纹识别方法是一种经典且有效的技术,通过将输入指纹图像与预先存储的指纹模板进行匹配来识别指纹。

BERT的结构,并展示如何利用预训练的BERT模型进行自然语言处理任务的建模 BERT Explained: Stateoftheart Pretraining for NLP_如何在预训练模型之上自定义模型结构?bert-程序员宅基地

文章浏览阅读799次。BERT(Bidirectional Encoder Representations from Transformers)是一种基于Transformer的预训练语言模型,其通过构建一个双向上下文编码器对文本进行建模。在最近几年里,BERT在许多自然语言处理任务上取得了最先进的结果。它已经成为许多领域最流行的预训练模型之一,包括命名实体识别、情感分析、文本分类、问答系统等。本教程将详细阐述BERT的结构,并展示如何利用预训练的BERT模型进行自然语言处理任务的建模。_如何在预训练模型之上自定义模型结构?bert

随便推点

h5 datePicker日期选择与时间选择组件,适配ios_api cloud h5页面 日期组件-程序员宅基地

文章浏览阅读3.5k次。原项目用的Weui 的时间选择组件在ios上不好使,之前也有用iosSelect.js写过datePicker的插件也有些问题,重新整理了代码,完善了一下。效果如下图:html页面代码,需要引入: <link rel="stylesheet" type="text/css" href="iosSelect/iosSelect.css" /> &l..._api cloud h5页面 日期组件

Linux cgroup源码分析<一>概述_cggroup 源码分析-程序员宅基地

文章浏览阅读1k次。1. cgroup子系统子系统的介绍blkio -- 这个子系统为块设备设定输入/输出限制,比如物理设备(磁盘,固态硬盘,USB 等等)。cpu -- 这个子系统使用调度程序提供对 CPU 的 cgroup 任务访问。cpuacct -- 这个子系统自动生成 cgroup 中任务所使用的 CPU 报告。cpuset -- 这个子系统为 cgroup 中的任务分配独立 C..._cggroup 源码分析

php文件分块上传md5验证,php校验文件md5防止二次修改源码-程序员宅基地

文章浏览阅读433次。思路来源这几天一直在想,不加密源码怎么防止源码被二次修改。后来突然想到了云授权v2里面用到的方法,可以先生生成一个文件md5的数组,然后转换成json,放到服务器上,客户端只需要校验md5就可以判断出文件有没有被修改。想要获取文件的md5的话,我们当然不可能一个一个的去获取,所以我的思路是先获取某个文件夹的文件树,然后在通过foreach来循环获取md5.定义函数首先我们先利用glob函数来定义一..._php 分片上传 如何验证文件完整性

Python学习笔记DAY5(循环)_for i in range(3):-程序员宅基地

Python学习笔记DAY5(循环)介绍了range()函数的使用以及while循环和for循环的语法和用法,还讲解了break、continue和else语句的作用,最后介绍了嵌套循环的概念。

JavaWeb CSS框架——bootstrap_java中table-condensed是什么意思-程序员宅基地

文章浏览阅读469次。CSS框架的概念:CSS 框架是一系列 CSS 文件的集合体,包含了基本的元素重置,页面排版、网格布局、表单样式、通用规则等代码块,用于简化web前端开发的工作,提高工作效率CSS框架产生的原因: 提高CSS代码重用效率,基础的代码不需要重复编写 提供统一而规范的css编码规则,有利于团队协作 浏览器兼容性好这里主要讲BootStrap框架,BootStr..._java中table-condensed是什么意思

从零搭建DevOps平台环境(三)-jenkins 安装_devops平台的搭建jenkins-程序员宅基地

文章浏览阅读945次。这周本来打算找时间,把jenkins重新搭建一个环境,也正好把过程写一下,截点图之类的。好歹内容多一些。不过出现了一些比较紧急的问题。没有抽时间搭建起来,果然还是懒…不过我翻了一下jenkins的官网介绍,顿时觉得没必要写了,给自己得偷懒找了一个相对好点得解释。官网文档写的很好,而且也是中文得,各种搭建方式都有。我觉得没必要写了,是的,暂时不写了。不过好像官网访问得时候有点慢哈。来个TODO …..._devops平台的搭建jenkins