Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

Contents

  • 내일 이미지 업데이트 하고 마무리해야 겠다.

iSCSI

iSCSI에 대한 일반적인 내용은 iSCSI문서의 내용을 참고한다.

iSCSI는 기기간 표준 연결 인터페이스인 SCSI를 인터넷으로 확장시킨 것이므로, 운영체제간 동작방식에 있어서 차이는 없다고 할 수 있다. 다만 nexenta의 경우 한 두단계 정도의 추상화 툴을 제공하고 있다. 이 추상화 단계를 알고 사용하면 편한데, 기존 iSCSI 관리방식으로만 접근하면 오히려 혼란스러울 수도 있다.

이 문서는 nexenta를 이용한 iSCSI 관리 정보를 담고 있다.

테스트 환경

가상 환경에서 테스트 했다.
  1. 호스트 운영체제 : Ubuntu 리눅스 12.10
  2. 게스트 운영체제 : NexentaOS v3.1.3
  3. Hypervisor : Virtualbox 4.1.12
볼륨음 다음과 같이 설정했다.
  1. 4개의 SAS disk 추가
  2. 4개의 disk를 RAIDZ-I으로 묶었다.

iSCSI 관리 구조

Nexenta의 iSCSI 관리 구조는 다음과 같다.

  1. Portal Group : Portal Group는 iSCSI를 서비스하기 위해서 바인드 하는 애플리케이션 서버다. 하나 이상의 Portal group을 만들 수 있다. 예를 들어 NAS 서비스는 1번 NIC 으로 iSCSI 서비스는 2번 NIC으로 하려고 계획을 세웠다면, NIC 1과 NIC 2에 바인드 하는 2개의 Portal Group을 만들 수 있다. 혹은 VLAN을 이용해서 트래픽을 isolation하고 QoS를 하는 구조라면 각각의 VLAN interface에 바인드하는 Portal group을 만들 수 있을 것이다.
  2. Target Group : Target들을 논리적으로 묶어서 관리한다.
  3. Initiator Group : Initiator를 논리적으로 묶어서 관리한다. Initiator Group와 Target Group는 논리디스크 LUN을 매개로 서로 맵핑된다.
  4. LUN : iSCSI로 서비스할 논리 디스크다. zvol이 하나의 LUN이 된다. 따라서 LUN을 만들기 전에 zol을 먼저 만들어 둬야 한다.
  5. Mapping : LUN을 매개로 Target group와 Initiator group이 맵핑된다. Initiator group에 포함된 initiator는 맵핑된 Target group에 있는 target들 중 하나에 login할 수 있다. login하면 맵핑에 사용한 LUN들을 붙은걸 확인할 수 있다.

테스트

NMC로 테스트하기 귀찮아서 NMV로 테스트 했다.

Volume 생성

disk 4개를 RAIDZ-1으로 묶어서 하나의 볼륨(TestVolume)을 만들었다.

https://lh3.googleusercontent.com/-bTr6YTOHp0E/UH9jaxngj4I/AAAAAAAACgo/E9mFwvDsOvA/s640/nexenta01.png

생성 후 모습

https://lh4.googleusercontent.com/-7wQwHr5346o/UH9ja8CNWFI/AAAAAAAACgs/nT1IUiHuXy0/s640/nexenta02.png

zvol 생성

TestVolume에서 LUN으로 사용할 zvol을 2개 생성했다. zvol의 크기는 5G, 4G로 이름은 TestZvol01, TestZvol02로 했다. 메뉴위치는 Data Management > SCSI Target > Zvols > Create 이다.

https://lh4.googleusercontent.com/-5YKCj2_gyD8/UH9jbHBgvhI/AAAAAAAACgw/6w0t-o1rm9U/s640/nexenta03.png

Target Portal Groups 생성

iSCSI 서비스를 위한 Target Portal Groups를 만든다. Data Management > SCSI Target > iSCSI > Target Portal Groups를 클릭한다. 포탈그룹의 이름은 TestTG로 했다. Bind할 주소와 포트를 지정해야 한다. IP만 입력하면, iSCSI의 기본포트 3260으로 자동 설정된다.

