ONTAP S3 マルチプロトコル サポートについて学ぶ
ONTAP 9.12.1以降では、S3プロトコルを実行しているクライアントが、NFSプロトコルおよびSMBプロトコルを使用するクライアントに提供されているデータに再フォーマットなしでアクセスできるように設定できます。この機能により、NASクライアントへのNASデータの提供は継続したまま、S3アプリケーション(データ マイニングや人工知能など)を実行するS3クライアントにオブジェクト データを提供できます。
S3マルチプロトコル機能は次の2つのユースケースに対応します。
-
S3クライアントを使用した既存のNASデータへのアクセス
既存のデータが従来の NAS クライアント(NFS または SMB)を使用して作成され、NAS ボリューム(FlexVol または FlexGroup ボリューム)上に配置されている場合は、S3 クライアント上の分析ツールを使用してこのデータにアクセスできます。
-
NASとS3両方のプロトコルを使用してI/O処理を実行できる最新クライアント用のバックエンド ストレージ
NAS プロトコルと S3 プロトコルの両方を使用して同じデータを読み書きできる Spark や Kafka などのアプリケーションに統合アクセスを提供できます。
S3マルチプロトコル サポートの仕組み
ONTAPマルチプロトコルサポートにより、同一のデータセットをファイル階層として、またはバケット内のオブジェクトとして提示できます。これを実現するために、ONTAPは「S3 NASバケット」を作成します。これにより、S3クライアントはS3オブジェクトリクエストを使用してNASストレージ内のファイルを作成、読み取り、削除、列挙できます。このマッピングはNASセキュリティ設定に準拠し、ファイルとディレクトリのアクセス権限を監視し、必要に応じてセキュリティ監査証跡に書き込みます。
このマッピングは、指定されたNASディレクトリ階層をS3バケットとして提供することで実現されます。ディレクトリ階層内の各ファイルはS3オブジェクトとして表されます。オブジェクト名にはマッピングされたディレクトリからの相対パスが使用され、ディレクトリの境界はスラッシュ(/)で指定されます。
ONTAPで定義されたS3ユーザは、NASディレクトリにマッピングされたバケットに対して定義されたバケット ポリシーに従って、このストレージにアクセスできます。そのため、S3ユーザとSMB / NFSユーザの間のマッピングを定義する必要があります。SMB / NFSユーザのクレデンシャルがNAS権限のチェックに使用され、アクセスによって生成される監査レコードにも記録されます。
SMBクライアントまたはNFSクライアントによって作成されたファイルはすぐにディレクトリに配置されるため、データの書き込み前でもクライアントにファイルが表示されます。S3クライアントが想定するプロセスはこれとは異なり、新しいオブジェクトはデータがすべて書き込まれるまでネームスペースに表示されません。S3からNASストレージへのマッピングではS3のプロセスでファイルが作成され、S3の作成コマンドが完了するまで外部に対してファイルは表示されません。
S3 NASバケットのデータ保護
S3 NAS「バケット」は、S3クライアント向けのNASデータのマッピングに過ぎず、標準的なS3バケットではありません。したがって、NetApp SnapMirror S3機能を使用してS3 NASバケットを保護する必要はありません。代わりに、SnapMirror非同期ボリュームレプリケーションを使用して、S3 NASバケットを含むボリュームを保護できます。SnapMirror同期およびSVMディザスタリカバリはサポートされていません。
ONTAP 9.14.1以降では、MetroCluster IP構成とMetroCluster FC構成のミラーされたアグリゲートとミラーされていないアグリゲートで、S3 NASバケットがサポートされます。
"SnapMirror非同期"について学びましょう。
S3 NASバケットの監査
S3 NASバケットは従来のS3バケットではないため、S3監査を設定してそれらのアクセスを監査することはできません。"S3の監査"の詳細をご覧ください。
ただし、S3 NASバケットでマッピングされているNASのファイルとディレクトリについては、ONTAPの従来の監査手順を使用してアクセス イベントを監査できます。したがって、S3処理でNAS監査イベントがトリガーできますが、次の例外があります。
-
S3ポリシーの設定(グループ ポリシーまたはバケット ポリシー)でS3クライアント アクセスが拒否された場合、そのイベントのNAS監査は開始されません。これは、SVMの監査チェックの前にS3権限がチェックされるためです。
-
ターゲット ファイルのサイズが0のS3 Get要求に返されるコンテンツは0で、読み取りアクセスはログに記録されません。
-
S3 Get要求のターゲット ファイルがユーザにトラバース権限のないフォルダにある場合、アクセスは失敗し、イベントはログに記録されません。
"SVM での NAS イベントの監査"について学びましょう。
オブジェクトのマルチパート アップロード
ONTAP 9.16.1 以降では、基盤となるFlexGroupボリュームで"高度な容量バランス調整"が有効になっている場合、S3 NAS バケットでオブジェクトのマルチパートアップロードがサポートされます。
NASファイル ストレージでオブジェクトのマルチパート アップロードを使用すると、S3プロトコル クライアントで大きなオブジェクトを小さなパーツに分割してアップロードできます。オブジェクトのマルチパート アップロードには以下のようなメリットがあります。
-
オブジェクトを並行してアップロードできます。
-
アップロードに失敗した場合や、アップロードが中断した場合も、まだアップロードされていないパーツのみをアップロードするだけで済みます。オブジェクト全体のアップロードを再開する必要はありません。
-
オブジェクトのサイズを事前に確認できない場合(大きなオブジェクトの書き込みが終わっていない場合など)でも、クライアントはオブジェクトのパーツのアップロードをただちに開始して、オブジェクト全体が作成されたあとでアップロードを完了できます。
|
|
S3 NAS バケット内のマルチパートオブジェクトは、部分的ではなく全体のサイズで揃える必要があります。たとえば、パートは 4MB または 4GB または同様のサイズになります。パートでは、4.5MB や 4000.5MB などの部分的なサイズや MB 未満のサイズは使用できません。 |
マルチパート アップロードでは、以下のS3処理がサポートされます。
-
AbortMultipartUpload
-
CompleteMultipartUpload
-
CopyObject(ONTAP 9.17.1以降)
-
CreateMultipartUpload
ONTAP 9.17.1 以降では、CreateMultipartUpload はタグ付けとユーザーメタデータのキー/値のペアをサポートします。
-
ListMultipartUpload
-
UploadPart
|
|
S3 NASバケットでは、部品番号("partNumber=xx")によるGETはサポートされていません。代わりにオブジェクト全体が返されます。 |
S3とNASの相互運用性
ONTAP S3 NASバケットは、以下に記載する例外を除いて、NASとS3の標準機能をサポートします。
S3 NASバケットで現在サポートされていないNAS機能
- FabricPoolの大容量階層
-
S3 NASバケットをFabricPoolの大容量階層として設定することはできません。
S3 NAS バケットで現在サポートされていない S3 アクションと機能
- アクション
-
-
ByPassGovernanceRetention
-
DeleteBucketLifecycleConfiguration
-
GetBucketLifecycleConfiguration
-
GetBucketObjectLockConfiguration
-
GetBucketVersioning
-
GetObjectRetention
-
ListBucketVersioning
-
ListObjectVersions
-
PutBucketLifecycleConfiguration
-
PutBucketVersioning
-
PutObjectLockConfiguration
-
PutObjectRetention
-
|
|
これらのS3アクションは、S3 NASバケットでS3を使用する場合には特にサポートされません。ネイティブS3バケットを使用する場合は、これらのアクションは"通常通りサポートされます"サポートされます。 |
- AWSユーザ メタデータ
-
-
ONTAP 9.17.1 以降では、マルチパート オブジェクトを含むメタデータがサポートされます。
-
ONTAP 9.16.1 以降では、単一パート オブジェクトを含むメタデータがサポートされます。
-
ONTAP 9.15.1 以前では、S3 ユーザーメタデータの一部として受信されたキーと値のペアは、オブジェクトデータとともにディスクに保存されません。
-
ONTAP 9.15.1 以前では、プレフィックス「x-amz-meta」が付いたリクエスト ヘッダーは無視されます。
-
- AWSタグ
-
-
ONTAP 9.17.1 以降では、マルチパートオブジェクトを含むタグがサポートされます。
-
ONTAP 9.16.1 以降では、単一部分オブジェクトを含むタグがサポートされます。
-
ONTAP 9.15.1 以前の PUT オブジェクトおよび Multipart Initiate リクエストでは、プレフィックス「x-amz-tagging」が付いたヘッダーは無視されます。
-
ONTAP 9.15.1 以前では、既存のファイルのタグを更新する要求(?tagging クエリ文字列を含む Put、Get、および Delete 要求)はエラーで拒否されます。
-
- バージョン管理
-
バケットのマッピング設定にバージョンを指定することはできません。
-
nullでないバージョン(クエリ文字列「versionId=xyz」)が指定された要求にはエラーが返されます。
-
バケットのバージョン管理状態に影響する要求はエラーで拒否されます。
-