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 디스크를 사용하면된다.