Kaminario K2 全闪存阵列 iSCSI 和 FC 卷驱动程序

Kaminario 的 K2 全闪存阵列利用独特的软件定义架构,提供备受推崇的可预测性能、可扩展性和成本效益。

Kaminario 的 K2 全闪存 iSCSI 和 FC 阵列可用于 OpenStack 块存储,使用 KaminarioISCSIDriver 类和 KaminarioFCDriver 类提供块存储。

本文档说明了如何配置和连接块存储节点到一个或多个 K2 全闪存阵列。

驱动程序要求

  • Kaminario 的 K2 全闪存 iSCSI 和/或 FC 阵列

  • K2 REST API 版本 >= 2.2.0

  • 支持 K2 版本 5.8 或更高版本

  • krest python 库(版本 1.3.1 或更高版本)应使用 sudo pip install krest 安装在块存储节点上

  • 块存储节点还应具有到 K2 阵列的数据路径,用于以下操作

    • 从快照创建卷

    • 克隆卷

    • 将卷复制到镜像

    • 将镜像复制到卷

    • 重定型 ‘dedup without replication’ <-> ‘nodedup without replication’

支持的操作

  • 创建、删除、附加和分离卷。

  • 创建和删除卷快照。

  • 从快照创建卷。

  • 将镜像复制到卷。

  • 将卷复制到镜像。

  • 克隆卷。

  • 扩展卷。

  • 重新类型化卷。

  • 管理和取消管理卷。

  • 使用容错和故障恢复支持将卷复制到 K2 阵列。

限制和已知问题

如果您的 OpenStack 部署未设置为使用多路径,则 K2 全闪存阵列的网络连接将使用单个物理端口。

这可能会显著限制 K2 提供的以下好处

  • 可用带宽

  • 高可用性

  • 非破坏性升级

需要在计算节点和块存储节点上设置多路径访问的步骤如下

  1. 在计算节点和块存储节点上安装多路径软件。

    例如

    # apt-get install sg3-utils multipath-tools
    
  2. [libvirt] 部分的 nova.conf 配置文件中,指定 volume_use_multipath=True。此选项对 iSCSI 和 FC 驱动程序都有效。在 Newton 之前的版本中,该选项称为 iscsi_use_multipath

    其他资源:Kaminario Linux 主机配置指南(用于配置多路径)

  3. 重新启动计算服务以使更改生效。

    # service nova-compute restart
    

配置单个 Kaminario iSCSI/FC 后端

本节详细介绍了配置 Kaminario Cinder 驱动程序以用于单个 FC 或 iSCSI 后端所需的步骤。

  1. cinder.conf 配置文件下的 [DEFAULT] 部分中,设置 scheduler_default_filters 参数

    [DEFAULT]
    scheduler_default_filters = DriverFilter,CapabilitiesFilter
    

    有关更多信息,请参阅以下文档:Cinder 调度器过滤器配置和使用调度器的驱动程序过滤器和权重

  2. [DEFAULT] 部分下,使用 iSCSI 或 FC 后端组设置 enabled_backends 参数

    [DEFAULT]
    # For iSCSI
    enabled_backends = kaminario-iscsi-1
    
    # For FC
    # enabled_backends = kaminario-fc-1
    
  3. 为 enabled_backends 参数中指定的后端组添加一个后端组部分

  4. 在新创建的后端组部分中,设置以下配置选项

    [kaminario-iscsi-1]
    # Management IP of Kaminario K2 All-Flash iSCSI/FC array
    san_ip = 10.0.0.10
    # Management username of Kaminario K2 All-Flash iSCSI/FC array
    san_login = username
    # Management password of Kaminario K2 All-Flash iSCSI/FC array
    san_password = password
    # Enable Kaminario K2 iSCSI/FC driver
    volume_driver = cinder.volume.drivers.kaminario.kaminario_iscsi.KaminarioISCSIDriver
    # volume_driver = cinder.volume.drivers.kaminario.kaminario_fc.KaminarioFCDriver
    
    # Backend name
    # volume_backend_name = kaminario_fc_1
    volume_backend_name = kaminario_iscsi_1
    
    # K2 driver calculates max_oversubscription_ratio on setting below
    # option as True. Default value is False
    # auto_calc_max_oversubscription_ratio = False
    
    # Set a limit on total number of volumes to be created on K2 array, for example:
    # filter_function = "capabilities.total_volumes < 250"
    
    # For replication, replication_device must be set and the replication peer must be configured
    # on the primary and the secondary K2 arrays
    # Syntax:
    #     replication_device = backend_id:<s-array-ip>,login:<s-username>,password:<s-password>,rpo:<value>
    # where:
    #     s-array-ip is the secondary K2 array IP
    #     rpo must be either 60(1 min) or multiple of 300(5 min)
    # Example:
    # replication_device = backend_id:10.0.0.50,login:kaminario,password:kaminario,rpo:300
    
    # Suppress requests library SSL certificate warnings on setting this option as True
    # Default value is 'False'
    # suppress_requests_ssl_warnings = False
    
  5. 重新启动块存储服务以使更改生效

    # service cinder-api restart
    # service cinder-scheduler restart
    # service cinder-volume restart
    

