块存储
块存储为虚拟机提供虚拟磁盘的存储。
其中,支持的存储访问接口分为以下几类:
-
文件接口:虚拟机的磁盘以文件形式存在,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 | |
块接口 | 本地LVM | LVM | |
自定义接口 | 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服务生效。
网路访问存储
对于网络访问存储,需要在平台添加存储配置。添加存储后,还需要将该网络存储和对应宿主机关联。
📄️ 本地存储
介绍如何配置添加和使用本地存储。
📄️ 本地存储回收站
除了磁盘回收站伪删除的机制外,平台还另外提供了一层保护,用来确保虚拟机的磁盘文件不会被误删除。
📄️ 本地LVM存储
介绍如何配置和使用本地LVM存储。
📄️ Ceph存储
Ceph是著名的开源分布式存储,一个存储集群可以同时提供块存储(RBD),对象存储(RadosGw)和文件存储(CephFs)三种存储接口。本文介绍虚拟机使用Ceph RBD块存储的配置和使用方法。
📄️ 存储信息采集
介绍存储信息的同步。