配置 Broker 持久性 - NICE DCV Session Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

配置 Broker 持久性

Session Manager Broker 支持与外部数据库集成在一起。Session Manager 可以在外部数据库中持久保留状态数据和密钥,以便以后使用这些数据和密钥。事实上,Broker 数据分布在集群上,如果一个主机需要重新引导或终止了集群,则很容易丢失数据。在启用该功能后,您可以添加和删除 Broker 节点。此外,您可以停止并重新启动集群,而无需重新生成密钥或丢失有关打开或关闭的 NICE DCV 服务器的信息。

可以将以下类型的信息设置为持久保留:

  • 用于设置会话以与客户端建立连接的密钥

  • 正在传输的会话数据

  • NICE DCV 服务器状态

NICE DCV Session Manager 支持 DynamoDB、MariaDB 和 MySQL 数据库。您必须设置和管理这些数据库之一才能使用该功能。如果在 Amazon EC2 上托管您的 Broker 计算机,我们建议将 DynamoDB 作为外部数据库,因为它不需要进行任何额外的设置。

注意

在运行外部数据库时,您可能会产生额外费用。要查看有关 DynamoDB 定价的信息,请参阅预置容量的定价

配置 Broker 以在 DynamoDB 上持久保留数据

配置 Broker 以开始在 DynamoDB 上存储其数据:

  1. 使用常用的文本编辑器打开 /etc/dcv-session-manager-broker/session-manager-broker.properties 并进行以下编辑:

    • Set enable-persistence = true

    • Set persistence-db = dynamodb

    • 对于 dynamodb-region,指定您希望存储包含 Broker 数据的表的 &aws; 区域。有关支持的区域列表,请参阅 DynamoDB service endpoints

    • 对于 dynamodb-table-rcu,指定每个表支持的读取容量单位 (RCU) 数量。有关 RCU 的更多信息,请参阅 DynamoDB 预置容量

    • 对于 dynamodb-table-wcu,指定每个表支持的写入容量单位 (WCU) 数量。有关 WCU 的更多信息,请参阅 DynamoDB 预置容量

    • 对于 dynamodb-table-name-prefix,指定添加到每个 DynamoDB 表的前缀(用于区分使用同一账户的多个 Broker 集群)。仅允许使用字母数字字符、圆点、短划线和下划线。

  2. 停止集群中的所有 Broker。对于每个 Broker,运行以下命令:

    sudo systemctl stop dcv-session-manager-broker
  3. 确保集群中的所有 Broker 已停止,然后重新启动所有 Broker。运行以下命令以启动每个 Broker:

    sudo systemctl start dcv-session-manager-broker

Broker 主机必须有权调用 DynamoDB API。在 Amazon EC2 实例上,凭证是使用 Amazon EC2 元数据服务自动检索的。如果需要指定不同的凭证,您可以使用支持的凭证检索技术之一(例如 Java 系统属性或环境变量)设置这些凭证。有关更多信息,请参阅 Supplying and Retrieving &aws; Credentials

配置 Broker 以在 MariaDB/MySQL 上持久保留数据

注意

/etc/dcv-session-manager-broker/session-manager-broker.properties 文件包含敏感数据。默认情况下,其写入访问权限限制为根用户,其读取访问权限限制为根用户和运行 Broker 的用户。默认情况下,这是 dcvsmbroker 用户。Broker 在启动时检查文件是否具有预期的权限。

配置 Broker 以开始在 MariaDB/MySQL 上持久保留其数据:

  1. 使用常用的文本编辑器打开 /etc/dcv-session-manager-broker/session-manager-broker.properties 并进行以下编辑:

    • Set enable-persistence = true

    • Set persistence-db = mysql

    • Set jdbc-connection-url = jdbc:mysql://<db_endpoint>:<db_port>/<db_name>?createDatabaseIfNotExist=true

      在该配置中,<db_endpoint> 是数据库终端节点,<db_port> 是数据库端口,<db_name> 是数据库名称。

    • 对于 jdbc-user,指定有权访问数据库的用户的名称。

    • 对于 jdbc-password,指定有权访问数据库的用户的密码。

  2. 停止集群中的所有 Broker。对于每个 Broker,运行以下命令:

    sudo systemctl stop dcv-session-manager-broker
  3. 确保集群中的所有 Broker 已停止,然后重新启动所有 Broker。对于每个 Broker,运行以下命令:

    sudo systemctl start dcv-session-manager-broker