12.5. iSCSI 기반 스토리지 풀
이 섹션에서는 게스트 가상 머신을 저장하기 위해 iSCSI 기반 장치를 사용하는 방법을 설명합니다.
iSCSI(Internet Small Computer System Interface)는 스토리지 장치를 공유하는 네트워크 프로토콜입니다. iSCSI는 IP 계층에 대한 SCSI 지침을 사용하여 이니시에이터(스토리지 클라이언트)를 대상으로 지정합니다.
12.5.1. 소프트웨어 iSCSI 대상 구성
scsi-target-utils 패키지는 소프트웨어 지원 iSCSI 대상을 생성하는 툴을 제공합니다.
절차 12.4. iSCSI 대상 생성
필수 패키지 설치
scsi-target-utils 패키지 및 모든 종속 항목 설치# yum install scsi-target-utils
tgtd 서비스 시작
tgtd 서비스는 물리적 시스템 SCSI 대상을 호스팅하고 iSCSI 프로토콜을 사용하여 물리적 머신 대상을 호스팅합니다. tgtd 서비스를 시작하고 chkconfig 명령을 사용하여 다시 시작한 후 서비스를 영구적으로 만듭니다.# service tgtd start # chkconfig tgtd on
선택 사항: LVM 볼륨 생성
LVM 볼륨은 iSCSI 백업 이미지에 유용합니다. LVM 스냅샷과 크기 조정은 게스트 가상 머신에 유용할 수 있습니다. 이 예제에서는 iSCSI를 사용하여 게스트 가상 머신을 호스트하기 위해 RAID5 어레이의 virtstore 라는 새 볼륨 그룹에 virtimage1 이라는 LVM 이미지를 생성합니다.RAID 배열 생성
소프트웨어 RAID5 어레이 생성은 Red Hat Enterprise Linux 배포 가이드에서 다룹니다.LVM 볼륨 그룹 만들기
vgcreate 명령을 사용하여 virtstore 라는 볼륨 그룹을 만듭니다.# vgcreate virtstore /dev/md1
LVM 논리 볼륨 생성
lvcreate 명령을 사용하여 크기가 20GB인 virtstore 볼륨 그룹에 virtimage1 이라는 논리 볼륨 그룹을 생성합니다.# lvcreate --size 20G -n virtimage1 virtstore
새로운 논리 볼륨 virtimage1 은 iSCSI에 사용할 준비가 되었습니다.
선택 사항: 파일 기반 이미지 생성
파일 기반 스토리지는 테스트용으로 충분하지만 프로덕션 환경 또는 중요한 I/O 활동에는 권장되지 않습니다. 이 선택적 절차에서는 iSCSI 대상에 대해 virtimage2.img 라는 파일 기반 이미지를 생성합니다.이미지에 대한 새 디렉터리 만들기
이미지를 저장할 새 디렉터리를 만듭니다. 디렉터리에 올바른 SELinux 컨텍스트가 있어야 합니다.# mkdir -p /var/lib/tgtd/virtualization
이미지 파일 생성
크기가 10GB인 virtimage2.img 라는 이미지를 만듭니다.# dd if=/dev/zero of=/var/lib/tgtd/virtualization/virtimage2.img bs=1M seek=10000 count=0
SELinux 파일 컨텍스트 구성
새 이미지 및 디렉터리에 대해 올바른 SELinux 컨텍스트를 구성합니다.# restorecon -R /var/lib/tgtd
새로운 파일 기반 이미지인 virtimage2.img 는 iSCSI에 사용할 수 있습니다.
대상 생성
/etc/tgt/targets.conf
파일에 XML 항목을 추가하여 대상을 생성할 수 있습니다.target
속성에는 IQN(iSCSI Qualified Name)이 필요합니다. IQN의 형식은 다음과 같습니다.iqn.yyyy-mm.reversed domain name:optional identifier text
다음과 같습니다.- YYYY-mm 는 장치가 시작된 연도 및 월 (예: 2010-05)을 나타냅니다.
- 역방향 도메인 이름은 반대로 호스트 물리적 시스템 도메인 이름입니다(예: IQN의 server1.example.com 은 com.example.server1).
- 선택적 식별자 텍스트는 관리자가 장치 또는 하드웨어를 식별하는 데 도움이 되는 공백이 없는 텍스트 문자열입니다.
이 예제에서는 선택적 식별자 평가판 으로 server1.example.com 의 선택적 단계에서 생성된 두 가지 유형의 이미지에 대해 iSCSI 대상을 생성합니다. 다음을/etc/tgt/targets.conf
파일에 추가합니다.<target iqn.2010-05.com.example.server1:iscsirhel6guest> backing-store /dev/virtstore/virtimage1 #LUN 1 backing-store /var/lib/tgtd/virtualization/virtimage2.img #LUN 2 write-cache off </target>
드라이버 유형을 iSCSI로 설정하는기본-driver iscsi
줄이/etc/tgt/targets.conf
파일에 포함되어 있는지 확인합니다. 드라이버는 기본적으로 iSCSI를 사용합니다.중요이 예제에서는 액세스 제어 없이 전역에서 액세스할 수 있는 대상을 생성합니다. 보안 액세스 구현에 대한 정보는 scsi-target-utils를 참조하십시오.tgtd 서비스 다시 시작
tgtd
서비스를 다시 시작하여 구성 변경 사항을 다시 로드합니다.# service tgtd restart
iptables 구성
iptables 를 사용하여 iSCSI 액세스를 위해 포트 3260을 엽니다.# iptables -I INPUT -p tcp -m tcp --dport 3260 -j ACCEPT # service iptables save # service iptables restart
새 대상 확인
tgt-admin --show 명령을 사용하여 설정이 성공했는지 확인하려면 새 대상을 확인합니다.# tgt-admin --show Target 1: iqn.2010-05.com.example.server1:iscsirhel6guest System information: Driver: iscsi State: ready I_T nexus information: LUN information: LUN: 0 Type: controller SCSI ID: IET 00010000 SCSI SN: beaf10 Size: 0 MB Online: Yes Removable media: No Backing store type: rdwr Backing store path: None LUN: 1 Type: disk SCSI ID: IET 00010001 SCSI SN: beaf11 Size: 20000 MB Online: Yes Removable media: No Backing store type: rdwr Backing store path: /dev/virtstore/virtimage1 LUN: 2 Type: disk SCSI ID: IET 00010002 SCSI SN: beaf12 Size: 10000 MB Online: Yes Removable media: No Backing store type: rdwr Backing store path: /var/lib/tgtd/virtualization/virtimage2.img Account information: ACL information: ALL
주의ACL 목록은 all로 설정됩니다. 이렇게 하면 로컬 네트워크의 모든 시스템이 이 장치에 액세스할 수 있습니다. 프로덕션 환경에 대해 호스트 물리적 시스템 액세스 ACL을 설정하는 것이 좋습니다.선택 사항: 테스트 검색
새 iSCSI 장치를 검색할 수 있는지 테스트합니다.# iscsiadm --mode discovery --type sendtargets --portal server1.example.com 127.0.0.1:3260,1 iqn.2010-05.com.example.server1:iscsirhel6guest
선택 사항: 장치 연결 테스트
새 장치(iqn.2010-05.com.example.server1:iscsirhel6guest)를 연결하여 장치를 연결할 수 있는지 확인합니다.# iscsiadm -d2 -m node --login scsiadm: Max file limits 1024 1024 Logging in to [iface: default, target: iqn.2010-05.com.example.server1:iscsirhel6guest, portal: 10.0.0.1,3260] Login to [iface: default, target: iqn.2010-05.com.example.server1:iscsirhel6guest, portal: 10.0.0.1,3260] successful.
장치를 분리합니다.# iscsiadm -d2 -m node --logout scsiadm: Max file limits 1024 1024 Logging out of session [sid: 2, target: iqn.2010-05.com.example.server1:iscsirhel6guest, portal: 10.0.0.1,3260 Logout of [sid: 2, target: iqn.2010-05.com.example.server1:iscsirhel6guest, portal: 10.0.0.1,3260] successful.
이제 iSCSI 장치를 가상화에 사용할 준비가 되었습니다.