【转载】怎样在Linux中通过命令管理KVM--下篇
2016-03-04 16:19:23
lyh
  • 访问次数: 3
  • 注册日期: 2010-03-16
  • 最后登录: 2017-03-15
  • 当前积分: -4
[i=s] 本帖最后由 lyh 于 2016-3-4 16:20 编辑 [/i]



[attach]15020[/attach]

对于虚拟机来说,它的配置信息被存储在它对应的xml文件中。因此,创建一个虚拟机的第一步就是准备一个与虚拟机对应的 xml 文件。
下面是一个示例 xml 文件,你可以根据需要手动修改它。
[attach]15021[/attach]
[attach]15022[/attach]
上面的主机xml配置文件定义了如下的虚拟机内容。

  • 1GB内存,一个虚拟cpu和一个硬件驱动

  • 磁盘镜像[attach]15023[/attach]

  • 从 CD-ROM 引导

  • 网络:一个桥接到 br0 的虚拟网卡

  • 通过 VNC 远程访问

中的 UUID 字符串可以随机生成。为了得到一个随机的 uuid 字符串,你可能需要使用 uuid 命令行工具。



生成一个主机 xml 配置文件的方式就是通过一个已经存在的虚拟机来导出它的 xml 配置文件。如下所示。







在启动虚拟机之前,我们需要创建它的初始磁盘镜像。为此,你需要使用 qemu-img 命令来生成一个 qemu-kvm 镜像。下面的命令将会创建 10 GB 大小的空磁盘,并且它是 qcow2 格式的。



使用 qcow2 格式的磁盘镜像的好处就是它在创建之初并不会给它分配全部大小磁盘容量(这里是 10 GB),而是随着虚拟机中文件的增加而逐渐增大。因此,它对空间的使用更加有效。
现在,你可以通过使用之前创建的 xml 配置文件启动你的虚拟机了。下面的命令将会创建一个虚拟机,然后自动启动它。
注意: 如果你对一个已经存在的虚拟机执行了了上面的命令,那么这个操作将会在没有任何警告的情况下抹去那个已经存在的虚拟机的全部信息。如果你已经创建了一个虚拟机,你可能会使用下面的命令来启动虚拟机。
使用如下命令确认一个新的虚拟机已经被创建并成功的被启动。
同样,使用如下命令确认你的虚拟机的虚拟网卡已经被成功的添加到了你先前创建的 br0 网桥中。
为了远程访问一个正在运行的虚拟机的控制台,你可以使用VNC客户端。
首先,你需要使用如下命令找出用于虚拟机的VNC端口号。
在这个例子中,用于 alice 虚拟机的 VNC 端口号是 5900。 然后启动一个VNC客户端,连接到一个端口号为5900的VNC服务器。在我们的例子中,虚拟机支持由CentOS光盘文件启动。
下面列出了 virsh 命令的常规用法:
创建客户机并且启动虚拟机:
停止虚拟机并且删除客户机:
关闭虚拟机(不用删除它):
暂停虚拟机:
恢复虚拟机:
访问正在运行的虚拟机的控制台:
设置虚拟机开机启动:
查看虚拟机的详细信息:
编辑虚拟机的配置文件:
上面的这个命令将会使用一个默认的编辑器来调用主机配置文件。该配置文件中的任何改变都将自动被libvirt验证其正确性。
你也可以在一个virsh会话中管理虚拟机。下面的命令会创建并进入到一个virsh会话中:
在 virsh 提示中,你可以使用任何 virsh 命令。
[list=1] [*]
我在创建虚拟机的时候遇到了一个错误:
error: internal error: no supported architecture for os type 'hvm'
如果你的硬件不支持虚拟化的话你可能就会遇到这个错误。(例如,Intel VT或者AMD-V),这是运行KVM所必需的。如果你遇到了这个错误,而你的cpu支持虚拟化,那么这里可以给你一些可用的解决方案:
首先,检查你的内核模块是否丢失。
[/list]

如果内核模块没有加载,你必须按照如下方式加载它。



第二个解决方案就是添加 --connect qemu:///system 参数到 virsh 命令中,如下所示。当你正在你的硬件平台上使用超过一个虚拟机管理器的时候就需要添加这个参数(例如,VirtualBox,VMware)。



当我试着访问我的虚拟机的登陆控制台的时候遇到了错误:



这个错误发生的原因是你没有在你的虚拟机配置文件中定义控制台设备。在 xml 文件中加上下面的内部设备部分即可。



转自:http://xmodulo.com/use-kvm-command-line-debian-ubuntu.html

作者:Dan Nanni

本文由 LCTT[backcolor=rgb(102, 102, 102)][5][/backcolor] 原创编译,Linux中国 荣誉推出

lyh 最后编辑, 2016-03-04 16:19:23