프로비저닝NVMe/TCP리눅스용 - ONTAP용 FSx

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

프로비저닝NVMe/TCP리눅스용

FSxfor는 TCP (NVMe/TCP) 블록 스토리지 프로토콜을 통한 비휘발성 메모리 익스프레스 프로토콜을 ONTAP 지원합니다. NVMeTCP/를 사용하면 를 사용하여 네임스페이스와 서브시스템을 프로비전한 다음 네임스페이스를 서브시스템에 매핑합니다. 이는 i의 이니시에이터 그룹 (igroup) 에 LUNs 프로비저닝되고 매핑되는 방식과 유사합니다. ONTAP CLI SCSI NVMe/TCP프로토콜은 고가용성 (HA) 페어가 6개 이하인 2세대 파일 시스템에서 사용할 수 있습니다.

참고

FSxONTAP파일 시스템의 경우 i SCSI 및NVMe/TCP블록 스토리지 프로토콜 모두에 SVM an의 i SCSI 엔드포인트를 사용하십시오.

TCPFSxAmazon에서 NVMe /를 구성하는 세 가지 주요 단계는 다음과 같습니다. NetApp ONTAP

  1. Linux 호스트에 NVMe 클라이언트를 설치하고 구성합니다.

  2. 파일 NVMe 시스템에서 구성합니다SVM.

    • NVMe네임스페이스를 생성합니다.

    • 서브시스템 생성 NVMe

    • 네임스페이스를 서브시스템에 매핑합니다.

    • 서브시스템에 NQN 클라이언트를 추가합니다.

  3. Linux 클라이언트에 NVMe 디바이스를 마운트합니다.

시작하기 전 준비 사항

NVMeTCP/에 대한 파일 시스템 구성 프로세스를 시작하기 전에 다음 항목을 완료해야 합니다.

  • ONTAP파일 FSx 시스템용 파일을 생성하십시오. 자세한 내용은 파일 시스템 생성 단원을 참조하십시오.

  • 파일 시스템과 동일한 VPC 환경에서 Red Hat 엔터프라이즈 리눅스 (RHEL) 9.3을 실행하는 EC2 인스턴스를 생성하십시오. TCPLinux용 NVMe /를 사용하여 파일 데이터를 NVMe 구성하고 액세스할 수 있는 Linux 호스트입니다.

    호스트가 다른 VPC 곳에 있는 경우 이 절차의 범위를 벗어나면 VPC 피어링을 사용하거나 AWS Transit Gateway 볼륨의 i VPCs SCSI 엔드포인트에 대한 다른 액세스 권한을 다른 사람에게 부여할 수 있습니다. 자세한 내용은 배포 외부에서 데이터에 액세스 VPC 단원을 참조하십시오.

  • 에 설명된 대로 인바운드 및 아웃바운드 트래픽을 허용하도록 Linux 호스트의 VPC 보안 그룹을 구성합니다. Amazon을 통한 파일 시스템 액세스 제어 VPC

  • 액세스에 사용할 fsxadmin 권한이 있는 ONTAP 사용자의 자격 증명을 확보하십시오. ONTAP CLI 자세한 내용은 ONTAP역할 및 사용자 단원을 참조하십시오.

  • ONTAP파일 시스템용 액세스를 위해 NVMe 구성하고 사용할 Linux 호스트는 동일한 VPC 및 에 있습니다 AWS 계정. FSx

  • EC2인스턴스는 파일 시스템의 기본 서브넷과 동일한 가용 영역에 있는 것이 좋습니다.

EC2인스턴스가 RHEL 9.3과 AMI 다른 Linux를 실행하는 경우 이러한 절차와 예제에 사용된 유틸리티 중 일부가 이미 설치되어 있을 수 있으며 필요한 패키지를 설치하기 위해 다른 명령을 사용할 수 있습니다. 패키지 설치 외에도 이 섹션에서 사용되는 명령은 다른 EC2 AMIs Linux에도 유효합니다.

Linux NVMe 호스트에서 설치 및 구성

NVMe클라이언트를 설치하려면
  1. SSH클라이언트를 사용하여 Linux 인스턴스에 연결합니다. 자세한 내용은 Linux 또는 macOS를 사용하여 Linux 인스턴스에 연결을 참조하십시오. SSH

  2. 다음 명령을 사용하여 nvme-cli를 설치합니다.

    ~$ sudo yum install -y nvme-cli
  3. nvme-tcp모듈을 호스트에 로드하십시오.

    $ sudo modprobe nvme-tcp
  4. 다음 명령을 사용하여 Linux 호스트의 NVMe 인증된 이름 (NQN) 을 가져옵니다.

    $ cat /etc/nvme/hostnqn nqn.2014-08.org.nvmexpress:uuid:9ed5b327-b9fc-4cf5-97b3-1b5d986345d1

    이후 단계에서 사용할 수 있도록 응답을 기록해 둡니다.

