Virsh命令-中小企业计算机网络

系列总索引: 中小企业计算机网络:简介

你好朋友!

如果您跟随我们阅读了迄今为止发表的文章,您将意识到我们正在遵循一条合理的道路,以便在家中获得工作站或实验室,并获得必要的支持以进行虚拟机或服务器,我们将在其中实现最低服务 局域网局域网 业务.

我们假设您阅读:

每篇文章中都包含以前的链接以及指向包含丰富信息的不同页面和站点的外部链接,目的是使您获得有关所涵盖的不同主题的基本知识。

该帖子是所选路径的逻辑延续。 您的阅读和学习将使您对虚拟化的广阔世界有所了解 Qemu-KVM 及其主要的书店 libvirt的.

Virsh-用于管理虚拟域的主用户界面

从以前的读物中我们知道,Linux中的虚拟化意味着能够在同一硬件平台上运行不同并发操作系统的多个实例。 利伯维尔特 是用 语言C,这使我们可以与最新版本的Linux以及其他操作系统的虚拟化功能进行交互。

我们可以使用该程序 维尔什 在虚拟域和托管它们的虚拟机管理程序上创建,暂停,关闭,列出以及更多其他操作。 该程序的名称表明该程序是«VIR翻译 ShELL»或者 虚拟化命令处理器.

以一种通用的方式,我们可以将其调用为:

virsh [OPTION]...。 [参数] ...
  • 命令:可以是其中之一 215个命令 稍后列出
  • 域名:域或虚拟机的名称,或域的数字标识符ID,或域的UUID。
  • 论点:每个命令特定的选项

上一条规则有一些例外,例如在命令作用于所有域,计算机或直接作用于Xen Hypervisor的情况下- Xen虚拟机监控程序。 对于每个命令,都会清除此类异常。

注意: 尽管通过其数字ID标识虚拟机是有效的,但该数字值将始终被解释为域ID,而不是其名称。.

Virsh命令选项 是:

  • -c,–connect URI:连接到 的URI «统一资源标识符“ - 统一资源标识符,而不是本地管理程序的默认URI。
  • d,–debug等级: 启用调试消息- 调试,直到整数值LEVEL,一个数字参数可以采用0到4之间的值。精确地是4是默认值。
  • -e,–转义字符串:设置备用字符序列 当我们按下«键ESC«。 默认顺序是 ^]。 允许的字符是:任何字母字符,@,[,],\,^,_。 我们建议 不要修改默认字符序列。
  • -h,-help:忽略其他任何参数,其行为就像执行命令一样 帮助.
  • -k,–keepalive-interval间隔:设置间隔(以秒为单位)以发送消息类型 活着,以检查与服务器的连接是否仍然有效。 如果值 间隔 被设置为 0,则此检查机制已禁用。
  • -K,–keepalive-count COUNT:设置可以发送消息的次数 活着 没有得到服务器的响应,也没有将连接标记为无效。 如果先前选项的INTERVAL值设置为0,则此选项将不起作用。
  • -l,–log文件:将操作日志输出定向到文件 文件.
  • -q,–安静:避免在消息中使用其他信息。 静音模式。
  • -r,–只读:初始连接建立在 只读。 与使用选项时相同 -只读 在命令 联接.
  • -t,–timing:显示每个命令消耗的时间。
  • -v,–version =短:忽略其他任何参数,仅显示库版本 libvirt的 该程序来自 维尔什.
  • -V,–version =长:忽略任何其他参数并显示库版本 libvirt的 该程序来自 维尔什 而且,不同的管理程序,控制器- 驱动程序,编译支持的网络类型等。

笔记:

  • 大多数命令操作 维尔什,假设书店 libvirt的 能够连接到服务 虚拟机 在行动。
  • 大多数命令要求它们以用户权限运行 由于它用于与虚拟机监控程序进行通信的通信渠道。 如果以普通用户的权限运行,它将返回错误。
  • 大多数命令是同步执行的。 可能的例外是 关闭, 设置vpu y 设定记忆。 在这些情况下, 维尔什 返回 提示 命令,可能并不意味着该操作已成功完成。 应该定期检查以检查该访客是否已完成操作- 客人.