https://lh3.googleusercontent.com/-f4Qi0cyL8JY/UH9jcIx3QtI/AAAAAAAACg4/LNpXnWMqyeg/s640/nexenta04.png

만들어진 포탈 그룹

https://lh5.googleusercontent.com/-DHWuBT506nU/UH9jcD9xSyI/AAAAAAAACg8/DjNT6NoBQgU/s640/nexenta05.png

Target 만들기

Target을 만든다. Data Management > SCSI Target > iSCSI > Target을 선택한다. Name을 입력하지 않으면 임의의 주소이름이 만들어진다. Target이 포함될 포탈 그룹 TestTG를 선택했다. 2개의 포탈을 만들었다.

https://lh5.googleusercontent.com/--TqJP3_yupY/UH9jdXacpVI/AAAAAAAAChQ/LnlQm_v_EKY/s640/nexenta07.png

만들어진 타겟 목록

https://lh5.googleusercontent.com/-d2rfcAqH9V0/UH9jcU_4cjI/AAAAAAAAChA/UN3ERXOWLiQ/s640/nexenta06.png

Initiators 등록

Data Management > SCSI Target > iSCSI > Remote Initiators에서 initiators를 등록한다. 호스트 리눅스를 initiator로 등록했다. 호스트 리눅스의 initiator name은 다음과 같다.
# cat /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.1993-08.org.debian:01:c2dabe559b1b
테스트를 위해서 2개의 initiators를 등록했다.

Initiator groups 등록

Data Management > SCSI Target > SCSI Target > Initiator groups에서 initiator group를 등록할 수 있다. 그룹이름은 TestInitG 로 했다.

https://lh3.googleusercontent.com/-zuHPMFaUfBY/UH9jduRtuKI/AAAAAAAAChU/Ke68TZqjcnY/s640/nexenta09.png

LUN 맵핑

Data Management > SCSI Target > SCSI Target > Mappings에서 LUN 맵핑을 할 수 있다. TestZvol01과 TestZvol02를 TestInitG와 TGT에 맵핑했다.

https://lh3.googleusercontent.com/-0c27Z-q8vrc/UH9jefziywI/AAAAAAAAChk/5pF0WZ9hts8/s640/nexenta10.png

iSCSI 사용 테스트

마지막으로 설정된 대로 iSCSI 디스크를 붙일 수 있는지 테스트를 했다. 호스트 리눅스를 Initiator node로 선택했다.

타겟 목록을 확인했다.
# iscsiadm --mode discovery --type sendtargets --portal 192.168.57.2
192.168.57.2:3260,2 iqn.1986-03.com.sun:02:2b29b254-5155-c99c-cdd3-9cfc1e6b7023
192.168.57.2:3260,2 iqn.1986-03.com.sun:02:68694638-d7cb-cfbb-c8c3-a2c1f90629c0

타겟에 로그인한다.
# iscsiadm --mode node --targetname iqn.1986-03.com.sun:02:2b29b254-5155-c99c-cdd3-9cfc1e6b7023 --portal 192.168.57.2 --login
Logging in to [iface: default, target: iqn.1986-03.com.sun:02:2b29b254-5155-c99c-cdd3-9cfc1e6b7023, portal: 192.168.57.2,3260]
Login to [iface: default, target: iqn.1986-03.com.sun:02:2b29b254-5155-c99c-cdd3-9cfc1e6b7023, portal: 192.168.57.2,3260]: successful

fdisk로 2개의 디스크가 붙은걸 확인했다.
# fdisk -l
....
....
Disk /dev/sdd: 5368 MB, 5368709120 bytes
166 heads, 62 sectors/track, 1018 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdd doesn't contain a valid partition table

Disk /dev/sde: 4294 MB, 4294967296 bytes
133 heads, 62 sectors/track, 1017 cylinders, total 8388608 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sde doesn't contain a valid partition table