Class: AWSCDK::FSX::LustreConfiguration

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
fsx/lustre_configuration.rb

Overview

The configuration for the Amazon FSx for Lustre file system.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(deployment_type:, auto_import_policy: nil, automatic_backup_retention: nil, copy_tags_to_backups: nil, daily_automatic_backup_start_time: nil, data_compression_type: nil, drive_cache_type: nil, export_path: nil, imported_file_chunk_size_mib: nil, import_path: nil, per_unit_storage_throughput: nil, weekly_maintenance_start_time: nil) ⇒ LustreConfiguration

Returns a new instance of LustreConfiguration.

Parameters:

  • deployment_type (AWSCDK::FSX::LustreDeploymentType)

    The type of backing file system deployment used by FSx.

  • auto_import_policy (AWSCDK::FSX::LustreAutoImportPolicy, nil) (defaults to: nil)

    Available with Scratch and Persistent_1 deployment types.

  • automatic_backup_retention (AWSCDK::Duration, nil) (defaults to: nil)

    The number of days to retain automatic backups.

  • copy_tags_to_backups (Boolean, nil) (defaults to: nil)

    A boolean flag indicating whether tags for the file system should be copied to backups.

  • daily_automatic_backup_start_time (AWSCDK::FSX::DailyAutomaticBackupStartTime, nil) (defaults to: nil)

    Start time for 30-minute daily automatic backup window in Coordinated Universal Time (UTC).

  • data_compression_type (AWSCDK::FSX::LustreDataCompressionType, nil) (defaults to: nil)

    Sets the data compression configuration for the file system.

  • drive_cache_type (AWSCDK::FSX::DriveCacheType, nil) (defaults to: nil)

    The type of drive cache used by PERSISTENT_1 file systems that are provisioned with HDD storage devices.

  • export_path (String, nil) (defaults to: nil)

    The path in Amazon S3 where the root of your Amazon FSx file system is exported.

  • imported_file_chunk_size_mib (Numeric, nil) (defaults to: nil)

    For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk.

  • import_path (String, nil) (defaults to: nil)

    The path to the Amazon S3 bucket (including the optional prefix) that you're using as the data repository for your Amazon FSx for Lustre file system.

  • per_unit_storage_throughput (Numeric, nil) (defaults to: nil)

    Provisions the amount of read and write throughput for each 1 tebibyte (TiB) of file system storage capacity, in MB/s/TiB.

  • weekly_maintenance_start_time (AWSCDK::FSX::LustreMaintenanceTime, nil) (defaults to: nil)

    The preferred day and time to perform weekly maintenance.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'fsx/lustre_configuration.rb', line 21

