zoukankan      html  css  js  c++  java
  • vmware修改虚拟机名称

    原虚拟机名称为:OLD_VMNAME
    需要修改成:NEW_VMNAME

    vmware创建虚拟机时,会以虚拟机名称存储对应的磁盘和配置文件。如果只在vcenter界面上修改虚拟机名称存储端名称是不会修改的(只会修改.vmx文件中的displayName),这样对以后的运维留下隐患。可通过以下方式将存储端修改成对应的名称。


    一、虚拟机关机,并从清单移除


    二、修改虚拟机目录名称
    ssh 登录宿主机,进入虚拟机所在的存储目录
    mv OLD_VMNAME/ NEW_VMNAME
    cd NEW_VMNAME


    三、修改文件夹下的所有虚拟机相关的文件名称
    mv OLD_VMNAME.vmx NEW_VMNAME.vmx
    mv OLD_VMNAME.vmdk NEW_VMNAME.vmdk
    mv OLD_VMNAME-flat.vmdk NEW_VMNAME-flat.vmdk
    ...


    四、修改虚拟机配置文件(xxx.vmx)
    sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME.vmx

    五、修改磁盘配置文件
    磁盘相关的文件是以.vmdk结尾,大致有以下几类

    5.1 修改系统盘配置文件
    sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME.vmdk

    #如果有快照则同样需要修改快照的配置(名称一般为VM_NAME-00000N.vmdk)
    sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-000002.vmdk
    sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-000003.vmdk
    ...
    sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-00000N.vmdk


    5.2 修改数据盘配置文件(如果无数据盘,此步骤可忽略)
    sed -i 's#OLD_VMNAME_N#NEW_VMNAME_N#g' NEW_VMNAME_M.vmdk

    #如果数据盘有快照则同样需要修改快照的配置(名称一般为VM_NAME_M-00000N.vmdk)
    sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-000002.vmdk
    sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-000003.vmdk
    ...
    sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-00000N.vmdk


    六、修改快照配置文件
    VMNAME.vmsd为所有快照的概要信息,记录了快照的目录结构,如下:

    VMNAME-SnapshotN.vmsn为每个快照详细信息(N代表第几个快照)。

    6.1 修改vmsd配置文件
    sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME.vmsd

    6.2 修改.vmsn配置文件
    sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-Snapshot1.vmsn
    sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-Snapshot3.vmsn
    ...
    sed -i 's#OLD_VMNAME#NEW_VMNAME#g' NEW_VMNAME-SnapshotN.vmsn


    注:对于有快照的虚拟机以上步骤在VSPHERE6.5的环境操后,在切换快照时任务里提示“无法访问文件 snapshot”,查看日志(/storage/log/vmware/vpxd/vpxd.log)报如下错误:
    -----------------------------------------------------------------------------------------------------------------------------------------------------
    VpxLRO] -- ERROR task-10169 -- vm-439 -- vim.VirtualMachine.revertToCurrentSnapshot: vim.fault.CannotAccessFile:
    --> Result:
    --> (vim.fault.CannotAccessFile) {
    --> faultCause = (vmodl.MethodFault) null,
    --> faultMessage = (vmodl.LocalizableMessage) [
    --> (vmodl.LocalizableMessage) {
    --> key = "msg.snapshot.vigor.revert.error",
    --> arg = (vmodl.KeyAnyValue) [
    --> (vmodl.KeyAnyValue) {
    --> key = "1",
    --> value = "msg.snapshot.error-DUMPER"
    --> }
    --> ],
    --> message = "An error occurred while reverting to a snapshot: Unable to open the snapshot file."
    --> }
    --> ],
    --> file = "snapshot"
    --> msg = "Unable to access file snapshot"
    -------------------------------------------------------------------------------------------------------------------------------------------------------

    由于xxx-SnapshotX.vmsn文件中有部分是乱码,不清楚具体是什么内容,推测和乱码内容有关。

    解决方法:
    1. 创建新的快照;
    2. 利用新快照文件(.vmsn)替换原有的快照文件(cp new.vmsn old.vmsn);(替换去需要记录scsi0:0.fileName信息)
    3. 替换完成后,修改快照点的parent磁盘;
    scsi0:0.fileName = "VMNAME-00000X.vmdk"


    顺便说下快照恢复的过程:
    1. 当恢复某个快照时,vmware首先会读取该快照配置文件(VMNAME-SnapshotN.vmsn)中scsi0:0.fileName(disk1)
    2. vmware会修改虚拟机配置文件(VMNAME.vmx),生成新的磁盘disk2,磁盘名称为VMNAME-00000N.vmdk,并修改相应的配置(scsi0:0.fileName = "VMNAME-00000N.vmdk")

    disk2的parent磁盘为disk1(通过disk2磁盘描述文件可以查看),新的数据会落在disk2上。

  • 相关阅读:
    61. 最长不含重复字符的子字符串
    60. 礼物的最大价值 (未理解)
    59. 把数字翻译成字符串
    58. 把数组排成最小的数
    57. 数字序列中某一位的数字 (不懂)
    spring data jpa 官方文档
    idea 编译报错 源发行版 1.8 需要目标发行版 1.8
    idea maven 依赖报错 invalid classes root
    solr
    spring boot 官方文档
  • 原文地址:https://www.cnblogs.com/skyshao/p/11389018.html
Copyright © 2011-2022 走看看