OpenStack Nova/Neutron API 대용량(1000건) 페이징 우회

💡 핵심 요약 (Executive Summary)

본 가이드는 openstack api response 1000건 제한 우회 핵심 가이드 및 실전 아키텍처의 핵심 개념, 실전 구성 명령어 및 아키텍처 베스트 프랙티스를 다룹니다. 클라우드 네이티브 및 인프라 엔지니어링 실무에 즉시 활용 가능하도록 체계적으로 정리했습니다.

📑 Table of Contents
근거
Reference & Guidelines (NOTE)

해당 config 파일 적용을 위해서는 각 데몬 재기동이 필요하므로, 운영중인 클러스터에서 조작하기에는 제한점이 많다.

Nova

max_limit = 1000 (default)

Cinder

osapi_max_limit = 1000 (default)

클라이언트측 우회 방법
Reference & Guidelines (NOTE)

파라미터를 사용한 페이징처리로 1000건 이상의 정보를 받아오기

(예시는 GET {cinder}/v3/{project_id}/volumes/detail)

ex) 1575건의 response를 2 페이지로 처리 (아래 두 대안의 결과는 동일합니다.)
  • limit & offset
bash
#1page
  curl ${OS_Volumev3}/volumes/detail?all_tenants=true\&limit=1000\&offset=0 -H"X-Auth-Token: $OS_PRJ_TOKEN" | jq "" | grep "\"name\"" -c
  #>> 1000

  #2page
  curl ${OS_Volumev3}/volumes/detail?all_tenants=true\&limit=1000\&offset=1000 -H"X-Auth-Token: $OS_PRJ_TOKEN" | jq "" | grep "\"name\"" -c
  #>> 575
  • limit & marker
bash
#1page
  curl ${OS_Volumev3}/volumes/detail?all_tenants=true\&limit=1000 -H"X-Auth-Token: $OS_PRJ_TOKEN" | jq "" | grep "\"name\"" -c
  #>> 1000

  #2page
  export LAST_VOLUME_ID= $(`이전 1000번째 볼륨`)
  curl ${OS_Volumev3}/volumes/detail?all_tenants=true\&limit=1000\&marker=$LAST_VOLUME_ID -H"X-Auth-Token: $OS_PRJ_TOKEN" | jq "" | grep "\"name\"" -c
  #>> 575

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *