검색

9.11. 데이터 수집에 대한 속도 제한

download PDF

스토리지 관리자는 Ceph Object Gateway 구성으로 Red Hat Ceph Storage 클러스터에 오브젝트를 저장할 때 작업 및 대역폭을 기반으로 사용자와 버킷에 대한 속도 제한을 설정할 수 있습니다.

9.11.1. 스토리지 클러스터의 속도 제한의 목적

Ceph Object Gateway 구성에서 사용자 및 버킷에 대한 속도 제한을 설정할 수 있습니다. 속도 제한에는 최대 읽기 작업 수, 분당 쓰기 작업 수 및 사용자당 또는 버킷당 읽기/분당 바이트 수가 포함됩니다.

REST에서 GET 또는 HEAD 메서드를 사용하는 요청은 "읽기 요청"이고, 그 요청은 "쓰기 요청"입니다.

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가 설치되어 있어야 합니다.

프로세스

  1. 사용자의 유량 제한을 설정합니다.

    구문

    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]

    예제

    [ceph: root@host01 /]# radosgw-admin ratelimit set --ratelimit-scope=user --uid=testing --max-read-ops=1024 --max-write-bytes=10240

    NUMBER_OF_OPERATIONS 또는 NUMBER_OF_BYTES 의 경우 0 값은 특정 속도 제한 특성 검사가 비활성화되어 있음을 의미합니다.

  2. 사용자 속도 제한을 가져옵니다.

    구문

    radosgw-admin ratelimit get --ratelimit-scope=user --uid=USER_ID

    예제

    [ceph: root@host01 /]# radosgw-admin ratelimit get --ratelimit-scope=user --uid=testing
    
    {
        "user_ratelimit": {
            "max_read_ops": 1024,
            "max_write_ops": 0,
            "max_read_bytes": 0,
            "max_write_bytes": 10240,
            "enabled": false
        }
    }

  3. 사용자 속도 제한을 활성화합니다.

    구문

    radosgw-admin ratelimit enable --ratelimit-scope=user --uid=USER_ID

    예제

    [ceph: root@host01 /]# radosgw-admin ratelimit enable --ratelimit-scope=user --uid=testing
    
    {
        "user_ratelimit": {
            "max_read_ops": 1024,
            "max_write_ops": 0,
            "max_read_bytes": 0,
            "max_write_bytes": 10240,
            "enabled": true
        }
    }

  4. 선택 사항: 사용자 속도 제한을 비활성화합니다.

    구문

    radosgw-admin ratelimit disable --ratelimit-scope=user --uid=USER_ID

    예제

    [ceph: root@host01 /]# radosgw-admin ratelimit disable --ratelimit-scope=user --uid=testing

9.11.3. 버킷 속도 제한 활성화

Ceph Object Gateway 구성에서 버킷에 대한 속도 제한을 설정할 수 있습니다. 버킷의 속도 제한에는 최대 읽기 작업 수, 분당 쓰기 작업 수, 사용자당 쓰기 또는 읽을 수 있는 분당 바이트 수가 포함됩니다.

ratelimit-scope 가 버킷으로 설정된 radosgw-admin ratelimit set 명령을 사용하여 속도 제한 값을 설정한 후 버킷에 속도 제한을 활성화할 수 있습니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • Ceph Object Gateway가 설치되어 있어야 합니다.

프로세스

  1. 버킷의 속도 제한을 설정합니다.

    구문

    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]

    예제

    [ceph: root@host01 /]# radosgw-admin ratelimit set --ratelimit-scope=bucket --bucket=mybucket --max-read-ops=1024 --max-write-bytes=10240

    NUMBER_OF_OPERATIONS 또는 NUMBER_OF_BYTES 의 경우 0 값은 특정 속도 제한 특성 검사가 비활성화되어 있음을 의미합니다.

  2. 버킷 속도 제한을 가져옵니다.

    구문

    radosgw-admin ratelimit get --ratelimit-scope=bucket --bucket=BUCKET_NAME

    예제

    [ceph: root@host01 /]# radosgw-admin ratelimit get --ratelimit-scope=bucket --bucket=mybucket
    
    {
        "bucket_ratelimit": {
            "max_read_ops": 1024,
            "max_write_ops": 0,
            "max_read_bytes": 0,
            "max_write_bytes": 10240,
            "enabled": false
        }
    }

  3. 버킷 속도 제한을 활성화합니다.

    구문

    radosgw-admin ratelimit enable --ratelimit-scope=bucket --bucket=BUCKET_NAME

    예제

    [ceph: root@host01 /]# radosgw-admin ratelimit enable --ratelimit-scope=bucket --bucket=mybucket
    
    {
        "bucket_ratelimit": {
            "max_read_ops": 1024,
            "max_write_ops": 0,
            "max_read_bytes": 0,
            "max_write_bytes": 10240,
            "enabled": true
        }
    }

  4. 선택 사항: 버킷 속도 제한을 비활성화합니다.

    구문

    radosgw-admin ratelimit disable --ratelimit-scope=bucket --bucket=BUCKET_NAME

    예제

    [ceph: root@host01 /]# radosgw-admin ratelimit disable --ratelimit-scope=bucket --bucket=mybucket

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가 설치되어 있어야 합니다.

프로세스

  1. 글로벌 속도 제한 설정을 확인합니다.

    구문

    radosgw-admin global ratelimit get

    예제

    [ceph: root@host01 /]# radosgw-admin global ratelimit get
    
    {
        "bucket_ratelimit": {
            "max_read_ops": 1024,
            "max_write_ops": 0,
            "max_read_bytes": 0,
            "max_write_bytes": 0,
            "enabled": false
        },
        "user_ratelimit": {
            "max_read_ops": 0,
            "max_write_ops": 0,
            "max_read_bytes": 0,
            "max_write_bytes": 0,
            "enabled": false
        },
        "anonymous_ratelimit": {
            "max_read_ops": 0,
            "max_write_ops": 0,
            "max_read_bytes": 0,
            "max_write_bytes": 0,
            "enabled": false
        }
    }

  2. 버킷에 대한 속도 제한 범위를 구성하고 활성화합니다.

    1. 버킷에 대한 글로벌 속도 제한을 설정합니다.

      구문

      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]

      예제

      [ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope bucket --max-read-ops=1024

    2. 버킷 속도 제한을 활성화합니다.

      구문

      radosgw-admin global ratelimit enable --ratelimit-scope=bucket

      예제

      [ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope bucket

  3. 인증된 사용자의 속도 제한 범위를 구성하고 활성화합니다.

    1. 사용자의 글로벌 속도 제한을 설정합니다.

      구문

      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]

      예제

      [ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope=user --max-read-ops=1024

    2. 사용자 속도 제한을 활성화합니다.

      구문

      radosgw-admin global ratelimit enable --ratelimit-scope=user

      예제

      [ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope=user

  4. 인증되지 않은 사용자의 속도 제한 범위를 구성하고 활성화합니다.

    1. 인증되지 않은 사용자의 글로벌 속도 제한을 설정합니다.

      구문

      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]

      예제

      [ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope=anonymous --max-read-ops=1024

    2. 사용자 속도 제한을 활성화합니다.

      구문

      radosgw-admin global ratelimit enable --ratelimit-scope=anonymous

      예제

      [ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope=anonymous

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.