16. 우분투/데비안 ISCSI Target 설치하기. - 기본

category 서버/리눅스 서버 2015.05.12 14:51

안녕하세요. 도정진입니다. 군 입대 관련으로 매우 오랜만에 글을 쓰네요.

   

이번에 관심을 가진 것은 ISCSI 타겟입니다. 정확히는 무엇인지는 모르나 서버 관점으로 보았을 때는 물리 디스크를 섹터 단위로 공유하는 것입니다. (섹터 단위로 공유하기 때문에 속도는 빠르지만 보안이 허술 할 경우 매우 치명적입니다.)

   

실제로 서버단에서 특정한 디스크나 파티션 혹은 .img 파일을 통해 여러 다수 컴퓨터에 마운트 해서 물리 디스크 처럼 사용이 가능하고 이걸 더 응용하면 PC방 처럼 노하드 부팅을 할 수 있습니다.

   

이번에 휴가를 3박4일 나왔습니다. 이번 기회를 통해 ISCSI (아이스카시) 타겟과 PXE 부팅을 이용한 노하드 부팅등을 정복해 보겠습니다. 더불어 블로그 디자인도 해야 겠네요 ㅎㅎ

   

일단 기본적으로는 단일 파일 .img 파일을 실제 하드디스크처럼 윈도우에 마운트하여 사용해보는 것입니다. 그럼 시작합니다.

   

   

   

1. 디스크로 사용할 파티션이나 단일 파일을 만들기

   

먼저 아이스카시를 사용하기 위해서 물리 디스크나 혹은 물리 디스크의 파티션이나 혹은 단일 파일로 구성된 가상 하드가 필요합니다.

   

  • 파티션을 사용할 경우

    이렇게 /dev/sXX 라는 이름을 가지고 있습니다. 딱히 포맷은 안해도 되지만 데이터를 0으로 초기화 시켜주거나 포맷을 해주시면 됩니다. 저는 단일 파일로 진행하였기 때문에 파티션으로는 작업한 사진이 없습니다. 포맷은 아래의 명령어를 사용해 주시면 됩니다.

mkfs.ext4 /dev/sXX

위 명령어를 통해서 디스크 전체나 파티션을 초기화 해 주시면 됩니다.

   

  • 단일 파일을 이용할 경우

    리눅스에서 스왑 공간을 .img 파일 안에 만드는 것과 같이 비슷한 방식으로 100GB 단일 파일을 만들어 보겠습니다. 이름은 test.hdd 입니다.

    그런데 아래와 같이 진행하게 되면 저장장치의 속도 만큼 단일 파일을 만드는데 시간이 오래 걸립니다.

       

    그래서 아래의 명령어를 이용해서 1초만에 만듭니다.

dd if=/dev/zero of=test.hdd bs=1M seek=102400 count=1

   

이렇게 물리 디스크로 사용할 파일이나 파티션을 만듭니다.

   

저는 이곳에 단일 파일로 만들어 두었습니다.

   

   

   

   

   

   

2. iscsitarget 서비스를 설치합니다.

   

우분투/리눅스상에서는 정말 쉽게 아이스카시 타겟 서비스가 설치됩니다.

   

apt-get install iscsitarget iscsitarget-dkms

   

   

apt-get 이 알아서 커널 모듈도 빌드해 줍니다. 실제로 테스트 환경은 NUC DN2820 입니다. 64비트 우분투 14.04 에서 테스트 되었습니다.

   

여타 ARM 제품에서 사용하려면 커널 모듈을 수동으로 빌드할 필요가 있을 수도 있습니다.

   

중간 로그에 보면

   

   

이런것이 있는데 위 파일을 열어 아래와 같이 수정합니다.

   

nano /etc/default/iscsitarget

   

이동하면 첫째줄에 false 라고 되어 있는것을 true 로 바꿔주고 CTRL + O 와 CTRL + X 를 통해서 저장하고 nano 에서 빠져 나옵니다.

   

   

그 다음 LUN 설정을 하기 위해서 아래의 명령어를 통해 설정파일을 열어줍니다.

   

nano /etc/iet/ietd.conf

   

맨 마지막줄에 작성하여 넣습니다.

   

   

Target djj9405:djj9405

Lun 0 Path=/usbhdd/img/test.hdd,Type=fileio

   

기본적으로 타겟 이름을 마음대로 설정할 수 있으며 기본적으로는 아래의 형식을 따릅니다.

iqn.yyyy-mm.<reversed domain name>[:identifier]

그러나 개인용도이기 때문에 알아보기 쉬운 이름으로 설정해 둡니다.

   

Lun 번호는 꼭 0 부터 시작하며 Path 에 파티션이나 단일 파일 경로를 적어주면 됩니다.

   

설정이 끝났으면 아이스카시 타겟 서비스를 재시작 해 줍니다.

   

service iscsitarget restart

   

   

   

   

   

3. 윈도우에서 연결해보기

   

윈도우에서는 제어판 - 관리도구 - ISCSI 초기자 메뉴를 통해서 연결이 가능합니다.

   

   

빠른 연결 부분에서 타겟 설정을 한 서버의 아이피를 넣습니다. (기본적인 설정만 진행하였음으로 바로 연결이 됩니다.)

   

   

연결됨이라고 뜹니다.

   

그런데 아직 내 컴퓨터에는 보이지 않습니다. 디스크를 포맷하지 않아서 그런것입니다.

   

제어판 - 관리도구 - 컴퓨터관리 - 디스크 관리 로 이동하여 보면

   

   

디스크X 번으로 디스크가 잡히고 MBR 이나 GPT 로 원하는 대로 초기화 해 준 후 파티션을 만드시고 쓰시면 됩니다.

   

   

그리고 혹여나 연결이 되었는데도 보이지 않으면 동작 - 디스크 다시 검사를 통해 해보시길 바랍니다.

   

   

이렇게 진행이 되고 포맷하고 파티션을 만들어주면 정상적으로 사용이 가능합니다.

   

   

아이스카시를 이용하면 로컬 디스크로 잡히기 때문에 여러 용도로 사용이 가능하고 속도는 아래 정도로 나옵니다. (기가비트 기준입니다.)

   

   

   

ISCSI Target 기본 설정을 해보았습니다.

   

감사합니다.


댓글을 달아 주세요

  1. 로니 2017.10.05 15:17

    리눅스 설정 하고 win10에서 iscsi 속성에 아이피 넣으면 초기자설정이 안돼있다고 나오네요 왜 그럴까요?

    • Favicon of https://blog.djjproject.com BlogIcon 도정진 ㅋㅋ잠자 신고">2017.10.05 15:20 신고

      초기자 서비스를 실행하셔야 정상적으로 작동합니다.

      관련은 제가 오래되어서 잘 모르겠습니다만,

      윈도우 7의 경우 초기자 설정이 되어 있지 않다고 나오면서 서비스를 실행하시겠습니까? 물어보면서 작동이 되었던 것으로 기억합니다.