Lustre File System 배치

OCI File Storage를 Lustre와 함께 배포하는 단계는 다음과 같습니다.
  • Lustre 파일 시스템으로 OCI File Storage 생성
  • 파일 시스템 마운트
  • LNet 구성
  • 읽기 및 쓰기 작업 테스트

Lustre 파일 시스템 생성

다음 단계에서는 Lustre 파일 시스템을 사용하여 OCI File Storage를 생성하는 방법을 안내합니다.

  1. OCI 콘솔 탐색 메뉴에서 스토리지를 누른 다음 Lustre 파일 시스템을 누릅니다.
  2. 생성을 누릅니다.
  3. Lustre 파일 시스템 세부정보를 구성합니다.
    • 파일 시스템 이름: 기본 이름을 적용하거나 파일 시스템에 친숙한 이름을 입력합니다.
    • 마운트 이름: 기본값을 적용하거나 파일 시스템을 마운트할 때 사용할 친숙한 이름을 입력합니다.
    • 파일 시스템 설명: (선택사항) 파일 시스템에 대한 설명을 입력합니다.
    • 컴파트먼트: 기본 컴파트먼트를 적용하거나, 컴파트먼트를 변경할 목록을 선택합니다.
    • 가용성 도메인: 기본 가용성 도메인을 수락하거나 목록을 선택하여 가용성 도메인을 변경합니다.
    • 태그: 리소스 생성 권한이 있는 경우 자유 형식 태그를 해당 리소스에 적용할 권한도 있습니다. 정의된 태그를 적용하려면 태그 네임스페이스 사용 권한이 있어야 합니다. 태그를 적용할지 여부가 확실하지 않으면 이 옵션을 건너뛰거나 관리자에게 문의하십시오. 나중에 태그를 적용할 수 있습니다.
    • 클러스터 배치 그룹: 짧은 대기 시간을 보장하기 위해 파일 시스템 및 기타 리소스를 가용성 도메인에 물리적으로 배치할 클러스터 배치 그룹을 선택하는 것이 좋습니다. 파일 시스템이 생성된 후에는 클러스터 배치 그룹을 변경할 수 없습니다.
    • 성능 계층: 파일 시스템에 대한 성능 계층을 선택합니다. 성능 계층은 파일 시스템의 처리량을 제어합니다. 처리량은 프로비저닝된 스토리지의 테라바이트(TB)당 지정됩니다. 파일 시스템이 생성된 후에는 성능 계층을 변경할 수 없습니다.
    • 용량: 파일 시스템의 스토리지 용량을 선택합니다. 서비스 제한보다 큰 용량을 선택하면 증가를 요청하라는 메시지가 표시될 수 있습니다.

      파일 시스템의 집계 처리량은 성능 계층 및 용량에서 계산됩니다.

    • 네트워킹: 파일 시스템을 마운트할 VCN 및 서브넷을 선택합니다. 기본적으로 콘솔에는 작업 중인 컴파트먼트의 VCN 및 서브넷 목록이 표시됩니다. 다른 컴파트먼트에서 VCN 또는 서브넷을 선택하도록 컴파트먼트를 변경합니다.

      선택한 서브넷은 Lustre 서버를 배치하는 데 사용되는 서브넷입니다. 이 서브넷이 포트 512-1023 사이에 있는 클라이언트측 포트와 Lustre 서버측 포트 988 간의 통신을 허용하는지 확인합니다.

    • 네트워크 보안 그룹을 사용하여 트래픽 제어: 이 옵션을 사용으로 설정하고 파일 시스템에 대한 가상 방화벽으로 작동할 NSG(네트워크 보안 그룹)를 선택합니다. + Another network security group을 선택하여 파일 시스템을 최대 5개의 NSG에 추가합니다.
    • 루트 스쿼시: 이러한 설정은 파일 시스템에 액세스하는 클라이언트의 UID(사용자 ID) 및 GID(그룹 ID)가 Squash UIDSquash GID에 다시 매핑되는지 여부를 제어합니다.

      Squash: None 또는 Root를 선택합니다. 기본값은 없음이므로 기본적으로 재매핑이 수행되지 않습니다.

      Squash UID: SquashRoot로 설정된 경우 루트 사용자(UID 0)가 이 값으로 다시 매핑됩니다. 기본값은 65534이고,

      스쿼시 GID: 스쿼시루트로 설정된 경우 루트 그룹 사용자(GID 0)가 이 값으로 다시 매핑됩니다. 기본값은 65534이고,

    • 루트 스쿼시 예외 사항: 루트 스쿼시 구성에서 특정 클라이언트를 제외하려면 해당 클라이언트 주소를 유효한 IP 주소 또는 범위로 입력합니다. 예: 10.0.2.4 또는 10.0.[2-10].[1-255]. + 다른 클라이언트 주소를 선택하여 예외를 10개까지 추가합니다.
    • 암호화 키: 기본적으로 Oracle은 파일 시스템을 암호화하는 키를 관리합니다. 키 수명 주기 및 사용 방법을 더 세밀하게 제어하려면 고유의 저장소 암호화 키를 선택할 수 있습니다.
