본문 바로가기

리눅스-기초명령어/공유디렉토리

iSCIS

iSCIS(Internet Small Computer System Interface)

 iSCSI(Internet Small Computer System Interface)는 IP 네트워크를 통해 SCSI 프로토콜을 전송하는 스토리지 프로토콜이다. 이는 스토리지를 네트워크에 연결하여 다른 컴퓨터에서 사용할 수 있도록 한다. iSCSI는 기존의 스토리지 시스템과 호환되며, 스토리지를 더욱 효율적으로 사용할 수 있다. iSCSI는 스토리지를 가상화하고, 스토리지를 더욱 쉽게 관리할 수 있도록 한다.



1. 서버PC 설정

  1. targetcli 설치
[root@rocky2 ~]# dnf install targetcli
...
Complete!
[root@rocky2 ~]# systemctl enable --now target
Created symlink /etc/systemd/system/multi-user.target.wants/target.service → /usr/lib/systemd/system/target.service.

 

  1. 실행
[root@rocky2 ~]# dnf install targetcli
...
Complete!
[root@rocky2 ~]# systemctl enable --now target
Created symlink /etc/systemd/system/multi-user.target.wants/target.service → /usr/lib/systemd/system/target.service.

 

  1. 공유할 디스크 지정
/> cd /backstores/block
/backstores/block> create dev=/dev/sdc1 name=back_block
Created block storage object back_block using /dev/sdc1.

 

  1. 주소지정 및 lun 생성
/backstores/block> cd /iscsi
/iscsi> create iqn.2023-05.net.example:backblock01
Created target iqn.2023-05.net.example:backblock01.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi> cd iqn.2023-05.net.example:backblock01/tpg1/luns
/iscsi/iqn.20...k01/tpg1/luns> create /backstores/block/back_block
Created LUN 0.

 

  1. 로그인 가능한 사용자 지정
/iscsi/iqn.20...k01/tpg1/luns> cd ..
/iscsi/iqn.20...kblock01/tpg1> cd acls
/iscsi/iqn.20...k01/tpg1/acls> create iqn.2023-05.net.example:init01
Created Node ACL for iqn.2023-05.net.example:init01
Created mapped LUN 0.

 

  1. 설정된 내용이 적용되었는지 확인 후 저장하고 종료
/iscsi/iqn.20...k01/tpg1/acls> cd /
/> ls
o- / ..................................................................... [...]
  o- backstores .......................................................... [...]
  | o- block .............................................. [Storage Objects: 1]
  | | o- back_block ................. [/dev/sdc1 (20.0GiB) write-thru activated]
  | |   o- alua ............................................... [ALUA Groups: 1]
  | |     o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
  | o- fileio ............................................. [Storage Objects: 0]
  | o- pscsi .............................................. [Storage Objects: 0]
  | o- ramdisk ............................................ [Storage Objects: 0]
  o- iscsi ........................................................ [Targets: 1]
  | o- iqn.2023-05.net.example:backblock01 ........................... [TPGs: 1]
  |   o- tpg1 ........................................... [no-gen-acls, no-auth]
  |     o- acls ...................................................... [ACLs: 1]
  |     | o- iqn.2023-05.net.example:init01 ................... [Mapped LUNs: 1]
  |     |   o- mapped_lun0 ........................ [lun0 block/back_block (rw)]
  |     o- luns ...................................................... [LUNs: 1]
  |     | o- lun0 ............ [block/back_block (/dev/sdc1) (default_tg_pt_gp)]
  |     o- portals ................................................ [Portals: 1]
  |       o- 0.0.0.0:3260 ................................................. [OK]
  o- loopback ..................................................... [Targets: 0]
/> saveconfig
Configuration saved to /etc/target/saveconfig.json
/> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup/.
Configuration saved to /etc/target/saveconfig.json

 

2. 클라이언트에서 접속

  1. 서버 pc의 ip로 서버를 찾을 수 있는지 검색
