Lustre 根挤压 - FSx for Lustre
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Lustre 根挤压

根挤压是一项管理功能,它在当前基于网络的访问控制和 POSIX 文件权限的基础上又增加了一层文件访问控制。使用 Lustre 根挤压功能,可以限制那些尝试以根用户身份访问 FSx for Lustre 文件系统的客户端进行根级别的访问。

需要根用户权限才能执行管理操作,例如管理 FSx for Lustre 文件系统的权限。但是,根访问权限为用户提供了不受限制的访问权限,他们可以绕过权限检查来访问、修改或删除文件系统对象。使用根挤压功能,可以通过为文件系统指定非根用户 ID(UID)和组 ID(GID),防止对数据进行未经授权的访问或删除。访问文件系统的根用户将自动转换为权限较低的指定用户/组,仅具有存储管理员设置的有限权限。

使用根挤压功能,还可以选择提供不受根挤压设置影响的客户端列表。这些客户端能够以根用户身份访问文件系统,且权限不受限制。

根挤压的工作原理

根挤压功能的工作原理是将根用户的用户 ID(UID)和组 ID(GID)重新映射到 Lustre 系统管理员指定的 UID 和 GID。使用根挤压功能,还可以选择指定一组 UID/GID 重新映射不适用的客户端。

创建 FSx for Lustre 新文件系统时,根挤压默认处于禁用状态。可以通过为 FSx for Lustre 文件系统配置 UID 和 GID 根挤压设置,启用根挤压。UID 和 GID 值是范围从 04294967294 的整数:

  • UID 和 GID 为非零值时启用根挤压。UID 和 GID 值可以不同,但每个值都必须是非零值。

  • UID 和 GID 的值为 0(零)时表示根,因此禁用根挤压。

在创建文件系统的过程中,您可以使用 Amazon FSx 控制台在 Root Squash 属性中提供根压缩 UID 和 GID 值,所示。在创建文件系统时启用 root squash(控制台)您也可以将RootSquash参数与Amazon CLI或 API 一起使用,以提供 UID 和 GID 值,如所示。创建文件系统时启用根挤压(CLI)

或者,也可以指定根挤压不适用的客户端 NID 列表。客户端 NID 是 Lustre 网络标识符,用于唯一标识客户端。可以将 NID 指定为单个地址,也可以指定为地址范围:

  • 描述单个地址时采用标准 Lustre NID 格式,即指定客户端的 IP 地址,再指定 Lustre 网络 ID(例如 10.0.1.6@tcp)。

  • 描述地址范围时用短划线分隔范围(例如 10.0.[2-10].[1-255]@tcp)。

  • 如果您没有指定任何客户端 NID,那么根挤压将不会有例外情况。

创建或更新文件系统时,您可以使用 Amazon FSx 控制台中的 Root Squash 异常属性来提供客户端 NID 列表。在Amazon CLI或 API 中,使用NoSquashNids参数。有关更多信息,请参阅中的步骤管理根挤压

注意

备份和还原不支持根挤压。要使用备份和恢复,您必须禁用 root RootSquash squash,方法是使用Amazon CLI或 API 将0:0NoSquashNids参数设置为,或者在 Amazon FSx 控制台的 “更新 Root Squash 设置” 对话框中选择 “禁用”。[]

管理根挤压

在创建文件系统期间,root squash 在默认情况下处于禁用状态。通过亚马逊 FSx 控制台或 API 为 Lustre 创建新的 Amazon FSx for Lustre 文件系统时,你可以启用根压缩Amazon CLI。

  1. 通过以下网址打开 Amazon FSx 控制台:https://console.aws.amazon.com/fsx/

  2. 按照入门部分的创建你的 FSx for Lustre 文件系统中所述的步骤创建新文件系统。

  3. 打开 Root Squash-可选部分。

    
                FSx for Lustre Create rile 系统控制台页面的 root squash 部分。
  4. 对于 Root Squash,请提供 root 用户可以用来访问文件系统的用户和群组 ID。您可以指定 1 — 范围内的任意整数4294967294

    1. 在 “用户 ID” 中,指定 root 用户要使用的用户 ID。

    2. 在 “群组 ID” 中,指定 root 用户要使用的群组 ID。

  5. (可选)对于 Root Squash 的例外情况,请执行以下操作:

    1. 选择 “添加客户地址”。

    2. 在 “客户端地址” 字段中,指定不适用 root squash 的客户端的 IP 地址。有关 IP 地址格式的信息,请参阅根挤压的工作原理

    3. 根据需要重复此操作以添加更多客户端 IP 地址。

  6. 按照创建新文件系统时的操作完成向导。

  7. 选择审核和创建

  8. 查看您为 Amazon FSx for Lustre 文件系统选择的设置,然后选择创建文件系统

