在上一章节中,我们拉起了第一台虚拟机,但是执行virsh shutdown 关机是无法关机的,需要使用virsh destroy 强制断电的命令来关机。为什么会这样了?

这里我们介绍下 QGA的概念 ,通过 QGA 的引入我们来熟悉下 virsh 命令。

1 什么是 QGA ?

  • QEMU Guest Agent 是运行在虚拟机内部的一个守护程序(qemu-guest-agent),用它来辅助Hypervisor实现对Guest 虚拟机的管理。

  • QEMU 为宿主机和虚拟机提供了一个数据通道(channel),这个通道的两端分别是在虚拟机内看到的串口和在宿主机上看到的unix socket文件。

  • 宿主机与虚拟机内的 qga 通讯就扩展了对虚拟机的控制能力,例如在宿主机上获取虚拟机的 ip 地址等。

  • libvrit 提供了专门的 virDomainQemuAgentCommand API(对应 virsh qemu-agent-command 命令)来和 qemu-guest-agent 通讯,另外 libvirt 内置 api 也可以支持 qga,例如 reboot、shutdown 等。

一句话总结: QGA 是一个守护进程,连通虚拟机的串口和物理机的 unix socket 的两头。

默认镜像已经配置 channel,我们通过命令 来验证一下已经配置了 channel

virsh dumpxml test

如果虚拟机没有咋办

如下步骤来添加既可 。

  1. 通过 virsh edit 来编辑 xml 文件
<channel type='unix'>
<source mode='bind' path='/var/lib/libvirt/qemu/org.qemu.guest_agent.0'/>
<target type='virtio' name='org.qemu.guest_agent.0'/>
</channel>
  1. 重启虚拟机
virsh destroy test
virsh start test
  1. Linux 虚拟机安装 qemu-guest-agent
yum install qemu-guest-agent
setenforce 0
systemctl restart qemu-guest-agent.service && systemctl enable qemu-guest-agent.service
  1. 宿主机安装 qemu-guest-agent
yum install qemu-guest-agent
  1. 验证部分
#1 关机
virsh shutdown

查看虚拟机对应的网络的 IP 地址

修改虚拟机密码

virsh set-user-password domain --user 用户 --password 密码
virsh set-user-password test --user root --password 123456

2 kvm 虚拟机批量复制

第一台虚拟机已经通过光盘安装好了系统,能否将虚拟机做为一个模块,之后的虚拟机以该虚拟机为模板来批量复制了?

virt-clone 命令将实现你的需求。

1 转换raw 格式为qcow2 格式
qemu-img convert -f raw -O qcow2 kvm001.raw test.qcow2 2 克隆虚拟机
#克隆之前需要先关机 virsh shutdown test
virt-clone –o 原虚拟机 –n 新虚拟机 –f 新虚拟机存放的路径
virt-clone -o test -n test2 -f test2.qcow2

修复 virsh console 登录失败问题咋办

  1. 通过 vnc 登录虚拟机 test2

  2. 修改 /etc/default/grub 文件中

  3. 重新生成 grub 文件 grub2-mkconfig -o /boot/grub2/grub.cfg

  4. reboot 重启后就ok了.

virsh console 登录了

virsh console test2 #登录虚拟机,修复完成console 等问题后,我们以该虚拟机做为模板文件,以后的虚拟机都按这个模块来生成 。

# 克隆虚拟机
virt-clone -o test2 -n template-vm -f template-vm.qcow2 #启动虚拟机验证
virsh start template-vm [root@192-168-48-11 images]# virsh list
Id Name State
----------------------------------------------------
6 template-vm running #修改虚拟机IP为 192.168.122.12/24
#重启网络
systemctl restart network #拉起原先的test 虚拟机
virsh start test #ssh 登录test
#ssh 192.168.122.11 来测试连通 192.168.122.12

现在我们查看所有的虚拟机

test2 和 test02 我们都不想要了,怎么删除了?

1 删除虚拟机定义

virsh undefine test02
virsh undefine test2

2 删除虚拟机的磁盘文件,本环境的路径在

[root@192-168-48-11 images]# pwd
/data/images [root@192-168-48-11 images]# ls
kvm001.raw template-vm.qcow2 test2.qcow2 test.qcow2 #删除文件
rm -rf test.qcow2 test2.qcow2

命令总结:

1 查看虚拟机xml文件
virsh dumpxml 2 编辑虚拟机的xml 文件
virsh edit 3 关闭虚拟机
virsh shutdown #正常关机
virsh destroy #强制断电 4 启动虚拟机
virsh start 5 删除虚拟机
virsh undefine 6 修改虚拟机密码
virsh set-user-password