有关内容的更多信息,请参见 人维尔什.

关于如何对待学习型病毒的建议

为了更轻松地获得有关使用 超过200条命令, 维尔什 按关键字对它们进行分组- 帮助关键字, 哪个是:

  • 监控
  • 主持人
  • 接口
  • 过滤
  • 网络
  • 节点开发
  • 秘密
  • 快照
  • 体积
  • 维尔什
buzz @ sysadmin:〜$ virsh帮助域
 域管理(帮助关键字“域”):来自XML文件的附加设备附加设备附加磁盘附加磁盘设备附加接口附加网络接口自动启动自动启动域blkdeviotune设置或查询块设备的I / O调整参数。
 blkiotune获取或设置blkio参数blockcommit启动块提交操作。
 blockcopy启动块复制操作。
 blockjob管理活动的块操作blockpull从其备份映像填充磁盘。
 blockresize调整域块设备的大小。
 更改媒体CD或软盘驱动器控制台的更改媒体连接到来宾控制台cpu基线计算基准CPU cpu比较主机CPU与XML文件描述的CPU cpu-stats显示域cpu统计信息创建从XML创建域文件定义定义(但不启动)XML文件中的域desc显示或设置域的描述或标题destroy销毁(停止)XML文件中的域分离设备分离设备分离磁盘分离磁盘设备分离接口分离网络接口domdisplay域显示连接URI domfsfreeze冻结域的已挂载文件系统。
 domfsthaw Thaw域的已挂载文件系统。
 domfstrim在域的已挂载文件系统上调用fstrim。


buzz @ sysadmin:〜$ virsh帮助监视器
 域监视(帮助关键字“监视器”):domblkerror显示块设备上的错误domblkinfo域块设备大小信息domblklist列出所有域块domblkstat获取域的设备块统计信息domcontrol域控制接口状态domif-getlink获取虚拟接口的链接状态domiflist列出所有域虚拟接口domifstat获取域域的网络接口统计信息dommemstat获取域的内存统计信息domstate域状态domstats获取有关一个或多个域的统计信息domtime域时间列表域

buzz @ sysadmin:〜$ virsh帮助监视器
 域监视(帮助关键字“监视器”):domblkerror显示块设备上的错误domblkinfo域块设备大小信息domblklist列出所有域块domblkstat获取域的设备块统计信息domcontrol域控制接口状态domif-getlink获取虚拟接口的链接状态domiflist列出所有域虚拟接口domifstat获取域域的网络接口统计信息dommemstat获取域的内存统计信息domstate域状态domstats获取有关一个或多个域的统计信息domtime域时间列表域

buzz @ sysadmin:〜$ virsh帮助主机
 主机和虚拟机监控程序(帮助关键字“主机”):分配页操纵页面池大小功能功能cpu模型CPU模型domcapabilities域功能freecell NUMA可用内存释放页NUMA可用页主机名打印虚拟机管理程序主机名maxvcpus连接vcpu最大节点内存调整Get或设置节点内存参数nodecpumap节点cpu映射nodecpustats打印节点的cpu统计信息。 nodeinfo节点信息nodememstats打印节点的内存统计信息。 nodeuspend将主机节点挂起给定的持续时间sysinfo打印虚拟机管理程序sysinfo uri打印虚拟机管理程序规范URI版本show version

