如果我通过AWS管理控制台这样做,我可以创建带有数据存储库关联(DRA)和S3存储桶的Amazon FSx Lustre SCRATCH2文件系统。
然而,如果我首先创建这样一个Lustre SCRATCH2文件系统,并在其创建完成后尝试向其中添加带有S3存储桶的数据存储库关联(DRA),我就无法做到这一点。AWS管理控制台向我显示下一条错误消息:
此文件系统不支持数据存储库关联。
在AmazonFSxLustre文档中,我找不到任何关于以后无法添加DRA的信息。这里只有一条关于不能将DRA与Scratch 1一起使用的通知。
例如,请参见:
https://docs.aws.amazon.com/fsx/latest/LustreGuide/overview-dra-data-repo.html
https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-dra-linked-data-repo.html
看起来AmazonFSxLustre文档在DRA和Scratch2上不完整。也许我只是没有找到合适的地方。
Terraform AWS提供商文档称,DRA资源(AWS_fsx_data_repository_association)仅与PERSISTENT_2兼容。
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/fsx_data_repository_association
这似乎很奇怪,因为可以通过AWS管理控制台用S3 DRA创建Scratch 2,并且DRA导入/导出可以很好地与这样的Scratch 2文件系统配合使用。
之后,通过Terraform AWS提供商,我尝试创建一个FSx Lustre Scratch 2文件系统和一个S3存储桶,并通过创建DRA将它们链接起来。
我收到类似的错误消息:
错误:为Lustre数据存储库关联创建FSx:不支持操作:此文件系统不支持数据存储库的关联。
因此,至少Terraform AWS提供商的文档不会与提供商的能力相矛盾。
我使用Terraform 1.1.5和AWS Provider 5.26.0(也在4.65.0上检查过),但如果有帮助的话,我可以将Terraform升级到最新版本。
我已经尝试过的Terraform资源有:
resource "aws_fsx_lustre_file_system" "smpl_lstr_scr2" {
deployment_type = "SCRATCH_2"
storage_capacity = 1200
data_compression_type = null
subnet_ids = [ var.mysubnet ]
}
resource "aws_s3_bucket" "a_buck" {
bucket = "my_buck"
}
resource "aws_fsx_data_repository_association" "scr2_s3_dra" {
file_system_id = aws_fsx_lustre_file_system.a_scr2.id
data_repository_path = s3://${aws_s3_bucket.a_buck.id}"
file_system_path = "/"
s3 {
auto_export_policy {
events = ["NEW", "CHANGED", "DELETED"]
}
auto_import_policy {
events = ["NEW", "CHANGED", "DELETED"]
}
}
}
有没有一种方法可以在Terraform中用具有S3存储桶行为的DRA模拟AWS管理控制台Scratch 2文件系统,以立即创建FSx Lustre Scratch 2中的文件系统及其与S3存储桶的关联?
或者任何其他Terraform方式来创建Scratch 2到S3 DRA?