手动将经典 VM 从 VHD 迁移到新的 ARM 托管磁盘 VM
本部分有助于将现有 Azure VM 从经典部署模型迁移到资源管理器部署模型中的托管磁盘。
计划迁移到托管磁盘
本部分可帮助你针对 VM 和磁盘类型做出最佳决策。
位置
选取 Azure 托管磁盘可用位置。 如果要迁移到高级托管磁盘,还应确保高级存储在计划迁移到的目标区域中可用。
VM 大小
如果要迁移到高级托管磁盘,需要将 VM 的大小更新为该 VM 所在区域中支持高级存储的可用大小。 查看支持高级存储的 VM 大小。 虚拟机大小中列出了 Azure VM 大小规范。 查看适用于高级存储的虚拟机的性能特征并选择最适合工作负荷的 VM 大小。 确保 VM 上有足够的带宽来驱动磁盘通信。
磁盘大小
高级托管磁盘
有 7 种类型的高级托管磁盘可用于 VM,每种磁盘都具有特定的 IOPS 和吞吐量限制。 根据应用程序在容量、性能、可伸缩性和峰值负载方面的需要为 VM 选择高级磁盘类型时,需要考虑这些限制。
| 高级磁盘类型 | P4 | P6 | P10 | P20 | P30 | P40 | P50 |
|---|---|---|---|---|---|---|---|
| 磁盘大小 | 128 GB | 512 GB | 128 GB | 512 GB | 1024 GB (1 TB) | 2048 GB (2 TB) | 4095 GB (4 TB) |
| 每个磁盘的 IOPS | 120 | 240 | 500 | 2300 | 5000 | 7500 | 7500 |
| 每个磁盘的吞吐量 | 每秒 25 MB | 每秒 50 MB | 每秒 100 MB | 每秒 150 MB | 每秒 200 MB | 每秒 250 MB | 每秒 250 MB |
标准托管磁盘
有 7 种类型的标准托管磁盘可用于 VM。 其中每种磁盘都具有不同的容量,但具有相同的 IOPS 和吞吐量限制。 根据应用程序的容量要求,选择标准托管磁盘的类型。
| 标准磁盘类型 | S4 | S6 | S10 | S20 | S30 | S40 | S50 |
|---|---|---|---|---|---|---|---|
| 磁盘大小 | 30 GB | 64 GB | 128 GB | 512 GB | 1024 GB (1 TB) | 2048 GB (2TB) | 4095 GB (4 TB) |
| 每个磁盘的 IOPS | 500 | 500 | 500 | 500 | 500 | 500 | 500 |
| 每个磁盘的吞吐量 | 每秒 60 MB | 每秒 60 MB | 每秒 60 MB | 每秒 60 MB | 每秒 60 MB | 每秒 60 MB | 每秒 60 MB |
磁盘缓存策略
高级托管磁盘
默认情况下,所有高级数据磁盘的磁盘缓存策略都是“只读”,所有附加到 VM 的高级操作系统都是“读写”。 为使应用程序的 IO 达到最佳性能,建议使用此配置设置。 对于频繁写入或只写的磁盘(例如 SQL Server 日志文件),禁用磁盘缓存可获得更佳的应用程序性能。
定价
查看托管磁盘定价。 高级托管磁盘的定价与高级非托管磁盘相同。 但标准托管磁盘的定价与标准非托管磁盘不同。
清单
如果要迁移到高级托管磁盘,请确保它在要迁移到的区域中可用。
决定要使用的新 VM 系列。 如果要迁移到高级托管磁盘,则应支持高级存储。
确定要使用的确切 VM 大小,将迁移到的区域应支持此大小。 VM 大小需要足够大以支持所拥有的数据磁盘数。 例如,如果有四个数据磁盘,则 VM 必须至少有两个核心。 此外,还应考虑处理能力、内存和网络带宽需求。
手边具备当前 VM 详细信息,包括磁盘和对应的 VHD blob 的列表。
让应用程序做好停机准备。 为了执行干净的迁移,必须停止当前系统中的所有处理。 只有这样才能使其处于一致状态,可以将该状态迁移到新的平台。 停机持续时间取决于要迁移的磁盘中的数据量。
迁移 VM
让应用程序做好停机准备。 为了执行干净的迁移,必须停止当前系统中的所有处理。 只有这样才能使其处于一致状态,可以将该状态迁移到新的平台。 停机持续时间取决于要迁移的磁盘中的数据量。
首先,设置通用参数:
PowerShell复制$resourceGroupName = 'yourResourceGroupName' $location = 'your location' $virtualNetworkName = 'yourExistingVirtualNetworkName' $virtualMachineName = 'yourVMName' $virtualMachineSize = 'Standard_DS3' $adminUserName = "youradminusername" $adminPassword = "yourpassword" | ConvertTo-SecureString -AsPlainText -Force $imageName = 'yourImageName' $osVhdUri = 'https://storageaccount.blob.core.chinacloudapi.cn/vhdcontainer/osdisk.vhd' $dataVhdUri = 'https://storageaccount.blob.core.chinacloudapi.cn/vhdcontainer/datadisk1.vhd' $dataDiskName = 'dataDisk1'
使用经典 VM 中的 VHD 创建托管 OS 磁盘。
确保已为 $osVhdUri 参数提供 OS VHD 的完整 URI。 此外,根据要迁移到的磁盘类型(高级或标准),输入 -AccountType 作为 PremiumLRS 或 StandardLRS。
PowerShell复制$osDisk = New-AzureRmDisk -DiskName $osDiskName -Disk (New-AzureRmDiskConfig '
-AccountType PremiumLRS -Location $location -CreateOption Import -SourceUri $osVhdUri) '
-ResourceGroupName $resourceGroupName
将 OS 磁盘附加到新 VM。
PowerShell复制$VirtualMachine = New-AzureRmVMConfig -VMName $virtualMachineName -VMSize $virtualMachineSize
$VirtualMachine = Set-AzureRmVMOSDisk -VM $VirtualMachine -ManagedDiskId $osDisk.Id '
-StorageAccountType PremiumLRS -DiskSizeInGB 128 -CreateOption Attach -Windows
基于数据 VHD 文件创建托管数据磁盘,并将其添加到新 VM。
PowerShell复制$dataDisk1 = New-AzureRmDisk -DiskName $dataDiskName -Disk (New-AzureRmDiskConfig '
-AccountType PremiumLRS -Location $location -CreationDataCreateOption Import '
-SourceUri $dataVhdUri ) -ResourceGroupName $resourceGroupName $VirtualMachine = Add-AzureRmVMDataDisk -VM $VirtualMachine -Name $dataDiskName '
-CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1
通过设置公共 IP、虚拟网络和 NIC 创建新 VM。
PowerShell复制$publicIp = New-AzureRmPublicIpAddress -Name ($VirtualMachineName.ToLower()+'_ip') '
-ResourceGroupName $resourceGroupName -Location $location -AllocationMethod Dynamic $vnet = Get-AzureRmVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $resourceGroupName $nic = New-AzureRmNetworkInterface -Name ($VirtualMachineName.ToLower()+'_nic') '
-ResourceGroupName $resourceGroupName -Location $location -SubnetId $vnet.Subnets[0].Id '
-PublicIpAddressId $publicIp.Id $VirtualMachine = Add-AzureRmVMNetworkInterface -VM $VirtualMachine -Id $nic.Id New-AzureRmVM -VM $VirtualMachine -ResourceGroupName $resourceGroupName -Location $location
Note
本指南可能未涵盖支持应用程序所要执行的其他步骤。
后续步骤
- 连接到虚拟机。 有关说明,请参阅如何连接并登录到运行 Windows 的 Azure 虚拟机。
立即访问http://market.azure.cn
手动将经典 VM 从 VHD 迁移到新的 ARM 托管磁盘 VM的更多相关文章
- 将 Azure VM 迁移到 Azure 中的托管磁盘
Azure 托管磁盘无需单独管理存储帐户,从而简化了存储管理. 还可以将现有的 Azure VM 迁移到托管磁盘,以便受益于可用性集中 VM 的更佳可靠性. 它可确保可用性集中不同 VM 的磁盘完全相 ...
- Azure ARM (13) 从现有VHD文件,创建新的ARM VM
<Windows Azure Platform 系列文章目录> 本文参考了Git Hub的ARM Template: https://github.com/Azure/azure-quic ...
- Azure VM从ASM迁移到ARM(二)
在一中讨论了通过Azure平台的工具进行迁移的方案. 本文将讨论另外一种迁移方式.通过磁盘复制的方式,把部分VM迁移到ARM的Managed Disk模式. 一. 获得ASM中Disk的信息 在管理 ...
- Azure VM从ASM迁移到ARM(一)
Azure的IaaS有ASM和ARM两个版本,ARM的一些优点前面已经聊过很多了.ARM有更细的管理颗粒度,更多的功能等. 如果想从ASM迁移到ARM,目前有两类方法可以实现: 1. Azure平台支 ...
- Windows Azure Virtual Machine (38) 跨租户迁移使用托管磁盘的Azure虚拟机
<Windows Azure Platform 系列文章目录> 背景介绍: (1)我们建议使用Azure Manage Disk托管磁盘来创建Azure虚拟机 (2)使用托管磁盘的好处是, ...
- Azure ARM (20) 将非托管磁盘虚拟机(Unmanage Disk),迁移成托管磁盘虚拟机(Manage Disk)
<Windows Azure Platform 系列文章目录> PowerShell我已经提交到GitHub: https://github.com/leizhang1984/AzureC ...
- Azure Powershell部署使用平台映像的托管Windows VM及相关问题说明
1.脚本背景信息: a.使用平台镜像(Windows Server 2016 zh-cn)部署高性能托管磁盘虚拟机 b.虚拟机默认不开启Boot诊断 c.添加三块已经创建好的数据磁盘 d.添加已创建好 ...
- 将 WPF、UWP 以及其他各种类型的旧样式的 csproj 文件迁移成新样式的 csproj 文件
写过 .NET Standard 类库或者 .NET Core 程序的你一定非常喜欢微软为他们新开发的项目文件(对于 C#,则是 csproj 文件).这种文件非常简洁,组织一个庞大的项目也只需要聊聊 ...
- Solr4.2迁移到新项目下异常:java.lang.NoSuchMethodError: org.apache.http.conn.scheme.Scheme.<init>
由于业务调整,需要将solr搜索项目集成到另一个项目下成为一个模块,原项目运行异常,但是迁移到新项目后出现异常如下: 原因:引入的httpclient.jar冲突 解决方法:删除冲突的jar
随机推荐
- Django model update的各种用法介绍
Django开发过程中对表(model)的增删改查是最常用的功能之一,本文介绍笔者在使用model update过程中遇到的那些事 model update常规用法 假如我们的表结构是这样的 clas ...
- [原创]K8_Delphi源码免杀系列教程
[原创]K8_Delphi源码免杀系列教程[2014] 虽是2014年的,但免杀思路方法并未过时 比如函数动态调用\代码注释法等至今依然有效 链接:https://pan.baidu.com/s/1H ...
- ThreadLocal父子线程传递实现方案
介绍InheritableThreadLocal之前,假设对 ThreadLocal 已经有了一定的理解,比如基本概念,原理,如果没有,可以参考:ThreadLocal源码分析解密.在讲解之前我们先列 ...
- Maven setting配置镜像仓库
国内Maven镜像仓库值得收藏 1.配置IDE构建的Maven存放目录(解压目录) 2.配置IDE的User setting file路径,修改setting配置文件 配置本地仓库 <!-- ...
- Spring Session - 使用Redis存储HttpSession例子
目的 使用Redis存储管理HttpSession: 添加pom.xml 该工程基于Spring Boot,同时我们将使用Spring IO Platform来维护依赖版本号: 引入的依赖有sprin ...
- JavaWeb学习 (三)————Tomcat服务器学习和使用(二)
一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:
- [NOI 2015]品酒大会
Description 题库链接 \(n\) 杯鸡尾酒排成一行,其中第 \(i\) 杯酒 (\(1 \leq i \leq n\)) 被贴上了一个标签 \(s_i\),每个标签都是 \(26\) 个小 ...
- 牛刀小试MySQL--innodb_flush_log_at_trx_commit小结
参数名:innodb_flush_log_at_trx_commit 参数值: 0 事务提交的时候,不会去刷日志缓存区,也不会立马写入至日志文件中.这种设置最危险.如果数据库挂了且运气不好,数据库的最 ...
- 共享内存 - shmget填坑记
1. 问题引出 最近有个项目,需要两个进程之间传递大量的数据,因此考虑采用了共享 内存机制+信号同步,两个进程,笔者和另外一程序员开发,协议都定好了,开发很顺利. 等到我们联合调试的时候,问题出现了, ...
- 如何将自定义的搜索参数便捷的添加到js方式的bootstrap table的参数中
页面: <div> <form id="exp_form"> 查询参数... <button type="button" oncl ...