磁盘
概述
| 磁盘类型 | 描述 | |
|---|---|---|
| 根磁盘 |
虚拟机的系统磁盘,用于支撑虚拟机的系统运行。 |
|
| 数据磁盘 | 普通磁盘 |
虚拟机的数据磁盘,用于虚拟机扩展的存储使用。普通磁盘类似PC中的硬盘,需要挂载至虚拟机使用,无法单独使用。 |
| 共享磁盘 | 虚拟机的数据磁盘,用于虚拟机扩展的存储使用。可将同一块共享磁盘挂载给多台虚拟机使用,类似于将一块物理硬盘挂载给多台物理服务器,每一台服务器均可以对该硬盘进行数据读取和写入。 | |
| 未实例化磁盘 | 创建数据磁盘时,若未指定主存储和虚拟机,创建出的数据磁盘将被展示在未实例化栏中。为未实例化磁盘加载实例后,即可作为可用资源被虚拟机使用。 | |
注意事项
- 一台虚拟机最多可加载24块数据磁盘。
- 根磁盘作为虚拟机的附属,不能卸载。
- 数据磁盘可在相同类型Hypervisor的不同虚拟机之间加载和卸载。不同Hypervisor上的数据磁盘不可加载到不同类型的虚拟机上。例如,KVM虚拟机的磁盘不能被VMware虚拟机加载。
- 普通磁盘同一时间只能加载到一台虚拟机使用。Ceph类型的主存储和Shared Block类型的主存储支持共享磁盘,共享磁盘可被多台虚拟机识别并同时访问。
- 直接将共享磁盘挂载给多台虚拟机无法实现文件共享功能,如需在多台虚拟机之间共享文件,需搭建共享文件系统。
- 磁盘占用空间采用虚拟容量来计算。创建磁盘时扣除的是磁盘的虚拟容量大小,而本身只占用少量实际容量。随着写入文件额增加,实际容量会逐步增加。
- 多个主存储环境下,可以指定主存储创建磁盘。如果未指定主存储:
- 针对本地主存储,磁盘默认会从容量大的主存储创建。
- 针对NFS主存储,磁盘默认会随机选择一个主存储创建。
- 针对本地主存储+NFS类型主存储,默认会选择与当前根磁盘不在同一个主存储的存储来创建。
- 数据磁盘可设置QoS进行磁盘带宽限速,需注意限速不可过低,过低的QoS可能导致I/O性能过低。
- 采用Virtio类型的存储扩展盘,需确保加载该磁盘的虚拟机已安装Virtio驱动。主流Linux、CentOS 6/7系列已集成Virtio驱动,无需额外安装。Windows系列需手动安装Virtio驱动,可前往虚拟机详情页安装性能优化工具。
应用场景
- Oracle RAC
Oracle Real Application Clusters (Oracle RAC) 最初旨在提供改进的数据库服务,经过多年的发展,如今它已立足于全面的高可用性 (HA) 体系基础上,该HA体系可用作数据库云系统的基础,也可以作为共享基础架构确保为数据中心中的所有应用程序提供高度的可用性、可伸缩性、灵活性和敏捷性。Oracle RAC采用共享磁盘架构,因此卷管理和用于存储数据库数据的文件系统必须支持集群识别。Oracle自动存储管理 (ASM) 是为Oracle数据库推荐的(集群)卷管理器。
由于ASM可以自动管理共享磁盘,因而用户可采用共享磁盘为RAC节点提供存储,交由RAC进行数据管理而无需额外部署共享文件系统。
创建数据磁盘
在ZStack Cube 双引擎版主菜单,点击,进入数据磁盘界面。点击创建数据磁盘,弹出创建数据磁盘界面。
- 基于磁盘规格创建普通磁盘。
- 基于磁盘镜像创建普通磁盘。
- 基于磁盘规格创建共享磁盘。
- 基于磁盘镜像创建共享磁盘。
基于磁盘规格创建普通磁盘
- 名称:设置数据磁盘名称
- 简介:可选项,可留空不填
- 数量:设置数据磁盘数量,支持批量创建数据磁盘Note: 需输入整数,取值范围:1~24。
- 磁盘属性:选择普通磁盘
- 创建方式:选择已有磁盘规格或自定义磁盘规格
- 主存储:可选项,选择数据磁盘所在主存储
- 实例:可选项,选择需要加载的实例(虚拟机、弹性裸金属实例)
- VirtioSCSI:表示采用VirtioSCSI总线,创建VirtioSCSI类型的数据磁盘Note:
- 磁盘属性为普通磁盘时:VirtioSCSI 默认关闭,若开启,可创建 VirtioSCSI 类型的数据磁盘。
- 磁盘属性为共享磁盘时:VirtioSCSI 默认开启,且不支持修改。
- VirtioSCSI类型的数据磁盘支持I/O多队列,可以通过唯一识别ID(WWN)识别。
- 本地存储不建议使用VirtioSCSI类型的数据磁盘。

