使用QEMU/KVM虚拟化平台启动虚拟机,通常需要手动输入一行很长的命令,里面可能有几十个参数,要想启动多个虚拟机,以及监视多个虚拟机运行状态会非常困难,这时候就需要virsh这样一个虚拟机的管理工具。

由于前面的文章已经介绍了如何安装QEMU以及如何启动虚拟机,这里就直接从QEMU/KVM安装好以后的地方开始。

1.安装libvirt

在ubuntu系统中,使用apt-get安装的libvirt还是1.3版本的,有很多兼容性的问题。这里选择源码安装libvirt。

先卸载系统默认安装的libvirt(如果没有安装忽略这一步):

sudo apt-get purge libvirt

安装所需环境(其他需要的configure的时候会提示安装的):

sudo apt-get install libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 libpolkit-gtk-mate-1-0 libxml++2.6-dev libdevmapper-dev libnl-3-dev libgnutls-dev libpciaccess-dev libnl-route-3-dev libyajl-dev xsltproc libxml2-utils

我这里下载的是 libvirt-4.10.0.tar.xz,在ubuntu系统中解压,编译,安装:

tar xvJf libvirt-4.10.0.tar.xz

cd libvirt-4.10.0/

./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc #不指定的话默认会给安装到/usr/local目录下

make && make install

安装完成后检查是否安装成功:

# which libvirtd

/usr/sbin/libvirtd

# libvirtd --version

libvirtd (libvirt) 4.10.0

# which virsh

/usr/bin/virsh

# virsh -v

4.10.0

安装成功后启动libvirtd服务:

sudo systemctl restart libvirtd

2.通过虚拟机模板xml文件启动虚拟机

用virsh启动虚拟机需要有对应的xml文件,virsh可以生成这些模板文件。

如何用iso创建虚拟磁盘直接使用qemu-img即可,之前文章讲过。这里直接默认虚拟磁盘已创建并完成安装。使用vhost-user网络接口的虚拟机xml文件如下:

demovm

4a9b3f53-fa2a-47f3-a757-dd87720d9d1d

4194304

4194304

2

4096

hvm

destroy

restart

destroy

/usr/bin/qemu-system-x86_64

这个xml文件给虚拟机配置了各种物理设备信息:给虚拟机起名为demovm,配置了绑定物理核的两块虚拟CPU核,内存使用预分配的1GB大页面,总内存4GB,虚拟磁盘文件在'/var/iso/virtual1.qcow2',使用virtio的vhost-user网络接口,一个串口console和一个VNC端口。虚拟机的xml文件非常复杂,只要配置有一项不兼容或者设置出错就会导致启动失败。

先定义该模板虚拟机:

virsh define test.xml

在已经启动了OVS并开放vhost端口情况下,启动虚拟机:

virsh start demovm

通过virsh list已经可以看到虚拟机运行起来了:

virsh list界面可以看到虚拟机运行状态.png

3.远程终端和关闭虚拟机

开启虚拟机以后,我们可以通过连接到刚才设置的console来访问虚拟机的终端:

virsh console demovm --devname serial0

但是问题出现了,为什么光标一直卡在这,没有进入终端:

光标卡住.png

通过VNC连接到虚拟机(这里用的是tightVNC),终端输入:

sudo systemctl disable systemd-networkd-wait-online

sudo systemctl ensble serial-getty@ttyS0.service

sudo systemctl start serial-getty@ttyS0.service

重新启动虚拟机再次尝试,成功:

登进虚拟机控制台.png

尝试用virsh关闭虚拟机:

virsh shutdown demovm

发现虚拟机并没有关机还在运行,登录VNC查看,原来是图形化界面的原因,开启了用户选择界面:

ubuntu关机用户选择界面.png

查阅资料virsh的shutdown命令是通过acpi传递到虚拟机里的,进入虚拟机终端,进入acpi事件处理目录,修改powerbtn事件处理配置文件:

cd /etc/acpi/events/

vim powerbtn

修改关机为直接关机不用选择.png

重启回到virsh控制台,成功关机。

