iSCSI adalah singkatan dari Internet Small Computer Systems Interface yang merupakan penyimpanan berbasis Internet prokokol sebagai penghubung antara storage server dan server. iSCSI dulunya hanya bisa digunakan di SAN(Storage Area Network) dengan harga perangkat yang mahal, namun sekarang kita bisa menggunakannya di Linux/WIndows Server ataupun di server NAS dengan cost yang lebih murah.
Perbedaan iSCSI dengan Sharing storage seperti NFS/Samba adalah dengan iSCSI kita bisa sharing storage block atau disk fisik kita seolah-olah menjadi disk fisik di client, sedangkan NFS/Samba hanya bisa sharing direktori saja. Jadi dengan iSCSI, client bisa melakukan format dan partisi pada disk sharing kita.
Hal yang diperlukan untuk membuat sebuah iSCSI adalah
- iSCSI Target berupa server yang berfungsi sebagai storage server, di Linux kita bisa menggunakan software seperti targetcli atau tgt
- iSCSI Initiator berupa server yang berfungsi sebagai client storage, di Linux kita bisa menggunakan software open-iscsci
Setup Topologi

IP node1: 172.16.10.5
IP node2: 172.16.10.6
Kali ini saya menggunakan debian di kedua server, dan menambahkan disk sebesar 20GB di node1
Storage di node1

Konfigurasi Hostname di kedua nodes
node1

#Ubah hostname menjadi node1
hostnamectl set-hostname node1
#Konfigurasi FQDN di node1 (dengan format hostnameserver.namadomain)untuk kedua node
echo "172.16.10.5 node1 node1.sysidn.id" >> /etc/hosts
echo "172.16.10.6 node2 node2.sysidn.id" >> /etc/hosts
node2

#Ubah hostname menjadi node2
hostnamectl set-hostname node2
#Konfigurasi FQDN di node2 (dengan format hostnameserver.namadomain)untuk kedua node
echo "172.16.10.6 node2 node2.sysidn.id" >> /etc/hosts
echo "172.16.10.5 node1 node1.sysidn.id" >> /etc/hosts
Instalasi & Konfigurasi TGT di node1
apt install tgt -y
Buat file baru berisi nama target dan initiator
vim /etc/tgt/conf.d/target1.conf
.....
<target iqn.2022-07.id.sysidn:node1-target1>
backing-store /dev/sdb
initiator-name iqn.2022-07.id.sysidn:node2.initiator1
incominguser client 1234
</target>
.....
Penjelasan konfigurasi:
Format penamaan target iqn.tahun-bulan.reversedomain:hostname-namatarget
Contoh seperti diatas, nama domainnya yaitu sysidn.id dijadikan reverse domain berarti dibalik menjadi id.sysidn
iqn.2022-07.id.sysidn.id:node1-target1
backing-store /dev/sdb | yaitu storage block yang mau kita share |
initiator-name iqn.2022-07.id.sysidn:node2.initiator1 | nama iqn di client |
incominguser client 1234 | autentikasi dengan user client dan password 1234 |
Restart layanan TGT
systemctl restart tgt
Lihat status target
tgtadm --mode target --op show
Target 1: iqn.2022-07.id.sysidn:node1-target1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 21475 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: rdwr
Backing store path: /dev/sdb
Backing store flags:
Account information:
client
ACL information:
ALL
iqn.2022-07.id.sysidn:node2.initiator1
Konfigurasi iSCSI Initiator di node2
Install open-iscsi
apt -y install open-iscsi
Ubah nama iqn initiator
vim /etc/iscsi/initiatorname.iscsi
.....
#Samakan dengan yang kita konfigurasi di TGT
InitiatorName=iqn.2022-07.id.sysidn:node2.initiator1
.....
Konfigurasi user untuk autentikasi
vim /etc/iscsi/iscsid.conf
.....
#Uncomment baris 58
node.session.auth.authmethod = CHAP
node.session.auth.username = client
node.session.auth.password = 1234
.....
Restart layanan open-iscsi
systemctl restart iscsid open-iscsi
Deteksi iSCSI dari server
iscsiadm -m discovery -t sendtargets -p 172.16.10.5
Konfirmasi apakah target sudah terdeteksi
iscsiadm -m node -o show
# BEGIN RECORD 2.1.3
node.name = iqn.2022-07.id.sysidn:node1-target1
node.tpgt = 1
..........
# END RECORD
Selanjutnya login ke target
iscsiadm -m node --login
Logging in to [iface: default, target: iqn.2022-07.id.sysidn:node1-target1, portal: 172.16.10.129,3260]
Login to [iface: default, target: iqn.2022-07.id.sysidn:node1-target1, portal: 172.16.10.129,3260] successful.

Konfirmasi bahwa sudah terkoneksi ke target
iscsiadm -m session -o show
tcp: [1] 172.16.10.129:3260,1 iqn.2022-07.id.sysidn:node1-target1 (non-flash)
Konfirmasi disk dari server
cat /proc/partitions

Terlihat diatas bahwa storage dari server sudah ada di klien
Buat partisi di disk
cfdisk /dev/sdb
Contoh membuat 1 partisi dengan format ext4 dan di mount ke direktori /mnt/disk1