생성이 시작된 후 백엔드 리소스 프로비전을 완료하는 데 몇 분 정도 걸립니다. 시간은 파일 시스템의 성능 계층 및 크기에 따라 다릅니다.

Lustre File System 마운트

  1. Lustre 파일 시스템 세부 정보로 이동하여 콘솔에서 mount 명령을 찾습니다.
  2. Lustre 클라이언트 모듈이 설치된 Linux 클라이언트에서 파일 시스템을 마운트할 수 있습니다. 이 클라이언트에는 Lustre DKMS 모듈이 설치되어 있습니다.
    [root@lustre-ol8-client ~]# rpm -qa | grep lustre
    lustre-client-2.15.5_oci1-1.el8.x86_64
    lustre-client-dkms-2.15.5_oci1-1.el8.noarch

    Oracle Cloud Agent에서 관리되는 RDMA 네트워킹을 사용하는 GPU 호스트가 있는 일부 환경에서는 LNet 인터페이스를 추가하면 기본 인터페이스(호스트의 첫번째 인터페이스)를 통한 호스트 통신을 방지하는 규칙이 삽입됩니다. 이로 인해 특히 OKE 환경에서 내부 통신을 위해 로컬 IP를 사용하는 환경에 문제가 발생할 수 있습니다. 즉, 로컬 IP에 대한 핑이 작동하지 않습니다. 이 문제를 해결하려면 다음 임시해결책을 사용하여 LNet에서 추가 경로 및 규칙을 추가하지 못하도록 합니다.

    LNet 인터페이스를 추가하기 전에 이 작업을 수행하십시오. LNet 인터페이스가 명시적으로 추가되지 않는 경우 파일 시스템을 마운트하기 전에 적용하십시오.

    echo 'options ksocklnd skip_mr_route_setup=1' >/etc/modprobe.d/lnet.conf && rmmod lnet; modprobe -v lnet
  3. Lustre 모듈(이미 로드된 경우)을 언로드하여 완전히 시작합니다. 파일 시스템이 이미 마운트된 경우 모듈 언로드가 작동하지 않습니다. lustre_rmmod에서 모든 모듈을 언로드하지 않는 경우 새로 시작하려면 시스템을 재부트하십시오.
    [root@lustre-ol8-client ~]# lustre_rmmod 
  4. Lustre 파일 시스템을 마운트합니다. 특정 인터페이스를 Lustre에 대해 구성해야 하는 경우 모듈을 로드하기 전에 lnetctl 구성을 사용합니다. 이 내용은 다음 절에 설명되어 있습니다.
    [root@lustre-ol8-client ~]# modprobe lustre
    [root@lustre-ol8-client ~]# mount -t lustre 10.0.3.8@tcp:/lustrefs /mnt/mymountpoint

    마운트 실패 시 오류 메시지 No such file or directory. Is the MGS specification correct?가 표시되면 여러 인터페이스 또는 호스트의 기타 네트워킹 상황으로 인해 LNet(Lustre 네트워킹)를 자동으로 구성할 수 없는 것 같습니다. 이 경우 LNet를 수동으로 구성해야 합니다.

    오류는 다음과 유사합니다.

    mount.lustre: mount 10.0.3.8@tcp:/lustrefs at /mnt/mymountpoint failed: No such file or directory
    Is the MGS specification correct?
    Is the filesystem name correct?
    If upgrading, is the copied client log valid? (see upgrade docs)

