跳到主要内容

块存储

块存储为虚拟机提供虚拟磁盘的存储。

其中,支持的存储访问接口分为以下几类:

  • 文件接口:虚拟机的磁盘以文件形式存在,QEMU虚拟机通过POSIX文件接口访问虚拟机磁盘内容。磁盘文件格式一般有raw和qcow2两种格式。我们一般采用qcow2的格式的磁盘文件。qcow2格式的磁盘文件相比于raw格式文件有很多优点:1)支持thin provision模式,磁盘文件占用空间按需分配,占用较少;2)支持快照等功能特性,3)相比raw格式,性能不算差。

  • 块接口:虚拟机的磁盘就是宿主机上的磁盘设备。虚拟机直接挂载宿主机上的block设备。这些block设备无论是本地还是网络共享的,都会加入到宿主机的LVM VG存储池中,以LVM的逻辑卷形式提供给QEMU虚拟机。基于LVM的快照实现了虚拟机磁盘的快照。相比文件接口方式,这种方式少了文件系统的开销,有较高的读写性能。

  • 自定义接口:文件接口和快接口都是Linux操作系统的标准接口,除此之外,平台支持的访问虚拟磁盘的接口为Ceph RBD,是Ceph自定义的访问其分布式块设备的接口。

从存储的部署架构,分为如下几类:

  • 本地访问:虚拟机磁盘存储在宿主机本地挂载的存储上,例如本地的SATA, SAS或NVME块设备
  • 网络访问:虚拟机磁盘存储在宿主机网络挂载的集中式存储上,例如NFS,GPFS,OCFS2等
  • 分布式访问:虚拟机磁盘不存储在本地或网络上的具体存储节点上,而是分布式在多个节点上,例如Ceph。

因此,块存储从访问接口和部署架构,分为如下几类。

访问接口\部署架构本地访问集中式网络访问去中心分布式访问
文件接口本地存储NAS
块接口本地LVMLVM
自定义接口Ceph RBD

支持存储类型

本地存储

本地存储是使用宿主机本地的文件系统存储虚拟机的磁盘文件。是默认支持的块存储。本地存储需要在宿主机的本地配置文件申明,host服务启动后会自动注册和上报状态。具体具体配置和使用方法请参考 本地存储

NAS

NAS存储使用网络挂载的文件系统存储虚拟机的磁盘文件。目前分为两种情况NFS和GPFS。

NFS

NFS类型的块存储特指通过NFS协议挂载的网络共享文件系统。这一类存储需要指定共享的服务器IP和共享目录。将宿主机和存储关联后,host服务会自动以NFS协议挂载该存储到宿主机的指定目录,无需提前手动挂载。

GPFS

GPFS用于指定用户已经手动提前挂载到宿主机的任意网络共享文件系统,并不仅限于GPFS,还包括OCFS2,GlusterFS等网络文件系统。创建一个GPFS类型的块存储的意义更多是用于将存储的配置信息提供给平台,便于后续使用。跟NFS存储不同,将该存储挂载到宿主机的操作,其作用仅是告知平台该存储在宿主机的访问路径,平台并不会自动执行挂载。只要是用户自己执行挂载的网络文件系统,都可以注册为GPFS类型的块存储。

本地LVM

本地LVM是使用宿主机本机的LVM VG分配逻辑卷给虚拟机作为虚拟磁盘的块存储。具体配置和使用方法参考 本机LVM存储

Ceph

Ceph是使用Ceph RBD块设备作为虚拟机的虚拟磁盘。具体配置和使用方法参考 Ceph

存储的使用

本地访问存储

平台默认会为每个宿主机添加一个本地存储,默认位置在 /opt/cloud/workspace/disks。

其他本地访问存储,包括文件存储和LVM,需要在对应宿主机修改配置添加,添加后重启host服务生效。

网路访问存储

对于网络访问存储,需要在平台添加存储配置。添加存储后,还需要将该网络存储和对应宿主机关联