Lustre를 사용하여 확장 가능한 분산 파일 시스템 배포

Lustre는 HPC(고성능 컴퓨팅) 클러스터 및 환경에 사용되는 오픈 소스 병렬 분산 파일 시스템입니다. Lustre 이름은 Linux 및 클러스터의 portmanteau 입니다.

Lustre를 사용하여 컴퓨트 노드에 로컬로 연결된 Oracle Cloud Infrastructure 베어메탈 컴퓨트 및 네트워크 연결 블록 스토리지 또는 NVMe SSD에서 HPC 파일 서버를 빌드할 수 있습니다. Terraform 템플리트를 사용하면 Oracle Cloud Infrastructure에 Lustre를 쉽게 배포할 수 있습니다.

Lustre 클러스터는 파일 시스템에 대해 처리량 증가, 스토리지 용량 증가 또는 둘 다를 위해 확장됩니다. 컴퓨트와 스토리지가 결합된 경우 월별 기가바이트당 몇% 만 비용이 듭니다.

Terraform 배치 템플리트는 컴퓨트, 스토리지, 가상 클라우드 네트워크 및 서브넷을 포함한 Oracle Cloud Infrastructure 리소스를 프로비전합니다. MGS(Management Server), MDS(Metadata Server), OSS(Object Storage Server) 및 Lustre 클라이언트 노드를 비롯한 Lustre 소프트웨어도 프로비전합니다.

구조

이 참조 아키텍처는 단일 가용성 도메인 및 지역별 서브넷이 있는 영역을 사용합니다. 여러 가용성 도메인이 있는 영역에서 동일한 참조 구조를 사용할 수 있습니다. 가용성 도메인 수에 관계없이 배치에 지역별 서브넷을 사용하는 것이 좋습니다.

다음 다이어그램은 이 참조 아키텍처를 보여 줍니다.

아래 링크를 누르면 lustre-oci.png에 대한 설명을 볼 수 있습니다.
lustre-oci.png에 대한 설명

확장 가능한 Lustre 아키텍처에는 다음과 같은 구성 요소가 있습니다:

  • MGS(Management Server)

    MGS는 하나 이상의 Lustre 파일 시스템에 대한 구성 정보를 저장하고 이 정보를 다른 Lustre 호스트에 제공합니다. 이 전역 리소스는 여러 파일 시스템을 지원할 수 있습니다.

  • MDS(Metadata Server)

    MDS는 Lustre 파일 시스템에 대한 인덱스 또는 네임스페이스를 제공합니다. 메타데이터 콘텐츠는 MDT(메타데이터 대상) 라는 볼륨에 저장됩니다. Lustre 파일 시스템의 디렉토리 구조와 파일 이름, 권한, 확장 속성 및 파일 레이아웃이 MDT에 기록됩니다. Lustre 파일 시스템마다 MDT가 하나 이상 있어야 합니다.

  • OSS(Object Storage Server)

    OSS는 Lustre 파일 시스템의 모든 파일 콘텐츠에 대한 대량 데이터 저장 영역을 제공합니다. 각 OSS는 OST(오브젝트 스토리지 대상) 라는 스토리지 볼륨 세트에 대한 액세스를 제공합니다. 각 OST에는 Lustre의 파일에 대한 데이터를 나타내는 여러 이진 객체가 포함되어 있습니다. Lustre의 파일은 MDS에 저장된 메타데이터 inode와 함께 하나 이상의 OST 객체로 구성됩니다.

  • Lustre 클라이언트

    클라이언트는 Lustre 파일 시스템에 액세스하는 컴퓨트 인스턴스입니다.

  • VCN(가상 클라우드 네트워크) 및 서브넷

    VCN는 Oracle Cloud Infrastructure 지역에서 설정하는 소프트웨어 정의 네트워크입니다. VCN은 영역 또는 가용성 도메인에 특정한 서브넷으로 분할할 수 있습니다. 지역별 서브넷과 가용성 도메인별 서브넷은 모두 동일한 VCN에 공존할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.

  • 보안 목록

    각 서브넷에 대해 서브넷에서 허용되어야 하는 트래픽의 소스, 대상 및 유형을 지정하는 보안 규칙을 생성할 수 있습니다.

  • 가용성 도메인

    가용성 도메인은 영역 내의 독립적인 독립형 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 결함 허용 한도를 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원, 냉각 또는 내부 가용성 도메인 네트워크와 같은 인프라를 공유하지 않습니다. 따라서 특정 가용성 도메인에서 장애가 발생해도 해당 영역의 다른 가용성 도메인에 영향을 주지 않습니다.

권장 사항

