13.2.3.5. iSCSI 기반 스토리지 풀
권장 사항
사전 요구 사항
절차 13.5. iSCSI 대상 생성
RuntimeClass 패키지 설치
yum install targetcli
# yum install targetcliCopy to Clipboard Copied! Toggle word wrap Toggle overflow rootfs 명령 세트를 시작합니다.
targetcli
# targetcliCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 오브젝트 생성
스토리지 풀을 사용하여 스토리지 오브젝트 3개를 생성합니다.- 블록 스토리지 오브젝트 생성
/backstores/block디렉터리로 이동합니다.- create 명령을 실행합니다.
create [block-name][filepath]
# create [block-name][filepath]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.create block1 dev=/dev/sdb1
# create block1 dev=/dev/sdb1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- fileio 오브젝트 생성
/fileio디렉토리로 이동합니다.- create 명령을 실행합니다.
create [fileio-name][image-name] [image-size]
# create [fileio-name][image-name] [image-size]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.create fileio1 /foo.img 50M
# create fileio1 /foo.img 50MCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- ramdisk 오브젝트 생성
/ramdisk디렉터리로 이동합니다.- create 명령을 실행합니다.
create [ramdisk-name] [ramdisk-size]
# create [ramdisk-name] [ramdisk-size]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.create ramdisk1 1M
# create ramdisk1 1MCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- 이 단계에서 생성된 디스크의 이름을 기록해 둡니다. 나중에 사용하게 될 것입니다.
iSCSI 대상 만들기
/iscsi디렉터리로 이동합니다.- 다음 두 가지 방법 중 하나로 대상을 생성합니다.
- 매개 변수 없이 create 명령을 실행합니다.iSCSI 정규화된 이름 (IQN)이 자동으로 생성됩니다.
- IQN과 서버를 지정하는 create 명령을 실행합니다. 예를 들면 다음과 같습니다.
create iqn.2010-05.com.example.server1:iscsirhel7guest
# create iqn.2010-05.com.example.server1:iscsirhel7guestCopy to Clipboard Copied! Toggle word wrap Toggle overflow
포털 IP 주소 정의
iSCSI를 통해 블록 스토리지를 내보내려면 포털, LUN, 액세스 제어 목록 ACL을 먼저 구성해야 합니다.포털에는 대상이 모니터링하는 IP 주소 및 TCP와 연결할 이니시에이터가 포함됩니다. iSCSI는 포트 3260을 사용합니다. 이 포트는 기본적으로 구성됩니다.포트 3260에 연결하려면 다음을 수행합니다./tpg디렉토리로 이동합니다.- 다음을 실행합니다.
portals/ create
# portals/ createCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령을 수행하면 포트 3260에서 사용 가능한 모든 IP 주소를 수신 대기합니다.포트 3260을 수신할 단일 IP 주소만 사용하려면 명령 끝에 IP 주소를 추가합니다. 예를 들면 다음과 같습니다.portals/ create 143.22.16.33
# portals/ create 143.22.16.33Copy to Clipboard Copied! Toggle word wrap Toggle overflow
LUN을 구성하고 스토리지 오브젝트를 패브릭에 할당
이 단계에서는 스토리지 오브젝트를 생성할 때 생성된 스토리지 오브젝트 를 사용합니다.- 포털 IP 주소 정의 에서 생성된 TPG의
luns디렉토리로 이동합니다. 예를 들면 다음과 같습니다.iscsi>iqn.iqn.2010-05.com.example.server1:iscsirhel7guest
# iscsi>iqn.iqn.2010-05.com.example.server1:iscsirhel7guestCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 램디스크에 첫 번째 LUN을 할당합니다. 예를 들면 다음과 같습니다.
create /backstores/ramdisk/ramdisk1
# create /backstores/ramdisk/ramdisk1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 두 번째 LUN을 블록 디스크에 할당합니다. 예를 들면 다음과 같습니다.
create /backstores/block/block1
# create /backstores/block/block1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - fileio 디스크에 세 번째 LUN을 할당합니다. 예를 들면 다음과 같습니다.
create /backstores/fileio/fileio1
# create /backstores/fileio/fileio1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 결과 LUN을 나열합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
각 이니시에이터에 대한 ACL 생성
이니시에이터가 연결할 때 인증을 활성화합니다. 지정된 LUN을 사용하여 지정된 인티터를 지정할 수도 있습니다. 대상 및 이니시에이터에는 고유한 이름이 있습니다. iSCSI 이니시에이터는 IQN을 사용합니다.- 이니시에이터 이름을 사용하여 iSCSI 이니시에이터의 IQN을 찾습니다. 예를 들면 다음과 같습니다.
cat /etc/iscsi/initiator2.iscsi InitiatorName=create iqn.2010-05.com.example.server1:iscsirhel7guest
# cat /etc/iscsi/initiator2.iscsi InitiatorName=create iqn.2010-05.com.example.server1:iscsirhel7guestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 IQN은 ACL을 생성하는 데 사용됩니다. acls디렉터리로 이동합니다.- 다음 중 하나를 수행하여 ACL을 생성합니다.
- 매개 변수 없이 create 명령을 실행하여 모든 LUN 및 이니시에이터에 대해 ACLS를 생성합니다.
create
# createCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 특정 LUN 및 이니시에이터에 대한 ACL을 생성하고, iSCSI intiator의 IQN을 지정하는 create 명령을 실행합니다. 예를 들면 다음과 같습니다.
create iqn.2010-05.com.example.server1:888
# create iqn.2010-05.com.example.server1:888Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 모든 이니시에이터에 단일 사용자 ID와 암호를 사용하도록 커널 대상을 구성합니다.
set auth userid=user_ID set auth password=password set attribute authentication=1 set attribute generate_node_acls=1
# set auth userid=user_ID # set auth password=password # set attribute authentication=1 # set attribute generate_node_acls=1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이 절차를 완료한 후 스토리지 풀을 보호하십시오.설정을 저장합니다.
이전 부팅 설정을 덮어 쓰기하여 구성을 영구적으로 설정합니다.saveconfig
# saveconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스 활성화
다음 부팅 시 저장된 설정을 적용하려면 서비스를 활성화합니다.systemctl enable target.service
# systemctl enable target.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
선택적 절차
절차 13.6. RAID 배열의 논리 볼륨 구성
RAID5 어레이 생성
RAID5 어레이 생성에 대한 자세한 내용은 Red Hat Enterprise Linux 7 스토리지 관리 가이드 를 참조하십시오.RAID5 배열에 LVM 논리 볼륨 생성
RAID5 배열에 LVM 논리 볼륨 생성에 대한 자세한 내용은 Red Hat Enterprise Linux 7 Logical Volume Manager 관리 가이드 를 참조하십시오.
절차 13.7. 검색 기능 테스트
새 iSCSI 장치를 검색할 수 있는지 확인합니다.
iscsiadm --mode discovery --type sendtargets --portal server1.example.com
# iscsiadm --mode discovery --type sendtargets --portal server1.example.com 143.22.16.33:3260,1 iqn.2010-05.com.example.server1:iscsirhel7guestCopy to Clipboard Copied! Toggle word wrap Toggle overflow
절차 13.8. 장치 연결 테스트
새 iSCSI 장치 연결
새 장치(Waitn.2010-05.com.example.server1:iscsirhel7guest)를 연결하여 장치를 연결할 수 있는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 장치 분리
iscsiadm -d2 -m node --logout
# iscsiadm -d2 -m node --logout scsiadm: Max file limits 1024 1024 Logging out of session [sid: 2, target: iqn.2010-05.com.example.server1:iscsirhel7guest, portal: 143.22.16.33,3260 Logout of [sid: 2, target: iqn.2010-05.com.example.server1:iscsirhel7guest, portal: 143.22.16.33,3260] successful.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
절차 13.9. iSCSI 스토리지 풀에 libvirt 보안 사용
libvirt 보안 파일 만들기
challenge-handshake 인증 프로토콜(CHAP) 사용자 이름을 사용하여 libvirt 시크릿 파일을 만듭니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 보안 정의
virsh secret-define secret.xml
# virsh secret-define secret.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow UUID 확인
virsh secret-list
# virsh secret-list UUID Usage -------------------------------------------------------------------------------- 2d7891af-20be-4e5e-af83-190e8a922360 iscsi iscsirhel7secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow UID에 시크릿 할당
다음 명령을 사용하여 이전 단계의 출력에서 UUID에 시크릿을 할당합니다. 이렇게 하면 CHAP 사용자 이름과 암호가 libvirt 제어된 시크릿 목록에 있습니다.MYSECRET=`printf %s "password123" | base64` virsh secret-set-value 2d7891af-20be-4e5e-af83-190e8a922360 $MYSECRET
# MYSECRET=`printf %s "password123" | base64` # virsh secret-set-value 2d7891af-20be-4e5e-af83-190e8a922360 $MYSECRETCopy to Clipboard Copied! Toggle word wrap Toggle overflow 스토리지 풀에 인증 항목 추가
virsh edit 를 사용하여 스토리지 풀의 XML 파일에서<source>항목을 수정하고,인증 유형,사용자이름 및시크릿 사용량을 지정하여<auth>요소를 추가합니다.예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고<auth>하위 요소는 게스트 XML의<pool>및<disk>요소 내의 다른 위치에 있습니다.<pool>의 경우 인증은 일부 풀 소스(iSCSI 및 RBD)의 속성이므로 풀 소스를 찾을 위치를 설명하므로<source>요소 내에<auth>가 지정됩니다. 도메인의 하위 요소인<disk>의 경우 iSCSI 또는 RBD 디스크에 대한 인증은 디스크의 속성입니다.또한 디스크의<auth>하위 요소는 스토리지 풀과 다릅니다.<auth username='redhat'> <secret type='iscsi' usage='iscsirhel7secret'/> </auth>
<auth username='redhat'> <secret type='iscsi' usage='iscsirhel7secret'/> </auth>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항 활성화
이러한 변경 사항을 활성화하려면 스토리지 풀을 시작해야 합니다.- 스토리지 풀이 아직 시작되지 않은 경우 virsh로 스토리지 풀 생성 단계를 수행하여 스토리지 풀을 정의하고 시작합니다.
- 풀이 이미 시작된 경우 다음 명령을 입력하여 스토리지 풀을 중지하고 다시 시작합니다.
virsh pool-destroy iscsirhel7pool virsh pool-start iscsirhel7pool
# virsh pool-destroy iscsirhel7pool # virsh pool-start iscsirhel7poolCopy to Clipboard Copied! Toggle word wrap Toggle overflow
매개 변수
| 설명 | XML | pool-define-as | 가상 머신 관리자 |
|---|---|---|---|
| 스토리지 풀의 유형입니다. | <pool type='iscsi'> | [type] iscsi | iSCSI: iSCSI 대상 |
| 스토리지 풀의 이름 | <name>name</name> | [name] 이름 | 이름 |
| 호스트의 이름입니다. |
<source> | source-host hostname | 호스트 이름 |
| iSCSI IQN. |
device path="iSCSI_IQN" /> | source-dev iSCSI_IQN | 소스 IQN |
| 대상을 지정하는 경로입니다. 이는 스토리지 풀에 사용되는 경로입니다. |
<target> | target path_to_pool | 대상 경로 |
| (선택 사항) iSCSI 이니시에이터의 IQN입니다. ACL이 특정 이니시에이터로 LUN을 제한하는 경우에만 필요합니다. |
<initiator> | 아래 노트를 참조하십시오. | 이니시에이터 IQN |
예
virsh pool-define-as --name iSCSI_pool --type iscsi --source-host server1.example.com --source-dev iqn.2010-05.com.example.server1:iscsirhel7guest --target /dev/disk/by-path
# virsh pool-define-as --name iSCSI_pool --type iscsi --source-host server1.example.com --source-dev iqn.2010-05.com.example.server1:iscsirhel7guest --target /dev/disk/by-path
Pool iSCSI_pool defined
그림 13.8. 새 iSCSI 기반 스토리지 풀 예 추가