当前位置: 首页 > news >正文

kvm管理工具-virsh

virsh

      • 查看全部虚拟机列表
      • 停止虚拟机列表
      • 启动虚拟机
      • 强制关闭虚拟机
      • 连接虚拟机控制台
      • 查看虚拟机的详细信息
      • 查看虚拟机接口信息
      • 查看虚拟机xml文件配置
      • 删除虚拟机

KVM(Kernel-based Virtual Machine)是一种基于 Linux 内核的虚拟化技术,允许在一个物理主机上运行多个虚拟机。KVM 提供了一组命令行工具来管理虚拟机的创建、启动、停止、管理和监控等操作。openstack默认使用kvm作为底层虚拟化技术

查看全部虚拟机列表

包含关闭和运行的

root@controller:~# virsh list --allId   Name                State
-----------------------------------3    instance-00000004   running

停止虚拟机列表

指定id或者虚拟机名称

root@controller:~# virsh shutdown 3
Domain '3' is being shutdownroot@controller:~# virsh list --allId   Name                State
-------------------------------------    instance-00000004   shut off

启动虚拟机

注意启动虚拟机则必须要指定名称,此时没有id

root@controller:~# virsh start instance-00000004
Domain 'instance-00000004' startedroot@controller:~# virsh list --allId   Name                State
-----------------------------------4    instance-00000004   running

强制关闭虚拟机

类似断电关机,此时可以指定id或者名称

root@controller:~# virsh list --allId   Name                State
-----------------------------------4    instance-00000004   runningroot@controller:~# virsh destroy 4
error: failed to get domain '4'root@controller:~# virsh list --allId   Name                State
-------------------------------------    instance-00000004   shut off

连接虚拟机控制台

ctrl+】可退出

root@controller:~# virsh list --allId   Name                State
-----------------------------------7    instance-00000004   runningroot@controller:~# virsh console 7
Connected to domain 'instance-00000004'
Escape character is ^] (Ctrl + ])login as 'cirros' user. default password: 'cubswin:)'. use 'sudo' for root.
test login: cirros
Password:
$ sudo su -
# exit
$ exitlogin as 'cirros' user. default password: 'cubswin:)'. use 'sudo' for root.
test login:
root@controller:~#

查看虚拟机的详细信息

此时可以查看到虚拟机的内存,cpu等

root@controller:~# virsh list --allId   Name                State
-----------------------------------7    instance-00000004   runningroot@controller:~# virsh dominfo 7
Id:             7
Name:           instance-00000004
UUID:           0b910f75-3c81-4919-a01a-b70a314a3a3e
OS Type:        hvm
State:          running
CPU(s):         1
CPU time:       12.9s
Max memory:     1048576 KiB
Used memory:    1048576 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: apparmor
Security DOI:   0
Security label: libvirt-0b910f75-3c81-4919-a01a-b70a314a3a3e (enforcing)

查看虚拟机接口信息

查看接口和mac地址

root@controller:~# virsh list --allId   Name                State
-----------------------------------7    instance-00000004   runningroot@controller:~# virsh domiflist 7Interface        Type       Source   Model    MAC
------------------------------------------------------------------tapacf8cea4-33   ethernet   -        virtio   fa:16:3e:33:d6:52root@controller:~#

查看虚拟机xml文件配置

会列出有关虚拟机的所有信息,需要过滤一下,例如查看虚拟机的ip信息

root@controller:~# virsh dumpxml instance-00000004 | grep address<nova:ip type="fixed" address="10.0.0.11" ipVersion="4"/><address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/><address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/><mac address='fa:16:3e:33:d6:52'/><address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/><address type='usb' bus='0' port='1'/><address type='usb' bus='0' port='2'/><listen type='address' address='192.168.200.195'/><address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/><address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/><address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
root@controller:~#

查看虚拟机的名称,在openstack中创建名称为test

root@controller:~# virsh dumpxml 8|grep nova:name<nova:name>test</nova:name>

删除虚拟机

首先关闭虚拟机,如果关闭不了则强行关机,然后删除虚拟机。

root@controller:~# virsh list --allId   Name                State
-----------------------------------7    instance-00000004   runningroot@controller:~# virsh shutdown 7
Domain '7' is being shutdownroot@controller:~# virsh undefine instance-00000004
Domain 'instance-00000004' has been undefinedroot@controller:~# virsh list --allId   Name   State
--------------------root@controller:~#

但是需要注意的是,不会实际删除openstack中的实例,实例重启后,virsh list又会出现

因为在 OpenStack 中,虚拟机实例的生命周期和 hypervisor 中的虚拟机的生命周期是分开管理的。当使用 virsh undefine 命令删除 hypervisor 中的虚拟机时,并不会影响 OpenStack 数据库中对应虚拟机实例的记录。

在 OpenStack 中,虚拟机的状态和其他元数据被存储在数据库中。即使 hypervisor 中的虚拟机被删除,OpenStack 数据库中的虚拟机记录仍然存在。因此,当重启实例时,OpenStack 会检查数据库中的记录,发现虚拟机实例丢失,并尝试重新创建它。

http://www.lryc.cn/news/368055.html

相关文章:

  • VisionPro的应用和入门教程
  • 整数规划问题算法例子
  • C#启动一个cmd.exe多次随时输入命令并获取输出
  • 持续总结中!2024年面试必问 20 道分布式、微服务面试题(五)
  • Android输入法IME(三)之 管理端(IMMS)启动流程
  • elasticsearch安装与使用(4)-搜索入门
  • 【UML用户指南】-12-对高级结构建模-接口、类型和角色
  • C++笔试强训day42
  • Docker 中运行的 MySQL 数据库与 Docker 外部的管理系统连接
  • 10 设备树
  • 【架构分析】GPU执行GEMM矩阵运算实例演示
  • 从《千脑智能》看大模型
  • k8s Pods漂移时间配置
  • Python - json 美化格式、保存文件
  • 博客目录~
  • RPC RMI 区别以及在java中的应用
  • TCP和udp能使用同一个端口通讯吗
  • 红黑树的介绍与实现
  • easyexcel将csv转为excel处理数字问题
  • DDMA信号处理以及数据处理的流程---随机目标生成
  • 爬虫实现思路
  • 神经网络 torch.nn---Non-Linear Activations (ReLU)
  • 【微服务】使用kubekey部署k8s多节点及kubesphere
  • 目标检测数据集 - 垃圾桶满溢检测数据集下载「包含VOC、COCO、YOLO三种格式」
  • 6.9总结(省赛排位赛1)
  • 58.CountdownLatch
  • Java数据结构准备工作---常用类
  • SD 使用教程
  • Sylar---协程调度模块
  • iOS Hook 崩溃