virsh 关机_使用virsh管理KVM虚拟机相关推荐

  1. virsh 关机_解决virsh 无法重启和关闭KVM虚拟机

    virsh 可以通过 reboot.shutdown 来重启或关闭对应的虚拟机.由于其原理是host通过发送acpi指令来控制虚拟机的电源,如果guest 系统没有安装acpi服务器或该服务器没有启动 ...

  2. RHEL6.2上使用 libvirt创建和管理KVM虚拟机

    在2010年4月发布的RHEL 6.0 Beta版中 ,去掉了Xen,这也许是第一个不包含Xen Hypervisor的知名Linux发行版,之前有报道过Red Hat有可能会在RHEL 6.0中用K ...

  3. linux命令行模式kvm,Linux命令行管理KVM虚拟机【一】 | C/C++程序员之家

    Linux命令行管理KVM虚拟机,几个常见的Linux-KVM虚拟机 管理命令,保存备用,方便快速部署搭建Linux开发环境,搞来搞去还是Linux下虚拟化好使,方便Linux和Win! virsh ...

  4. virsh 关机_聊聊:kvm虚拟机管理命令virsh的基本操作

    原标题:聊聊:kvm虚拟机管理命令virsh的基本操作 Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个 ...

  5. virsh 关机_kvm 虚拟化 virsh shutdown 无法关闭虚拟机

    问题: 安装 kvm 虚拟化并且安装客户机之后,通过 virsh shutdown 命令无法关闭客户机,只能通过 virsh destroy 进行强制关闭电源.虽然这也是一种方法,但是直接断电显然有点 ...

  6. virsh 关机_kvm 虚拟化 virsh shutdown 无法关闭客户机

    问题: 安装 kvm 虚拟化并且安装客户机之后,通过 virsh shutdown 命令无法关闭客户机,只能通过 virsh destroy 进行强制关闭电源.虽然这也是一种方法,但是直接断电显然有点 ...

  7. CentOS7 安装管理KVM虚拟机

    为什么80%的码农都做不了架构师?>>>    系统:CentOS7 64位 [root@e3 ~]# cat /etc/redhat-release CentOS Linux re ...

  8. kvm上添加万兆网卡_烂泥:为KVM虚拟机添加网卡

    本文首发于烂泥行天下. 前几篇文章介绍了有关KVM安装虚拟机以及如何给虚拟机添加硬盘,今天我们再来介绍下有关如何给KVM虚拟机添加网卡. 给KVM虚拟机添加网卡,可以分为两种形式:图形界面的和virs ...

  9. 如何管理kvm虚拟机的时钟源

    概述 有很多时钟源可用于硬件虚拟机 (HVM) 实例,例如 Xen.时间戳计数器 (TSC).高精度事件时间 (HPET) 或高级配置和电源接口规范 (ACPI).对于windows虚拟机 ,最佳实践 ...

最新文章

  1. Reactjs-JQuery-Omi-Extjs-Angularjs对比
  2. h计算机二级基础知识题库,计算机二级考试试题
  3. UA MATH567 高维统计I 概率不等式7 亚指数性与亚指数分布
  4. poj 1981(单位圆覆盖点)
  5. Mysql创建、删除用户、用户管理等相关:转载http://www.cnblogs.com/fly1988happy/archive/2011/12/15/2288554.html
  6. jQuery中的text()、html()和val()以及innerText、innerHTML和value
  7. nginx常用配置目录
  8. POJ 2353 DP
  9. ensp安装对电脑配置要求高吗_直线导轨有哪些安装方法?为什么直线导轨安装精度要求高?...
  10. c++两个文档匹配数据_《搜索和推荐中的深度匹配》——1.2 搜索和推荐中匹配统一性...
  11. python只想调用函数不想执行.py
  12. exe4j打包后 提示 couldn't load main class
  13. 施耐德SoMachine Basic中存在高危漏洞(CVE-2018-7783),可读取目标系统上的任意文件...
  14. NLP的两种工具的java版使用:复旦FudanNLP,中科院计算所ICTCLAS2013
  15. matlab开普勒方程求地球偏心距,第二章-开普勒方程PPT课件
  16. 学习游戏服务器开发必看,C++游戏服务器开发常用工具介绍
  17. 网络综合测试仪 都具备什么功能
  18. 动态因子模型的理论和应用研究读书笔记(朱满洲)
  19. 火山引擎:构建面向异构算力的边缘计算云平台
  20. python实现自动发送qq消息

热门文章

  1. SM2 SM3 SM4简介
  2. 前期调查问卷分析报告
  3. apollo规划部分
  4. Storm 分布式远程过程调用(DRPC)
  5. 显示当前时间的js代码
  6. 一文教会你如何利用领英多账号高效开发客户资源
  7. oracle 建一个自增序列,Oracle中如何创建使用SEQUENCES自增序列
  8. 计算机等级考试,详细说明(图片不显示)
  9. 无线图传mjpg-streamer精简版(开源)
  10. 寒门难再出贵子(3),一篇值得思考的文章