每天5分钟复习OpenStack(四) virsh 常用命令

在上一章节中,我们拉起了第一台虚拟机,但是执行
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

如果虚拟机没有咋办?
如下步骤来添加既可 。
- 通过
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>
- 重启虚拟机
virsh destroy test
virsh start test
- Linux 虚拟机安装 qemu-guest-agent
yum install qemu-guest-agent
setenforce 0
systemctl restart qemu-guest-agent.service && systemctl enable qemu-guest-agent.service
- 宿主机安装 qemu-guest-agent
yum install qemu-guest-agent
- 验证部分
#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 登录失败问题咋办

通过 vnc 登录虚拟机 test2
修改 /etc/default/grub 文件中

重新生成 grub 文件
grub2-mkconfig -o /boot/grub2/grub.cfg,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 常用命令的更多相关文章
- Linux的桌面虚拟化技术KVM(五)——virsh常用命令
Linux的桌面虚拟化技术KVM(一)——新建KVM虚拟机 Linux的桌面虚拟化技术KVM(二)——远程桌面管理 Linux的桌面虚拟化技术KVM(三)——KVM虚拟机克隆和快照 Linux的桌面虚 ...
- CMake学习笔记四-CMake常用命令
CMake常用命令 PROJECT PROJECT(projectname [CXX] [C] [Java]) 指定工程名称,并可指定工程支持的语言.支持语言列表可忽略,默认支持所有语言 SET ...
- Docker从入门到精通(四)——常用命令
话不多说,本篇文章给大家介绍 docker 的常用命令,基本上会覆盖我们日常使用的命令. 1.万能帮助命令 docker 命令 --help 假设你想用某个命令,但是又不知道该命令的一些参数怎么用,这 ...
- openstack环境搭建常用命令
1,编辑/etc/selinux/config文件,关闭selinux SELINUX=disabled 2,清空iptables规则并保存 # iptables -F # service iptab ...
- Docker容器(四)——常用命令
(1).基本使用方法 查看所有镜像.docker images [root@youxi1 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ...
- virsh常用命令
必须启动libvirtd,才能用virsh查看kvm后台. # systemctl start libvirtd 查看网络 # virsh net-list 启动default网络 # virsh n ...
- 虚拟化之KVM virsh常用命令篇
1,查看运行的虚拟机 virsh list 2,查看所有的虚拟机(关闭和运行的虚拟机) virsh list --all 3,连接虚拟机 virsh console +域名(虚拟机的名称) 4,退出虚 ...
- KVM virsh常用命令篇
1.查看运行的虚拟机 virsh list 2.查看所有的虚拟机(关闭和运行的虚拟机) virsh list --all 3.连接虚拟机 virsh console +域名(虚拟机的名称) 4.退出虚 ...
- 四 linuk常用命令 1. 文件处理命令
一. 命令格式与目录处理命令ls 命令格式 命令格式:命令 [-选项] [参数] 例:ls -la /etc 说明: 1.个别命令使用不遵循此格式 2. 当有多个选项时,可以写在一起 3.简化选项与完 ...
- Linux学习(四)-Linux常用命令
1.运行级别类 1.1运行级别说明: 0:关机 1:单用户[可用于找回丢失密码] 2:多用户状态没有网络服务 3:多用户状态有网络服务 4:系统未使用保留给用户 5:图形界面 6:系统重启 常用运行级 ...
随机推荐
- ABP - 本地事件总线
1. 事件总线 在我们的一个应用中,经常会出现一个逻辑执行之后要跟随执行另一个逻辑的情况,例如一个用户创建了后续还需要发送邮件进行通知,或者需要初始化相应的权限等.面对这样的情况,我们当然可以顺序进行 ...
- SpringIoc容器之Aware
1 前言 Aware是Spring提供的一个标记超接口,指示bean有资格通过回调样式的方法由Spring容器通知特定的框架对象,以获取到容器中特有对象的实例的方法之一.实际的方法签名由各个子接口确定 ...
- 电子表格vlookup函数使用
vlookup是常用的辅助查找函数,但是这个函数的参数定义和解释非常的难以理解,即使用向导也很难搞清楚哪个参数是啥意思.放到编程圈里面应该也算bad design的典型了.下面是函数的定义,每次看到这 ...
- 记一次 .NET 某游戏服务后端 内存暴涨分析
一:背景 1. 讲故事 前几天有位朋友找到我,说他们公司的后端服务内存暴涨,而且CPU的一个核也被打满,让我帮忙看下怎么回事,一般来说内存暴涨的问题都比较好解决,就让朋友抓一个 dump 丢过来,接下 ...
- 推荐一款.NET开源的轻量级分布式服务框架
前言 今天要给大家推荐一款由新生命开发团队开源的.NET轻量级分布式服务框架:星尘分布式平台(NewLife.Stardust). 项目介绍 星尘是一个轻量级分布式服务框架.它的功能包含配置中心.集群 ...
- 【ElasticSearch】大数据量情况下的前缀、中缀实时搜索方案
简述 业务开发中经常会遇到这样一种情况,用户在搜索框输入时要实时展示搜索相关的结果.要实现这个场景常用的方案有Completion Suggester.search_as_you_type.那么这两种 ...
- 【WebGL系列-03】获取shader变量地址及赋值
获取shader变量地址及赋值 上一节创建了WebGL程序对象,创建好program对象后,对象中包含顶点着色器和片元着色器,着色器中含有变量,我们需要对其进行赋值后才能够进行绘制. 着色器代码如下: ...
- Unity三维数学总结
三维向量和三角函数 三维向量 向量是指一个同时具有大小和方向,且满足平行四边形法则的几何对象. 向量的模 po点相对于世界坐标原点的距离: po.magnitude. 标准向量,归一向量,指的是将 ...
- [linux]frp内网穿透
前言 假设有如下网络拓扑 A可以访问B,但B无法访问A.A和B都能访问C.如果B需要访问A的8000端口,一般有如下方法: 网络管理员做路由转发.硬件层面网络转发,性能一般来说更好,但需要熟悉路由配置 ...
- linux离线安装docker与compose
前言 系统版本:centos 7.ubuntu 20.04 docker版本:v19.03.9.官方下载地址 docker-compose版本:v2.2.3.官方下载地址 官方提供免安装的二进制程序包 ...