zoukankan      html  css  js  c++  java
  • 捕获arm非托管磁盘虚拟机,并进行还原

    背景:非托管磁盘虚拟机“hlmcen69n1”,附加了一块100GB的数据磁盘。由于arm非托管磁盘机器无法通过Portal界面直接“Capture”,故只能通过命令行的方式进行捕获并还原,以下是通过Powershell命令进行的操作

    1.在虚拟机内部执行一般化的操作【Linux机器:waagent -deprovision+user; Windows机器:sysprep】,本文以Linux机器为例进行说明

    Linux机器:

    Windows机器:

    2.在Portal界面关闭该虚拟机,以便释放资源

     

     3.通过Azure Powershell对虚拟机执行“Generalized”标记

    PS C:Usershe.liming> Set-AzureRmVM -ResourceGroupName hlmrgn -Name hlmcen69n1 -Generalized
    OperationId :
    Status      :
    StartTime   :
    EndTime     :
    Error       :

    4.执行完一般化的操作后,虚拟机就无法启动了

     

     5.执行以下命令,捕获虚拟机【目前测试,捕获完成后,原虚拟机也未被删除】

    PS C:Usershe.liming> Save-AzureRmVMImage -ResourceGroupName hlmrgn -Name hlmcen69n1 -DestinationContainerName “vhdscature” -VHDNamePrefix "capture"
    OperationId :
    Status      : Succeeded
    StartTime   : 2017/9/26 17:32:24
    EndTime     : 2017/9/26 17:32:25
    Error       :

    6. 执行完上述操作后,原虚拟机使用的存储账号中会生产一个container,名称为“system”,在该容器的下级目录中可以找到捕获后生成的VHD文件【包含数据磁盘及操作系统磁盘】及json文件

    7.将上述脚本文件download到本地,查看其内容

        a.可以根据需求,更改存储账号,容器及OSdisl名称

        b.注意到Json脚本中有一个参数为“networkInterfaceId”,需要事先创建一个网络接口,并将其对应的资源ID拷贝出来,待创建虚拟机时使用【备注:创建网络接口时,默认情况下public IP是Disabled,最好手动Enabled,否则创建的虚拟机没有公网IP】

     

      c.可以通过json脚本修改虚拟机size

     8.使用调整过的json模板创建新的机器"hlmcen69n2"

    PS C:Usershe.liming> New-AzureRmResourceGroupDeployment -ResourceGroupName hlmrgn -TemplateFile "C:Usershe.limingDesktopcapture-hlmcen69n1.json"
    
    cmdlet New-AzureRmResourceGroupDeployment at command pipeline position 1
    Supply values for the following parameters:
    (Type !? for Help.)
    vmName: hlmcen69n2
    adminUserName: stone
    adminPassword: ************
    networkInterfaceId: /subscriptions/******/resourceGroups/hlmrgn/providers/Microsoft.Network/networkInterfaces/hlmcen69n2-nic
    
    
    DeploymentName          : capture-hlmcen69n1
    ResourceGroupName       : hlmrgn
    ProvisioningState       : Succeeded
    Timestamp               : 2017/9/27 2:27:18
    Mode                    : Incremental
    TemplateLink            :
    Parameters              :
                              Name             Type                       Value
                              ===============  =========================  ==========
                              vmName           String                     hlmcen69n2
                              vmSize           String                     Standard_A1
                              adminUserName    String                     stone
                              adminPassword    SecureString
                              networkInterfaceId  String                  /subscriptions/******/resourceGroups/hlmrgn/providers/Microsoft.Network/networkInterfac
    
    Outputs                 :
    DeploymentDebugLogLevel :

     9.新部署的机器“hlmcen69n2”,可以成功连接使用,并且数据磁盘也会成功还原

  • 相关阅读:
    ionic serve 报【ionic-app-scripts' 不是内部或外部命令 】问题解
    Angular4.x+Ionic3 踩坑之路之打包时出现JAVASCRIPT HEAP OUT OF MEMORY的几种解决办法
    webpack打包---报错内存溢出javaScript heap out of memory
    IDEA版本控制工具VCS中使用Git,以及快捷键总结(不使用命令)
    详解Intellij IDEA中.properties文件中文显示乱码问题的解决
    PostgreSQL判断一个表是否存在
    关于Hadoop结合RDBMS应用的一些思考
    hadoop的hdfs文件操作实现上传文件到hdfs
    用hdfs存储海量的视频数据的设计思路
    hbase+hive应用场景
  • 原文地址:https://www.cnblogs.com/stonehe/p/7598063.html
Copyright © 2011-2022 走看看