SCSI리눅스용 i 프로비저닝 - ONTAP용 FSx

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

SCSI리눅스용 i 프로비저닝

FSxONTAPfor는 i SCSI 프로토콜을 지원합니다. i SCSI SCSI 프로토콜을 사용하여 클라이언트와 파일 시스템 간에 데이터를 전송하려면 Linux 클라이언트와 파일 시스템 모두에서 i를 프로비저닝해야 합니다. i SCSI 프로토콜은 HA (고가용성) 쌍이 6개 이하인 모든 파일 시스템에서 사용할 수 있습니다.

SCSIFSxAmazon에서 i를 구성하는 프로세스에는 세 가지 주요 단계가 있으며 NetApp ONTAP, 해당 단계는 다음 절차에서 다룹니다.

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

  2. 파일 SCSI 시스템에서 i를 구성합니다SVM.

    • i SCSI 이니시에이터 그룹을 생성합니다.

    • 이니시에이터 그룹을 에 매핑합니다. LUN

  3. Linux SCSI LUN 클라이언트에 i를 마운트합니다.

시작하기 전 준비 사항

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

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

  • 파일 SCSI LUN 시스템에 i를 생성합니다. 자세한 내용은 i 만들기 SCSI LUN 단원을 참조하십시오.

  • 파일 시스템과 VPC 동일한 환경에서 Amazon Linux 2 Amazon 머신 이미지 (AMI) 를 실행하는 EC2 인스턴스를 생성합니다. SCSIi를 구성하고 파일 데이터에 액세스할 수 있는 Linux 호스트입니다.

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

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

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

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

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

    NetApp ONTAP파일 시스템의 선호 서브넷과 동일한 FSx 가용 영역에 i SCSI LUN 및 Amazon EC2 인스턴스가 있는 Amazon for 파일 시스템을 보여주는 이미지.

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

Linux SCSI 호스트에 i를 설치하고 구성합니다.

