iSCIS(Internet Small Computer System Interface)
iSCSI(Internet Small Computer System Interface)는 IP 네트워크를 통해 SCSI 프로토콜을 전송하는 스토리지 프로토콜이다. 이는 스토리지를 네트워크에 연결하여 다른 컴퓨터에서 사용할 수 있도록 한다. iSCSI는 기존의 스토리지 시스템과 호환되며, 스토리지를 더욱 효율적으로 사용할 수 있다. iSCSI는 스토리지를 가상화하고, 스토리지를 더욱 쉽게 관리할 수 있도록 한다.
1. 서버PC 설정
- 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. |
- 실행
[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. |
- 공유할 디스크 지정
/> cd /backstores/block /backstores/block> create dev=/dev/sdc1 name=back_block Created block storage object back_block using /dev/sdc1. |
- 주소지정 및 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. |
- 로그인 가능한 사용자 지정
/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. |
- 설정된 내용이 적용되었는지 확인 후 저장하고 종료
/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. 클라이언트에서 접속
- 서버 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 |
- 서버에서 설정한 사용자명과 동일하게 initiator name 지정
[root@rocky1 dev]# vi /etc/iscsi/initiatorname.iscsi # vi 편집창 InitiatorName=iqn.2023-05.net.example:init01 # 저장 후 종료 [root@rocky1 ~]# systemctl restart iscsid |
- 서버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 # 서버에서 지정했던 디렉토리가 동기화됨 |
- 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 |