[ English | Indonesia | русский ]

存储架构

OpenStack 包含多个需要考虑的存储领域

  • 块存储 (cinder)

  • 对象存储 (swift)

  • 镜像存储 (glance)

  • 临时存储 (nova)

  • 共享文件系统存储 (manila)

块存储 (cinder)

块存储 (cinder) 服务负责管理环境中存储设备上的卷。在生产环境中,设备通过存储协议(例如 NFS、iSCSI 或 Ceph RBD)向存储网络(`br-storage')提供存储,并通过存储管理 API 向管理网络(`br-mgmt')提供管理。实例通过计算主机上的虚拟机监控程序连接到存储网络上的卷。

下图说明了块存储如何连接到实例。

../../_images/production-storage-cinder.png

图示显示了以下步骤。

卷由指定的 `cinder-volume` 服务使用适当的 cinder 驱动程序 创建。卷的创建是通过暴露给管理网络的 API 完成的。

卷创建后,`nova-compute` 服务通过存储网络将计算主机上的虚拟机监控程序连接到卷。

虚拟机监控程序连接到卷后,它将卷作为本地硬件设备呈现给实例。

重要提示

LVMVolumeDriver 被设计为参考驱动程序实现,不建议在生产环境中使用。LVM 存储后端是单服务器解决方案,不提供高可用性选项。如果服务器不可用,则该服务器上运行的 `cinder-volume` 服务管理的所有卷都将不可用。升级服务器上的操作系统软件包(例如,内核或 iSCSI)会导致存储连接中断,因为 iSCSI 服务(或主机)会重启。

由于 容器 iSCSI 连接的限制,在使用通过 iSCSI 连接的存储后端时,您必须将 `cinder-volume` 服务直接部署在物理主机上(而不是部署在容器中)。这包括 LVMVolumeDriver 以及许多商业存储设备的驱动程序。

注意

`cinder-volume` 服务不以高可用性配置运行。当 `cinder-volume` 服务配置为从多个主机或容器管理同一后端上的卷时,会安排一个服务来管理卷的生命周期,直到分配另一个服务来执行此操作。此分配可以通过 cinder-manage CLI 工具 进行。如果实现了 cinder volume active-active support spec,此配置可能会发生更改。

对象存储 (swift)

对象存储 (swift) 服务实现了一个高可用、分布式、最终一致的对象/blob 存储,可通过 HTTP/HTTPS 访问。

下图说明了数据如何被访问和复制。

../../_images/production-storage-swift.png

客户端通过管理网络(`br-mgmt')上的负载均衡器访问 `swift-proxy` 服务。`swift-proxy` 服务通过存储网络(`br-storage')与对象存储主机上的账户、容器和服务进行通信。对象存储主机之间的复制通过复制网络(`br-repl')进行。

镜像存储 (glance)

镜像服务 (glance) 可以配置为将镜像存储在 glance_store 驱动程序 支持的各种存储后端上。

重要提示

当使用文件系统存储时,镜像服务本身没有机制来在镜像服务主机之间复制镜像。我们建议使用共享存储后端(通过文件系统挂载)来确保所有 `glance-api` 服务都能访问所有镜像。这样做可以防止在基础架构(控制平面)主机丢失时丢失对镜像的访问。

下图说明了在创建实例时,镜像服务、存储设备和 `nova-compute` 服务之间的交互。

../../_images/production-storage-glance.png

图示显示了以下步骤。

1

当客户端请求镜像时,`glance-api` 服务通过存储网络(`br-storage')访问存储设备上的相应存储,并将其拉入缓存。当再次请求相同的镜像时,它会直接从缓存提供给客户端。

2

当实例被调度在计算主机上创建时,`nova-compute` 服务通过管理网络(`br-mgmt')向 `glance-api` 服务请求镜像。

3

检索到镜像后,`nova-compute` 服务会将镜像存储在其自身的镜像缓存中。当使用相同镜像创建另一个实例时,镜像将从本地基础镜像缓存中检索。

临时存储 (nova)

当计算服务的 sabores 配置为向实例提供根磁盘或临时磁盘时,`nova-compute` 服务使用其临时磁盘存储位置来管理这些分配。

在许多环境中,临时磁盘存储在计算主机本地磁盘上,但对于生产环境,我们建议将计算主机配置为使用共享存储子系统。共享存储子系统允许在计算主机之间进行快速、实时的实例迁移,这在管理员需要对计算主机进行维护并希望将其迁移时非常有用。使用共享存储子系统还可以在计算主机离线时恢复实例。管理员可以将实例迁移到另一台计算主机并重新启动它。下图说明了存储设备、计算主机、虚拟机监控程序和实例之间的交互。

../../_images/production-storage-nova.png

图示显示了以下步骤。

1

计算主机已配置为可以访问存储设备。计算主机通过存储网络(`br-storage')使用存储协议(例如,NFS、iSCSI 或 Ceph RBD)来访问存储空间。

2

`nova-compute` 服务配置虚拟机监控程序,将分配的实例磁盘作为设备呈现给实例。

3

虚拟机监控程序将磁盘作为设备呈现给实例。

共享文件系统存储 (manila)

共享文件系统服务 (manila) 可以配置为在 manila_store 驱动程序 支持的各种存储后端上提供文件系统。

../../_images/manila-overview.png

图示显示了 manila 服务(共享文件系统服务)的基本概述。