ONTAP파일 FSx 시스템용 구성 NVMe

파일 NVMe 시스템에서 구성하려면

NVMe디바이스를 생성하려는 ONTAP 파일 FSx 시스템용 에 연결합니다. NetApp ONTAP CLI

  1. 에 NetApp ONTAP CLI 액세스하려면 다음 명령을 실행하여 NetApp ONTAP 파일 FSx 시스템용 Amazon 관리 포트에서 SSH 세션을 설정하십시오. management_endpoint_ip를 파일 시스템의 관리 포트의 IP 주소로 바꿉니다.

    [~]$ ssh fsxadmin@management_endpoint_ip

    자세한 내용은 ONTAPCLI를 사용한 파일 시스템 관리 단원을 참조하십시오.

  2. NVMe인터페이스에 액세스하는 데 사용하는 볼륨에 SVM 새 볼륨을 생성합니다.

    ::> vol create -vserver fsx -volume nvme_vol1 -aggregate aggr1 -size 1t [Job 597] Job succeeded: Successful
  3. 명령을 ns_1 사용하여 NVMe 네임스페이스를 생성합니다. vserver nvme namespace create NetApp ONTAPCLI 네임스페이스는 이니시에이터 (클라이언트) 에 매핑되고 디바이스에 액세스할 수 있는 이니시에이터 (클라이언트) 를 제어합니다. NVMe

    ::> vserver nvme namespace create -vserver fsx -path /vol/nvme_vol1/ns_1 -size 100g -ostype linux Created a namespace of size 100GB (107374182400).
  4. 명령을 사용하여 NVMe 서브시스템을 생성합니다. vserver nvme subsystem create NetApp ONTAPCLI

    ~$ vserver nvme subsystem create -vserver fsx -subsystem sub_1 -ostype linux
  5. 방금 만든 서브시스템에 네임스페이스를 매핑합니다.

    ::> vserver nvme subsystem map add -vserver fsx -subsystem sub_1 -path /vol/nvme_vol1/ns_1
  6. 이전에 검색한 것을 사용하여 서브시스템에 클라이언트를 추가합니다. NQN

    ::> vserver nvme subsystem host add -subsystem sub_1 -host-nqn nqn.2014-08.org.nvmexpress:uuid:ec21b083-1860-d690-1f29-44528e4f4e0e -vserver fsx

    이 서브시스템에 매핑된 디바이스를 여러 호스트에서 사용할 수 있게 하려면 여러 이니시에이터 이름을 쉼표로 구분된 목록으로 지정할 수 있습니다. 자세한 내용은 설명서의 vserver nvme 하위 시스템 호스트 추가를 참조하십시오. NetApp ONTAP

  7. 다음 명령을 사용하여 네임스페이스가 존재하는지 확인합니다. vserver nvme namespace show

    ::> vserver nvme namespace show -vserver fsx -instance Vserver Name: fsx Namespace Path: /vol/nvme_vol1/ns_1 Size: 100GB Size Used: 90.59GB OS Type: linux Comment: Block Size: 4KB State: online Space Reservation: false Space Reservations Honored: false Is Read Only: false Creation Time: 5/20/2024 17:03:08 Namespace UUID: c51793c0-8840-4a77-903a-c869186e74e3 Vdisk ID: 80d42c6f00000000187cca9 Restore Inaccessible: false Inconsistent Filesystem: false Inconsistent Blocks: false NVFail: false Node Hosting the Namespace: FsxId062e9bb6e05143fcb-01 Volume Name: nvme_vol1 Qtree Name: Mapped Subsystem: sub_1 Subsystem UUID: db526ec7-16ca-11ef-a612-d320bd5b74a9 Namespace ID: 00000001h ANA Group ID: 00000001h Vserver UUID: 656d410a-1460-11ef-a612-d320bd5b74a9 Vserver ID: 3 Volume MSID: 2161388655 Volume DSID: 1029 Aggregate: aggr1 Aggregate UUID: cfa8e6ee-145f-11ef-a612-d320bd5b74a9 Namespace Container State: online Autodelete Enabled: false Application UUID: - Application: - Has Metadata Provisioned: true 1 entries were displayed.
  8. network interface show -vserver명령을 사용하여 디바이스를 생성한 블록 스토리지 인터페이스의 주소를 검색하십시오NVMe. SVM

    ::> network interface show -vserver svm_name -data-protocol nvme-tcp Logical Status Network Current Current Is Vserver Interface Admin/Oper Address/Mask Node Port Home ----------- ---------- ---------- ------------------ ------------- ------- ---- svm_name iscsi_1 up/up 172.31.16.19/20 FSxId0123456789abcdef8-01 e0e true iscsi_2 up/up 172.31.26.134/20 FSxId0123456789abcdef8-02 e0e true 2 entries were displayed.
    참고

    SCSIi와NVMe/모두에 사용됩니다TCP. iscsi_1 LIF

    이 예에서 iscsi_1의 IP 주소는 172.31.16.19이고 iscsi_2는 172.31.26.134입니다.

