9.11. 데이터 수집에 대한 속도 제한
스토리지 관리자는 Ceph Object Gateway 구성으로 Red Hat Ceph Storage 클러스터에 오브젝트를 저장할 때 작업 및 대역폭을 기반으로 사용자와 버킷에 대한 속도 제한을 설정할 수 있습니다.
9.11.1. 스토리지 클러스터의 속도 제한의 목적 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway 구성에서 사용자 및 버킷에 대한 속도 제한을 설정할 수 있습니다. 속도 제한에는 최대 읽기 작업 수, 분당 쓰기 작업 수 및 사용자당 또는 버킷당 읽기/분당 바이트 수가 포함됩니다.
REST에서 GET 또는 HEAD 메서드를 사용하는 요청은 "읽기 요청"이고, 그 요청은 "쓰기 요청"입니다.
REST API를 통한 ratelimit SET 및 GET 작업에 대해 다음 권한이 있어야 합니다.
- 속도 제한을 가져오려면 사용자에게 읽기 권한이 있는 ratelimit 기능이 설정되어 있어야 합니다.
radosgw-admin caps add --uid=UID --caps='ratelimit=read'
radosgw-admin caps add --uid=UID --caps='ratelimit=read'
- 속도 제한을 설정하려면 사용자에게 쓰기 권한이 있는 ratelimit 기능이 설정되어 있어야 합니다.
radosgw-admin caps add --uid=UID --caps='ratelimit=write'
radosgw-admin caps add --uid=UID --caps='ratelimit=write'
Ceph Object Gateway는 사용자 및 버킷 요청을 별도로 추적하고 다른 게이트웨이와 공유하지 않습니다. 즉, 구성된 원하는 제한을 활성 Object Gateway 수로 나누어야 합니다.
예를 들어, 사용자 A를 분당 10개의 ops로 제한해야 하고 클러스터에 두 개의 Ceph Object Gateway가 있는 경우 사용자 A에 대한 제한은 5개, 즉 두 개의 Ceph Object Gateway의 분당 10개의 ops가 있어야 합니다. Ceph Object Gateway 간에 요청의 균형을 조정하지 않으면 속도 제한이 악용되지 않을 수 있습니다. 예를 들어 ops 제한이 5개이고 Ceph Object Gateway 두 개가 있지만 로드 밸런서에서 해당 Ceph Object Gateway 중 하나에만 부하를 보내는 경우 Ceph Object Gateway마다 이 제한이 적용되므로 유효 제한은 5개의 ops가 됩니다.
버킷에 대해 제한에 도달했지만 사용자를 위해 도달하지 않거나 그 반대의 경우 요청도 취소됩니다.
대역폭 계산은 요청이 승인된 후 수행됩니다. 결과적으로 이 요청은 요청 중 버킷 또는 사용자가 대역폭 제한에 도달한 경우에도 진행됩니다.
Ceph Object Gateway는 구성된 값보다 사용된 바이트의 "debt"를 유지하고, "debt"가 지불될 때까지 이 사용자 또는 버킷이 더 많은 요청을 전송하지 못하도록 합니다. "debt" 최대 크기는 분당 max-read/write-bytes의 두 배입니다. 사용자 A에 분당 1바이트 읽기 제한이 있고 이 사용자가 1GB 오브젝트를 가져오려고 하면 사용자가 수행할 수 있습니다.
사용자 A가 이 1GB 작업을 완료하면 사용자 A가 GET 요청을 다시 보낼 수 있을 때까지 Ceph Object Gateway에서 최대 2분 동안 사용자 요청을 차단합니다.
속도 제한에 대한 다양한 옵션:
-
버킷:
--bucket옵션을 사용하면 버킷에 대한 속도 제한을 지정할 수 있습니다. -
user:
--uid옵션을 사용하면 사용자의 속도 제한을 지정할 수 있습니다. -
최대 읽기 작업:
--max-read-ops설정을 사용하면 Ceph Object Gateway당 분당 최대 읽기 ops 수를 지정할 수 있습니다. 값이0이면 이 설정이 비활성화됩니다. 즉, 무제한 액세스를 의미합니다. -
최대 읽기 바이트:
--max-read-bytes설정을 사용하면 Ceph Object Gateway당 분당 최대 읽기 바이트 수를 지정할 수 있습니다. 값이0이면 이 설정이 비활성화됩니다. 즉, 무제한 액세스를 의미합니다. -
최대 쓰기 작업:
--max-write-ops설정을 사용하면 Ceph Object Gateway당 분당 최대 쓰기 작업 수를 지정할 수 있습니다. 값이0이면 이 설정이 비활성화됩니다. 즉, 무제한 액세스를 의미합니다. -
최대 쓰기 바이트:
--max-write-bytes설정을 사용하면 Ceph Object Gateway당 분당 최대 쓰기 바이트 수를 지정할 수 있습니다. 값이0이면 이 설정이 비활성화됩니다. 즉, 무제한 액세스를 의미합니다. -
rate limit 범위:
--rate-limit-scope옵션은 속도 제한 범위를 설정합니다. 옵션은버킷,사용자및익명입니다. 버킷 속도 제한은 버킷에 적용되며, 사용자 속도 제한이 사용자에게 적용되며, 인증되지 않은 사용자에게 익명이 적용됩니다. 익명 범위는 글로벌 속도 제한에서만 사용할 수 있습니다.
9.11.2. 사용자 속도 제한 활성화 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway 구성에서 사용자에 대한 속도 제한을 설정할 수 있습니다. 사용자의 속도 제한에는 최대 읽기 작업 수, 분당 쓰기 작업 수, 사용자당 쓰기 또는 읽을 수 있는 분당 바이트 수가 포함됩니다.
ratelimit-scope 가 사용자로 설정된 radosgw-admin ratelimit set 명령을 사용하여 속도 제한 값을 설정한 후 사용자에 게 속도 제한을 활성화할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있어야 합니다.
프로세스
사용자의 유량 제한을 설정합니다.
구문
radosgw-admin ratelimit set --ratelimit-scope=user --uid=USER_ID [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
radosgw-admin ratelimit set --ratelimit-scope=user --uid=USER_ID [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@host01 /]# radosgw-admin ratelimit set --ratelimit-scope=user --uid=testing --max-read-ops=1024 --max-write-bytes=10240
[ceph: root@host01 /]# radosgw-admin ratelimit set --ratelimit-scope=user --uid=testing --max-read-ops=1024 --max-write-bytes=10240Copy to Clipboard Copied! Toggle word wrap Toggle overflow NUMBER_OF_OPERATIONS 또는 NUMBER_OF_BYTES 의 경우
0값은 특정 속도 제한 특성 검사가 비활성화되어 있음을 의미합니다.사용자 속도 제한을 가져옵니다.
구문
radosgw-admin ratelimit get --ratelimit-scope=user --uid=USER_ID
radosgw-admin ratelimit get --ratelimit-scope=user --uid=USER_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 속도 제한을 활성화합니다.
구문
radosgw-admin ratelimit enable --ratelimit-scope=user --uid=USER_ID
radosgw-admin ratelimit enable --ratelimit-scope=user --uid=USER_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 사용자 속도 제한을 비활성화합니다.
구문
radosgw-admin ratelimit disable --ratelimit-scope=user --uid=USER_ID
radosgw-admin ratelimit disable --ratelimit-scope=user --uid=USER_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@host01 /]# radosgw-admin ratelimit disable --ratelimit-scope=user --uid=testing
[ceph: root@host01 /]# radosgw-admin ratelimit disable --ratelimit-scope=user --uid=testingCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.11.3. 버킷 속도 제한 활성화 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Object Gateway 구성에서 버킷에 대한 속도 제한을 설정할 수 있습니다. 버킷의 속도 제한에는 최대 읽기 작업 수, 분당 쓰기 작업 수, 사용자당 쓰기 또는 읽을 수 있는 분당 바이트 수가 포함됩니다.
ratelimit-scope 가 버킷으로 설정된 radosgw-admin ratelimit set 명령을 사용하여 속도 제한 값을 설정한 후 버킷에 속도 제한을 활성화할 수 있습니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있어야 합니다.
프로세스
버킷의 속도 제한을 설정합니다.
구문
radosgw-admin ratelimit set --ratelimit-scope=bucket --bucket= BUCKET_NAME [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
radosgw-admin ratelimit set --ratelimit-scope=bucket --bucket= BUCKET_NAME [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@host01 /]# radosgw-admin ratelimit set --ratelimit-scope=bucket --bucket=mybucket --max-read-ops=1024 --max-write-bytes=10240
[ceph: root@host01 /]# radosgw-admin ratelimit set --ratelimit-scope=bucket --bucket=mybucket --max-read-ops=1024 --max-write-bytes=10240Copy to Clipboard Copied! Toggle word wrap Toggle overflow NUMBER_OF_OPERATIONS 또는 NUMBER_OF_BYTES 의 경우
0값은 특정 속도 제한 특성 검사가 비활성화되어 있음을 의미합니다.버킷 속도 제한을 가져옵니다.
구문
radosgw-admin ratelimit get --ratelimit-scope=bucket --bucket=BUCKET_NAME
radosgw-admin ratelimit get --ratelimit-scope=bucket --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷 속도 제한을 활성화합니다.
구문
radosgw-admin ratelimit enable --ratelimit-scope=bucket --bucket=BUCKET_NAME
radosgw-admin ratelimit enable --ratelimit-scope=bucket --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 버킷 속도 제한을 비활성화합니다.
구문
radosgw-admin ratelimit disable --ratelimit-scope=bucket --bucket=BUCKET_NAME
radosgw-admin ratelimit disable --ratelimit-scope=bucket --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@host01 /]# radosgw-admin ratelimit disable --ratelimit-scope=bucket --bucket=mybucket
[ceph: root@host01 /]# radosgw-admin ratelimit disable --ratelimit-scope=bucket --bucket=mybucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.11.4. 글로벌 속도 제한 구성 링크 복사링크가 클립보드에 복사되었습니다!
기간 구성에서 글로벌 속도 제한 설정을 읽거나 쓸 수 있습니다. ratelimit 세트 , 설정을 조작하여 사용자 또는 버킷 속도 제한 구성을 덮어쓸 수 있습니다.
ratelimit enable, ratelimit enable 및 ratelimit disable 명령인 global ratelimit 매개변수를 사용하여 글로벌 속도 제한
영역과 기간이 있는 다중 사이트 구성에서 글로벌 속도 제한에 대한 변경 사항을 period update --commit 명령을 사용하여 커밋해야 합니다. 기간이 없는 경우 변경 사항을 적용하려면 Ceph Object Gateway를 다시 시작해야 합니다.
사전 요구 사항
- 실행 중인 Red Hat Ceph Storage 클러스터.
- Ceph Object Gateway가 설치되어 있어야 합니다.
프로세스
글로벌 속도 제한 설정을 확인합니다.
구문
radosgw-admin global ratelimit get
radosgw-admin global ratelimit getCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷에 대한 속도 제한 범위를 구성하고 활성화합니다.
버킷에 대한 글로벌 속도 제한을 설정합니다.
구문
radosgw-admin global ratelimit set --ratelimit-scope=bucket [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
radosgw-admin global ratelimit set --ratelimit-scope=bucket [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope bucket --max-read-ops=1024
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope bucket --max-read-ops=1024Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷 속도 제한을 활성화합니다.
구문
radosgw-admin global ratelimit enable --ratelimit-scope=bucket
radosgw-admin global ratelimit enable --ratelimit-scope=bucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope bucket
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope bucketCopy to Clipboard Copied! Toggle word wrap Toggle overflow
인증된 사용자의 속도 제한 범위를 구성하고 활성화합니다.
사용자의 글로벌 속도 제한을 설정합니다.
구문
radosgw-admin global ratelimit set --ratelimit-scope=user [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
radosgw-admin global ratelimit set --ratelimit-scope=user [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope=user --max-read-ops=1024
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope=user --max-read-ops=1024Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 속도 제한을 활성화합니다.
구문
radosgw-admin global ratelimit enable --ratelimit-scope=user
radosgw-admin global ratelimit enable --ratelimit-scope=userCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope=user
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope=userCopy to Clipboard Copied! Toggle word wrap Toggle overflow
인증되지 않은 사용자의 속도 제한 범위를 구성하고 활성화합니다.
인증되지 않은 사용자의 글로벌 속도 제한을 설정합니다.
구문
radosgw-admin global ratelimit set --ratelimit-scope=anonymous [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
radosgw-admin global ratelimit set --ratelimit-scope=anonymous [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope=anonymous --max-read-ops=1024
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope=anonymous --max-read-ops=1024Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 속도 제한을 활성화합니다.
구문
radosgw-admin global ratelimit enable --ratelimit-scope=anonymous
radosgw-admin global ratelimit enable --ratelimit-scope=anonymousCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope=anonymous
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope=anonymousCopy to Clipboard Copied! Toggle word wrap Toggle overflow