

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 데이터 리포지토리에 대한 POSIX 메타데이터 지원
<a name="posix-metadata-support"></a>

Amazon FSx for Lustre는 Amazon S3의 연결된 데이터 리포지토리로 데이터를 가져오거나 Amazon S3의 연결된 데이터 리포지토리에서 데이터를 내보낼 때 파일, 디렉터리 및 심볼릭 링크(symlink)에 대한 휴대용 운영 체제 인터페이스(POSIX) 메타데이터를 자동으로 전송합니다. 파일 시스템의 변경 내용을 연결된 데이터 리포지토리로 내보내는 경우 FSx for Lustre는 POSIX 메타데이터 변경 사항도 S3 객체 메타데이터로 내보냅니다. 즉, 다른 FSx for Lustre 파일 시스템이 S3에서 동일한 파일을 가져오는 경우 파일은 소유권 및 권한을 포함하여 해당 파일 시스템에서 동일한 POSIX 메타데이터를 갖게 됩니다.

FSx for Lustre는 다음과 같이 POSIX 호환 객체 키가 있는 S3 객체만 가져옵니다.

```
mydir/
mydir/myfile1
mydir/mysubdir/
mydir/mysubdir/myfile2.txt
```

FSx for Lustre는 디렉터리와 심볼릭 링크를 S3의 연결된 데이터 리포지토리에 별도의 객체로 저장합니다. 디렉터리의 경우 FSx for Lustre는 다음과 같이 슬래시(‘/’) 로 끝나는 키 이름을 가진 S3 객체를 생성합니다.
+ S3 객체 키 `mydir/`은 FSx for Lustre `mydir/` 디렉터리에 매핑됩니다.
+ S3 객체 키 `mydir/mysubdir/`은 FSx for Lustre `mydir/mysubdir/` 디렉터리에 매핑됩니다.

심볼릭 링크의 경우 FSx for Lustre는 다음과 같은 Amazon S3 스키마를 사용합니다.
+ **S3 객체 키** - FSx for Lustre 마운트 디렉터리를 기준으로 한 링크 경로
+ **S3 객체 데이터** - 이 심볼릭 링크의 대상 경로
+ **S3 객체 메타데이터** - 심볼릭 링크의 메타데이터

FSx for Lustre는 파일, 디렉터리, 심볼릭 링크에 대한 소유권, 권한, 타임스탬프를 비롯한 POSIX 메타데이터를 다음과 같이 S3 객체에 저장합니다.
+ `Content-Type` - 웹 브라우저용 리소스의 미디어 유형을 나타내는 데 사용되는 HTTP 엔티티 헤더입니다.
+ `x-amz-meta-file-permissions` - `<octal file type><octal permission mask>` 형식의 파일 유형 및 권한은 [Linux stat(2) 매뉴얼 페이지](https://man7.org/linux/man-pages/man2/lstat.2.html)의 `st_mode` 와 일치합니다.
**참고**  
FSx for Lustre는 `setuid` 정보를 가져오거나 보관하지 않습니다.
+ `x-amz-meta-file-owner` - 소유자 사용자 ID(UID)는 정수로 표시됩니다.
+ `x-amz-meta-file-group` - 그룹 ID(GID)는 정수로 표시됩니다.
+ `x-amz-meta-file-atime` - Unix epoch가 시작된 이후 마지막으로 액세스한 시간(나노초) `ns`로 시간 값을 종료합니다. 그렇지 않으면 FSx for Lustre는 값을 밀리초로 해석합니다.
+ `x-amz-meta-file-mtime` - Unix epoch가 시작된 이후 마지막으로 수정된 시간(나노초) `ns`로 시간 값을 종료합니다. 그렇지 않으면 FSx for Lustre는 값을 밀리초로 해석합니다.
+ `x-amz-meta-user-agent` - 사용자 에이전트로, FSx for Lustre 가져오기 중에는 무시됩니다. 내보내는 동안 FSx for Lustre는 이 값을 `aws-fsx-lustre`로 설정합니다.

연결된 POSIX 권한이 없는 S3에서 객체를 가져올 때 FSx for Lustre가 파일에 할당하는 기본 POSIX 권한은 `755`입니다. 이 권한은 모든 사용자에게 읽기 및 실행 액세스를 허용하고 파일 소유자에게는 쓰기 액세스를 허용합니다.

**참고**  
FSx for Lustre는 S3 객체에 사용자 정의 메타데이터를 보관하지 않습니다.

# 하드 링크 및 Amazon S3로 내보내기
<a name="hard-links"></a>

파일 시스템의 DRA에서 자동 내보내기(NEW 및 CHANGED 정책 사용)가 활성화된 경우, DRA에 포함된 각 하드 링크는 각 하드 링크에 대해 별도의 S3 객체로 Amazon S3에 내보내집니다. 파일 시스템에서 하드 링크가 여러 개 있는 파일을 수정하면 파일을 변경할 때 어떤 하드 링크를 사용했는지와 상관없이 S3의 모든 사본이 업데이트됩니다.

데이터 리포지토리 작업(DRT)을 사용하여 하드 링크를 S3로 내보내는 경우 DRT에 지정된 경로에 포함된 각 하드 링크는 각 하드 링크에 대해 별도의 S3 객체로 S3에 내보내집니다. 파일 시스템에서 하드 링크가 여러 개 있는 파일을 수정하면 파일을 변경할 때 어떤 하드 링크를 사용했는지와 상관없이 각 하드 링크를 내보낼 때 S3의 각 사본이 업데이트됩니다.

**중요**  
새 FSx for Lustre 파일 시스템이 이전에 다른 FSx for Lustre 파일 시스템, AWS DataSync또는 Amazon FSx File Gateway에서 하드 링크를 내보낸 S3 버킷에 연결되면 이후에 하드 링크를 새 파일 시스템에 별도의 파일로 가져옵니다.

## 하드 링크 및 릴리스된 파일
<a name="hard-links-released-files"></a>

릴리스된 파일은 메타데이터가 파일 시스템에 있지만 콘텐츠가 S3에만 저장되는 파일입니다. 릴리스된 파일에 대한 자세한 내용은 [파일 릴리스](file-release.md) 섹션을 참조하세요.

**중요**  
데이터 리포지토리 연결(DRA)이 있는 파일 시스템에서 하드 링크를 사용하는 경우 다음과 같은 제한이 적용됩니다.  
여러 개의 하드 링크가 있는 릴리스된 파일을 삭제하고 다시 만들면 모든 하드 링크의 내용을 덮어쓸 수 있습니다.
릴리스된 파일을 삭제하면 데이터 리포지토리 연결 외부에 있는 모든 하드 링크의 콘텐츠가 삭제됩니다.
S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive 스토리지 클래스에 있는 릴리스된 파일에 대해 하드 링크를 생성하면 S3에 하드 링크용 새 객체가 생성되지 않습니다.

# 안내: Amazon S3 버킷으로 객체를 업로드할 때 POSIX 권한 연결
<a name="attach-s3-posix-permissions"></a>

다음 절차는 POSIX 권한을 사용하여 Amazon S3에 객체를 업로드하는 과정을 안내합니다. 이렇게 하면 해당 S3 버킷에 연결된 Amazon FSx 파일 시스템을 생성할 때 POSIX 권한을 가져올 수 있습니다.

**POSIX 권한을 가진 객체를 Amazon S3에 업로드**

1. 로컬 컴퓨터 또는 시스템에서 다음 예제 명령을 사용하여 S3 버킷에 업로드할 테스트 디렉터리(`s3cptestdir`) 및 파일(`s3cptest.txt`)을 생성합니다.

   ```
   $ mkdir s3cptestdir
   $ echo "S3cp metadata import test" >> s3cptestdir/s3cptest.txt
   $ ls -ld s3cptestdir/ s3cptestdir/s3cptest.txt
   drwxr-xr-x 3 500 500 96 Jan 8 11:29 s3cptestdir/
   -rw-r--r-- 1 500 500 26 Jan 8 11:29 s3cptestdir/s3cptest.txt
   ```

   새로 만든 파일 및 디렉터리의 파일 소유자 사용자 ID(UID)와 그룹 ID(GID)는 500이고 권한은 이전 예와 같습니다.

1. Amazon S3 API를 호출하여 메타데이터 권한이 있는 디렉터리 `s3cptestdir`을 생성합니다. 디렉터리 이름은 뒤에 슬래시(`/`)를 사용하여 지정해야 합니다. 지원되는 POSIX 메타데이터에 대한 자세한 내용은 [데이터 리포지토리에 대한 POSIX 메타데이터 지원](posix-metadata-support.md) 섹션을 참조하세요.

   `bucket_name`을 실제 S3 버킷 이름으로 바꿉니다.

   ```
   $ aws s3api put-object --bucket bucket_name --key s3cptestdir/ --metadata '{"user-agent":"aws-fsx-lustre" , \
         "file-atime":"1595002920000000000ns" , "file-owner":"500" , "file-permissions":"0100664","file-group":"500" , \
         "file-mtime":"1595002920000000000ns"}'
   ```

1. POSIX 권한이 S3 객체 메타데이터에 태그가 지정되었는지 확인합니다.

   ```
   $ aws s3api head-object --bucket bucket_name --key s3cptestdir/
   {
       "AcceptRanges": "bytes",
       "LastModified": "Fri, 08 Jan 2021 17:32:27 GMT",
       "ContentLength": 0,
       "ETag": "\"d41d8cd98f00b204e9800998ecf8427e\"",
       "VersionId": "bAlhCoWq7aIEjc3R6Myc6UOb8sHHtJkR",
       "ContentType": "binary/octet-stream",
       "Metadata": {
           "user-agent": "aws-fsx-lustre",
           "file-atime": "1595002920000000000ns",
           "file-owner": "500",
           "file-permissions": "0100664",
           "file-group": "500",
           "file-mtime": "1595002920000000000ns"
       }
   }
   ```

1. 컴퓨터에서 메타데이터 권한을 사용하여 S3 버킷으로 테스트 파일(1단계에서 생성)을 업로드합니다.

   ```
   $ aws s3 cp s3cptestdir/s3cptest.txt s3://bucket_name/s3cptestdir/s3cptest.txt \
         --metadata '{"user-agent":"aws-fsx-lustre" , "file-atime":"1595002920000000000ns" , \
         "file-owner":"500" , "file-permissions":"0100664","file-group":"500" , "file-mtime":"1595002920000000000ns"}'
   ```

1. POSIX 권한이 S3 객체 메타데이터에 태그가 지정되었는지 확인합니다.

   ```
   $ aws s3api head-object --bucket bucket_name --key s3cptestdir/s3cptest.txt
   {
       "AcceptRanges": "bytes",
       "LastModified": "Fri, 08 Jan 2021 17:33:35 GMT",
       "ContentLength": 26,
       "ETag": "\"eb33f7e1f44a14a8e2f9475ae3fc45d3\"",
       "VersionId": "w9ztRoEhB832m8NC3a_JTlTyIx7Uzql6",
       "ContentType": "text/plain",
       "Metadata": {
           "user-agent": "aws-fsx-lustre",
           "file-atime": "1595002920000000000ns",
           "file-owner": "500",
           "file-permissions": "0100664",
           "file-group": "500",
           "file-mtime": "1595002920000000000ns"
       }
   }
   ```

1. S3 버킷에 연결된 Amazon FSx 파일 시스템에 대한 권한을 확인합니다.

   ```
   $ sudo lfs df -h /fsx
   UUID                       bytes        Used   Available Use% Mounted on
   3rnxfbmv-MDT0000_UUID       34.4G        6.1M       34.4G   0% /fsx[MDT:0]
   3rnxfbmv-OST0000_UUID        1.1T        4.5M        1.1T   0% /fsx[OST:0]
    
   filesystem_summary:         1.1T        4.5M        1.1T   0% /fsx
    
   $ cd /fsx/s3cptestdir/
   $ ls -ld s3cptestdir/
   drw-rw-r-- 2 500 500 25600 Jan  8 17:33 s3cptestdir/
   
   $ ls -ld s3cptestdir/s3cptest.txt
   -rw-rw-r-- 1 500 500 26 Jan 8 17:33 s3cptestdir/s3cptest.txt
   ```

`s3cptestdir` 디렉터리와 `s3cptest.txt` 파일 모두 POSIX 권한을 가져왔습니다.