NVMeLinux 클라이언트에 디바이스를 마운트하십시오.

Linux 클라이언트에 NVMe 디바이스를 마운트하는 프로세스는 다음 세 단계로 이루어집니다.

  1. 노드 검색 NVMe

  2. 디바이스 파티셔닝 NVMe

  3. 클라이언트에 NVMe 디바이스 마운트하기

이러한 내용은 다음 절차에서 다룹니다.

대상 NVMe 노드를 검색하려면
  1. Linux 클라이언트에서 다음 명령을 사용하여 대상 NVMe 노드를 검색합니다. Replace iSCSI_1_IP 의 IP 주소, 그리고 iscsi_1 클라이언트_IP 클라이언트의 IP 주소.

    참고

    iscsi_1SCSIi와 NVMe 스토리지 모두에 iscsi_2 LIFs 사용됩니다.

    ~$ sudo nvme discover -t tcp -w client_IP -a iscsi_1_IP
    Discovery Log Number of Records 4, Generation counter 11 =====Discovery Log Entry 0====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 0 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.656d410a146011efa612d320bd5b74a9:discovery traddr: 172.31.26.134 eflags: explicit discovery connections, duplicate discovery information sectype: none =====Discovery Log Entry 1====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 1 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.656d410a146011efa612d320bd5b74a9:discovery traddr: 172.31.16.19 eflags: explicit discovery connections, duplicate discovery information sectype: none
  2. (선택 사항) 파일 NVMe 디바이스에 대해 Amazon EC2 단일 클라이언트보다 더 높은 처리량을 제공하려면 Linux 인스턴스용 Amazon Elastic Compute Cloud 사용 설명서의 Amazon EC2 인스턴스 네트워크 대역폭에 설명된 절차에 따라 추가 세션을 설정하십시오.

  3. 컨트롤러 손실 제한 시간이 1800초 이상인 상태에서 대상 이니시에이터에 로그인하고 다시 의 IP 주소를 사용하여 iscsi_1 iSCSI_1_IP 및 다음에 대한 클라이언트의 IP 주소 클라이언트_IP. NVMe디바이스는 사용 가능한 디스크로 표시됩니다.

    ~$ sudo nvme connect-all -t tcp -w client_IP -a iscsi_1 -l 1800
  4. 다음 명령을 사용하여 NVMe 스택이 여러 세션을 식별 및 병합하고 다중 경로를 구성했는지 확인합니다. 컨피그레이션이 Y 성공하면 명령이 반환됩니다.

    ~$ cat /sys/module/nvme_core/parameters/multipath Y
  5. 다음 명령을 사용하여 사용 가능한 모든 경로에 I/O를 분산하기 위해 NetApp ONTAP Controller 각 ONTAP 네임스페이스에 round-robin 대해 NVMe -oF 설정이 로 iopolicy 설정되고 로드 밸런싱이 로 model 설정되어 있는지 확인합니다.

    ~$ cat /sys/class/nvme-subsystem/nvme-subsys*/model Amazon Elastic Block Store NetApp ONTAP Controller ~$ cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy numa round-robin
  6. 다음 명령을 사용하여 호스트에서 네임스페이스가 생성되고 올바르게 검색되었는지 확인합니다.

    ~$ sudo nvme list Node Generic SN Model Namespace Usage Format FW Rev --------------------- --------------------- -------------------- ---------------------------------------- ---------- -------------------------- ---------------- -------- /dev/nvme0n1 /dev/ng0n1 vol05955547c003f0580 Amazon Elastic Block Store 0x1 25.77 GB / 25.77 GB 512 B + 0 B 1.0 /dev/nvme2n1 /dev/ng2n1 lWB12JWY/XLKAAAAAAAC NetApp ONTAP Controller 0x1 107.37 GB / 107.37 GB 4 KiB + 0 B FFFFFFFF

    출력의 새 디바이스는 입니다. /dev/nvme2n1 이 이름 지정 체계는 Linux 설치에 따라 다를 수 있습니다.

  7. 각 경로의 컨트롤러 상태가 활성 상태이고 올바른 비대칭 네임스페이스 Access () 다중 경로 지정 상태인지 확인하십시오. ANA

    ~$ nvme list-subsys /dev/nvme2n1 nvme-subsys2 - NQN=nqn.1992-08.com.netapp:sn.656d410a146011efa612d320bd5b74a9:subsystem.rhel hostnqn=nqn.2014-08.org.nvmexpress:uuid:ec2a70bf-3ab2-6cb0-f997-8730057ceb24 iopolicy=round-robin \ +- nvme2 tcp traddr=172.31.26.134,trsvcid=4420,host_traddr=172.31.25.143,src_addr=172.31.25.143 live non-optimized +- nvme3 tcp traddr=172.31.16.19,trsvcid=4420,host_traddr=172.31.25.143,src_addr=172.31.25.143 live optimized

    이 예시에서는 NVMe 스택이 파일 시스템의 대안인 172.31.26.134를 자동으로 검색했습니다. LIF iscsi_2

  8. NetApp플러그인이 각 네임스페이스 디바이스에 대해 올바른 값을 표시하는지 확인하십시오. ONTAP

    ~$ sudo nvme netapp ontapdevices -o column Device Vserver Namespace Path NSID UUID Size ---------------- ------------------------- -------------------------------------------------- ---- -------------------------------------- --------- /dev/nvme2n1 fsx /vol/nvme_vol1/ns_1 1 0441c609-3db1-4b0b-aa83-790d0d448ece 107.37GB
