3장. 오브젝트 스토리지 및 컨테이너


OpenStack Object Storage(openstack-swift)는 해당 오브젝트(데이터)를 컨테이너에 저장합니다. 이러한 오브젝트는 중첩될 수 없지만 파일 시스템의 디렉터리와 유사합니다. 컨테이너는 사용자가 모든 종류의 구조화되지 않은 데이터를 저장할 수 있는 쉬운 방법을 제공합니다. 예를 들어 오브젝트에는 사진, 텍스트 파일 또는 이미지가 포함될 수 있습니다. 저장된 오브젝트는 암호화되거나 압축되지 않습니다.

3.1. Object Storage 서비스 관리

다음 절차에서는 필요에 맞게 Object Storage 서비스를 추가로 사용자 지정하는 방법을 설명합니다.

3.1.1. 오브젝트 스토리지 서비스에 대한 삭제 코딩

삭제 코딩(EC)은 데이터가 조각으로 분할되고 중복된 데이터 조각으로 확장 및 인코딩되어 서로 다른 위치 또는 스토리지 미디어 세트에 저장되는 데이터 보호 방법입니다. 기존 복제보다 필요한 지속성을 얻기 위해 더 적은 양의 스토리지를 사용합니다. 복제 요인 3과 비교하면 신중하게 배포 시 50%의 비용 절감 효과를 얻을 수 있습니다. 그러나 워크로드에 따라 삭제 코딩으로 인해 성능이 저하될 수 있습니다.

Red Hat OpenStack Platform 8 릴리스에서는 삭제 코딩 지원이 오브젝트 스토리지 서비스의 기술 프리뷰로 제공됩니다. 기술 프리뷰로 표시된 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/ 을 참조하십시오.

오브젝트 스토리지 서비스에 대해 스토리지 정책으로 삭제 코딩이 지원됩니다. 스토리지 정책을 사용하면 여러 오브젝트 링을 생성하여 다양한 목적으로 클러스터를 분할할 수 있습니다. 삭제 코딩 및 복제 스토리지 정책에서 사용하는 장치를 분할하는 것이 좋습니다. 이렇게 하면 클러스터 동작을 더 쉽게 분석할 수 있습니다.

선택한 방향은 삭제 코딩 정책이 배포되는 이유에 따라 다릅니다. 몇 가지 고려 사항은 다음과 같습니다.

  • 기존 인프라의 레이아웃.
  • 전용 삭제 코딩 노드 추가 비용(또는 전용 삭제 코딩 장치만 해당).
  • 의도된 사용 모델.

3.1.1.1. Erasure Coding 구성

삭제 코딩 정책을 사용하려면 swift.conf 파일에 삭제 코딩 정책을 정의하고 관련 오브젝트 링을 구성합니다. 삭제 코딩 정책이 설정될 수 있는 방법의 예는 다음과 같습니다.

[storage-policy:2]
name = ec104
policy_type = erasure_coding
ec_type = jerasure_rs_vand
ec_num_data_fragments = 10
ec_num_parity_fragments = 4
ec_object_segment_size = 1048576
Copy to Clipboard Toggle word wrap

다음 표에서는 스토리지 정책의 용어를 설명합니다.

Expand
용어설명

name

이는 표준 스토리지 정책 매개변수입니다.

policy_type

이 값을 erasure_coding로 설정하여 삭제 코딩 정책임을 나타냅니다.

ec_type

선택한 PyECLib 백엔드에서 사용 가능한 옵션에 따라 이 값을 설정합니다. 사용할 삭제 코딩 체계를 지정합니다. 예를 들어 여기에 표시된 옵션은 Vandermonde Reed-Solomon 인코딩을 선택하는 반면 flat_xor_hd_3 옵션은 Flat-XOR 기반HD 조합 코드를 선택합니다. 자세한 내용은 PyECLib 페이지를 참조하십시오.

ec_num_data_fragments

데이터로 구성될 총 조각 수입니다.

ec_num_parity_fragments

패리티로 구성될 전체 조각 수입니다.

ec_object_segment_size

인코더/디코더에 세그먼트를 공급하기 전에 버퍼링될 데이터의 양입니다. 기본값은 1048576입니다.

PyECLib가 개체를 인코딩하면 N 조각으로 나눕니다. 구성 중에 데이터 조각의 수와 패리티 수를 아는 것이 중요합니다. 따라서 위의 예에서 PyECLib는 14개의 서로 다른 조각으로 개체를 분할하고, 그 중 10개는 실제 오브젝트 데이터로 구성되며, 4개는 패리티 데이터로 구성됩니다( ec_type에 따라 계산). 이러한 구성으로 시스템은 데이터가 손실되기 전에 4 개의 디스크 오류를 유지할 수 있습니다. 일반적으로 사용되는 다른 구성은 4+2(4개의 데이터 조각 및 2개 파트 조각 포함) 또는 8+3(데이터 조각 및 3 패리티 조각 포함)입니다.

참고

정책을 배포하고 해당 정책을 사용하여 오브젝트를 생성한 후에는 이러한 구성 옵션을 변경할 수 없습니다. 구성을 변경해야 하는 경우 새 정책을 생성하고 데이터를 새 컨테이너로 마이그레이션해야 합니다. 그러나 정책 인덱스가 정의되면 삭제할 수 없습니다. 정책을 종료해야 하는 경우 비활성화되지만 제거되지 않을 수 있습니다. 기존 정책에는 기본적으로 성능이 저하되지 않지만 약간의 관리 오버헤드가 있습니다.

