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上。

  • 相关阅读:
    设计模式之一(策略模式)
    电脑开机进入不了XP界面
    IBM X系列笔记本通过U盘安装系统方法全攻略
    DELPHI 访问其它电脑文件(局域网)
    笔记本维修小插曲 屏幕不亮处理方式
    delphi 笔记
    电脑小子的新婚夜
    如何得到动态链接库的输出函数(delphi tdump.exe)
    sql server重复数据处理
    如何使用jQuery向asp.net Mvc传递复杂json数据Filter篇
  • 原文地址:https://www.cnblogs.com/skyshao/p/11389018.html
Copyright © 2011-2022 走看看