如何重命名KVM来宾虚拟机

时间:2020-03-21 11:44:50  来源:igfitidea点击:

本教程将教我们如何在Linux中从命令行重命名KVM来宾虚拟机。
我的KVM服务器中有几个运行不同Linux风格的虚拟机。

为了便于参考,我总是使用当前在该VM上运行的OS版本或者应用程序来命名每个VM。
例如,如果一个虚拟机以CentOS 8最低版本运行,我将其命名为“ centos8”。
如果在CentOS 8 VM上安装了Apache Web服务器,则KVM guest虚拟机的名称将为“ apache_centos8”,依此类推。

今天,我想在CentOS 8 VM上测试Nginx,因此将其重命名为“ nginx_centos8”,如下所述。

在Linux中重命名KVM Guest虚拟机

我们可以使用virsh命令行实用程序以两种方式在KVM上更改VM的名称:

  • 使用“ domrename”命令,
  • 手动修改VM的XML配置文件。

首先,我们将了解如何使用“ virsh domrename”命令重命名KVM VM。

1.使用“ virsh domrename”重命名KVM虚拟机

“ virsh domrename”命令用于重命名域。
该命令将当前域名更改为新名称,而无需在配置文件中进行任何更改。

“ virsh domrename”命令的典型用法是:

virsh domrename <old-name> <new-name>

请注意,域必须是非活动的,并且没有快照或者检查点。

首先,请确保KVM来宾虚拟机已关闭。

$virsh list --all

输出示例:

Id   Name           State
------------------------------
 -    centos8        shut off
 -    centos8-uefi   shut off

如我们所见,我有两个KVM guest虚拟机,并且它们都已关闭电源。

如果虚拟机正在运行,只需使用以下命令将其关闭:

$virsh shutdown centos8

现在,我将使用“ domrename”命令将“ centos8”来宾计算机重命名为“ nginx_centos8”,如下所示:

$virsh domrename centos8 nginx_centos8

成功重命名后,我们应该看到类似以下的输出:

Domain successfully renamed

现在,验证虚拟机的名称是否确实已更改:

$virsh list --all

输出示例:

Id   Name            State
-------------------------------
 -    centos8-uefi    shut off
 -    nginx_centos8   shut off

我们也可以从Virt-manager应用程序中进行验证。

打开Virt-manager,然后双击VM,然后在菜单列中单击“显示虚拟硬件详细信息”图标。
我们将在“概述”部分下看到虚拟机的名称。

我们成功地将名为“ centos8”的虚拟机重命名为““ nginx_centos8”。
这只是一个命令,非常容易记住。

接下来,我们将看到手动方式,该方式需要在VM的XML配置文件中进行一些编辑。

2.通过修改其XML文件来重命名KVM虚拟机

确保要重命名的虚拟机已关闭。

$virsh list --all

如果虚拟机当前正在运行,只需使用以下命令将其关闭:

$virsh shutdown centos8

现在,使用以下命令将旧域(VM)配置详细信息导出到新域:

$virsh dumpxml centos8 > nginx_centos8.xml

上面的命令会将旧配置复制到名为“ nginx_centos8.xml”的新配置文件中,并将其保存在当前目录中。

取消定义旧域,例如:删除现有的旧域配置:

$virsh undefine centos8

输出示例:

Domain centos8 has been undefined

使用我们喜欢的文本编辑器编辑新的配置文件:

$nano nginx_centos8.xml

转到<name> </name>字段,然后根据需要进行更改:

domain type='kvm'>
  <name>nginx_centos8</name>
  <uuid>270437c4-8dfb-40d1-a2d1-c497015c0f22</uuid>
  <metadata>
[...]

使用新的XML配置文件定义新的KVM虚拟客户机:

$virsh define nginx_centos8.xml

输出示例:

Domain nginx_centos8 defined from nginx_centos8.xml

最后,使用新的XML配置启动新的来宾计算机:

$virsh start nginx_centos8

输出示例:

Domain nginx_centos8 started

验证新的KVM虚拟机是否正在运行:

$virsh list --all

输出示例:

Id   Name            State
-------------------------------
 2    nginx_centos8   running
 -    centos8-uefi    shut off

我们还可以按照上一节中所述,从Virt-manager图形界面验证是否。