디바이스를 파티셔닝하려면
  1. 다음 명령어를 사용하여 nvme2n1 device_name에 대한 경로가 있는지 확인합니다.

    ~$ ls /dev/mapper/nvme2n1 /dev/nvme2n1
  2. fdisk를 사용하여 디스크를 파티셔닝합니다. 대화형 프롬프트가 나타날 것입니다. 표시된 순서대로 옵션을 입력합니다. 마지막 섹터보다 작은 값(이 예제에서는 20971519)을 사용하여 여러 파티션을 만들 수 있습니다.

    참고

    Last sector값은 NVMe 디바이스 크기 (이 예에서는 100GiB) 에 따라 달라집니다.

    ~$ sudo fdisk /dev/mapper/nvme2n1

    fsdisk 대화형 프롬프트가 시작됩니다.

    Welcome to fdisk (util-linux 2.37.4). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0x66595cb0. Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (256-26214399, default 256): Last sector, +sectors or +size{K,M,G,T,P} (256-26214399, default 26214399): 20971519 Created a new partition 1 of type 'Linux' and of size 100 GiB. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.

    w를 입력하면 새 파티션 /dev/nvme2n1을 사용할 수 있게 됩니다. The partition_name 형식이 있습니다 <device_name><partition_number>. 1이전 단계의 fdisk 명령에서 파티션 번호로 사용되었습니다.

  3. /dev/nvme2n1을 경로로 사용하여 파일 시스템을 생성합니다.

    ~$ sudo mkfs.ext4 /dev/nvme2n1

    시스템이 다음 출력으로 응답합니다.

    mke2fs 1.46.5 (30-Dec-2021) Found a dos partition table in /dev/nvme2n1 Proceed anyway? (y,N) y Creating filesystem with 26214400 4k blocks and 6553600 inodes Filesystem UUID: 372fb2fd-ae0e-4e74-ac06-3eb3eabd55fb Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: done Writing inode tables: done Creating journal (131072 blocks): done Writing superblocks and filesystem accounting information: done
Linux 클라이언트에 NVMe 디바이스를 마운트하려면
  1. 디렉터리 생성 directory_path Linux 인스턴스의 파일 시스템 탑재 지점으로 사용합니다.

    ~$ sudo mkdir /directory_path/mount_point
  2. 다음 명령을 사용하여 파일 시스템을 마운트합니다.

    ~$ sudo mount -t ext4 /dev/nvme2n1 /directory_path/mount_point
  3. (선택 사항) 특정 사용자에게 마운트 디렉터리의 소유권을 부여하려면 다음을 대체하십시오.사용자 이름 소유자의 사용자 이름으로

    ~$ sudo chown username:username /directory_path/mount_point
  4. (선택 사항) 파일 시스템에서 데이터를 읽고 쓸 수 있는지 확인합니다.

    ~$ echo "Hello world!" > /directory_path/mount_point/HelloWorld.txt ~$ cat directory_path/HelloWorld.txt Hello world!

    Linux 클라이언트에 NVMe 디바이스를 성공적으로 생성하고 마운트했습니다.