Target 서버의 2개 파일을 iSCSI 블럭디바이스로 지정을하고 iSCSI 클라이언트에 제공,

파일 중 하나는 원격지 서버의 파일을 ssh fuse 마운트를 통해 사용되었다.

< 구 성 도 >

- iSCSI Target Server OS : CentOS 6.10

- Soda Server OS : CentOS 4.7

 

1. iscsi 서버 데몬, fuse-sshfs 설치 및 시작

[root@TargetServer ~]# yum install -y scsi-target-utils fuse-sshfs
[root@TargetServer ~]# chkconfig tgtd on
[root@TargetServer ~]# service tgtd start
SCSI target daemon (을)를 시작 중:                         [  OK  ]

 

2. TargerServer 자체 디스크에 파일 생성

[root@TargetServer ~]# dd if=/dev/zero of=/data1/iscsi/disk1.img bs=1k seek=1500M count=1

[root@TargetServer ~]# ls -lah /data1/iscsi/
합계 1.3T
drwxrwx--- 2 mapoo7 mapoo 4.0K 2020-02-08 10:30 .
drwxr-xr-x 8 root   root  4.0K 2020-02-08 12:09 ..
-rw-r--r-- 1 root   root  1.4T 2020-02-09 20:16 disk1.img

-> 위와 같이 dd 실행 시 1.5TB 용량에 대해 Assign만 한다. 따라서 곧 바로 파일이 생성 됨.

[root@TargetServer ~]# dd if=/dev/zero of=/data1/iscsi/disk1.img bs=10M count=140000

-> 만약 Assign된 파일에 zero를 채워 놓고 싶으면 위와 같이 dd 실행. 대신 Assign 된 크기에 비례하여 오랜 시간이 걸린다.

 

3. 외부 서버(SodaServer)의 디스크에 파일 생성

[root@SodaServer ~]# dd if=/dev/zero of=/data0/storj/disk1.img bs=1k seek=210M count=1
[root@SodaServer ~]# ls -lah /data0/stor/
합계 1.7G
drwxr-xr-x  2 root root 4.0K  4월 23  2018 .
drwxr-xr-x  7 root root 4.0K  2월  3 00:00 ..
-rw-r--r--  1 root root 211G  9월 18  2018 disk1.img

-> 211G 사이즈의 파일 생성

-> iscsi target 서버가 접근할 수 있도록 이 서버에서는 ssh 포트가 개방되어 있어야 한다.

 

4. TargetServer에서 soda 서버의 특정 디렉토리에 마운트

[root@TargetServer ~]# mkdir -p /fuse-stor/soda01
[root@TargetServer ~]# echo 'PASSWORD' | sshfs -p 2288 root@soda.example.com:/data0/storj /fuse-stor/soda01 -o password_stdin

-> soda server에 ssh 2288 포트로 접속, 마운트

-> 부팅 시 마운트 될 수 있도록 위 마운트 구문(2번째 라인)을 TargetServer의 rc.local에 추가해 둔다.

- 마운트 후 파일 확인

[root@TargetServer ~]# ls -lah /fuse-stor/soda01/
합계 211G
drwxr-xr-x 1 root root 4.0K 2018-04-23 20:20 .
drwxr-xr-x 5 root root 4.0K 2018-04-23 20:09 ..
-rw-r--r-- 1 root root 211G 2018-09-18 07:17 disk1.img

 

5. TargetServer에서 iSCSI target 설정

[root@TargetServer ~]# vim /etc/tgt/targets.conf

아래와 같이 각각의 파일에 대해 iscsi로 연결한 저장장치 설정.
여기서는 접근 가능한 ip-address를 각각 적용함.

<target iqn.2020-02.share.srv:target01>
     # provided devicce as a iSCSI target
     backing-store /data1/iscsi/disk1.img
     # iSCSI Initiator's IP address you allow to connect
     initiator-address 192.168.0.159
     # authentication info ( set anyone you like for "username", "password" )
     #incominguser username password
 </target>

<target iqn.2020-02.share.srv:target02>
     # provided devicce as a iSCSI target
     backing-store /fuse-stor/soda01/disk1.img
     # iSCSI Initiator's IP address you allow to connect
     initiator-address 192.168.1.175
     # authentication info ( set anyone you like for "username", "password" )
     #incominguser username password
</target>

- target 반영을 위해 tgtd 데몬 reload

# service tgtd reload
Updating SCSI target daemon configuration:                 [  OK  ]

 

6. iSCSI 클라이언트에서 사용

이제 위 2개의 iscsi Target Disk를 iscsi 클라이언트(target.conf에서 지정한 ip를 가진 client - Windows, Mac, Linux, Unix 등)에서

iscsi를 연결 후 보이는 블럭디바이스에 대해 파일시스템을 생성(포맷) 후 iscsi 디스크를 사용하면된다.

File based iscsi server on the Linux

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다