基于磁盘镜像创建普通磁盘
- 名称:输入数据磁盘名称
- 简介:可选项,可留空不填
- 数量:输入数据磁盘数量,使用磁盘镜像创建数据磁盘,一次仅支持创建一个数据磁盘。
- 磁盘属性:选择普通磁盘
- 创建方式:选择磁盘镜像
- 实例:选择需要绑定的实例(虚拟机、弹性裸金属实例)
- 主存储:可选项,可指定主存储,数据磁盘将在指定主存储中创建Note: 支持使用ImageStore类型的镜像服务器中的磁盘镜像在Ceph主存储上创建数据磁盘。
- VirtioSCSI:表示采用VirtioSCSI总线,创建VirtioSCSI类型的数据磁盘Note:
- 磁盘属性为普通磁盘时:VirtioSCSI 默认关闭,若开启,可创建 VirtioSCSI 类型的数据磁盘。
- 磁盘属性为共享磁盘时:VirtioSCSI 默认开启,且不支持修改。
- VirtioSCSI类型的数据磁盘支持I/O多队列,可以通过唯一识别ID(WWN)识别。
- 本地存储不建议使用VirtioSCSI类型的数据磁盘。

基于磁盘规格创建共享磁盘
- 名称:输入数据磁盘名称
- 简介:可选项,可留空不填
- 数量:输入数据磁盘数量,支持批量创建数据磁盘Note: 需输入整数,取值范围:1~24。
- 磁盘属性:选择共享磁盘Note:
- Ceph主存储以及Shared Block主存储支持共享磁盘,其他主存储类型暂不支持。
- Shared Block主存储不支持精简置备的共享磁盘。
- 创建方式:选择合适的磁盘规格
- 主存储:可选项,选择数据磁盘所在主存储
- 实例:可选项,选择需要绑定的实例(虚拟机、弹性裸金属实例)
- VirtioSCSI:表示采用VirtioSCSI总线,创建VirtioSCSI类型的数据磁盘Note:
- 磁盘属性为普通磁盘时:VirtioSCSI 默认关闭,若开启,可创建 VirtioSCSI 类型的数据磁盘。
- 磁盘属性为共享磁盘时:VirtioSCSI 默认开启,且不支持修改。
- VirtioSCSI类型的数据磁盘支持I/O多队列,可以通过唯一识别ID(WWN)识别。
- 本地存储不建议使用VirtioSCSI类型的数据磁盘。

