云盘扩展容量后,需扩容分区与文件系统才可使用新增容量空间。由于云盘不可缩容,请在操作前充分评估业务容量需求。
步骤一:扩展云盘容量
前提条件
请确保满足以下任一条件:
云盘已挂载到ECS实例,需要确保实例未过期,且实例状态为运行中(Running)或已停止(Stopped)。
云盘状态为待挂载(Available)。
操作步骤
访问ECS控制台-块存储-云盘。在页面左侧顶部,选择目标资源所在的资源组和地域。
单击目标云盘操作列中的扩容。
强烈建议提前为云盘创建快照备份数据,避免扩容时误操作导致数据丢失,在确定目标盘与须知页面核实信息后,单击创建快照,设置快照名称和保留时间后单击确认。
重要使用快照会产生费用。
创建快照期间无法继续扩容,请等待快照创建完成,刷新页面。当是否支持扩容列变为是后,单击已知晓并备份,继续扩容。
快照创建时长受到数据量和带宽等因素影响,可访问ECS控制台-快照,在目标快照的进度列中查看进度。
在配置扩容方式与容量向导页面,设置扩容参数并确认费用后,单击扩容。
重要扩展云盘容量时会收取新增容量的费用。
参数
说明
扩容后的容量
扩容后容量不允许小于当前容量。
扩容方式
在线扩容(推荐):扩展容量后无需重启实例,修改后的容量直接生效。
离线扩容:云盘处于待挂载状态、实例处于已停止状态或部分实例规格仅支持离线扩展容量。
(条件必选)若为包年包月云盘,请在支付弹框中等待5秒倒计时结束后,单击确认,去支付,完成支付后返回扩容流程,单击已完成支付,关闭。
如果未完成支付,但单击了已完成支付,关闭,无法继续进行扩容操作,需要单击操作列的查看关联订单,完成支付后返回扩容流程。
在确认扩展容量结果页面,当扩展容量完成列显示为成功后,还需要扩容分区与文件系统,才可正常使用新增容量。
步骤二:扩容分区与文件系统
前提条件
操作步骤
本操作以Windows Server 2022为例。
判断是否需要转换分区。
访问ECS控制台-实例。在页面左侧顶部,选择目标资源所在的资源组和地域。
进入目标实例详情页,单击远程连接,选择通过Workbench远程连接。选择连接方式为终端连接,输入账号和密码,登录图形化终端页面。
在Windows Server桌面,右键单击
图标,选择磁盘管理。
在磁盘管理界面,右键单击目标磁盘,在弹出菜单中选择属性。
在弹出的对话框中,单击卷页签,查看磁盘分区形式。
若为MBR分区且扩容后容量大于2TiB请参考转换数据盘的分区类型为GPT并重新分区方案完成后续扩容操作。
扩容分区与文件系统。
扩展容量用于扩容原有分区
在磁盘管理对话框上方选择
,查看未分配的磁盘容量。右键单击磁盘最后一个分区的空白处,选择扩展卷。
由于磁盘的分区和文件系统相互独立,只能对相同磁盘的最后一个分区进行扩容。即示例中,磁盘1的未分配空间仅能扩展至新加卷(E:)。
根据扩展卷向导的默认设置完成扩展卷操作。扩容后,新增容量会自动合入最后一个分区。可根据实际情况检查云盘数据及业务程序是否正常。
扩展容量用于新增分区
在磁盘管理对话框上方选择
,查看未分配的磁盘容量。右键单击未分配区的空白处,选择新建简单卷。
根据新建简单卷向导的默认设置完成新建卷操作。
计费说明
扩展云盘容量时会收取新增容量的费用,计费方式和原云盘一致。
包年包月云盘:容量扩展成功后,将立即以新容量进行计费。按剩余时长补足新旧容量差额费用。
差额费用=包月价格/30天*剩余时长*新增容量。
剩余时长单位为天,数值精确到秒。
按量付费云盘:容量扩展成功后,将立即按新容量进行计费。计费时长以小时为单位折算,下一小时将生成当前小时的消费明细。
如果已购买存储容量单位包SCU,可自动抵扣按量付费云盘账单。更多信息,请参见块存储计费。
相关文档
如果因误操作导致扩容失败,可利用扩容前创建的快照回滚云盘,将云盘数据恢复至扩容前状态,已扩展的容量不会回退。
目前不支持直接对已扩容的云盘进行缩容操作。若需云盘缩容,可通过阿里云服务器迁移中心间接实现。
如果想扩容Linux实例的云盘,请参考扩容云盘(Linux)。
常见问题
扩展云盘容量的常见问题
已知晓并备份,继续扩容置灰,无法选择怎么办?
检查云盘是否正在创建快照。创建快照期间不支持扩容。请等待快照完成后,再执行扩容操作。
已经做了离线扩容,但不想重启实例怎么办?
离线扩容需重启实例生效。若业务不允许重启,但已选择离线扩容,可以通过一次1GiB的在线扩容,使新增容量和之前的离线扩容在线生效。该操作属于二次扩容,会产生额外费用,请根据实际业务需求谨慎操作。
仅支持离线扩容的部分实例规格。
ecs.ebmc4.8xlarge
ecs.ebmhfg5.2xlarge
ecs.ebmg5.24xlarge
ecs.t1
ecs.s1
ecs.s2
ecs.s3
ecs.c1
ecs.c2
ecs.m1
ecs.m2
如何通过API接口扩容云盘?
强烈建议扩展云盘容量前调用API接口CreateSnapshot为云盘创建快照备份数据。
使用快照会产生快照费用。
重要为避免扩容时误操作导致数据丢失,建议提前备份数据。
快照创建完成后,可通过调用API接口ResizeDisk扩展云盘容量。
扩容云盘容量后,还需要扩展分区及文件系统。
调用 RunCommand接口向目标实例发送操作指令。
调用 DescribeInvocations接口查询命令回执。
操作指令:
执行以下命令,判断是否需要转换分区。
Get-Disk
回执参数
参数说明
Number
表示云盘序号。
Partition Style
表示云盘分区格式。
若
Partition Style
为MBR分区且扩容后容量大于2TiB请参考转换数据盘的分区类型为GPT并重新分区方案完成后续扩容操作扩容分区及文件系统
扩展容量用于扩容原有分区
执行以下命令确定待扩容云盘驱动器编号。
<Number>
为上一步获取的云盘序号。Get-Partition -DiskNumber <Number>
回执中,DriveLetter即为待扩容的驱动器号,存在多个分区时,仅能扩容最后一个分区。
执行以下命令扩容分区与文件系统。
<DriveLetter>
为上一步获取的驱动器号。Resize-Partition -DriveLetter <DriveLetter> -Size (Get-PartitionSupportedSize -DriveLetter <DriveLetter>).sizeMax
查看扩容分区及文件系统结果。
执行
Get-Partition -DiskNumber <Number>
查看Size
字段,若分区大小与期望大小基本一致,表明扩容成功。
扩展容量用于新增分区
执行以下命令确定待扩容云盘分区情况。
<Number>
为上一步获取的云盘序号。Get-Partition -DiskNumber <Number>
回执中,DriveLetter为已有分区的驱动器号。
执行以下命令,新建分区。
命令参数
参数说明
-DiskNumber
指定云盘序号Number。
<Number>
请填写为第一步获取的云盘序号。-UseMaximumSize
表示命令使用最大可用容量空间。
-DriveLetter
<DriveLetter>
请设置新建分区的驱动器号,不可与上一步已有分区的驱动器号重复。New-Partition -DiskNumber <Number> -UseMaximumSize -DriveLetter <DriveLetter>
执行以下命令,初始化新分区。
命令参数
参数说明
-DriveLetter
<DriveLetter>
为上一步设置的驱动编号。-FileSystem
<FileSystem>
为文件系统类型,如NTFS。-Confirm:$false
跳过确认提示。
Format-Volume -DriveLetter <DriveLetter> -FileSystem <FileSystem> -Confirm:$false
查看新分区信息。
执行
Get-Partition -DiskNumber <Number>
查看新分区基本信息。
扩容分区与文件系统的常见问题
重新扫描磁盘后未识别未分配空间。
创建时间早于 2019 年 03 月 30 日的实例其 virtio 版本可能低于 58011,需重启实例以识别新增空间。可在 PowerShell 中运行以下命令查看驱动版本,必要时可更新Windows实例的virtio驱动。
[System.Diagnostics.FileVersionInfo]::GetVersionInfo("C:\Windows\System32\drivers\viostor.sys")
数据盘的容量可否用于扩展其他数据盘或系统盘?
由于云盘的分区与文件系统相互独立,只能对相同云盘的最后一个分区进行扩容,无法将该容量分配至其他云盘。因此数据盘的容量不可用于扩展其他数据盘或系统盘。
出现报错信息:“无法扩展该卷,因为群集的数量将超过文件系统支持的最大群集数量。”
原因:初始化云盘时,未正确设置分配单元大小。具体云盘容量限制,请参看NTFS概述。
对于分配单元大小:
若要扩容至16TiB~32TiB(包括)时,需保证初始化时已设置为8192。
若要扩容至32TiB~64TiB(包括)时,需保证初始化时已设置为16K。
解决方案:
重要分配单元大小在云盘初始化后无法更改。
查看待扩容云盘的分配单元大小。
登录实例,进入powershell命令行界面,运行以下命令,获取分配单元大小。以查看D盘为例:
输出结果中的每个簇字节数或每群集字节数即分配单元大小。
fsutil fsinfo ntfsinfo D:
根据实际需求,选择解决方案。
创建新盘进行数据拷贝
为当前实例新建目标容量的空数据盘。
在初始化数据盘时选择正确的分配单元大小。
将原盘数据手动拷贝至新盘。
验证业务是否恢复。操作完成后,建议重启相关服务并检查业务是否正常运行。
扩展容量用于新增分区
在磁盘管理对话框上方选择
,查看未分配的磁盘容量。右键单击未分配区的空白处,选择新建简单卷。
根据新建简单卷向导的默认设置完成新建卷操作。
转换分区类型并重新分区的API指令。
重要转换过程中,云盘数据不可用,可能影响业务。建议规划停机窗口,先停止服务,待转换完成并恢复数据后再继续运行。
步骤一:转换分区格式并重新分区
Windows转换分区过程中,需要删除卷,删除卷会清除该卷上的所有数据,在分区转换前请调用API接口CreateSnapshot为云盘创建快照备份数据。分区转换成功后,需通过快照恢复数据。
调用 RunCommand接口向目标实例发送操作指令。
调用 DescribeInvocations接口查询命令回执。
操作指令
转换分区格式
执行以下命令获取目标云盘序号Number和云盘总容量Tolal Size。
Get-Disk
执行以下命令确定目标云盘分区编号PartitionNumber。
<Number>
为上一步获取的云盘序号。Get-Partition -DiskNumber <Number>
执行以下命令,删除目标云盘分区。
重要删除卷会清除该卷上的所有数据,请务必在删除卷前,调用API接口CreateSnapshot创建快照备份数据。
命令参数
参数说明
-DiskNumber
<Number>为第一步获取的云盘序号。
-PartitionNumber
<PartitionNumber>为上一步获取的分区编号。
-Confirm:$false
跳过确认提示。
Remove-Partition -DiskNumber <Number> -PartitionNumber <PartitionNumber> -Confirm:$false
删除目标云盘的全部分区后,转换分区类型
执行以下命令进入diskpart工具界面。
diskpart
执行以下命令列出所有磁盘信息。
list disk
执行以下命令选择需要转换的磁盘。
<Number>为第一步获取的云盘序号。
select disk <Number>
执行以下命令将分区类型转换为gpt。
convert gpt
执行以下命令退出diskpart工具
exit
查看是否转换成功。
执行
Get-Disk
,若目标磁盘的Partition Style
为GPT表示分区转换成功。
重新分区
执行以下命令重新分区。
命令参数
参数说明
-DiskNumber
<Number>为第一步获取的云盘序号。
-Size
<Size>自定义新建分区的大小,如40 GB。
-DriveLetter
<DriveLetter>自定义新建分区的驱动器编号。
-FileSystem
<FileSystem>设置新分区的文件系统类型,如NTFS。
New-Partition -DiskNumber <Number> -Size <Size> -DriveLetter <DriveLetter> | Format-Volume -FileSystem <FileSystem>
执行
Get-Partition -DiskNumber <Number>
查看新建分区信息。
步骤二:恢复云盘数据
调用CreateDisk接口利用快照创建数据盘。
调用AttachDisk将创建的数据盘挂载至ECS实例拷贝数据,请勿使用快照回滚,以免回滚至MBR格式。