[root@rocky1 ~]# iscsiadm -m discovery -t st -p 192.168.20.49
iscsiadm: cannot make connection to 192.168.20.49: No route to host
# 해당 에러가 나올시 서버에서 firewalld 종료
[root@rocky1 ~]# iscsiadm -m discovery -t st -p 192.168.20.49
192.168.20.49:3260,1 iqn.2023-05.net.example:backblock01

 

  1. 서버에서 설정한 사용자명과 동일하게 initiator name 지정
[root@rocky1 dev]# vi /etc/iscsi/initiatorname.iscsi
# vi 편집창
InitiatorName=iqn.2023-05.net.example:init01
# 저장 후 종료
[root@rocky1 ~]# systemctl restart iscsid

 

  1. 서버pc에 접속 후 연결되었는지 확인
[root@rocky1 ~]# iscsiadm -m node -T iqn.2023-05.net.example:backblock01 -l  # 로그인
Logging in to [iface: default, target: iqn.2023-05.net.example:backblock01, portal: 192.168.20.49,3260]
Login to [iface: default, target: iqn.2023-05.net.example:backblock01, portal: 192.168.20.49,3260] successful.
[root@rocky1 ~]# lsscsi
[32:0:0:0]   disk    LIO-ORG  back_block         4.0   /dev/sda 

# 서버에서 지정했던 디렉토리가 동기화됨

 

  1. F공유된 디스크에 파티션 작업 후 마운트도 가능하다
[root@rocky1 ~]# mkfs.xfs /dev/sda1
meta-data=/dev/sda1              isize=512    agcount=4, agsize=1310590 blks
        =                       sectsz=512   attr=2, projid32bit=1
        =                       crc=1        finobt=1, sparse=1, rmapbt=0
        =                       reflink=1    bigtime=1 inobtcount=1
data     =                       bsize=4096   blocks=5242359, imaxpct=25
        =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
        =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@rocky1 ~]# mount /dev/sda1 /mnt/block/
[root@rocky1 ~]# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda           8:0    0   20G  0 disk
└─sda1        8:1    0   20G  0 part /mnt/block 

 

서버 pc에서 로그아웃

[root@rocky1 block]# iscsiadm -m node -T iqn.2023-05.net.example:backblock01 -u # -l은 로그인, -u는 로그아웃 옵션
Logging out of session [sid: 2, target: iqn.2023-05.net.example:backblock01, portal: 192.168.20.49,3260]
Logout of [sid: 2, target: iqn.2023-05.net.example:backblock01, portal: 192.168.20.49,3260] successful.

 

 

번외

재부팅 하지않고 scsi 인식하기

[root@localhost ~]# echo "- - -" > /sys/devices/pci0000\:00/0000\:00\:11.0/0000\:02\:04.0/host32/scsi_host/host32/scan

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda               8:0    0    20G  0 disk
└─sda1            8:1    0    20G  0 part
sdb               8:16   0    20G  0 disk
└─sdb1            8:17   0    20G  0 part
  ├─vg00-lv00   253:3    0     2G  0 lvm  /mnt/xfs
  ├─vg00-lv01   253:4    0     1G  0 lvm  /mnt/ext4
  └─vg00-lv02   253:5    0   3.7G  0 lvm 
sr0              11:0    1   8.6G  0 rom  /run/media/root/AlmaLinux-9-2-x86_64-dvd
                        .
                        .
[root@localhost ~]# echo "- - -" > /sys/devices/pci0000\:00/0000\:00\:11.0/0000\:02\:04.0/host32/scsi_host/host32/scan
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda               8:0    0    20G  0 disk
└─sda1            8:1    0    20G  0 part
sdb               8:16   0    20G  0 disk
└─sdb1            8:17   0    20G  0 part
  ├─vg00-lv00   253:3    0     2G  0 lvm  /mnt/xfs
  ├─vg00-lv01   253:4    0     1G  0 lvm  /mnt/ext4
  └─vg00-lv02   253:5    0   3.7G  0 lvm 
sdc               8:32   0     5G  0 disk
sdd               8:48   0     5G  0 disk
sr0              11:0    1   8.6G  0 rom  /run/media/root/AlmaLinux-9-2-x86_64-dvd

 

'리눅스-기초명령어 > 공유디렉토리' 카테고리의 다른 글

SAMBA  (0) 2023.09.01
NFS  (0) 2023.09.01