LNet 구성(Lustre Networking)

다음 단계는 파일 시스템을 마운트하는 단계가 실패하고 Lustre에 대한 올바른 인터페이스가 lnetctl net show에 표시되지 않는 경우에만 필요합니다. lnetctl net show에 Lustre에 대한 올바른 인터페이스가 표시되는 경우 이러한 단계가 필요하지 않습니다.
  1. 인터페이스 이름을 찾습니다. 시스템에 여러 인터페이스가 있을 수 있습니다. Lustre 파일 시스템에 가까운 적절한 인터페이스를 선택합니다. ip route 명령을 사용하여 시스템의 네트워크를 표시하고 Lustre 파일 시스템에 접근하는 데 더 적합한 인터페이스를 찾습니다. 이는 주요 데이터 전송이 발생하는 인터페이스입니다. 여기서 사용되는 인터페이스는 enp0s5입니다.
    [root@lustre-ol8-client ~]# ip addr
    출력은 다음과 유사합니다.
    ...
    2: enp0s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP group default qlen 1000
        link/ether 02:00:17:12:91:e9 brd ff:ff:ff:ff:ff:ff
        inet 10.0.3.42/24 brd 10.0.3.255 scope global dynamic enp0s5
           valid_lft 84865sec preferred_lft 84865sec
        inet6 fe80::17ff:fe12:91e9/64 scope link
           valid_lft forever preferred_lft forever
  2. 다음 명령을 실행합니다.
    [root@lustre-ol8-client opc]# modprobe lnet
    [root@lustre-ol8-client opc]# lnetctl lnet configure
    [root@lustre-ol8-client opc]# lnetctl net add --net tcp --if enp0s5
    [root@lustre-ol8-client opc]# lnetctl net show
    출력은 다음과 유사합니다.
    net:
        - net type: lo
          local NI(s):
            - nid: 0@lo
              status: up
        - net type: tcp
          local NI(s):
            - nid: 10.0.3.42@tcp  <<<<<<<<<
              status: up
              interfaces:
                  0: enp0s5   <<<<<<<<

파일 시스템 마운트

  1. 다음을 실행합니다.
    [root@lustre-ol8-client opc]# mount -t lustre 10.0.3.8@tcp:/lustrefs /mnt/mymountpoint
    [root@lustre-ol8-client opc]# df -h /mnt/mymountpoint
    출력은 다음과 유사합니다.
    Filesystem Size Used Avail Use% Mounted on
    10.0.3.8@tcp:/lustrefs 31T 17M 30T 1% /mnt/mymountpoint
  2. 다음과 같이 명령을 실행합니다.
    [root@lustre-ol8-client opc]# lfs df -h /mnt/mymountpoint
    출력은 다음과 유사합니다.
    UUID bytes Used Available Use% Mounted on
    lustrefs-MDT0000_UUID 563.4G 33.8M 513.4G 1% /mnt/mymountpoint[MDT:0]
    lustrefs-MDT0001_UUID 563.4G 33.7M 513.4G 1% /mnt/mymountpoint[MDT:1]
    lustrefs-OST0000_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:0]
    lustrefs-OST0001_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:1]
    lustrefs-OST0002_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:2]
    lustrefs-OST0003_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:3]
    lustrefs-OST0004_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:4]
    lustrefs-OST0005_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:5]
    lustrefs-OST0006_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:6]
    lustrefs-OST0007_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:7]
    lustrefs-OST0008_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:8]
    lustrefs-OST0009_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:9]
    lustrefs-OST000a_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:10]
    lustrefs-OST000b_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:11]
    
    filesystem_summary: 30.9T 16.4M 29.3T 1% /mnt/mymountpoint