요구 사항은 여기에 설명된 아키텍처와 다를 수 있습니다. 다음 권장 사항을 시작점으로 사용하십시오.

  • 컴퓨트 구성, 배스천 호스트

    배스천 호스트는 전용 서브넷의 노드에 액세스하는 데 사용됩니다. VM.Standard. E2.1 또는 VM.Standard. E2.2 구성을 사용합니다.

  • 컴퓨트 구성, MGS 및 MDS

    MGS는 리소스를 많이 사용하지 않으므로 동일한 Instance에서 MGS 및 MDS를 호스트할 수 있습니다. 노드 레벨 장애가 파일 시스템에 영향을 주지 않도록 하려면 고가용성의 베어메탈 인스턴스를 사용합니다.

  • 블록 볼륨 및 고가용성을 갖춘 베어메탈 컴퓨트

    BM.Standard2.52 를 사용합니다. 두 노드가 한 쌍으로 구성됩니다. 각각 25Gbs 네트워크 속도의 물리적 네트워크 인터페이스 컨트롤러(NIC) 두 개 하나의 NIC를 모든 트래픽에 사용하여 스토리지를 차단하고 다른 NIC를 사용하여 클라이언트 노드에서 OSS 및 MDS 노드로 데이터를 수신합니다.

    다중 인스턴스 연결이 있는 블록 볼륨 스토리지(배치 요구 사항당 크기 및 수) 를 사용하여 두 컴퓨트 노드에 볼륨을 연결합니다.

  • 컴퓨트 구성, OSS

    OSS에 대한 권장 사항은 MGS 및 MDS에 대한 권장 사항과 동일합니다.

  • 컴퓨트 구성, Lustre 클라이언트

    배치 계획, 특히 네트워크 대역폭 요구 사항에 따라 VM(가상 시스템) 구성을 선택합니다.

    개별 클라이언트의 처리량은 용량에 따라 달라집니다. 2.5-Gbps 네트워크 대역폭을 사용하여 10개 클라이언트를 배치하는 경우 집계 대역폭은 25Gbps입니다.

  • RAID 구성

    선택적으로 RAID 0으로 DenseIO 구성을 구성할 수 있습니다.

    OSS당 하나의 OST를 작성할 때 RAID를 사용합니다.

    OSS당 하나의 OST를 사용하는 경우 OSS당 8개의 블록 볼륨을 사용하여 처리량을 최대화하는 것이 좋습니다(RAID 0은 선택 사항).

    주:

    Terraform 템플리트는 DenseIO 또는 블록 볼륨을 사용하여 베어메탈 구성을 작성합니다.
  • VCN

    VCN를 생성할 때 각 서브넷의 클라우드 리소스에 필요한 IP 주소 수를 결정합니다. CIDR(Classless Inter-Domain Routing) 표기법을 사용하여 필요한 IP 주소에 충분히 큰 서브넷 마스크 및 네트워크 주소 범위를 지정합니다. 표준 전용 IP 주소 블록 내에 있는 주소 공간을 사용합니다.

    필요한 경우 VCN와 온-프레미스 네트워크 간의 접속을 설정할 수 있도록 온-프레미스 네트워크와 겹치지 않는 주소 범위를 선택합니다.

    VCN를 생성한 후에는 주소 범위를 변경할 수 없습니다.

    서브넷을 설계할 때 기능 및 보안 요구 사항을 고려하십시오. 보안 경계 역할을 할 수 있는 동일한 계층 또는 역할 내의 모든 컴퓨트 인스턴스를 동일한 서브넷에 연결합니다.

    지역 서브넷을 사용합니다.

  • 보안 목록

    보안 목록을 사용하여 전체 서브넷에 적용되는 수신 및 송신 규칙을 정의합니다. 예를 들어, 이 아키텍처는 전체 전용 서브넷에 ICMP를 내부적으로 허용합니다.

고려 사항

  • 성능

    최상의 성능을 얻으려면 적절한 대역폭을 사용하여 올바른 컴퓨트 구성을 선택하십시오.

  • 가용성

    배포 요구사항에 따라 고가용성 옵션을 사용하는 것이 좋습니다.

  • 비용

    베어메탈 서비스는 네트워크 대역폭에서 더 높은 성능을 제공하여 더 높은 비용을 제공합니다. 요구사항을 평가하여 적절한 컴퓨트 구성을 선택합니다.

  • 모니터링 및 경고

    MGS, MDS 및 OSS 노드의 CPU 및 메모리 사용량에 대한 모니터링 및 경보를 설정하여 필요에 따라 VM 구성을 확장하거나 축소합니다.

배치

이 참조 구조에 대한 Terraform 코드는 Oracle Cloud Infrastructure Resource Manager에서 샘플 스택으로 사용할 수 있습니다. GitHub에서 코드를 다운로드하여 특정 요구 사항에 맞게 사용자 정의할 수도 있습니다.

  • Oracle Cloud Infrastructure Resource Manager의 샘플 스택을 사용하여 배치합니다:
    1. Oracle Cloud에 배포 을 누릅니다.

      아직 사인인하지 않은 경우 테넌시 및 사용자 인증서를 입력합니다.

    2. 조건 및 조항을 검토하고 수락합니다.
    3. 스택을 배치할 영역을 선택합니다.
    4. 화면의 프롬프트 및 지침에 따라 스택을 만듭니다.
    5. 스택을 생성한 후 Terraform 작업 을 누르고 계획 을 선택합니다.
    6. 작업이 완료될 때까지 기다렸다가 계획을 검토합니다.

      변경하려면 스택 세부정보 페이지로 돌아가서 스택 편집 을 누르고 필요한 사항을 변경합니다. 그런 다음 계획 작업을 다시 실행합니다.

    7. 더 이상 변경할 필요가 없는 경우 스택 세부 정보 페이지로 돌아가서 Terraform 작업 을 누르고 적용 을 선택합니다.
  • GitHub에서 Terraform 코드를 사용하여 배포합니다:
    1. GitHub로 이동합니다.
    2. 저장소를 로컬 컴퓨터에 복제하거나 다운로드합니다.
    3. README 문서의 지침을 따릅니다.