基于磁盘镜像创建共享磁盘
- 名称:输入数据磁盘名称
- 简介:可选项,可留空不填
- 数量:输入数据磁盘数量,使用磁盘镜像创建数据磁盘,一次仅支持创建一个数据磁盘。
- 磁盘属性:选择共享磁盘Note:
- Ceph主存储以及Shared Block主存储支持共享磁盘,其他主存储类型暂不支持。
- Shared Block主存储不支持精简置备的共享磁盘。
- 创建方式:选择磁盘镜像
- 实例:选择需要绑定的实例(虚拟机、弹性裸金属实例)
- 主存储:可选项,可指定主存储,数据磁盘将在指定主存储中创建Note: 支持使用ImageStore类型的镜像服务器中的磁盘镜像在Ceph主存储上创建数据磁盘。
- VirtioSCSI:表示采用VirtioSCSI总线,创建VirtioSCSI类型的数据磁盘Note:
- 磁盘属性为普通磁盘时:VirtioSCSI 默认关闭,若开启,可创建 VirtioSCSI 类型的数据磁盘。
- 磁盘属性为共享磁盘时:VirtioSCSI 默认开启,且不支持修改。
- VirtioSCSI类型的数据磁盘支持I/O多队列,可以通过唯一识别ID(WWN)识别。
- 本地存储不建议使用VirtioSCSI类型的数据磁盘。

注意事项
- 批量创建数据磁盘仅支持磁盘规格方式。
- 基于磁盘规格创建普通磁盘或共享磁盘时,可按需选择主存储与虚拟机:
- 若两个都不选择:创建的数据磁盘为未实例化的磁盘,显示在未实例化栏中。
- 若只选择虚拟机:
- 单主存储时创建磁盘策略:在虚拟机所在主存储中创建数据磁盘。
- 多主存储时创建磁盘策略:
- 多主存储时未指定主存储:
- 存在多个本地主存储:优先选择可用容量大的存储来创建数据磁盘。
- 存在多个NFS主存储时或多个Shared Block主存储:随机选择主存储来创建数据磁盘。
- 存在本地主存储+NFS/Shared Block类型主存储:默认会选择与当前根磁盘不在同一个主存储的存储来创建数据磁盘。
- 存在Ceph主存储+Shared Block类型主存储:优先选择可用容量大的存储来创建数据磁盘。
- 多主存储时未指定主存储:
- 若只填写主存储:创建的数据磁盘会是可用状态,会占用真实空间。Note:
- 主存储选择本地存储:必须指定物理机
- 主存储选择Ceph:可指定Ceph存储池
- 主存储选择SharedBlock:必须选择置备方式,包括精简置备、厚置备
- 精简置备:按实际使用情况分配存储空间给数据磁盘,实现更高的存储利用率。
- 厚置备:预先分配需要的存储空间,提供充足的存储容量给数据磁盘,保证存储性能。
- 基于磁盘镜像创建普通磁盘或共享磁盘时,若不指定主存储:
- 若磁盘镜像所在镜像服务器为Ceph类型,则会选择Ceph主存储来创建数据磁盘。
- 若磁盘镜像所在镜像服务器为非Ceph类型:
- 存在多个本地主存储:优先选择可用容量大的存储来创建数据磁盘。
- 存在多个NFS主存储时或多个Shared Block主存储:随机选择主存储来创建数据磁盘。
- 存在本地主存储+NFS/Shared Block类型主存储:默认会选择与当前根磁盘不在同一个主存储的存储来创建数据磁盘。
- 存在Ceph主存储+Shared Block类型主存储:优先选择可用容量大的存储来创建数据磁盘。
管理数据磁盘
在ZStack Cube 双引擎版主菜单,点击,进入数据磁盘界面。
| 操作 | 描述 |
|---|---|
| 创建数据磁盘 | 基于磁盘规格创建一个新的数据磁盘。
|
| 编辑数据磁盘 | 修改数据磁盘的名称和简介。 |
| 启用数据磁盘 | 将处于停用状态的数据磁盘启用。 |
| 停用数据磁盘 | 停用后,数据磁盘的相关操作将受限,如加载实例、磁盘迁移等。 |
| 加载实例 | 将选中的数据磁盘加载到指定的实例。
|
| 卸载实例 | 将数据磁盘从实例卸载。 Note:
|
| 更改物理机 | 将数据磁盘迁移到其他物理机。
|
| 更改主存储 | 将数据磁盘迁移到其他主存储。支持磁盘跨同类型主存储的迁移以及同一Ceph主存储下不同存储池的迁移。更改主存储操作仅迁移有效数据,迁移后的磁盘将跟随目标主存储的置备类型。
Note:
|
| 更改所有者 | 可以更改数据磁盘的所有者。
|
| 磁盘扩容 | 在虚拟机运行或者停止状态下,支持对数据磁盘扩容。
|
| 绑定标签 | 为数据磁盘绑定标签。
|
| 解绑标签 | 将数据磁盘上的标签解除绑定。 Note:
|
| 立即备份 | 对数据磁盘创建备份数据。
|
| 绑定备份任务 | 为数据磁盘绑定备份任务。
|
| 创建磁盘镜像 | 对当前磁盘进行创建镜像操作,此镜像可用于创建新的数据磁盘。
|
| 创建数据磁盘快照 | 做重要操作前,对数据磁盘在特定时间点进行临时状态保留,方便出现故障后迅速回滚。
|
| 设置磁盘QoS | 通过设置总速度或读写速度的方式,设置数据磁盘带宽上限。
|
| 扁平合并 | 将数据磁盘的多个快照拍平合并,以提升资源性能和数据安全性。通过扁平合并,可解除链接克隆的虚拟机/磁盘与源虚拟机/磁盘之间的依赖关系,实现数据独立。 Note:
|
| 导出磁盘 | 将磁盘信息导出为CSV文件。
|
| 删除数据磁盘 | 将磁盘删除后,
磁盘会显示在已删除栏。 Note: 删除磁盘需要注意以下情况:
|
| 彻底删除/还原数据磁盘 | 支持将已删除的磁盘彻底删除或进行还原操作,还原后磁盘将显示在可用栏。 |
管理根磁盘
在ZStack Cube 双引擎版主菜单,点击,进入根磁盘界面。
| 操作 | 描述 |
|---|---|
| 编辑名称简介 | 修改根磁盘的名称和简介。 |
| 磁盘扩容 | 在虚拟机运行或者停止状态下,支持对根磁盘扩容。
|
| 绑定标签 | 为根磁盘绑定标签。
|
| 解绑标签 | 将根磁盘上的标签解除绑定。
|
| 立即备份 | 为根磁盘快速执行一次备份,生成备份数据。
|
| 绑定备份任务 | 为根磁盘绑定备份任务。
|
| 创建磁盘镜像 | 对当前磁盘进行创建镜像操作,此镜像可用于创建新的数据磁盘。 |
| 创建根磁盘快照 | 做重要操作前,对虚拟机根磁盘在特定时间点进行临时状态保留,方便出现故障后迅速回滚。若需长期备份,请选择灾备相关功能。 |
| 设置磁盘QoS | 通过设置总速度或读写速度的方式,设置根磁盘带宽上限。
|
| 扁平合并 | 将根磁盘的多个快照拍平合并,以实现数据独立,提升资源性能和数据安全性。
|
| 导出磁盘 | 将磁盘信息导出为CSV文件。
|
磁盘详情
磁盘快照
快照:某一时间点某一磁盘的数据状态文件。做重要操作前,保存磁盘当前状态数据,便于出现异常故障及时恢复数据。如需长期备份,建议使用灾备服务。
磁盘快照类型
- 手动快照:用户随时手动对数据磁盘创建快照。
- 自动快照:通过定时任务创建快照,或系统在特定场景触发一次性自动快照。
- 通过定时任务创建快照,用户需提前创建定时快照策略,系统会在设置的时间点自动对相应资源创建快照。
- 系统在以下特定场景可能触发一次性自动快照:
- 数据磁盘扩容
- 快照回滚Note:
- 系统默认快照回滚不会触发一次性自动快照。
- 用户可自行设置快照回滚是否触发一次性自动快照,设置方法:
进入,开启自动创建磁盘快照开关即可。
- 在Ceph主存储上创建数据磁盘的镜像。
应用场景
- 故障迅速还原:当生产环境出现异常故障,可使用快照回滚功能迅速还原至正常状态。该手段为临时方案,考虑到数据的长期完善保护,建议使用灾备服务。
- 数据开发:通过对生产数据创建快照,从而为数据挖掘、报表查询和开发测试等应用提供近实时的真实生产数据。
- 提高操作容错率:在系统升级或业务数据迁移等重大操作前,建议创建一份或多份快照。一旦升级或者迁移过程中出现任何问题,可以通过快照及时恢复到正常的系统数据状态。
创建数据磁盘快照
数据磁盘快照可在数据磁盘详情页和虚拟机详情页进行创建,具体如下:
在ZStack Cube 双引擎版主菜单,点击,进入数据磁盘界面。点击数据磁盘名称进入详情页,点击,弹出创建数据磁盘快照弹窗。
若所选磁盘已加载至虚拟机,可在虚拟机详情页,点击,进入该数据磁盘详情页,点击,弹出创建数据磁盘快照弹窗。
创建根磁盘快照
根磁盘快照可在根磁盘详情页和虚拟机详情页进行创建,具体如下:
在ZStack Cube 双引擎版主菜单,点击,进入根磁盘界面。点击根磁盘名称进入详情页,点击,弹出创建根磁盘快照弹窗。
也可在虚拟机详情页,点击,进入该根磁盘详情页,点击,弹出创建根磁盘快照弹窗。
磁盘扩容
ZStack Cube 双引擎版支持磁盘扩容,包括平台扩容磁盘以及虚拟机操作系统硬盘扩容两个步骤。
平台扩容磁盘
- 新容量必须大于当前容量,且增量不得小于4MB。
- 新容量必须为4MB的倍数,例如填写新容量为37MB,实际扩容到40MB。

