iSCSI에 대한 일반적인 내용은 iSCSI문서의 내용을 참고한다.
iSCSI는 기기간 표준 연결 인터페이스인 SCSI를 인터넷으로 확장시킨 것이므로, 운영체제간 동작방식에 있어서 차이는 없다고 할 수 있다. 다만 nexenta의 경우 한 두단계 정도의 추상화 툴을 제공하고 있다. 이 추상화 단계를 알고 사용하면 편한데, 기존 iSCSI 관리방식으로만 접근하면 오히려 혼란스러울 수도 있다.
이 문서는 nexenta를 이용한 iSCSI 관리 정보를 담고 있다.
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을 만들 수 있을 것이다.
Target Group : Target들을 논리적으로 묶어서 관리한다.
Initiator Group : Initiator를 논리적으로 묶어서 관리한다. Initiator Group와 Target Group는 논리디스크 LUN을 매개로 서로 맵핑된다.
LUN : iSCSI로 서비스할 논리 디스크다. zvol이 하나의 LUN이 된다. 따라서 LUN을 만들기 전에 zol을 먼저 만들어 둬야 한다.
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은 다음과 같다.
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로 선택했다.
타겟 목록을 확인했다.
Contents
iSCSI
테스트 환경
iSCSI 관리 구조
테스트
Volume 생성
zvol 생성
Target Portal Groups 생성
Target 만들기
Initiators 등록
Initiator groups 등록
LUN 맵핑
iSCSI 사용 테스트
Recent Posts
Archive Posts
Tags