3.1.1.2. 오브젝트 스토리지 링 구성

Object Storage는 Ring 이라는 데이터 구조를 사용하여 클러스터 전체에 파티션 공간을 배포합니다. 이 파티션 공간은 오브젝트 스토리지 서비스의 복제 시스템의 코어입니다. Object Storage 서비스를 사용하면 클러스터 전체에서 각 파티션을 빠르고 쉽게 동기화할 수 있습니다. Swift의 모든 구성 요소가 데이터와 상호 작용해야 하는 경우 각 복제본에 대해 사용 가능한 파티션을 확인하기 위해 Ring에서 빠른 조회가 로컬로 수행됩니다.

Object Storage 서비스에는 이미 다양한 유형의 데이터를 저장하는 세 개의 링이 있습니다. 계정 정보에는 컨테이너(계정 아래에 오브젝트를 구성하는 것이 편리합니다)와 오브젝트 복제본에 대한 다른 하나가 있습니다. 삭제 코드를 지원하기 위해 삭제 코드 청크를 저장하기 위해 생성된 추가 링이 있습니다.

예를 들어 일반적인 복제 링을 생성하려면 다음 명령을 사용합니다.

swift-ring-builder object-1.builder create 10 3 1
Copy to Clipboard Toggle word wrap

여기서 3은 복제본 수입니다.

삭제 코딩 오브젝트 링을 생성하려면 복제본 수 대신 조각 수를 사용해야 합니다. 예를 들면 다음과 같습니다.

swift-ring-builder object-1.builder create 10 14 1
Copy to Clipboard Toggle word wrap

여기서 14는 10개의 데이터 조각과 4 패리티 조각이 있는 10+4 구성을 위한 것입니다.

삭제 코딩 정책의 오브젝트 링에 사용할 장치를 결정할 때 성능에 미치는 영향을 고려하십시오. 배포 전에 구성을 위해 테스트 환경에서 일부 성능 벤치마킹을 실행하는 것이 좋습니다. swift.conf 에 삭제 코딩 정책을 구성하고 오브젝트 링을 생성한 후에는 지정된 정책 이름이 있는 컨테이너를 생성하고 정상적으로 상호 작용하여 애플리케이션이 삭제 코딩 사용을 시작할 수 있습니다.

3.1.2. 오브젝트 스토리지를 이미지 서비스의 백엔드로 설정

기본적으로 OpenStack 이미지 서비스는 이미지와 인스턴스 스냅샷을 /var/lib/glance/images/ 의 로컬 파일 시스템에 저장합니다. 또는 이미지 및 스냅샷을 오브젝트 스토리지 서비스(사용 가능한 경우)에 저장하도록 이미지 서비스를 구성할 수 있습니다.

이렇게 하려면 다음 절차를 수행합니다.

  1. 이미지 서비스(ID를 실행하는 컨트롤러 노드)를 실행하는 노드에 root로 로그인하고 OpenStack 인증 정보를 소싱합니다(일반적으로 openrc라는 파일임).

    # source ~/openrc
    Copy to Clipboard Toggle word wrap
  2. 이미지 서비스가 역할 admin 이 있는 테넌트 서비스 의 일부인지 확인합니다.

    # keystone user-role-list --user glance --tenant service
    Copy to Clipboard Toggle word wrap

    반환된 역할 중 하나는 admin 이어야 합니다.

  3. /etc/glance/glance.conf 파일을 열고 다음 행을 주석 처리합니다.

    ##### DEFAULT OPTIONS #####
    #default_store = file
    #filesystem_store_datadir = /var/lib/glance/images/
    Copy to Clipboard Toggle word wrap
  4. 동일한 파일에서 DEFAULT OPTIONS 섹션에 다음 행을 추가합니다.

    default_store = swift
    swift_store_auth_address = http://KEYSTONEIP:35357/v2.0/
    swift_store_user = service:glance
    swift_store_key = ADMINPW
    swift_store_create_container_on_put = True
    Copy to Clipboard Toggle word wrap

    다음과 같습니다.

    • KEYSTONEIP 는 ID 서비스의 IP 주소이며,
    • ADMINPW/etc/glance/glance-api.conf 파일의 관리자 암호 속성 값입니다.
  5. 이미지 서비스를 다시 시작하여 변경 사항을 적용합니다.

    # systemctl restart openstack-glance-api
    # systemctl restart openstack-glance-registry
    Copy to Clipboard Toggle word wrap

이제 대시보드 또는 Glance를 통해 이미지 서비스에 업로드된 이미지를 glance 라는 오브젝트 스토리지 컨테이너에 저장해야 합니다. 이 컨테이너는 서비스 계정에 있습니다.

새로 생성된 이미지가 이미지 서비스에 저장되었는지 확인하려면 다음을 실행합니다.

# ls /var/lib/glance/images
Copy to Clipboard Toggle word wrap

대시보드 또는 glance image-list 에서 이미지가 활성 상태임을 보고하면 다음 명령을 실행하여 해당 이미지가 오브젝트 스토리지에 있는지 확인할 수 있습니다.

# swift --os-auth-url http://KEYSTONEIP:5000/v2.0 --os-tenant-name service --os-username glance --os-password ADMINPW list glance
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat