오브젝트 삭제 방법
StorageGRID는 클라이언트 요청에 직접 응답하거나 S3 버킷 라이프사이클의 만료 또는 ILM 정책 요구사항으로 인해 자동으로 오브젝트를 삭제할 수 있습니다. 개체를 삭제할 수 있는 다양한 방법과 StorageGRID에서 삭제 요청을 처리하는 방법을 이해하면 개체를 보다 효율적으로 관리할 수 있습니다.
StorageGRID는 다음 두 가지 방법 중 하나를 사용하여 오브젝트를 삭제할 수 있습니다.
-
동기 삭제: StorageGRID가 클라이언트 삭제 요청을 받으면 모든 개체 복사본이 즉시 제거됩니다. 복제본이 제거된 후 성공적으로 삭제되었다는 메시지가 클라이언트에 표시됩니다.
-
객체가 삭제 대기열에 저장됨: StorageGRID에서 삭제 요청을 수신하면 객체가 삭제 대기열에 추가되고 삭제 성공 사실을 즉시 클라이언트에 알립니다. 개체 복사본은 나중에 백그라운드 ILM 처리에 의해 제거됩니다.
오브젝트를 삭제할 때 StorageGRID는 삭제 성능을 최적화하고 잠재적인 삭제 백로그를 최소화하며 공간을 가장 빠르게 확보하는 방법을 사용합니다.
이 표에는 StorageGRID에서 각 방법을 사용하는 경우가 요약되어 있습니다.
삭제 수행 방법 | 사용 시 |
---|---|
오브젝트는 삭제 대기열에 추가됩니다 |
다음 조건 중 * 어느 * 가 참일 경우:
|
객체가 즉시 제거됩니다(동기식 삭제). |
S3 또는 Swift 클라이언트가 삭제 요청을 하고 다음 조건 중 * 모두 * 가 충족되는 경우:
|
S3 또는 Swift 클라이언트가 삭제 요청을 하면 StorageGRID가 삭제 대기열에 많은 오브젝트를 추가하여 시작합니다. 그런 다음 동기식 삭제 수행 으로 전환됩니다. 백그라운드 삭제 큐에 처리할 개체가 있는지 확인함으로써 StorageGRID는 특히 동시 접속 수가 적은 클라이언트의 경우 삭제 작업을 보다 효율적으로 처리할 수 있으며 클라이언트 삭제 백로그를 방지할 수 있습니다.
객체를 삭제하는 데 시간이 얼마나 걸립니까
StorageGRID에서 객체를 삭제하는 방법은 시스템이 수행하는 방식에 영향을 미칠 수 있습니다.
-
StorageGRID가 동기 삭제를 수행할 때 결과를 클라이언트에 반환하는 데 StorageGRID가 최대 30초가 걸릴 수 있습니다. 즉, StorageGRID에서 삭제할 개체를 큐에 대기할 때보다 복사본이 실제로 더 빠르게 제거되더라도 삭제가 더 느리게 진행되는 것처럼 보일 수 있습니다.
-
대량 삭제 중에 삭제 성능을 면밀히 모니터링하는 경우, 특정 수의 객체가 삭제된 후 삭제 속도가 느려질 수 있습니다. 이 변경은 StorageGRID가 삭제를 위해 오브젝트 큐잉에서 동기식 삭제 수행으로 변경될 때 발생합니다. 삭제 속도가 명백히 감소하는 것은 오브젝트 복사본이 더 느리게 제거된다는 의미가 아닙니다. 반면, 공간은 평균적으로 더 빠르게 확보되고 있음을 나타냅니다.
많은 수의 개체를 삭제하는 경우 우선 순위가 공간을 빠르게 확보하는 것이라면 클라이언트 요청을 사용하여 ILM 또는 다른 방법을 사용하여 개체를 삭제하지 않고 개체를 삭제하는 것이 좋습니다. 일반적으로 StorageGRID에서는 동기 삭제를 사용할 수 있으므로 클라이언트에서 삭제할 때 공간이 더 빠르게 확보됩니다.
객체를 삭제한 후 공간을 확보하는 데 필요한 시간은 다음과 같은 여러 요인에 따라 달라집니다.
-
오브젝트 복사본이 동기식으로 제거되는지, 아니면 나중에 제거를 위해 대기하는지(클라이언트 삭제 요청) 여부를 나타냅니다.
-
클라이언트 삭제 및 기타 방법 모두에 대해 개체 복사본이 제거용으로 대기될 때 그리드 내의 개체 수 또는 그리드 리소스의 사용 가능성 등의 기타 요소
S3 버전 오브젝트 삭제 방법
S3 버킷에 대해 버전 관리가 활성화된 경우 StorageGRID는 삭제 요청에 응답할 때 Amazon S3 동작을 따릅니다. 이러한 요청이 S3 클라이언트에서 온 것인지, S3 버킷 라이프사이클의 만료 또는 ILM 정책 요구사항이 있는지 여부에 관계없이 이 동작을 따릅니다.
오브젝트 버전이 지정된 경우 오브젝트 삭제 요청은 오브젝트의 현재 버전을 삭제하지 않고 공간을 확보하지 않습니다. 대신 개체 삭제 요청은 단순히 개체의 현재 버전으로 삭제 마커를 만들어 이전 버전의 개체를 ""비현재""로 만듭니다.
개체가 제거되지 않았더라도 StorageGRID 는 개체의 현재 버전을 더 이상 사용할 수 없는 것처럼 동작합니다. 해당 개체에 대한 요청은 404 NotFound 를 반환합니다. 그러나 현재 개체 데이터가 제거되지 않았으므로 개체의 현재 버전이 아닌 버전을 지정하는 요청은 성공할 수 있습니다.
버전이 지정된 개체를 삭제할 때 공간을 확보하려면 다음 중 하나를 수행해야 합니다.
-
* S3 클라이언트 요청 *: S3 삭제 오브젝트 요청(삭제/오브젝트? versionId=ID')에서 오브젝트 버전 번호를 지정합니다. 이 요청은 지정된 버전의 오브젝트 복사본만 제거합니다(다른 버전은 계속 공간을 소모함).
-
* 버킷 수명 주기 *: 버킷 수명 주기 구성에서 'NoncurrentVersionExpiration' 작업을 사용합니다. 지정된 NoncurrentDays 수가 충족되면 StorageGRID에서 현재 버전이 아닌 개체 버전의 모든 복사본을 영구적으로 제거합니다. 이러한 개체 버전은 복구할 수 없습니다.
-
* ILM *: ILM 정책에 ILM 규칙 2개를 추가합니다. 첫 번째 규칙에서 * 비현재 시간 * 을 참조 시간으로 사용하여 개체의 비현재 버전과 일치시킵니다. 두 번째 규칙에 * Ingest Time * 을 사용하여 현재 버전과 일치시킵니다. noncurrent time * 규칙은 * Ingest time * 규칙 위의 정책에 나타나야 합니다.