def initialize(deployment_type:, auto_import_policy: nil, automatic_backup_retention: nil, copy_tags_to_backups: nil, daily_automatic_backup_start_time: nil, data_compression_type: nil, drive_cache_type: nil, export_path: nil, imported_file_chunk_size_mib: nil, import_path: nil, per_unit_storage_throughput: nil, weekly_maintenance_start_time: nil)
  @deployment_type = deployment_type
  Jsii::Type.check_type(@deployment_type, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZnN4Lkx1c3RyZURlcGxveW1lbnRUeXBlIn0=")), "deploymentType")
  @auto_import_policy = auto_import_policy
  Jsii::Type.check_type(@auto_import_policy, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZnN4Lkx1c3RyZUF1dG9JbXBvcnRQb2xpY3kifQ==")), "autoImportPolicy") unless @auto_import_policy.nil?
  @automatic_backup_retention = automatic_backup_retention
  Jsii::Type.check_type(@automatic_backup_retention, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5EdXJhdGlvbiJ9")), "automaticBackupRetention") unless @automatic_backup_retention.nil?
  @copy_tags_to_backups = copy_tags_to_backups
  Jsii::Type.check_type(@copy_tags_to_backups, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "copyTagsToBackups") unless @copy_tags_to_backups.nil?
  @daily_automatic_backup_start_time = daily_automatic_backup_start_time
  Jsii::Type.check_type(@daily_automatic_backup_start_time, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZnN4LkRhaWx5QXV0b21hdGljQmFja3VwU3RhcnRUaW1lIn0=")), "dailyAutomaticBackupStartTime") unless @daily_automatic_backup_start_time.nil?
  @data_compression_type = data_compression_type
  Jsii::Type.check_type(@data_compression_type, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZnN4Lkx1c3RyZURhdGFDb21wcmVzc2lvblR5cGUifQ==")), "dataCompressionType") unless @data_compression_type.nil?
  @drive_cache_type = drive_cache_type
  Jsii::Type.check_type(@drive_cache_type, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZnN4LkRyaXZlQ2FjaGVUeXBlIn0=")), "driveCacheType") unless @drive_cache_type.nil?
  @export_path = export_path
  Jsii::Type.check_type(@export_path, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "exportPath") unless @export_path.nil?
  @imported_file_chunk_size_mib = imported_file_chunk_size_mib
  Jsii::Type.check_type(@imported_file_chunk_size_mib, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "importedFileChunkSizeMiB") unless @imported_file_chunk_size_mib.nil?
  @import_path = import_path
  Jsii::Type.check_type(@import_path, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "importPath") unless @import_path.nil?
  @per_unit_storage_throughput = per_unit_storage_throughput
  Jsii::Type.check_type(@per_unit_storage_throughput, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "perUnitStorageThroughput") unless @per_unit_storage_throughput.nil?
  @weekly_maintenance_start_time = weekly_maintenance_start_time
  Jsii::Type.check_type(@weekly_maintenance_start_time, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZnN4Lkx1c3RyZU1haW50ZW5hbmNlVGltZSJ9")), "weeklyMaintenanceStartTime") unless @weekly_maintenance_start_time.nil?
end

Instance Attribute Details

#auto_import_policyAWSCDK::FSX::LustreAutoImportPolicy? (readonly)

Note:

Default: - no import policy

Available with Scratch and Persistent_1 deployment types.

When you create your file system, your existing S3 objects appear as file and directory listings. Use this property to choose how Amazon FSx keeps your file and directory listings up to date as you add or modify objects in your linked S3 bucket. AutoImportPolicy can have the following values:

For more information, see Automatically import updates from your S3 bucket .

This parameter is not supported for Lustre file systems using the Persistent_2 deployment type.



62
63
64
# File 'fsx/lustre_configuration.rb', line 62

def auto_import_policy
  @auto_import_policy
end

#automatic_backup_retentionAWSCDK::Duration? (readonly)

Note:

Default: Duration.days(0)

The number of days to retain automatic backups.

Setting this property to 0 disables automatic backups. You can retain automatic backups for a maximum of 90 days.

Automatic Backups is not supported on scratch file systems.

Returns:



72
73
74
# File 'fsx/lustre_configuration.rb', line 72

def automatic_backup_retention
  @automatic_backup_retention
end

#copy_tags_to_backupsBoolean? (readonly)

Note:

Default: - false

A boolean flag indicating whether tags for the file system should be copied to backups.

Returns:

  • (Boolean, nil)


77
78
79
# File 'fsx/lustre_configuration.rb', line 77

def copy_tags_to_backups
  @copy_tags_to_backups
end

#daily_automatic_backup_start_timeAWSCDK::FSX::DailyAutomaticBackupStartTime? (readonly)

Note:

Default: - no backup window

Start time for 30-minute daily automatic backup window in Coordinated Universal Time (UTC).



82
83
84
# File 'fsx/lustre_configuration.rb', line 82

def daily_automatic_backup_start_time
  @daily_automatic_backup_start_time
end

#data_compression_typeAWSCDK::FSX::LustreDataCompressionType? (readonly)

Note:

Default: - no compression

Sets the data compression configuration for the file system.

For more information, see Lustre data compression in the Amazon FSx for Lustre User Guide .



89
90
91
# File 'fsx/lustre_configuration.rb', line 89

def data_compression_type
  @data_compression_type
end

#deployment_typeAWSCDK::FSX::LustreDeploymentType (readonly)

The type of backing file system deployment used by FSx.



51
52
53
# File 'fsx/lustre_configuration.rb', line 51

def deployment_type
  @deployment_type
end

#drive_cache_typeAWSCDK::FSX::DriveCacheType? (readonly)

Note:

Default: - no drive cache

The type of drive cache used by PERSISTENT_1 file systems that are provisioned with HDD storage devices.

Returns:



94
95
96
# File 'fsx/lustre_configuration.rb', line 94

def drive_cache_type
  @drive_cache_type
end

#export_pathString? (readonly)

Note:

Default: s3://import-bucket/FSxLustre[creation-timestamp]

The path in Amazon S3 where the root of your Amazon FSx file system is exported.

The path must use the same Amazon S3 bucket as specified in ImportPath. If you only specify a bucket name, such as s3://import-bucket, you get a 1:1 mapping of file system objects to S3 bucket objects. This mapping means that the input data in S3 is overwritten on export. If you provide a custom prefix in the export path, such as s3://import-bucket/[custom-optional-prefix], Amazon FSx exports the contents of your file system to that export prefix in the Amazon S3 bucket.

Returns:

  • (String, nil)


106
107
108
# File 'fsx/lustre_configuration.rb', line 106

def export_path
  @export_path
end

#import_pathString? (readonly)

Note:

Default: - no bucket is imported

The path to the Amazon S3 bucket (including the optional prefix) that you're using as the data repository for your Amazon FSx for Lustre file system.

Must be of the format "s3://bucketName/optional-prefix" and cannot exceed 900 characters.

Returns:

  • (String, nil)


121
122
123
# File 'fsx/lustre_configuration.rb', line 121

def import_path
  @import_path
end

#imported_file_chunk_size_mibNumeric? (readonly)

Note:

Default: 1024

For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk.

Allowed values are between 1 and 512,000.

Returns:

  • (Numeric, nil)


113
114
115
# File 'fsx/lustre_configuration.rb', line 113

def imported_file_chunk_size_mib
  @imported_file_chunk_size_mib
end

#per_unit_storage_throughputNumeric? (readonly)

Note:

Default: - no default, conditionally required for PERSISTENT_1 and PERSISTENT_2 deployment type

Provisions the amount of read and write throughput for each 1 tebibyte (TiB) of file system storage capacity, in MB/s/TiB.

Required with PERSISTENT_1 and PERSISTENT_2 deployment types.

Valid values:

  • For PERSISTENT_1 SSD storage: 50, 100, 200 MB/s/TiB.
  • For PERSISTENT_1 HDD storage: 12, 40 MB/s/TiB.
  • For PERSISTENT_2 SSD storage: 125, 250, 500, 1000 MB/s/TiB.

Returns:

  • (Numeric, nil)


134
135
136
# File 'fsx/lustre_configuration.rb', line 134

def per_unit_storage_throughput
  @per_unit_storage_throughput
end

#weekly_maintenance_start_timeAWSCDK::FSX::LustreMaintenanceTime? (readonly)

Note:

Default: - no preference

The preferred day and time to perform weekly maintenance.

The first digit is the day of the week, starting at 1 for Monday, then the following are hours and minutes in the UTC time zone, 24 hour clock. For example: '2:20:30' is Tuesdays at 20:30.



143
144
145
# File 'fsx/lustre_configuration.rb', line 143

def weekly_maintenance_start_time
  @weekly_maintenance_start_time
end

Class Method Details

.jsii_propertiesObject



145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'fsx/lustre_configuration.rb', line 145

def self.jsii_properties
  {
    :deployment_type => "deploymentType",
    :auto_import_policy => "autoImportPolicy",
    :automatic_backup_retention => "automaticBackupRetention",
    :copy_tags_to_backups => "copyTagsToBackups",
    :daily_automatic_backup_start_time => "dailyAutomaticBackupStartTime",
    :data_compression_type => "dataCompressionType",
    :drive_cache_type => "driveCacheType",
    :export_path => "exportPath",
    :imported_file_chunk_size_mib => "importedFileChunkSizeMiB",
    :import_path => "importPath",
    :per_unit_storage_throughput => "perUnitStorageThroughput",
    :weekly_maintenance_start_time => "weeklyMaintenanceStartTime",
  }
end

Instance Method Details

#to_jsiiObject



162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# File 'fsx/lustre_configuration.rb', line 162

def to_jsii
  result = {}
  result.merge!({
    "deploymentType" => @deployment_type,
    "autoImportPolicy" => @auto_import_policy,
    "automaticBackupRetention" => @automatic_backup_retention,
    "copyTagsToBackups" => @copy_tags_to_backups,
    "dailyAutomaticBackupStartTime" => @daily_automatic_backup_start_time,
    "dataCompressionType" => @data_compression_type,
    "driveCacheType" => @drive_cache_type,
    "exportPath" => @export_path,
    "importedFileChunkSizeMiB" => @imported_file_chunk_size_mib,
    "importPath" => @import_path,
    "perUnitStorageThroughput" => @per_unit_storage_throughput,
    "weeklyMaintenanceStartTime" => @weekly_maintenance_start_time,
  })
  result.compact
end