一、注意事项
·云硬盘仅支持扩容,不支持缩容。
·正常生命周期的云硬盘才支持扩容,已经隔离的云硬盘不支持扩容。
·云硬盘扩容完成后,还需要完成扩容分区和文件系统等操作后新增容量才可以被实例使用。
二、通过控制台扩容云硬盘
注意:若你的云服务器上已挂载了多块容量及类型均相同的云硬盘,则可参见 区分数据盘 操作进行区分。选定需扩容的数据盘后,再通过以下方式进行扩容。
通过云服务器控制台扩容(推荐)通过云硬盘控制台扩容1. 登录 云服务器控制台。2. 选择目标云服务器所在行的更多 > 资源调整 > 云硬盘扩容。3. 在弹出的云硬盘扩容窗口中选择需扩容的云硬盘,并单击下一步。4. 在调整容量步骤中,设置目标容量(必须大于当前容量),并单击下一步。5. 在扩容分区及文件系统步骤中,查阅注意事项,单击确定。6. 根据计费方式的不同,你可能需要选择支付方式并确认支付。7. 根据目标云服务的操作系统类型,你需要继续操作 扩容分区及文件系统(Windows)或 扩容分区及文件系统(Linux)将新增容量使用起来。1. 登录 云硬盘控制台。2. 选择目标云硬盘的更多 > 扩容。3. 在调整容量步骤中,设置目标容量(必须大于当前容量),并单击下一步。4. 在扩容分区及文件系统步骤中,查阅注意事项,单击确定。5. 根据计费方式的不同,你可能需要选择支付方式并确认支付。6. 根据目标云服务的操作系统类型,你需要继续操作 扩容分区及文件系统(Windows)或 扩容分区及文件系统(Linux)将新增容量使用起来。
三、通过 API 扩容云硬盘
·若需要扩容的云硬盘是弹性数据盘,你可以使用 ResizeDisk 接口扩容指定的云硬盘,具体操作请参见 扩容云硬盘(ResizeDisk)
·若需要扩容的云硬盘是系统盘 或 2018年及以前创建的非弹性数据盘,你可以使用 ResizeInstanceDisks 接口扩容指定的非弹性云硬盘,具体操作请参见 扩容实例磁盘(ResizeInstanceDisks)。
四、区分数据盘
你可根据云服务器实际使用的操作系统,选择查看方式:
LinuxWindows1. 登录 Linux 实例。2. 执行以下命令,查看到云硬盘与设备名之间的对应关系。ls -l /dev/disk/by-id返回结果如下:其中,disk-xxxx 为云硬盘 ID,你可前往 云硬盘控制台 查看。1. 登录 Windows 实例。2. 右键单击 ,选择终端或终端管理员。3. 执行以下命令,查看云硬盘 ID 与盘符的对应关系:Get-Disk | Get-Partition | Where-Object DriveLetter | Select-Object DriveLetter, DiskNumber, @{N='DiskID';E={(Get-Disk $_.DiskNumber).SerialNumber}}, @{N='SizeGB';E={[math]::Round($_.Size/1GB,2)}} | Format-Table -AutoSize返回结果如下:其中,disk-xxxx 为云硬盘 ID,你可前往 云硬盘控制台 查看。注意: Windows Server 2012 以下版本(如 2008 R2)不支持本命令,请使用 CMD 命令 wmic diskdrive get caption,deviceid,serialnumber 替代。
五、查看实例 cloudinit 配置
你可根据云服务器实际使用的操作系统,选择查看方式:
查看 Linux 实例 cloudinit 配置查看 Windows 实例 cloudinit 配置
完成扩容操作后,请 登录 Linux 实例 确认 /etc/cloud/cloud.cfg 是否包含 growpart 及 resizefs 配置项。
·是。如果扩容的是系统盘,且无法进行在线扩容,需要重启机器, 系统启动过程 cloud-init 会调用 growpart/resizefs 命令完成扩容。如下:
·growpart:扩展分区大小到磁盘大小。
·resizefs:扩展调整/分区文件系统到分区大小。
·否,则需根据目标云服务的操作系统类型,手动扩容文件系统及分区。你需要执行 扩展分区及文件系统(Linux),将扩容部分的容量划使用起来。
完成扩容操作后,请 登录 Windows 实例 确认 C:\\Program Files\\Cloudbase Solutions\\Cloudbase-Init\\conf\\cloudbase-init.conf 中的 plugin 是否包含 ExtendVolumesPlugin 配置项。
·是,如果 cloudbase-init 配置文件 cloudbase-init.conf 中包含了 ExtendVolumesPlugin 配置项,需要重启机器 cloudbase-init 才会自动扩展卷把 C 分区后面的空白空间加到 C 分区,并且需要 C 分区和空白空间之间无其他分区干扰。如果 C 分区和空白空间之间无其他分区、且不想重启,或者有第三方安全软件拦截 cloudbase-init 使之不能完成 extend volume,你需要手动执行如下 powershell 命令。
$DiskOps="@select disk 0select volume cextendexit@"$DiskOps | diskpart.exe | Out-Null
·否,则需根据目标云服务的操作系统类型,手动扩容文件系统及分区。你需要执行 扩展分区及文件系统(Windows),将扩容部分的容量划分至已有分区内或将扩容部分的容量格式化为新的独立分区。