设置多个 Kaminario iSCSI/FC 后端

配置多个 K2 iSCSI/FC 后端所需的步骤如下

  1. cinder.conf 文件下的 [DEFAULT] 部分中,使用逗号分隔的 iSCSI/FC 后端组设置 enabled_backends 参数。

    [DEFAULT]
    enabled_backends = kaminario-iscsi-1, kaminario-iscsi-2, kaminario-iscsi-3
    
  2. 为 enabled_backends 参数中指定的每个后端组添加一个后端组部分

  3. 对于每个后端组部分,输入如上述部分 配置 单个 Kaminario iSCSI/FC 后端 中所述的配置选项

    有关更多信息,请参阅 配置多个存储后端

  4. 重新启动 cinder volume 服务以使更改生效。

    # service cinder-volume restart
    

创建卷类型

创建卷类型以支持在多个 K2 iSCSI/FC 后端上创建卷。在卷类型中设置以下 extras-specs

  • volume_backend_name:根据后端组部分中 volume_backend_name 的值设置此规格的值。如果仅设置此规格,则将创建不带复制支持的 dedup Kaminario cinder 卷

    $ openstack volume type create kaminario_iscsi_dedup_noreplication
    $ openstack volume type set --property volume_backend_name=kaminario_iscsi_1 \
      kaminario_iscsi_dedup_noreplication
    
  • kaminario:thin_prov_type:在卷类型中设置此规格以创建 nodedup Kaminario cinder 卷。如果未设置此规格,则将创建 dedup Kaminario cinder 卷。

  • kaminario:replication:在卷类型中设置此规格以创建支持复制的 Kaminario cinder 卷。如果未设置此规格,则将创建不带复制支持的 Kaminario cinder 卷。

    $ openstack volume type create kaminario_iscsi_dedup_replication
    $ openstack volume type set --property volume_backend_name=kaminario_iscsi_1 \
      kaminario:replication=enabled kaminario_iscsi_dedup_replication
    
    $ openstack volume type create kaminario_iscsi_nodedup_replication
    $ openstack volume type set --property volume_backend_name=kaminario_iscsi_1 \
      kaminario:replication=enabled kaminario:thin_prov_type=nodedup \
      kaminario_iscsi_nodedup_replication
    
    $ openstack volume type create kaminario_iscsi_nodedup_noreplication
    $ openstack volume type set --property volume_backend_name=kaminario_iscsi_1 \
      kaminario:thin_prov_type=nodedup kaminario_iscsi_nodedup_noreplication
    

支持的重定型用例

Kaminario cinder 卷支持以下重定型

  • Nodedup-noreplication <-> Nodedup-replication

    $ cinder retype volume-id new-type
    
  • Dedup-noreplication <-> Dedup-replication

    $ cinder retype volume-id new-type
    
  • Dedup-noreplication <-> Nodedup-noreplication

    $ cinder retype --migration-policy on-demand volume-id new-type
    

对于不支持的用例,请尝试 cinder retype 命令的组合。

驱动程序选项

下表包含 Kaminario K2 FC 和 iSCSI 块存储驱动程序特定的配置选项。

Kaminario 配置选项说明

配置选项 = 默认值

描述

auto_calc_max_oversubscription_ratio = False

(布尔值) 当将此选项设置为 True 时,K2 驱动程序将计算 max_oversubscription_ratio。

disable_discovery = False

(布尔值) 禁用 K2 驱动程序上的 iSCSI 发现 (sendtargets) 以进行多路径连接。