Lightbits Cinder 驱动

Lightbits(TM) OpenStack 驱动程序使 OpenStack 集群能够使用 Lightbits 集群存储服务器。本文档将介绍如何配置 Cinder 以便与 Lightbits 存储后端系统一起使用。

支持的操作

  • 创建卷

  • 删除卷

  • 附加卷

  • 分离卷

  • 从卷创建镜像

  • 实时迁移

  • 卷复制

  • 精简置备

  • 多重附加

  • 支持的供应商驱动

  • 扩展卷

  • 创建快照

  • 删除快照

  • 从快照创建卷

  • 从卷创建卷(克隆)

  • 主动-主动部署支持

  • 卷重类型(主机辅助)

  • 多租户支持

Lightbits OpenStack 驱动组件

Lightbits OpenStack 驱动程序包含三个组件:

  • Cinder 驱动

  • Nova libvirt 卷驱动

  • os_brick initiator 连接器

此外,还需要 Lightbits discovery-client,该客户端随产品提供。os_brick 连接器使用 Lightbits discovery-client 与 Lightbits NVMe/TCP 发现服务进行通信。

Cinder 驱动

Cinder 驱动程序与 Cinder 集成,并针对 Lightbits 存储集群执行 REST 操作。要启用该驱动程序,请在 Cinder 的配置文件中添加以下内容:

enabled_backends = lightos,<any other storage backend you use>

[lightos]
volume_driver = cinder.volume.drivers.lightos.LightOSVolumeDriver
volume_backend_name = lightos
lightos_api_address = <TARGET_ACCESS_IPS>
lightos_api_port = 443
lightos_jwt=<LIGHTOS_JWT>
lightos_default_num_replicas = 3
lightos_default_compression_enabled = False
lightos_api_service_timeout=30
  • TARGET_ACCESS_IPS 是 Lightbits 集群节点的访问 IP。多个节点应以逗号分隔。例如:lightos_api_address = 192.168.67.78,192.168.34.56,192.168.12.17。驱动程序将通过这些 IP 来查找 Lightbits 集群的 REST API 服务器。

  • LIGHTOS_JWT 是位于 Lightbits 安装控制器中的 JWT(JSON Web Token)。您可以在 ~/lightos-default-admin-jwt 找到 jwt。

  • 卷的默认副本数为 3,lightos_default_num_replicas 的有效值为 1、2 或 3。

  • 默认压缩设置为 False(即数据未压缩)。默认压缩设置也可以设置为 True,表示新创建的卷应被压缩,前提是卷类型未指定其他压缩设置。要按卷控制压缩,请为压缩和未压缩卷创建卷类型,并根据需要使用它们。

  • 等待 API 服务响应的默认时间为每个 API 端点 30 秒。

可以通过卷类型机制创建具有非默认压缩、副本数和多租户的卷。要创建启用压缩或多租户的新卷类型,请

$ openstack volume type create --property compression='<is> True' volume-with-compression

要创建具有单个副本的新卷类型

$ openstack volume type create --property lightos:num_replicas=1 volume-with-one-replica

要为具有三个副本的压缩卷创建新类型

$ openstack volume type create --property compression='<is> True' --property lightos:num_replicas=3 volume-with-three-replicas-and-compression

然后使用其中一个卷类型创建新卷

$ openstack volume create --size <size> --type <type name> <vol name>

为多租户创建卷类型

$ openstack volume type create --property lightos:project_name=project-01 type-with-mt

服务质量(QoS)支持

Lightbits 驱动程序允许管理员通过将 QoS 策略与卷类型关联来更好地管理和优化存储性能。

  • 管理员必须首先在 Lightbits 上创建所需的 QoS 策略

    集群。

  • 创建 QoS 策略后,可以将其链接到卷类型,方法是在

    系统中使用策略的唯一 UUID。

示例

openstack volume type create LightbitsWithQos --property volume_backend_name=<backend_name> --property=lightos:qos_policy=<uuid>

NVMe/TCP 和不对称命名空间访问(ANA)

Lightbits 集群使用 NVMe/TCP 不对称命名空间访问(ANA)来公开其卷。ANA 是 Linux 中 NVMe/TCP 堆栈中一个相对较新的功能,但在 Ubuntu 20.04 中得到完全支持。OpenStack 集群中的每个计算主机都需要具备 ANA 功能,才能通过 NVMe/TCP 为 OpenStack VM 提供 Lightbits 卷。有关如何设置计算节点以使用 ANA 的更多信息,请参阅 Lightbits(TM) 集群安装和初始配置指南的 CentOS Linux 集群客户端软件安装部分。

注意

在当前版本中,如果任何集群节点更改其访问 IP,则应在 Cinder 驱动程序的配置文件中更新集群节点的访问 IP 并重新启动。只要 Cinder 驱动程序能够访问至少一个集群访问 IP,它就可以工作,但容易受到集群节点故障的影响。

驱动程序选项

下表包含 Lightbits Cinder 驱动程序支持的配置选项。

Lightbits 集群配置选项说明

配置选项 = 默认值

描述

lightos_api_address = None

(IP 地址列表)LightOS API 服务器的 IP 地址,以逗号分隔。

lightos_api_port = 443

(端口(最小 0,最大 65535))LightOS API 端点监听的 TCP/IP 端口。端口 443 用于 HTTPS,其他值用于 HTTP。

lightos_api_service_snapshots_max_calls = 5

(整数)创建快照时对 LightOS 的最大调用次数。默认值为 5 次调用。

lightos_api_service_timeout = 30

(整数)等待 API 端点响应的默认时间(以秒为单位)。

lightos_default_compression_enabled = False

(布尔值)设置为 True 可创建压缩的新卷,前提是卷类型未指定其他压缩设置。

lightos_default_num_replicas = 3

(整数(最小 1,最大 3))为每个卷创建的默认副本数。

lightos_jwt = None

(字符串)用于与 LightOS 集群进行卷和快照操作的 JWT。如果集群安装时禁用了多租户,则不要设置此参数。

lightos_use_ipacl = True

(布尔值)IPACL 与标准 NVME ACL 配合使用。要访问某个卷,主机必须同时位于该卷的 IPACL 和 ACL 中。Cinder 始终设置卷的 ACL。如果将 lightos_use_ipacl 设置为 True,Cinder 还会将主机的 IP 地址添加到卷的 IPACL 中。如果设置为 False,则任何 IP 地址都可以访问该卷。默认为 True。

主动-主动部署支持

要启用主动-主动部署,请遵循以下步骤:

  1. 通过在“DEFAULT”部分设置“cluster”选项来激活主动-主动模式。

  2. 在“coordination”部分配置分布式锁管理器(DLM),如 Redis 或 etcd。

应将这些选项添加到 cinder.conf 文件中。

[DEFAULT]
cluster = <cluster_name>

[coordination]
backend_url = <coordination_backend_url>

有关更详细的说明,请参阅以下指南: https://docs.openstack.org/cinder/2025.2/contributor/high_availability.html