Skip to main content
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

配置租户帐户和连接

贡献者

要将 StorageGRID 配置为接受来自客户端应用程序的连接,需要创建一个或多个租户帐户并设置连接。

创建和配置Swift租户帐户

要使 Swift API 客户端能够在 StorageGRID 上存储和检索对象,需要使用 Swift 租户帐户。每个租户帐户都有自己的帐户 ID ,组和用户以及容器和对象。

Swift 租户帐户由 StorageGRID 网格管理员使用网格管理器或网格管理 API 创建。

创建 Swift 租户帐户时,网格管理员会指定以下信息:

  • 租户的显示名称(租户的帐户 ID 会自动分配,不能更改)

  • (可选)租户帐户的存储配额—租户对象可用的最大 GB , TB 或 PB 数。租户的存储配额表示逻辑容量(对象大小),而不是物理容量(磁盘大小)。

  • 如果 StorageGRID 系统未使用单点登录( SSO ),则表示租户帐户是使用自己的身份源还是共享网格的身份源,以及租户的本地 root 用户的初始密码。

  • 如果启用了 SSO ,则哪个联合组具有 root 访问权限来配置租户帐户。

创建 Swift 租户帐户后,具有 root 访问权限的用户可以访问租户管理器以执行如下任务:

  • 设置身份联合(除非身份源与网格共享),并创建本地组和用户

  • 监控存储使用情况

重要说明 Swift 用户必须具有 root 访问权限才能访问租户管理器。但是, " 根访问 " 权限不允许用户向 Swift REST API 进行身份验证以创建容器和载入对象。用户必须具有 Swift 管理员权限才能向 Swift REST API 进行身份验证。
相关信息

"管理 StorageGRID"

如何配置客户端连接

网格管理员可以选择影响 Swift 客户端连接到 StorageGRID 以存储和检索数据的配置。建立连接所需的具体信息取决于所选的配置。

客户端应用程序可以通过连接到以下任一项来存储或检索对象:

  • 管理节点或网关节点上的负载平衡器服务,或者也可以是管理节点或网关节点高可用性( HA )组的虚拟 IP 地址

  • 网关节点上的 CLB 服务,或者也可以是网关节点高可用性组的虚拟 IP 地址

    备注 CLB 服务已弃用。在 StorageGRID 11.3 版本之前配置的客户端可以继续在网关节点上使用 CLB 服务。所有其他依靠 StorageGRID 提供负载平衡的客户端应用程序都应使用负载平衡器服务进行连接。
  • 存储节点,具有或不具有外部负载平衡器

配置 StorageGRID 时,网格管理员可以使用网格管理器或网格管理 API 执行以下步骤,所有这些步骤均为可选步骤:

  1. 为负载平衡器服务配置端点。

    您必须配置端点才能使用负载平衡器服务。管理节点或网关节点上的负载平衡器服务会将传入的网络连接从客户端应用程序分发到存储节点。创建负载平衡器端点时, StorageGRID 管理员会指定端口号,端点是否接受 HTTP 或 HTTPS 连接,将使用此端点的客户端类型( S3 或 Swift )以及用于 HTTPS 连接的证书(如果适用)。

  2. 配置不可信客户端网络。

    如果 StorageGRID 管理员将节点的客户端网络配置为不可信,则节点仅接受客户端网络上显式配置为负载平衡器端点的端口上的入站连接。

  3. 配置高可用性组。

    如果管理员创建了一个 HA 组,则多个管理节点或网关节点的网络接口将置于主动备份配置中。客户端连接使用 HA 组的虚拟 IP 地址进行。

有关每个选项的详细信息,请参见有关管理 StorageGRID 的说明。

摘要:客户端连接的 IP 地址和端口

客户端应用程序使用网格节点的 IP 地址以及该节点上服务的端口号连接到 StorageGRID 。如果配置了高可用性( HA )组,则客户端应用程序可以使用 HA 组的虚拟 IP 地址进行连接。

建立客户端连接所需的信息

下表总结了客户端连接到 StorageGRID 的不同方式以及每种连接类型所使用的 IP 地址和端口。有关详细信息,请与 StorageGRID 管理员联系,或者参见有关管理问题描述 StorageGRID 的说明,了解如何在网格管理器中查找此信息。

建立连接的位置 客户端连接到的服务 IP 地址 Port

