本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 值是范围从 0
到 4294967294
的整数:
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:0
NoSquashNids
参数设置为,或者在 Amazon FSx 控制台的 “更新 Root Squash 设置” 对话框中选择 “禁用”。[]
管理根挤压
在创建文件系统期间,root squash 在默认情况下处于禁用状态。通过亚马逊 FSx 控制台或 API 为 Lustre 创建新的 Amazon FSx for Lustre 文件系统时,你可以启用根压缩 Amazon CLI。
-
通过以下网址打开 Amazon FSx 控制台:https://console.aws.amazon.com/fsx/
。 按照入门部分的第 1 步:为 Lustre 文件系统创建 FSx中所述的步骤创建新文件系统。
打开 Root Squash-可选部分。
-
对于 Root Squash,请提供 root 用户可以用来访问文件系统的用户和群组 ID。您可以指定
1
— 范围内的任意整数4294967294
:在 “用户 ID” 中,指定 root 用户要使用的用户 ID。
在 “群组 ID” 中,指定 root 用户要使用的群组 ID。
-
(可选)对于 Root Squash 的例外情况,请执行以下操作:
选择 “添加客户地址”。
在 “客户端地址” 字段中,指定不适用 root squash 的客户端的 IP 地址。有关 IP 地址格式的信息,请参阅根挤压的工作原理。
根据需要重复此操作以添加更多客户端 IP 地址。
-
按照创建新文件系统时的操作完成向导。
-
选择审核和创建。
-
查看您为 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 指定0
–4294967294
(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,或者禁用根挤压。
通过以下网址打开 Amazon FSx 控制台:https://console.aws.amazon.com/fsx/
。 -
导航到 “文件系统”,然后选择要为其管理 root squash 的 Lustre 文件系统。
在 “操作” 中,选择 “更新根挤压”。或者,在 “摘要” 面板中,选择文件系统的 “R oot Sq uash” 字段旁边的 “更新”,以显示 “更新 Root Squash 设置” 对话框。
-
对于 Root Squash,请更新 root 用户可以用来访问文件系统的用户和群组 ID。您可以指定
0
— 范围内的任意整数4294967294
。要禁用 root squash,请为两个 ID 指定0
(零)。在 “用户 ID” 中,指定 root 用户要使用的用户 ID。
在 “群组 ID” 中,指定 root 用户要使用的群组 ID。
-
对于 Root Squash 的例外情况,请执行以下操作:
选择 “添加客户地址”。
在 “客户端地址” 字段中,指定不适用 root squash 的客户端的 IP 地址,
根据需要重复此操作以添加更多客户端 IP 地址。
选择更新。
注意
如果启用了 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 指定0
–4294967294
(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-systems
I 操作是 DescribeFileSystems
)中查看文件系统的根压缩设置。