NexentaStor 5.x NFS 和 iSCSI 驱动

NexentaStor 是一个开源驱动的软件定义存储 (OpenSDS) 平台,提供统一的文件 (NFS 和 SMB) 和块 (FC 和 iSCSI) 存储服务。NexentaStor 运行在行业标准硬件上,可扩展到数十 TB 到 PB 的配置,并默认包含所有数据管理功能。

有关用户文档,请参阅 Nexenta 文档中心

支持的操作

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

  • 创建、列出和删除卷快照。

  • 从快照创建卷。

  • 将镜像复制到卷。

  • 将卷复制到镜像。

  • 克隆卷。

  • 扩展卷。

  • 迁移卷。

  • 更改卷类型。

  • 获取卷统计信息。

  • 将卷恢复到快照。

  • 管理和取消管理卷和快照。

  • 列出可管理的卷和快照。

  • 创建、修改、删除和列出一致性组。

  • 创建、修改、删除和列出一致性组的快照。

  • 从一致性组或一致性组快照创建一致性组。

  • 支持一致性组功能到通用卷组。

  • 同时将卷附加到多个服务器(多重附加)。

iSCSI 驱动

必须根据相关的 Nexenta 文档安装和配置 NexentaStor 设备。所有要通过卷驱动器访问的 iSCSI 卷都必须创建一个池和一个包含命名空间。应按照特定版本的 NexentaStor 文档中的说明进行操作。

使用正常程序为一个或多个后端卷驱动器选择 NexentaStor 设备 iSCSI 驱动。

您必须为 iSCSI 卷驱动器控制的每个 NexentaStor 设备配置以下项目

  1. 在卷节点 /etc/cinder/cinder.conf 文件上进行以下更改。

    # Enable Nexenta iSCSI driver
    volume_driver=cinder.volume.drivers.nexenta.ns5.iscsi.NexentaISCSIDriver
    
    # IP address of NexentaStor host (string value)
    nexenta_host=HOST-IP
    
    # Port for Rest API (integer value)
    nexenta_rest_port=8443
    
    # Username for NexentaStor Rest (string value)
    nexenta_user=USERNAME
    
    # Password for NexentaStor Rest (string value)
    nexenta_password=PASSWORD
    
    # Pool on NexentaStor appliance (string value)
    nexenta_volume=volume_name
    
    # Name of a parent Volume group where cinder created zvols will reside (string value)
    nexenta_volume_group = iscsi
    

    注意

    nexenta_volume 代表一个 zpool,在 NS 5.x 设备上称为 pool。必须在启用驱动程序之前预先创建它。

    不需要预先创建卷组,如果不存在,驱动程序将创建它。

  2. 保存对 /etc/cinder/cinder.conf 文件的更改,并重启 cinder-volume 服务。

NFS 驱动

Nexenta NFS 驱动允许您使用 NexentaStor 设备通过 NFS 存储计算卷。每个计算卷都由共享目录中的单个 NFS 文件表示。

虽然 NFS 协议标准化了用户的文件访问,但它没有标准化管理操作,例如拍摄快照或复制文件系统。OpenStack 卷驱动程序为这些操作提供了一个通用接口。Nexenta NFS 驱动使用已部署在 NexentaStor 设备上的 ZFS 管理平面来实现这些标准操作。

必须根据相关的 Nexenta 文档安装和配置 NexentaStor 设备。必须为 OpenStack 支持的所有虚拟磁盘目录创建一个父文件系统。在每个 NexentaStor 设备上创建并导出该目录。

您必须为 NFS 卷驱动器控制的每个 NexentaStor 设备配置以下项目

  1. 在卷节点 /etc/cinder/cinder.conf 文件上进行以下更改。

    # Enable Nexenta NFS driver
    volume_driver=cinder.volume.drivers.nexenta.ns5.nfs.NexentaNfsDriver
    
    # IP address or Hostname of NexentaStor host (string value)
    nas_host=HOST-IP
    
    # Port for Rest API (integer value)
    nexenta_rest_port=8443
    
    # Path to parent filesystem (string value)
    nas_share_path=POOL/FILESYSTEM
    
    # Recommended NFS options
    nas_mount_options=vers=3,minorversion=0,timeo=100,nolock
    
  2. 在设备上创建文件系统并通过 NFS 共享。例如

    "securityContexts": [
       {"readWriteList": [{"allow": true, "etype": "fqnip", "entity": "1.1.1.1"}],
        "root": [{"allow": true, "etype": "fqnip", "entity": "1.1.1.1"}],
        "securityModes": ["sys"]}]
    
  3. 为文件系统创建 ACL。例如

    {"type": "allow",
    "principal": "everyone@",
    "permissions": ["list_directory","read_data","add_file","write_data",
    "add_subdirectory","append_data","read_xattr","write_xattr","execute",
    "delete_child","read_attributes","write_attributes","delete","read_acl",
    "write_acl","write_owner","synchronize"],
    "flags": ["file_inherit","dir_inherit"]}
    

驱动程序选项

Nexenta 驱动程序支持以下选项

NexentaStor 5 驱动程序配置选项说明

配置选项 = 默认值

描述

[DEFAULT]

nexenta_dataset_compression = on

(字符串) 新 ZFS 文件夹的压缩值。

nexenta_dataset_dedup = off

(字符串) 新 ZFS 文件夹的重复数据删除值。

nexenta_dataset_description =

(字符串) 文件夹的人性化描述。

nexenta_host =

(字符串) Nexenta SA 的 IP 地址

nexenta_iscsi_target_portal_port = 3260

(整数) Nexenta 目标门户端口

nexenta_mount_point_base = $state_path/mnt

(字符串) 包含 NFS 共享挂载点的基本目录

nexenta_ns5_blocksize = 32

(整数) 数据集的块大小

nexenta_rest_port = 0

(整数) 连接到 Nexenta REST API 服务器的 HTTP(S) 端口。如果等于零,则使用 8443 表示 HTTPS,8080 表示 HTTP

nexenta_rest_protocol = auto

(字符串) 使用 http 或 https 进行 REST 连接 (默认 auto)

nexenta_sparse = False

(布尔值) 启用或禁用稀疏数据集的创建

nexenta_sparsed_volumes = True

(布尔值) 启用或禁用将卷创建为不占用空间的稀疏文件。如果禁用 (False),则卷将创建为常规文件,这需要很长时间。

nexenta_use_https = True

(布尔值) 使用安全 HTTP 进行 REST 连接 (默认 True)

nexenta_user = admin

(字符串) 连接到 Nexenta SA 的用户名

nexenta_volume = cinder

(字符串) 包含所有卷的 SA 池

nexenta_volume_group = iscsi

(字符串) ns5 的卷组