HA 组

负载平衡器

HA 组的虚拟 IP 地址

  • 负载平衡器端点端口

HA 组

CLB

  • 注: * CLB 服务已弃用。

HA 组的虚拟 IP 地址

默认 Swift 端口:

  • HTTPS : 8083

  • HTTP : 8085

管理节点

负载平衡器

管理节点的 IP 地址

  • 负载平衡器端点端口

网关节点

负载平衡器

网关节点的 IP 地址

  • 负载平衡器端点端口

网关节点

CLB

  • 注: * CLB 服务已弃用。

网关节点的 IP 地址

  • 注意: * 默认情况下, CLB 和 LDR 的 HTTP 端口未启用。

默认 Swift 端口:

  • HTTPS : 8083

  • HTTP : 8085

存储节点

LDR

存储节点的 IP 地址

默认 Swift 端口:

  • HTTPS : 18083

  • HTTP : 18085

示例

要将 Swift 客户端连接到网关节点 HA 组的负载平衡器端点,请使用以下结构化 URL :

  • https://VIP-of-HA-group:LB-endpoint-port

例如,如果 HA 组的虚拟 IP 地址为 192.0.2.6 , Swift 负载平衡器端点的端口号为 10444 ,则 Swift 客户端可以使用以下 URL 连接到 StorageGRID :

  • https://192.0.2.6:10444

可以为客户端用于连接到 StorageGRID 的 IP 地址配置 DNS 名称。请与本地网络管理员联系。

决定使用HTTPS或HTTP连接

使用负载平衡器端点建立客户端连接时,必须使用为此端点指定的协议( HTTP 或 HTTPS )进行连接。要使用 HTTP 连接到存储节点或网关节点上的 CLB 服务,必须启用 HTTP 。

默认情况下,当客户端应用程序连接到存储节点或网关节点上的 CLB 服务时,它们必须对所有连接使用加密 HTTPS 。您也可以选择网格管理器中的 * 启用 HTTP 连接 * 网格选项来启用不太安全的 HTTP 连接。例如,在非生产环境中测试与存储节点的连接时,客户端应用程序可能会使用 HTTP 。

重要说明 为生产网格启用 HTTP 时要小心,因为请求将以未加密方式发送。
备注 CLB 服务已弃用。

如果选择了 * 启用 HTTP 连接 * 选项,则客户端对 HTTP 使用的端口必须与对 HTTPS 使用的端口不同。请参见有关管理 StorageGRID 的说明。

相关信息

"管理 StorageGRID"

在Swift API配置中测试连接

您可以使用 Swift 命令行界面测试与 StorageGRID 系统的连接,并验证是否可以向系统读取和写入对象。

您需要的内容
  • 您必须已下载并安装 python swiftclient ,即 Swift 命令行客户端。

  • 您必须在 StorageGRID 系统中具有 Swift 租户帐户。

关于此任务

如果尚未配置安全性、则必须添加 --insecure 标记这些命令中的每个命令。

步骤
  1. 查询 StorageGRID Swift 部署的信息 URL :

    swift
    -U <Tenant_Account_ID:Account_User_Name>
    -K <User_Password>
    -A https://<FQDN | IP>:<Port>/info
    capabilities

    这足以测试您的 Swift 部署是否正常运行。要通过存储对象进一步测试帐户配置,请继续执行其他步骤。

  2. 将对象放入容器中:

    touch test_object
    swift
    -U <Tenant_Account_ID:Account_User_Name>
    -K <User_Password>
    -A https://<FQDN | IP>:<Port>/auth/v1.0
    upload test_container test_object
    --object-name test_object
  3. 获取用于验证对象的容器:

    swift
    -U <Tenant_Account_ID:Account_User_Name>
    -K <User_Password>
    -A https://<FQDN | IP>:<Port>/auth/v1.0
    list test_container
  4. 删除对象:

    swift
    -U <Tenant_Account_ID:Account_User_Name>
    -K <User_Password>
    -A https://<FQDN | IP>:<Port>/auth/v1.0
    delete test_container test_object
  5. 删除容器:

    swift
    -U `<_Tenant_Account_ID:Account_User_Name_>`
    -K `<_User_Password_>`
    -A `\https://<_FQDN_ | _IP_>:<_Port_>/auth/v1.0'
    delete test_container