每天5分钟复习OpenStack(四) virsh 常用命令的更多相关文章

  1. Linux的桌面虚拟化技术KVM(五)——virsh常用命令

    Linux的桌面虚拟化技术KVM(一)——新建KVM虚拟机 Linux的桌面虚拟化技术KVM(二)——远程桌面管理 Linux的桌面虚拟化技术KVM(三)——KVM虚拟机克隆和快照 Linux的桌面虚 ...

  2. CMake学习笔记四-CMake常用命令

    CMake常用命令 PROJECT PROJECT(projectname [CXX] [C] [Java]) 指定工程名称,并可指定工程支持的语言.支持语言列表可忽略,默认支持所有语言 SET ...

  3. Docker从入门到精通(四)——常用命令

    话不多说,本篇文章给大家介绍 docker 的常用命令,基本上会覆盖我们日常使用的命令. 1.万能帮助命令 docker 命令 --help 假设你想用某个命令,但是又不知道该命令的一些参数怎么用,这 ...

  4. openstack环境搭建常用命令

    1,编辑/etc/selinux/config文件,关闭selinux SELINUX=disabled 2,清空iptables规则并保存 # iptables -F # service iptab ...

  5. Docker容器(四)——常用命令

    (1).基本使用方法 查看所有镜像.docker images [root@youxi1 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ...

  6. virsh常用命令

    必须启动libvirtd,才能用virsh查看kvm后台. # systemctl start libvirtd 查看网络 # virsh net-list 启动default网络 # virsh n ...

  7. 虚拟化之KVM virsh常用命令篇

    1,查看运行的虚拟机 virsh list 2,查看所有的虚拟机(关闭和运行的虚拟机) virsh list --all 3,连接虚拟机 virsh console +域名(虚拟机的名称) 4,退出虚 ...

  8. KVM virsh常用命令篇

    1.查看运行的虚拟机 virsh list 2.查看所有的虚拟机(关闭和运行的虚拟机) virsh list --all 3.连接虚拟机 virsh console +域名(虚拟机的名称) 4.退出虚 ...

  9. 四 linuk常用命令 1. 文件处理命令

    一. 命令格式与目录处理命令ls 命令格式 命令格式:命令 [-选项] [参数] 例:ls -la /etc 说明: 1.个别命令使用不遵循此格式 2. 当有多个选项时,可以写在一起 3.简化选项与完 ...

  10. Linux学习(四)-Linux常用命令

    1.运行级别类 1.1运行级别说明: 0:关机 1:单用户[可用于找回丢失密码] 2:多用户状态没有网络服务 3:多用户状态有网络服务 4:系统未使用保留给用户 5:图形界面 6:系统重启 常用运行级 ...

随机推荐

  1. WPF入门教程系列三十 ——DataGrid验证

    WPF入门教程系列目录 WPF入门教程系列二--Application介绍 WPF入门教程系列三--Application介绍(续) WPF入门教程系列四--Dispatcher介绍 WPF入门教程系 ...

  2. 巧用 nc 命令传输文件

    今天在业务上云的时候,遇到了些问题.最终发现问题的根源不好排查,于是-- 把生产环境的全量配置文件,还有日志全量打包下载到开发机器分析! 刚入职不是很久的整个运维团队,也不是很熟悉生产环境(有时候觉得 ...

  3. PWM点灯

    目录 PWM脉冲宽调点灯 前言 1.什么是PWM 2.PWM的实现 3.PWM实现步骤(通用定时器) 3.1 打开定时器的时钟 3.2 配置端口 3.3 设置定时器 3.4 设置PWM 3.5 完整代 ...

  4. 02LED灯

    目录 一.LED灯是什么 二.原理图 三.对LED进行操作 1.点亮第一个LED灯 2.LED双数点亮 3.LED流水灯 四.延迟函数的生成 一.LED灯是什么 LED是一个发光二极管,当一段为高电平 ...

  5. 使用clip-path将 GIF 绘制成跳动的字母

    前言 之前看到过一个有趣的CSS效果,今天我们也来实现一遍,将动图GIF通过clip-path绘制成一个个跳动的字母. 效果如下: GIF随便找的,嗯?这不是重点,重点是下面的实现过程,别被GIF吸引 ...

  6. Vortex Indicator 构建交易策略

    更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 今天的文章,我们将为大家介绍一个与DMI(Directional Movement Index)类似,判 ...

  7. protoc-gen-doc 自定义模板规则详解

    protoc-gen-doc 自定义模板规则详解 配套演示工程 此项目中所用 proto 文件位于 ./proto 目录下,来源于 官方proto示例 此项目中所列所有模板case文件位于 ./tmp ...

  8. 论文解读(Moka‑ADA)《Moka‑ADA: adversarial domain adaptation with model‑oriented knowledge adaptation for cross‑domain sentiment analysis》

    Note:[ wechat:Y466551 | 可加勿骚扰,付费咨询 ] 论文信息 论文标题:Moka‑ADA: adversarial domain adaptation  with model‑o ...

  9. maxwell数据抓取工具

    前言 maxwell是一款开源MySQL数据抓取工具,可以读取MySQL的binlog,然后转换成json并输出到kafka.redis等消息队列中. bin/maxwell,用于增量抓取 bin/m ...

  10. SElinux 导致 Keepalived 检测脚本无法执行

    哈喽大家好,我是咸鱼 今天我们来看一个关于 Keepalived 检测脚本无法执行的问题 一位粉丝后台私信我,说他部署的 keepalived 集群 vrrp_script 模块中的脚本执行失败了,但 ...