虚拟机内部扩容磁盘
- 扩容存在风险。安全的扩容方式是对扩容的新容量,规划新的分区。
- 扩容只能增加容量,不能减少容量。
- 扩容增加的容量可以合并到最后一个分区,将其连续使用。
以下分三种不同的应用场景来介绍:
- 使用resize2fs命令扩容ext4分区实例。Note: 调整分区时需谨慎操作,建议操作前对重要数据备份,防止数据丢失。
假定虚拟机操作系统为CentOS7,ext4分区与磁盘容量均为60G,在平台将磁盘从60G扩容至100G后,打算将新增容量扩容至ext4分区。
操作步骤如下:- 使用lsblk命令查看当前分区容量,可见扩容后的容量未增加到磁盘分区中。
[root@10-0-18-185 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 8:0 0 60G 0 disk └─vda1 8:1 0 60G 0 part / sr0 11:0 1 1024M 0 rom sda 253:0 0 100G 0 disk └─sda1 253:1 0 60G 0 part /data - 使用fdisk
/dev/sda命令重建分区。Note: 新建分区的起始sector需与原磁盘保持一致,否则可能造成数据丢失。
[root@10-0-18-185 ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): d #删除现有分区 Selected partition 1 Partition 1 is deleted Command (m for help): n #新建分区 Partition type: #选择新分区类型为主分区 p primary (0 primary, 0 extended, 4 free) e extended Select (default p): Using default response p Partition number (1-4, default 1): #选择新分区Partition number为1 First sector (2048-209715199, default 2048): #设置新分区起始sector,需与原磁盘保持一致,否则可能造成数据丢失。 Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199): #使用默认值作为新分区结束sector,将全部磁盘空间分配给新分区 Using default value 209715199 Partition 1 of type Linux and of size 100 GiB is set Command (m for help): w #将以上配置写入磁盘 The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. - 使用partprobe命令重新读取分区表。
[root@10-0-18-185 ~]# partprobe - 使用e2fsck -f
/dev/sda1命令检查文件系统分区是否正常工作。
[root@10-0-18-185 ~]# e2fsck -f /dev/sda1 e2fsck 1.42.9 (28-Dec-2013) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/sda1: 12/2621440 files (0.0% non-contiguous), 209591/10485504 blocks - 使用resize2fs命令使xfs文件系统识别新容量。
[root@10-0-18-185 ~]# resize2fs /dev/sda1 resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/sda1 to 26214144 (4k) blocks. The filesystem on /dev/sda1 is now 26214144 blocks long. - 使用lsblk命令查看当前分区容量。
[root@10-0-18-185 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk └─sda1 8:1 0 100G 0 part /data sr0 11:0 1 1024M 0 rom vda 253:0 0 60G 0 disk └─vda1 253:1 0 60G 0 part /
- 使用lsblk命令查看当前分区容量,可见扩容后的容量未增加到磁盘分区中。
- 使用xfs_growfs命令扩容xfs分区实例。Note:
- 此方式适用于xfs分区动态扩容,无须挂载ISO或使用LVM分区工具管理磁盘。
- 扩容分区有一定风险,建议操作前对重要数据备份。
假定虚拟机操作系统为CentOS7,xfs分区与磁盘容量均为60G,xfs分区挂载点为/data,在平台将磁盘总容量从60G扩容至100G后,打算将新增容量扩容至xfs分区。
虚拟机内操作步骤如下:- 使用lsblk命令查看当前分区容量,可见扩容后的容量未增加到磁盘分区中。
[root@10-0-44-210 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 8:0 0 50G 0 disk └─vda1 8:1 0 50G 0 part / sr0 11:0 1 1024M 0 rom sdb 253:0 0 100G 0 disk └─sdb1 253:1 0 60G 0 part /data - 卸载挂载点。partprobe命令执行前需确保改动分区无占用,使用umount /data命令卸载/dev/sdb1分区的挂载。
[root@10-0-44-210 ~]# umount /data - 使用fdisk
/dev/sdb命令重建分区。Note: 新建分区的起始sector需与原磁盘保持一致,否则可能造成数据丢失。
[root@10-0-44-210 ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): d #删除现有分区 Selected partition 1 Partition 1 is deleted Command (m for help): n #新建分区 Partition type: #选择新分区类型为主分区 p primary (0 primary, 0 extended, 4 free) e extended Select (default p): Using default response p Partition number (1-4, default 1): #选择新分区Partition number为1 First sector (2048-209715199, default 2048): #设置新分区起始sector,需与原磁盘保持一致,否则可能造成数据丢失。 Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199): #使用默认值作为新分区结束sector,将全部磁盘空间分配给新分区 Using default value 209715199 Partition 1 of type Linux and of size 100 GiB is set Command (m for help): w #将以上配置写入磁盘 The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. - 使用partprobe命令重新读取分区表。
[root@10-0-44-210 ~]# partprobe - 使用mount /dev/sdb1
/data命令重新挂载分区至/data挂载点。
[root@10-0-44-210 ~]# mount /dev/sdb1 /data - 使用xfs_growfs
/dev/sdb1命令使xfs文件系统识别新容量。
[root@10-0-44-210 ~]# xfs_growfs /dev/sdb1 meta-data=/dev/sdb1 isize=512 agcount=7, agsize=3932096 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=26214144, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=7679, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 16214144 to 28835584 - 使用lsblk命令查看当前分区容量。
[root@10-0-44-210 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 100G 0 disk └─sdb1 8:17 0 100G 0 part /data sr0 11:0 1 1024M 0 rom vda 253:0 0 50G 0 disk └─vda1 253:1 0 50G 0 part /
- Windows分区扩容实例Windows分区可以在磁盘管理界面直接进行磁盘扩容。Note: Windows在线扩容后需重新扫描磁盘。如图 6所示:
图 6. 重新扫描磁盘 