i SCSI 클라이언트를 설치하려면
  1. Linux 디바이스에 iscsi-initiator-utilsdevice-mapper-multipath가 설치되어 있는지 확인합니다. SSH클라이언트를 사용하여 Linux 인스턴스에 연결합니다. 자세한 내용은 를 사용하여 Linux 인스턴스에 연결을 참조하십시오SSH.

  2. 다음 명령을 사용하여 i SCSI 클라이언트를 설치합니다multipath. 파일 서버 간에 자동으로 장애 조치하려면 multipath를 설치해야 합니다.

    ~$ sudo yum install -y device-mapper-multipath iscsi-initiator-utils
  3. multipath를 사용하는 경우 파일 서버 간에 자동으로 장애 조치할 때 응답 속도를 높이려면 /etc/iscsi/iscsid.conf 파일의 대체 제한 시간 값을 기본값인 120 대신 5로 설정합니다.

    ~$ sudo sed -i 's/node.session.timeo.replacement_timeout = .*/node.session.timeo.replacement_timeout = 5/' /etc/iscsi/iscsid.conf; sudo cat /etc/iscsi/iscsid.conf | grep node.session.timeo.replacement_timeout
  4. i SCSI 서비스를 시작합니다.

    ~$ sudo service iscsid start

    단, Linux 버전에 따라 다음 명령을 대신 사용해야 할 수도 있습니다.

    ~$ sudo systemctl start iscsid
  5. 다음 명령을 사용하여 에이전트가 실행 중인지 확인합니다.

    ~$ sudo systemctl status iscsid.service

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

    iscsid.service - Open-iSCSI Loaded: loaded (/usr/lib/systemd/system/iscsid.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2021-09-02 00:00:00 UTC; 1min ago Docs: man:iscsid(8) man:iscsiadm(8) Process: 14658 ExecStart=/usr/sbin/iscsid (code=exited, status=0/SUCCESS) Main PID: 14660 (iscsid) CGroup: /system.slice/iscsid.service ├─14659 /usr/sbin/iscsid └─14660 /usr/sbin/iscsid
Linux SCSI 클라이언트에서 i를 구성하려면
  1. 클라이언트가 파일 서버 간에 자동으로 장애 조치할 수 있도록 하려면 다중 경로를 구성해야 합니다. 다음 명령을 사용합니다.

    ~$ sudo mpathconf --enable --with_multipathd y
  2. 다음 명령을 사용하여 Linux 호스트의 이니시에이터 이름을 확인합니다. 이니시에이터 이름의 위치는 i SCSI 유틸리티에 따라 다릅니다. iscsi-initiator-utils를 사용하는 경우 이니시에이터 이름은 /etc/iscsi/initiatorname.iscsi 파일에 있습니다.

    ~$ sudo cat /etc/iscsi/initiatorname.iscsi

    시스템이 이니시에이터 이름으로 응답합니다.

    InitiatorName=iqn.1994-05.com.redhat:abcdef12345

ONTAP파일 FSx 시스템용 SCSI i를 구성합니다.

  1. 다음 명령을 SCSI LUN 사용하여 i를 만든 FSx for ONTAP 파일 시스템에 연결합니다. NetApp ONTAP CLI 자세한 내용은 NetApp ONTAP CLI 사용 단원을 참조하십시오.

    ~$ ssh fsxadmin@your_management_endpoint_ip
  2. NetApp ONTAPCLIlun igroup create명령을 사용하여 이니시에이터 그룹 (igroup) 을 생성합니다. 이니시에이터 그룹은 SCSI LUNs i에 매핑되며 액세스할 수 있는 이니시에이터 (클라이언트) 를 제어합니다. LUNs host_initiator_name을 이전 절차에서 검색한 Linux 호스트의 이니시에이터 이름으로 바꿉니다.

    ::> lun igroup create -vserver svm_name -igroup igroup_name -initiator host_initiator_name -protocol iscsi -ostype linux

    이 igroup에 LUNs 매핑된 이름을 여러 호스트에서 사용할 수 있도록 하려면 여러 이니시에이터 이름을 쉼표로 구분하여 지정할 수 있습니다. 자세한 내용은 설명서 센터의 lun igroup create를 참조하십시오. NetApp ONTAP

  3. lun igroup show 명령을 사용하여 igroup이 존재하는지 확인합니다.

    ::> lun igroup show

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

    Vserver Igroup Protocol OS Type Initiators --------- ------------ -------- -------- ------------------------------------ svm_name igroup_name iscsi linux iqn.1994-05.com.redhat:abcdef12345
  4. 이 단계에서는 i를 이미 만들었다고 가정합니다. SCSI LUN 아직 작성하지 않은 경우 step-by-step 지침을 i 만들기 SCSI LUN 참조하십시오.

    를 사용하여 다음 속성을 지정하여 LUN 생성한 igroup에서 생성한 igroup으로의 매핑을 생성합니다. lun mapping create

    • svm_name- i SCSI 타겟을 제공하는 스토리지 가상 머신의 이름. 호스트는 이 값을 사용하여 에 LUN 도달합니다.

    • vol_name— 를 호스팅하는 볼륨의 이름LUN.

    • lun_name— 할당한 이름LUN.

    • igroup_name – 이니시에이터 그룹의 이름입니다.

    • lun_id— LUN ID 정수는 매핑 LUN 자체가 아니라 매핑에만 해당됩니다. 이는 igroup의 이니시에이터에 의해 사용되며, 이니시에이터가 스토리지에 액세스할 때 논리 유닛 번호로 사용됩니다.

    ::> lun mapping create -vserver svm_name -path /vol/vol_name/lun_name -igroup igroup_name -lun-id lun_id
  5. lun show -path명령을 사용하여 가 생성되었는지, 온라인 LUN 상태인지, 매핑되었는지 확인합니다.

    ::> lun show -path /vol/vol_name/lun_name -fields state,mapped,serial-hex

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

    Vserver Path serial-hex state mapped --------- ------------------------------- ------------------------ -------- -------- svm_name /vol/vol_name/lun_name 6c5742314e5d52766e796150 online mapped

    serial_hex 값(이 예제에서는 6c5742314e5d52766e796150)을 저장하면, 이후 단계에서 이 값을 사용하여 블록 장치에 친숙한 이름을 만들 수 있습니다.

  6. network interface show -vserver명령을 사용하여 i를 만든 iscsi_2 인터페이스의 주소 iscsi_1 및 인터페이스를 검색하십시오. SVM SCSI LUN

    ::> network interface show -vserver svm_name

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

    Logical Status Network Current Current Is Vserver Interface Admin/Oper Address/Mask Node Port Home ----------- ---------- ---------- ------------------ ------------- ------- ---- svm_name iscsi_1 up/up 172.31.0.143/20 FSxId0123456789abcdef8-01 e0e true iscsi_2 up/up 172.31.21.81/20 FSxId0123456789abcdef8-02 e0e true nfs_smb_management_1 up/up 198.19.250.177/20 FSxId0123456789abcdef8-01 e0e true 3 entries were displayed.

    이 예제에서 iscsi_1의 IP 주소는 172.31.0.143이고 iscsi_2의 IP 주소는 172.31.21.81입니다.

Linux SCSI LUN 클라이언트에 i를 마운트하십시오.

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

  1. 대상 i SCSI 노드 검색

  2. i 파티셔닝 SCSI LUN

  3. SCSILUN클라이언트에 i 마운트하기

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

대상 i개 SCSI 노드를 검색하려면
  1. Linux 클라이언트에서 다음 명령을 사용하여 iscsi_1 의 IP 주소를 사용하여 대상 i SCSI 노드를 검색하십시오.iscsi_1_IP.

    ~$ sudo iscsiadm --mode discovery --op update --type sendtargets --portal iscsi_1_IP
    172.31.0.143:3260,1029 iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3 172.31.21.81:3260,1028 iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3

    이 예제에서 는 기본 target_initiator 가용 영역의 SCSI LUN i에 iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3 해당합니다.

  2. (선택 사항) SCSI LUN i에 최대 5GB/s (약 625MB/s) 의 Amazon EC2 단일 클라이언트 처리량보다 더 높은 처리량을 제공하려면 Linux 인스턴스용 Amazon Elastic Compute Cloud 사용 설명서의 Amazon EC2 인스턴스 네트워크 대역폭에 설명된 절차에 따라 처리량을 높이기 위한 추가 세션을 설정하십시오.

    다음 명령은 각 가용 영역에서 ONTAP 노드당 이니시에이터당 8개의 세션을 설정하여 클라이언트가 i까지 최대 40GB/s (5,000MB/s) 의 총 처리량을 제공할 수 있도록 합니다. SCSI LUN

    ~$ sudo iscsiadm --mode node -T target_initiator --op update -n node.session.nr_sessions -v 8
  3. 대상 이니시에이터에 로그인합니다. SCSILUNsi는 사용 가능한 디스크로 표시됩니다.

    ~$ sudo iscsiadm --mode node -T target_initiator --login
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3, portal: 172.31.14.66,3260] (multiple) Login to [iface: default, target: iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3, portal: 172.31.14.66,3260] successful.

    위 출력은 잘렸습니다. 각 파일 서버의 세션마다 Logging in 응답과 Login successful 응답이 하나씩 표시되어야 합니다. 노드당 세션이 4개인 경우 응답은 Logging in 8개와 Login successful 8개입니다.

  4. 다음 명령을 사용하여 여러 정책이 LUN 적용된 단일 세션을 표시하여 i SCSI 세션을 식별하고 병합했는지 확인하십시오. dm-multipath active로 나열된 디바이스와 enabled로 나열된 디바이스 수가 같아야 합니다.

    ~$ sudo multipath -ll

    출력에서 디스크 이름은 dm-xyz와 같은 형식으로 지정됩니다. 여기서 xyz는 정수입니다. 다른 멀티패스 디스크가 없는 경우 이 값은 dm-0입니다.

    3600a09806c5742314e5d52766e79614f dm-xyz NETAPP ,LUN C-Mode size=10G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='0' wp=rw |-+- policy='service-time 0' prio=50 status=active | |- 0:0:0:1 sda 8:0 active ready running | |- 1:0:0:1 sdc 8:32 active ready running | |- 3:0:0:1 sdg 8:96 active ready running | `- 4:0:0:1 sdh 8:112 active ready running `-+- policy='service-time 0' prio=10 status=enabled |- 2:0:0:1 sdb 8:16 active ready running |- 7:0:0:1 sdf 8:80 active ready running |- 6:0:0:1 sde 8:64 active ready running `- 5:0:0:1 sdd 8:48 active ready running

    이제 블록 디바이스가 Linux 클라이언트에 연결되었습니다. 이는 /dev/dm-xyz 경로에 있습니다. 이 경로를 관리 목적으로 사용해서는 안 됩니다. 대신 경로 아래에 있는 심볼릭 링크를 사용하십시오. 여기서 wwid 는 기기 간에 일관된 고유 식별자입니다. /dev/mapper/wwid LUN 다음 단계에서는 다른 다중 경로 디스크와 구별할 수 있도록 wwid에 친숙한 이름을 지정합니다.

블록 디바이스에 친숙한 이름을 지정하려면
  1. /etc/multipath.conf 파일에 별칭을 만들어 디바이스에 친숙한 이름을 지정합니다. 이렇게 하려면 선호하는 텍스트 편집기를 사용하여 다음 자리 표시자를 대체하여 파일에 다음 항목을 추가합니다.

    • serial_hexONTAP파일 FSx 시스템용 SCSI i를 구성합니다. 절차에서 저장한 값으로 바꿉니다.

    • 예제에 표시된 대로 serial_hex 값에 접두사 3600a0980을 추가합니다. 이는 Amazon FSx for에서 사용하는 NetApp ONTAP 배포판의 고유한 프리앰블입니다. NetApp ONTAP

    • device_name을 디바이스에 사용할 친숙한 이름으로 바꿉니다.

    multipaths { multipath { wwid 3600a0980serial_hex alias device_name } }

    또는 다음 스크립트를 bash 파일(예: multipath_alias.sh)로 복사하여 저장할 수도 있습니다. serial_hex(3600a0980 접두사 없이) 및 device_name을 해당 일련 번호 및 원하는 친숙한 이름으로 바꾸어 sudo 권한을 사용하여 스크립트를 실행할 수 있습니다. 이 스크립트는 /etc/multipath.conf 파일에서 주석이 없는 multipaths 섹션을 검색합니다. 해당 항목이 있으면 해당 섹션에 multipath 항목이 추가됩니다. 없으면 블록 디바이스에 multipath 항목이 있는 새 multipaths 섹션이 생성됩니다.

    #!/bin/bash SN=serial_hex ALIAS=device_name CONF=/etc/multipath.conf grep -q '^multipaths {' $CONF UNCOMMENTED=$? if [ $UNCOMMENTED -eq 0 ] then sed -i '/^multipaths {/a\\tmultipath {\n\t\twwid 3600a0980'"${SN}"'\n\t\talias '"${ALIAS}"'\n\t}\n' $CONF else printf "multipaths {\n\tmultipath {\n\t\twwid 3600a0980$SN\n\t\talias $ALIAS\n\t}\n}" >> $CONF fi
  2. multipathd 서비스를 다시 시작하여 /etc/multipathd.conf의 변경 사항을 적용합니다.

    ~$ systemctl restart multipathd.service
파티션을 나누려면 LUN

다음 단계는 LUN 사용량을 포맷하고 파티션을 나누는 것입니다fdisk.

  1. 다음 명령을 사용하여 device_name에 대한 경로가 있는지 확인합니다.

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

    참고

    Last sector값은 i의 크기 SCSI LUN (이 예에서는 10GB) 에 따라 달라집니다.

    ~$ sudo fdisk /dev/mapper/device_name

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

    Welcome to fdisk (util-linux 2.30.2). 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 (2048-20971519, default 2048): 2048 Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): 20971519 Created a new partition 1 of type 'Linux' and of size 512 B. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.

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

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

    ~$ sudo mkfs.ext4 /dev/mapper/partition_name

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

    mke2fs 1.42.9 (28-Dec-2013) Discarding device blocks: done Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=16 blocks 655360 inodes, 2621184 blocks 131059 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2151677952 80 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
Linux LUN 클라이언트에 마운트하려면
  1. 디렉터리 생성 directory_path 파일 시스템의 마운트 포인트로 사용합니다.

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

    ~$ sudo mount -t ext4 /dev/mapper/partition_name /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 SCSI LUN 클라이언트에 i를 성공적으로 생성하고 마운트했습니다.