当文件系统变为 “可用” 时,将启 root squash。

  • 要创建启用根挤压的 FSx for Lustre 文件系统,请使用带有 RootSquashConfiguration 参数的 Amazon FSx CLI 命令 create-file-system。相应的 API 操作是 CreateFileSystem

    对于 RootSquashConfiguration 参数,请设置以下选项:

    • RootSquash – 以冒号分隔的 UID:GID 值,用于指定根用户要使用的用户 ID 和组 ID。可以为每个 ID 指定 04294967294(0 表示根)范围内的任意整数(例如,65534:65534)。

    • NoSquashNids – 指定根挤压不适用的客户端的 Lustre 网络标识符(NID)。有关客户端 NID 格式的信息,请参阅根挤压的工作原理

    以下示例创建了一个启用根挤压的 FSx for Lustre 文件系统:

    $ aws fsx create-file-system \ --client-request-token CRT1234 \ --file-system-type LUSTRE \ --file-system-type-version 2.15 \ --lustre-configuration "DeploymentType=PERSISTENT_2,PerUnitStorageThroughput=250,DataCompressionType=LZ4,\ RootSquashConfiguration={RootSquash="65534:65534",\ NoSquashNids=["10.216.123.47@tcp", "10.216.12.176@tcp"]}" \ --storage-capacity 2400 \ --subnet-ids subnet-123456 \ --tags Key=Name,Value=Lustre-TEST-1 \ --region us-east-2

在成功创建文件系统后,Amazon FSx 以 JSON 形式返回文件系统描述,如以下示例所示。

{ "FileSystems": [ { "OwnerId": "111122223333", "CreationTime": 1549310341.483, "FileSystemId": "fs-0123456789abcdef0", "FileSystemType": "LUSTRE", "FileSystemTypeVersion": "2.15", "Lifecycle": "CREATING", "StorageCapacity": 2400, "VpcId": "vpc-123456", "SubnetIds": [ "subnet-123456" ], "NetworkInterfaceIds": [ "eni-039fcf55123456789" ], "DNSName": "fs-0123456789abcdef0.fsx.us-east-2.amazonaws.com", "ResourceARN": "arn:aws:fsx:us-east-2:123456:file-system/fs-0123456789abcdef0", "Tags": [ { "Key": "Name", "Value": "Lustre-TEST-1" } ], "LustreConfiguration": { "DeploymentType": "PERSISTENT_2", "DataCompressionType": "LZ4", "PerUnitStorageThroughput": 250, "RootSquashConfiguration": { "RootSquash": "65534:65534", "NoSquashNids": "10.216.123.47@tcp 10.216.29.176@tcp" } } ] }

您也可以使用 Amazon FSx 控制台或 API 更新现有文件系统的根压缩设置。Amazon CLI例如,可以更改根挤压 UID 和 GID 值,添加或删除客户端 NID,或者禁用根挤压。

  1. 通过以下网址打开 Amazon FSx 控制台:https://console.aws.amazon.com/fsx/

  2. 导航到 “文件系统”,然后选择要为其管理 root squash 的 Lustre 文件系统。

  3. 在 “操作” 中,选择 “更新根挤压”。或者,在 “摘要” 面板中,选择文件系统的 “R oot Sq uash” 字段旁边的 “更新”,以显示 “更新 Root Squash 设置” 对话框。

    
                显示更新 root squash 窗格的控制台屏幕截图。
  4. 对于 Root Squash,请更新 root 用户可以用来访问文件系统的用户和群组 ID。您可以指定 0 — 范围内的任意整数4294967294。要禁用 root squash,请为两个 ID 指定0(零)。

    1. 在 “用户 ID” 中,指定 root 用户要使用的用户 ID。

    2. 在 “群组 ID” 中,指定 root 用户要使用的群组 ID。

  5. 对于 Root Squash 的例外情况,请执行以下操作:

    1. 选择 “添加客户地址”。

    2. 在 “客户端地址” 字段中,指定不适用 root squash 的客户端的 IP 地址,

    3. 根据需要重复此操作以添加更多客户端 IP 地址。

  6. 选择更新

    注意

    如果启用了 root squash 并且您想将其禁用,请选择 “禁用”,而不是执行步骤 4-6。

可以在文件系统详细信息页面的更新选项卡上监控更新进度。

要更新现有 FSx for Lustre 文件系统的根压缩设置,Amazon CLI请使用命令。update-file-system相应的 API 操作是 UpdateFileSystem

设置以下参数:

  • --file-system-id 设置为要更新的文件系统的 ID。

  • 设置 --lustre-configuration RootSquashConfiguration 选项,如下所示:

    • RootSquash – 设置以冒号分隔的 UID:GID 值,用于指定根用户要使用的用户 ID 和组 ID。可以为每个 ID 指定 04294967294(0 表示根)范围内的任意整数。要禁用根挤压,请将 UID:GID 值指定为 0:0

    • NoSquashNids – 指定根挤压不适用的客户端的 Lustre 网络标识符(NID)。使用 [] 会删除所有客户端 NID,这意味着根挤压不会有任何例外情况。

以下命令指定启用根挤压并使用 65534 作为根用户的用户 ID 和组 ID 的值。

$ aws fsx update-file-system \ --file-system-id fs-0123456789abcdef0 \ --lustre-configuration RootSquashConfiguration={RootSquash="65534:65534", \ NoSquashNids=["10.216.123.47@tcp", "10.216.12.176@tcp"]}

如果该命令成功,Amazon FSx for Lustre 将以 JSON 格式返回响应。

您可以在 Amazon FSx 控制台文件系统详情页面的 “摘要” 面板中或在 CLI 命令的响应(等效的 AP describe-file-systemsI 操作是 DescribeFileSystems)中查看文件系统的根压缩设置。