기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
iSCSI LUN을 Linux 클라이언트에 마운트
이 절차에 제시된 예제에서는 다음 설정을 사용합니다.
Linux 호스트에 마운트되는 iSCSI LUN이 이미 생성되었습니다. 자세한 내용은 iSCSI LUN 생성 섹션을 참조하세요.
iSCSI LUN을 마운트하는 Linux 호스트는 Amazon Linux 2 Amazon Machine Image(AMI)를 실행하는 Amazon EC2 인스턴스입니다. Amazon VPC를 사용한 파일 시스템 액세스 제어에 설명된 대로 인바운드 및 아웃바운드 트래픽을 허용하도록 구성된 VPC 보안 그룹이 있습니다.
Linux 호스트와 FSx for ONTAP 파일 시스템은 동일한 VPC 및 AWS 계정에 있습니다. 호스트가 다른 VPC에 있는 경우 VPC 피어링을 사용하거나 다른 VPC에 볼륨의 iSCSI AWS Transit Gateway 엔드포인트에 대한 액세스 권한을 부여할 수 있습니다. 자세한 정보는 배포 VPC 외부에서 데이터 액세스을 참조하세요.
다른 Linux AMI를 실행하는 EC2 인스턴스를 사용하는 경우 호스트에 설치되는 유틸리티 중 일부가 사전 설치되어 있을 수 있으며 필요한 패키지를 설치하기 위해 다른 명령을 사용할 수 있습니다. 패키지 설치 외에도 이 섹션에 사용된 명령은 다른 EC2 Linux AMI에도 유효합니다.
다음 그림과 같이 EC2 인스턴스는 파일 시스템의 기본 서브넷과 동일한 가용 영역에 배치하는 것이 좋습니다.
![iSCSI LUN이 있는 Amazon FSx NetApp for ONTAP 파일 시스템과 파일 시스템의 기본 서브넷과 동일한 가용 영역에 있는 Amazon EC2 인스턴스를 보여주는 이미지입니다.](images/fsx-ontap-iscsi-mnt-client.png)
Linux 클라이언트에 iSCSI 설치 및 구성
iSCSI 클라이언트 설치
-
Linux 디바이스에
iscsi-initiator-utils
및device-mapper-multipath
가 설치되어 있는지 확인합니다. SSH 클라이언트를 사용하여 Linux 인스턴스에 연결합니다. 자세한 내용은 SSH를 사용하여 Linux 인스턴스에 연결을 참조하세요. 다음 명령을 사용하여
multipath
와 iSCSI 클라이언트를 설치하세요. 파일 서버 간에 자동으로 장애 조치하려면multipath
를 설치해야 합니다.~$
sudo yum install -y device-mapper-multipath iscsi-initiator-utils-
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 iSCSI 서비스를 시작합니다.
~$
sudo service iscsid start단, Linux 버전에 따라 다음 명령을 대신 사용해야 할 수도 있습니다.
~$
sudo systemctl start iscsid-
다음 명령을 사용하여 에이전트가 실행 중인지 확인합니다.
~$
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 클라이언트에 iSCSI 구성
-
클라이언트가 파일 서버 간에 자동으로 장애 조치할 수 있도록 하려면 다중 경로를 구성해야 합니다. 다음 명령을 사용합니다.
~$
sudo mpathconf --enable --with_multipathd y -
다음 명령을 사용하여 Linux 호스트의 이니시에이터 이름을 확인합니다. 이니시에이터 이름의 위치는 iSCSI 유틸리티에 따라 다릅니다.
iscsi-initiator-utils
를 사용하는 경우 이니시에이터 이름은/etc/iscsi/initiatorname.iscsi
파일에 있습니다.~$
sudo cat /etc/iscsi/initiatorname.iscsi시스템이 이니시에이터 이름으로 응답합니다.
InitiatorName=iqn.1994-05.com.redhat:abcdef12345
FSx for ONTAP 파일 시스템에 iSCSI 구성
-
NetApp 다음 명령을 사용하여 iSCSI LUN을 생성한 ONTAP용 FSx 파일 시스템의 ONTAP CLI에 연결합니다. 자세한 정보는 NetApp ONTAP CLI 사용을 참조하세요.
~$
ssh fsxadmin@your_management_endpoint_ip
-
NetApp ONTAP CLI 명령을 사용하여 이니시에이터 그룹 (
igroup
) 을 생성합니다. lun igroup create이니시에이터 그룹은 iSCSI LUN에 매핑되며 LUN에 액세스할 수 있는 이니시에이터(클라이언트)를 제어합니다. host_initiator_name
을 이전 절차에서 검색한 Linux 호스트의 이니시에이터 이름으로 바꿉니다.::>
lun igroup create -vserver
-igroupsvm_name
igroup_name
-initiatorhost_initiator_name
-protocol iscsi -ostype linux이 igroup에 매핑된 LUN을 여러 호스트에서 사용할 수 있도록 하려면 여러 이니시에이터 이름을 쉼표로 구분하여 지정할 수 있습니다. 자세한 내용은 ONTAP 설명서 센터의 lun igroup 생성을
참조하십시오. NetApp -
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 -
이 단계에서는 이미 iSCSI LUN을 생성한 것으로 가정합니다. 아직 설치하지 않은 경우 step-by-step 지침을 iSCSI LUN 생성 참조하십시오.
lun mapping create
명령을 사용해서 다음 속성을 지정하여 생성된 LUN과 생성된 igroup 사이의 매핑을 생성합니다. -
– iSCSI 대상을 제공하는 스토리지 가상 머신의 이름입니다. 호스트는 이 값을 사용하여 LUN에 도달합니다.svm_name
-
– LUN을 호스팅하는 볼륨의 이름입니다.vol_name
-
– LUN에 할당한 이름입니다.lun_name
-
– 이니시에이터 그룹의 이름입니다.igroup_name
-
– LUN ID 정수는 LUN 자체가 아니라 매핑에만 해당됩니다. 이는 igroup의 이니시에이터에 의해 사용되며, 이니시에이터가 스토리지에 액세스할 때 논리 유닛 번호로 사용됩니다.lun_id
::>
lun mapping create -vserversvm_name
-path /vol/vol_name
/lun_name
-igroupigroup_name
-lun-idlun_id
-
-
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 mappedserial_hex
값(이 예제에서는6c5742314e5d52766e796150
)을 저장하면, 이후 단계에서 이 값을 사용하여 블록 장치에 친숙한 이름을 만들 수 있습니다. -
network interface show -vserver
명령을 사용하여 iSCSI LUN을 생성한 SVM의 iscsi_1
및iscsi_2
인터페이스 주소를 검색합니다.::>
network interface show -vserversvm_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 클라이언트에 iSCSI LUN 마운트
Linux 클라이언트에서
iscsi_1
의 IP 주소인iscsi_1_IP
를 사용하여 대상 iSCSI 노드를 검색하려면 다음 명령을 사용합니다.~$
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
이 예제에서
iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3
은 기본 가용성 영역에 있는 iSCSI LUN의target_initiator
에 해당합니다.-
(선택 사항)
target_initiator
를 사용하여 추가 세션을 설정할 수 있습니다. Amazon EC2의 단일 흐름 트래픽의 대역폭 제한은 5GB/s(약 625Mb/s)이지만, 여러 세션을 생성하여 단일 클라이언트에서 파일 시스템에 더 높은 수준의 처리량을 제공할 수 있습니다. 자세한 내용은 Linux 인스턴스용 Amazon Elastic Compute Cloud 사용 설명서의 Amazon EC2 인스턴스 네트워크 대역폭을 참조하세요.다음 명령은 각 가용 영역에서 ONTAP 노드당 이니시에이터별로 8개의 세션을 설정하여 클라이언트가 iSCSI LUN에 최대 40Gb/s(5,000MB/s)의 총 처리량을 제공할 수 있도록 합니다.
~$
sudo iscsiadm --mode node -T
target_initiator
--op update -n node.session.nr_sessions -v 8 대상 이니시에이터에 로그인합니다. iSCSI LUN이 사용 가능한 디스크로 표시됩니다.
~$
sudo iscsiadm --mode node -T
target_initiator
--loginLogging 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개입니다.다음 명령을 사용하여
dm-multipath
가 여러 정책이 있는 단일 LUN을 표시하여 iSCSI 세션을 식별하고 병합했는지 확인합니다.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
/dev/mapper/
에 있는 심볼 링크를 사용합니다. 여기서wwid
는 디바이스 간에 일관된 LUN의 고유 식별자입니다. 다음 단계에서는 다른 다중 경로 디스크와 구별할 수 있도록wwid
에 친숙한 이름을 지정합니다.wwid
블록 디바이스에 친숙한 이름 지정
/etc/multipath.conf
파일에 별칭을 만들어 디바이스에 친숙한 이름을 지정합니다. 이렇게 하려면 선호하는 텍스트 편집기를 사용하여 다음 자리 표시자를 대체하여 파일에 다음 항목을 추가합니다.serial_hex
를 FSx for ONTAP 파일 시스템에 iSCSI 구성 절차에서 저장한 값으로 바꿉니다.예제에 표시된 대로
serial_hex
값에 접두사3600a0980
을 추가합니다. 이는 ONTAP용 Amazon FSx에서 사용하는 NetApp ONTAP 배포를 위한 고유한 프리앰블입니다. NetAppdevice_name
을 디바이스에 사용할 친숙한 이름으로 바꿉니다.
multipaths { multipath { wwid 3600a0980
serial_hex
aliasdevice_name
} }또는 다음 스크립트를 bash 파일(예:
multipath_alias.sh
)로 복사하여 저장할 수도 있습니다.
(3600a0980 접두사 없이) 및serial_hex
을 해당 일련 번호 및 원하는 친숙한 이름으로 바꾸어 sudo 권한을 사용하여 스크립트를 실행할 수 있습니다. 이 스크립트는device_name
/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
multipathd
서비스를 다시 시작하여/etc/multipathd.conf
의 변경 사항을 적용합니다.~$
systemctl restart multipathd.service
LUN 파티션
다음 단계는 fdisk
를 사용하여 LUN을 포맷하고 파티셔닝하는 것입니다.
-
다음 명령을 사용하여
device_name
에 대한 경로가 있는지 확인합니다.~$
ls /dev/mapper/
device_name
/dev/
device_name
fdisk
를 사용하여 디스크를 파티셔닝합니다. 대화형 프롬프트가 나타날 것입니다. 표시된 순서대로 옵션을 입력합니다.Last sector
값은 iSCSI LUN의 크기(이 예제에서는 10GB)에 따라 달라집니다. 마지막 섹터보다 작은 값(이 예제에서는20971519
)을 사용하여 여러 파티션을 만들 수 있습니다.~$
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
partition_name
의 형식은<device_name>
<partition_number>
입니다.1
은 이전 단계의fdisk
명령에 사용된 파티션 번호로 사용되었습니다.-
/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 마운트
-
directory_path
디렉터리를 파일 시스템의 마운트 지점으로 생성합니다.~$
sudo mkdir /
directory_path
/mount_point
-
다음 명령을 사용하여 파일 시스템을 마운트합니다.
~$
sudo mount -t ext4 /dev/mapper/
partition_name
/directory_path
/mount_point
-
(선택 사항) 마운트 디렉터리의 소유권을 사용자로 변경할 수 있습니다.
을 사용자 이름으로 바꿉니다.username
~$
sudo chown
username
:username
/directory_path
/mount_point
-
(선택 사항) 파일 시스템에서 데이터를 읽고 쓸 수 있는지 확인합니다.
~$
echo "Hello world!" > /
directory_path
/mount_point
/HelloWorld.txt~$
cat
directory_path
/HelloWorld.txtHello world!
Linux 클라이언트에 iSCSI LUN을 성공적으로 생성하고 마운트했습니다.