buzz @ sysadmin:〜$ virsh帮助界面
 接口(帮助关键字“接口”):iface-begin创建当前接口设置的快照,稍后可以提交(iface-commit)或还原(iface-rollback)iface-bridge创建桥设备并连接现有网络设备从iface开始和自由还原点iface定义(但不开始)到XML文件中的物理主机接口(如果iface销毁了物理主机接口(禁用它/“ if- down“)XML中的iface-dumpxml接口信息iface-edit编辑物理主机接口的XML配置iface-list列出物理主机接口iface-mac将接口名称转换为接口MAC地址iface-name将接口MAC地址转换为接口名称iface-rollback回滚到通过iface-begin创建的先前保存的配置iface-start启动物理主机接口(启用它/“ if-up”)iface-unbridge在分离其从属设备后取消定义桥接设备iface-undefine取消定义phy sical主机接口(将其从配置中删除)

buzz @ sysadmin:〜$ virsh帮助过滤器
 网络过滤器(帮助关键字“过滤器”):nwfilter-define从XML文件定义或更新网络过滤器nwfilter-dumpxml XML中的网络过滤器信息nwfilter-edit编辑网络过滤器的XML配置nwfilter-list列表网络过滤器nwfilter-undefine取消定义网络过滤器

buzz @ sysadmin:〜$ virsh帮助网络
 网络(帮助关键字“网络”):net-autostart自动启动网络net-create从XML文件创建网络net-define(但不要启动)从XML文件中定义网络net-destroy销毁(停止)网络net-dhcp-leases打印给定网络的租约信息net-dumpxml XML网络信息net-edit编辑网络net-event的XML配置网络事件net-info网络信息网络列表网络网络名称转换网络UUID到网络名称net-start启动一个(先前定义的)非活动网络net-undefine取消定义持久网络net-update更新现有网络配置的一部分net-uuid将网络名称转换为网络UUID

buzz @ sysadmin:〜$ virsh帮助nodedev
 节点设备(帮助关键字“ nodedev”):nodedev-create在节点上创建由XML文件定义的设备nodedev-destroy销毁(停止)节点上的设备nodedev-从节点设备驱动程序中分离节点设备nodedev-dumpxml节点XML nodedev-list中的设备详细信息枚举此主机上的设备nodedev-reattach重新将节点设备连接到其设备驱动程序nodedev-reset重置节点device

嗡嗡声@ sysadmin:〜$ virsh帮助秘密
 秘密(帮助关键字'secret'):秘密定义或修改XML文件中的秘密secret-dumpxml XML中的秘密属性secret-get-value输出秘密值秘密列表列表秘密secret-set-value设置一个秘密值秘密-未定义未定义秘密

buzz @ sysadmin:〜$ virsh帮助快照
 快照(帮助关键字'snapshot'):快照创建从XML快照创建为as从一组args快照中创建快照-当前获取或设置当前快照快照-删除删除域快照快照-dumpxml转储域快照快照的XML-编辑编辑快照快照的XML-信息快照信息快照列表列出域快照的快照-父级获取快照快照的父级的名称-还原将域恢复为快照
buzz @ sysadmin:〜$ virsh帮助池
 存储池(帮助关键字“池”):find-storage-pool-sources-as查找潜在的存储池源find-storage-pool-sources查找潜在的存储池源pool-autostart自动启动一个池pool-build建立一个pool pool-创建-从一组args池创建一个池-从XML文件创建一个池pool-define-从一组args池中定义一个池-定义(但不启动)来自XML的池文件池-删除池-销毁-销毁(停止)池-dumpxml XML池中的池信息-编辑存储池的XML配置池-信息存储池信息池列表列表池池名称转换池将UUID更改为池名pool-refresh刷新一个池pool-开始启动一个(先前定义的)非活动池pool-取消定义取消定义一个非活动池pool-uuid将一个池名称转换为池UUID

buzz @ sysadmin:〜$ virsh帮助卷
 存储卷(帮助关键字“ volume”):vol-clone克隆卷。 vol-create-as从一组args创建一个卷vol-create从XML文件创建一个vol vol-create-from创建一个vol,使用另一个卷作为输入vol-delete删除一个vol vol-download下载卷内容到在XML中的文件vol-dumpxml vol信息vol-info存储器中的vol信息vol-key返回给定卷名或路径的卷名vol-list list vols-vol name返回给定卷名或路径的卷名路径返回给定卷名或键卷的卷路径池返回给定卷键或路径的存储池vol-resize调整卷的大小vol-upload上传文件内容到卷vol-wipe擦拭卷

buzz @ sysadmin:〜$ virsh帮助virsh
 Virsh本身(帮助关键字“ virsh”):cd更改当前目录connect(重新)连接到管理程序echo echo echo arguments exit退出此交互式终端help print help pwd打印当前目录quit退出此交互式终端

有关列出的任何命令的特定帮助

我们必须执行 virsh帮助。 例子:

buzz @ sysadmin:〜$ virsh帮助列表
  名称列表-列出域概要列表[-非活动] [-全部] [-瞬态] [-持久] [-有快照] [-无快照] [-状态运行] [- -state-paused] [--state-shutoff] [--state-other] [--autostart] [--no-autostart] [--with-managed-save] [--without-managed-save] [ --uuid] [--name] [--table] [--managed-save] [--title]描述返回域列表。 选项-非活动列表非活动域-所有列表非活动和活动域-瞬态列表瞬态域-持久列表永久域-有快照列表域并具有现有快照-无快照列表域不具有快照--state -在运行状态下运行列表域-在暂停状态下状态暂停的列表域-在关闭状态下状态关闭的列表域-在其他状态下状态的其他列表域-启用了自动启动的自动启动列表域-无自动启动禁用自动启动的列表域-具有托管保存状态的托管保存列表域-不具有托管保存状态的托管保存列表域--uuid list uuid仅--name仅列出域名--table list table(默认)--managed-save标记具有托管保存状态的非活动域--title显示域标题

buzz @ sysadmin:〜$ virsh帮助关闭
  NAME关闭-正常关闭域摘要关闭[ - 模式]描述在目标域中运行关机。 选项[--domain] 域名,id或uuid --mode 关闭模式:acpi |代理| initctl |信号| paravirt

使用virsh命令的示例

Virsh版本

嗡嗡声@ sysadmin:〜$ virsh -v
1.2.9

嗡嗡声@ sysadmin:〜$ virsh -V
libvirt 1.2.9的Virsh命令行工具,请参见http://libvirt.org/上的网站。编译支持:管理程序:QEMU / KVM LXC UML Xen LibXL OpenVZ VMWare VirtualBox测试网络:远程网络桥接接口netcf Nwfilter VirtualPort存储:目录磁盘文件系统SCSI多路径iSCSI LVM RBD牧羊犬其他:守护进程Nodedev AppArmor SELinux机密调试DTrace Readline模块化

进入virsh控制台

嗡嗡声@ sysadmin:〜$ sudo virsh
嗡嗡声的[sudo]密码:欢迎使用虚拟化交互式终端virsh。 输入:'help'获得有关命令'quit'的帮助

列出所有网域

virsh# 清单-全部
 ID名称状态----------------------------------------------- ------dns关闭-miweb关闭-sysadmin-centos关闭

启动DNS域

virsh# 启动DNS
域dns已启动

virsh# domdisplay DNS
香料://127.0.0.1:5900

列出存储量

virsh#池列表
 名称状态自动启动-------------------------------------------默认活动无虚拟机-图像激活是       

virsh#池信息默认
名称:默认UUID:3d158e62-6237-464f-9d8f-07ac98be56dc状态:正在运行持久:是自动启动:否容量:14.64 GiB分配:5.18 GiB可用:9.46 GiB

virsh#池信息vms-images
名称:vms-images UUID:72e1b63d-3d90-4f02-bfde-197fd00f3b94状态:运行持久:是自动启动:是容量:916.77 GiB分配:464.22 GiB可用:452.55 GiB

列出卷中包含的图像

virsh#vol-list vms-images
 名称路径------------------------------------------------ ------------------------------ CentOS-7-x86_64-Everything-1511.iso / tera / vms / CentOS-7- x86_64-Everything-1511.iso dns.qcow2 /tera/vms/dns.qcow2 miweb.qcow2 /tera/vms/miweb.qcow2 openSUSE-13.2-DVD-x86_64.iso /tera/vms/openSUSE-13.2-DVD-x86_64 .iso sysadmin-centos.qcow2 /tera/vms/sysadmin-centos.qcow2 sysadmin.qcow2 /tera/vms/sysadmin.qcow2                

virsh#vol-info dns.qcow2 --pool vms映像
名称:dns.qcow2类型:文件容量:10.00 GiB分配:1.56 GiB

在卷上创建磁盘映像

virsh#vol-create-as --pool vms-images --name dns2.raw --capacity 20G
Vol dns2.raw已创建

virsh#vol-list vms-images
 名称路径------------------------------------------------ ------------------------------ CentOS-7-x86_64-Everything-1511.iso / tera / vms / CentOS-7- x86_64-Everything-1511.iso dns.qcow2 /tera/vms/dns.qcow2                     
 dns2.raw /tera/vms/dns2.raw                    
 miweb.qcow2 /tera/vms/miweb.qcow2 openSUSE-13.2-DVD-x86_64.iso /tera/vms/openSUSE-13.2-DVD-x86_64.iso sysadmin-centos.qcow2 /tera/vms/sysadmin-centos.qcow2 sysadmin .qcow2 /tera/vms/sysadmin.qcow2

将新创建的映像加入正在运行的域

virsh#domstate DNS
运行

virsh#dominfo dns
ID:4名称:dns UUID:9e69ebc6-213e-42f7-99bf-83b333e93958 OS类型:hvm状态:运行的CPU(s):1 CPU时间:25.2s最大内存:262144 KiB使用的内存:262144 KiB持久性:是自动启动:禁用托管保存:否安全性模型:无安全性DOI:0

virsh#domblklist dns
目标来源------------------------------------------------ vda /tera/vms/dns.qcow2 hda-

virsh#附加磁盘dns /tera/vms/dns2.raw vdb --persistent --live
磁盘连接成功

virsh#domblklist dns
目标来源------------------------------------------------ vda /tera/vms/dns.qcow2 vdb /tera/vms/dns2.raw hda-

virsh#domblkstat dns vda
vda rd_req 5438 vda rd_bytes 67512320 vda wr_req 405 vda wr_bytes 2854912 vda flush_operations 14 vda rd_total_times 20533958076 vda wr_total_times 423498369 vda flush_total_times 232141607

virsh#domblkstat dns vdb
vdb rd_req 117 vdb rd_bytes 479232 vdb wr_req 0 vdb wr_bytes 0 vdb flush_operations 0 vdb rd_total_times 28976780 vdb wr_total_times 0 vdb flush_total_times 0

我们对新磁盘进行分区,格式化和挂载

virsh# 退出
buzz @ sysadmin:〜$ ssh buzz@192.168.10.5
buzz@192.168.10.5的密码:

嗡嗡声@ DNS:〜$ sudo fdisk / dev / vdb
嗡嗡声的[sudo]密码:欢迎使用fdisk(util-linux 2.25.2)。 更改将仅保留在内存中,直到您决定将其写入为止。 使用write命令之前请小心。 命令(m寻求帮助):n分区类型p主(0主,0扩展,4空闲)e扩展(逻辑分区的容器)选择(默认p):p分区号(1-4,默认1):第一个扇区(2048-41949951,默认2048):最后一个扇区,+个扇区或+大小{K,M,G,T,P}(2048-41949951,默认41949951):创建了类型为'Linux'且大小为1的新分区20 GiB。 命令(m寻求帮助):p磁盘/ dev / vdb:20 GiB,21478375424字节,41949952扇区单位:1 * 512的扇区= 512字节扇区大小(逻辑/物理):512字节/ 512字节I / O大小(最小/最佳):512字节/ 512字节Disklabel类型:dos磁盘标识符:0x12e1497e设备启动开始端扇区大小ID类型/ dev / vdb1 2048 41943039 41940992 20G 83 Linux命令(m寻求帮助):w分区表已更改。 调用ioctl()重新读取分区表。 同步磁盘。

嗡嗡声@ dns:〜$ sudo mkfs.ext4 / dev / vdb1

嗡嗡声@ dns:〜$ sudo fdisk -l

磁盘/ dev / vda:10 GiB,10737418240字节,20971520扇区单位:1 * 512的扇区= 512字节扇区大小(逻辑/物理):512字节/ 512字节I / O大小(最小/最佳):512字节/ 512字节Disklabel类型:两个磁盘标识符:0xb1e40216设备启动开始端扇区大小ID类型/ dev / vda1 * 2048 20013055 20011008 9.6G 83 Linux / dev / vda2 20015102 20969471 954370 466M 5 Extended / dev / vda5 20015104 20969471 954368 466M 82 Linux swap / Solaris Disk / dev / vdb:20 GiB,21478375424字节,41949952扇区单位:1 * 512的扇区= 512字节的扇区大小(逻辑/物理):512字节/ 512字节的I / O大小(最小/最佳): 512字节/ 512字节Disklabel类型:dos磁盘标识符:0x12e1497e设备启动起始端扇区大小ID类型/ dev / vdc1 2048 41943039 41940992 20G 83 Linux

嗡嗡声@ dns:〜$ sudo mkdir /存储
嗡嗡声@ dns:〜$ sudo nano / etc / fstab 
/ dev / vdb1 /存储ext4默认值0 0

嗡嗡声@ dns:〜$ sudo mount -a
buzz @ dns:〜$ ls -l / total store 16 drwx ------ 2根root 16384 Dec 10 17:34丢失+找到

我们回到virsh控制台

嗡嗡声@ sysadmin:〜$ sudo virsh欢迎来到虚拟化交互式终端virsh。 输入:'help'获得有关命令'quit'的帮助

virsh# 

我们关掉

virsh#domstate DNS
运行

virsh#关闭DNS
域dns正在关闭

总结

到目前为止,我们已经沿着Virsh海的海岸航行。 😉有关更多信息,请执行以下命令 人维尔什。 但是,我们保留了一个纯文本文件,名为 virsh-帮助.txt 我们使使用Super Command来管理和管理虚拟机管理程序及其虚拟机的人们的生活更加轻松。

我们强烈建议 在生产环境之外测试命令.


7条评论,留下您的评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   猎人

    我想使用Virsh做更多事情,目前仅基础知识,启动,停止,其他所有我使用virt-manager的东西,我都希望您可以让N台服务器运行libvirt并使用virt-manager从您的工作站进行管理。

  2.   费德里科

    你好朋友Dhunter! 我已经在工作了。 下载文件virsh-help.txt,这将对您有很大帮助。 我是从virsh控制台本身制作的,然后制作了脚本来填充它。 我认为,通过帮助的关键字进行组织,它更可饮用。 在下一篇文章中,我将介绍有关此命令的更多主题。

  3.   卡布尔斯十二生肖

    问候费德里科。 我关注了您关于中小企业的有趣文章。 使用控制台进行快速,有效的管理肯定更容易。 它们还消耗更少的资源。 我等待您的下一次交货。

  4.   Crespo88

    费德里科,你已经认识我了。 谢谢您给我们的礼物。 精彩的帖子,我一直在等待有关virsh的文章。 谢谢兄弟,我们都会知道如何正确使用它。

  5.   FICO

    De nada Crespo88. Para ese estamos en DesdeLinux.

  6.   伊斯梅尔·阿尔瓦雷斯·黄

    你好,我对virsh命令的潜力感到惊讶,我找不到合适的词来描述我对此的想法,令人难以置信,而您在帖子中公开的内容只是笔触,使用了您自己的话«到目前为止沿着维尔希海的海岸航行。”
    在解释如何使用其关键字研究virsh帮助时非常有用。
    伟大的开发示例,即在卷上创建磁盘映像并将其联接(添加)到运行的域(或MV),全部使用virsh; 然后从我们的WK系统管理员通过SSH连接到该域,并在其中创建分区及其ext4文件系统,最后从fstab挂载该分区。
    virt qemu-kvm系列中的以下帖子无所作为,非常感谢您分享所有这些内容。

    1.    费德里科

      王先生,您已经明白了要点。 如果仅通过介绍Virsh命令,就可以实现奇迹,为什么不继续研究和使用它。 维尔什 根据定义,它是Qemu-KVM接口,由其在Red Hat,Inc的创建者构思并由该大公司赞助。 尽管我们知道还有其他接口,例如Virt-Manager和oVirt,但是Virsh仍然是处理库的最完整的接口 libvirt的。 感谢您的朋友黄先生的宝贵意见。