테스트 읽기 및 쓰기 작업

File Storage with Lustre 서비스 메트릭은 파일 시스템의 성능, 용량 및 상태를 측정하는 데 도움이 됩니다. 측정항목 데이터를 사용하여 문제를 진단하고 해결할 수 있습니다.

dd 명령을 실행한 다음 측정항목 페이지로 이동하여 측정항목 대시보드를 확인하여 읽기 및 쓰기를 테스트합니다.

  1. 다음과 유사한 dd 명령을 실행합니다.
    [root@hpc-client-0 test]# dd if=/dev/zero of=10G_file  bs=1M count=10240 oflag=direct ;sleep 120 ; dd of=/dev/null if=10G_file  bs=1M count=10240 iflag=direct
    출력은 다음과 유사합니다.
    10240+0 records in
    10240+0 records out
    10737418240 bytes (11 GB, 10 GiB) copied, 40.6989 s, 264 MB/s
    10240+0 records in
    10240+0 records out
    10737418240 bytes (11 GB, 10 GiB) copied, 39.2326 s, 274 MB/s
    이 예제에서는 블록 크기가 1MB입니다.
  2. 콘솔에서 기본 측정항목 차트 집합을 보려면 탐색 메뉴를 누르고 저장 영역을 누릅니다.
  3. Lustre에서 File Systems with Lustre를 선택합니다.
  4. 측정항목을 보려는 파일 시스템을 선택합니다.
  5. 세부정보 페이지의 리소스에서 측정항목을 선택합니다.
메트릭 페이지에 현재 파일 시스템에 대한 기본 차트 세트가 표시됩니다. File Storage with Lustre는 다음과 같은 지표를 제공합니다.
  • ReadThroughput: 분당 읽은 바이트 단위로 표시됩니다.
  • WriteThroughput: 분당 읽은 바이트 단위로 표시됩니다.
  • DataReadOperations: 분당 읽기 작업 수입니다.
  • DataWriteOperation: 분당 쓰기 작업 수입니다.
  • MetadataOperations: 메타데이터 작업 수입니다. getattr, setattr, mknod, link, unlink, mkdir 등과 같은 14개의 다른 메타데이터 작업 사용 가능 차원입니다.
  • FileSystemCapacity: 파일 시스템의 총 사용 가능한 용량입니다.
  • FileSystemInodeCapacity: 파일 시스템의 합계 및 사용 가능한 inode입니다.

이러한 측정항목은 아래 스크린샷에 표시된 대로 OCI 측정항목 탐색기 oci_lustrefilesystem 네임스페이스를 사용하여 탐색할 수 있습니다.


lustre-metrics-explorer.png에 대한 설명은 다음과 같습니다.
그림 lustre-metrics-explorer.png에 대한 설명

다음은 MQL(모니터링 질의 언어)의 질의를 측정항목 탐색기 또는 Grafana와 같은 다른 대시보드에서 사용할 수 있는 방법의 예입니다.

읽기 처리량을 가져오려면 다음과 같이 하십시오.

ReadThroughput[1m]{resourceId = "your_filesystem_ocid", targetType = "OST", clientName ="all@all"}.grouping().sum()/60

주:

여기서 간격은 1분이므로 60이 사용됩니다. 마찬가지로 MQL을 다른 측정항목에 사용할 수 있습니다.