KVM虛擬化運維指南:修改虛擬機名稱
在KVM(Kernel-based Virtual Machine)虛擬化環境中,可能會遇到虛擬機創建后,由于規劃問題而修改虛擬機名稱等需求,本文提供生產環境下了詳細的修改步驟
需求:將192.168.40.152-kylinsp3-prod-02名稱修改為192.168.40.152-kylinsp3-prod-03
[root@localhost ~]# virsh list
Id 名稱 狀態
--------------------------------------------------
1 192.168.40.150-kylinsp3-prod-01 運行中
3 192.168.40.151-kylinsp3-prod-02 運行中
4 192.168.40.152-kylinsp3-prod-02 運行中
主要步驟
1?? 備份原VM的XML配置
2?? 重命名磁盤文件
3?? 修改 XML 配置應用新名稱
4?? 取消原 VM 定義,避免沖突
5?? 重新定義并啟動新VM
步驟 1:導出原 VM 的 XML 配置
首先,使用 virsh dumpxml
命令導出當前虛擬機的 XML 配置文件:
virsh dumpxml 192.168.40.152-kylinsp3-prod-02 > /tmp/new-vm152.xml
然后,關閉該虛擬機
[root@localhost ~]# virsh shutdown 192.168.40.152-kylinsp3-prod-02
域 192.168.40.152-kylinsp3-prod-02 被關閉
[root@localhost ~]# virsh list --all
Id 名稱 狀態
--------------------------------------------------
1 192.168.40.150-kylinsp3-prod-01 運行中
3 192.168.40.151-kylinsp3-prod-02 運行中
- 192.168.40.152-kylinsp3-prod-02 關閉
此時,虛擬機的狀態應變為 shut off
。
步驟 2:找到原磁盤文件
使用 virsh dumpxml
或 ls
命令找到虛擬機的磁盤文件路徑:
步驟 3:重命名磁盤文件
將磁盤文件重命名
注:文件屬性需要為為qemu:root,否則可能會啟動失敗
步驟 4:修改 XML 配置
使用 vi
編輯導出的 XML 文件
vi /tmp/new-vm152.xml
修改 1:調整虛擬機名稱
找到 <name>
標簽,并修改為新 VM 的名稱
<name>192.168.40.152-kylinsp3-prod-03</name>
修改 2:更新磁盤文件為新名稱
<source file='/data/qcow2/libvirt/images/192.168.40.152-kylinsp3-prod-03'/>
修改 3:刪除 UUID 避免沖突
找到 <uuid>
標簽,刪除或注釋,后邊會自動生成新的uuid
<uuid>7fa9bd2a-d5b5-4c01-9a14-0b7739f34a36</uuid>
保存并退出。
步驟 5:取消原 VM 定義
刪除舊的 VM 定義
[root@localhost images]# virsh undefine 192.168.40.152-kylinsp3-prod-02
error: Failed to undefine domain 192.168.40.152-kylinsp3-prod-02
error: 所需操作無效:cannot undefine domain with nvram
需要加上參數--nvram
[root@localhost images]# virsh undefine 192.168.40.152-kylinsp3-prod-02 --nvram
Domain 192.168.40.152-kylinsp3-prod-02 has been undefined
注意:如果 VM 使用了 UEFI 啟動,則必須添加
--nvram
選項,否則無法刪除。
步驟 6:導入新 XML 并定義 VM
使用修改后的 XML 重新定義虛擬機
virsh define /tmp/new-vm152.xml
驗證是否成功
步驟 7:啟動新虛擬機
virsh list --all
virsh start 192.168.40.152-kylinsp3-prod-03
如果一切正常,虛擬機應進入 running
狀態。
總結
以上方法通過 XML 配置文件導出 + 修改 + 重新定義的方式,實現KVM 虛擬機名稱和磁盤文件的修改。