Episode ini membahas iSCSI untuk block storage: konsep target dan initiator, LUN, autentikasi CHAP, dan zvol sebagai backing store. Kalian juga belajar use case nyata untuk datastore VMware dan Hyper-V, PersistentVolume Kubernetes berbasis iSCSI, serta backup block-level.

File sharing dengan SMB dan NFS sudah kalian kuasai. Ada satu cara akses lagi yang lebih fundamental: block storage lewat iSCSI. Episode 11 ini membahas iSCSI — protokol yang mengirimkan akses blok disk mentah melalui jaringan TCP/IP — dan perannya sebagai jembatan antara NAS dan kebutuhan storage kelas SAN.
Alih-alih berbagi file, iSCSI menyajikan LUN yang tampak di client sebagai disk lokal yang bisa dipartisi, diformat, dan dipakai untuk workload berat seperti database atau disk virtual. Inilah kenapa iSCSI banyak dipakai untuk datastore VMware, Hyper-V, dan Kubernetes.
Di akhir episode ini kalian akan bisa membuat target iSCSI dengan zvol sebagai backing store, mengonfigurasi initiator client, mengamankan koneksi dengan CHAP, dan memilih use case yang tepat untuk iSCSI.
iSCSI memiliki dua peran utama: target adalah penyedia storage (NAS kalian), sedangkan initiator adalah konsumen yang memakai storage tersebut (server, hypervisor, atau workstation). Koneksi dibangun dari initiator ke target menggunakan alamat IP dan port TCP 3260.
which targetcli
systemctl status iscsidPerintah targetcli adalah tool konfigurasi target di Linux, sedangkan systemctl status iscsid memeriksa layanan initiator di client. Keduanya harus tersedia di masing-masing sisi.
Setiap target memiliki nama IQN (iSCSI Qualified Name) yang unik, contohnya iqn.2026-08.lab.local:nas-tank. IQN inilah yang dipakai client untuk menemukan dan menghubungi target di jaringan.
iqn.2026-08.lab.local:nas-tankLUN (Logical Unit Number) adalah unit logis di dalam target yang dipresentasikan ke initiator. Satu target bisa memiliki banyak LUN. Di TrueNAS SCALE, iSCSI dikonfigurasi lewat menu Shares > Block Shares; di OpenMediaVault lewat plugin iSCSI.
Backing store yang paling baik untuk iSCSI adalah zvol yang sudah kalian buat di episode 6. ZFS memberikan snapshot dan checksum di bawah LUN, sehingga data block ikut terlindungi.
zfs create -V 500g -o sync=always tank/zvol-db1Perintah zfs create -V 500g -o sync=always tank/zvol-db1 membuat zvol 500 gigabyte dengan sinkronisasi wajib. Opsi sync=always penting untuk workload database agar write tidak dianggap sukses sebelum benar-benar tersimpan.
Setelah zvol ada, LUN ditambahkan ke target. Melalui targetcli, urutannya adalah membuat backstore dari zvol, menambahkannya sebagai LUN, lalu membuat ACL untuk initiator.
targetcli
cd /backstores/block
create block1 /dev/zvol/tank/zvol-db1
cd /iscsi
create iqn.2026-08.lab.local:nas-dbPerintah targetcli membuka shell interaktif konfigurasi target. Setelah backstore block1 dibuat dari zvol, target dan LUN bisa dihubungkan.
Tanpa autentikasi, siapa pun di jaringan bisa mengakses target. CHAP (Challenge-Handshake Authentication Protocol) memverifikasi identitas initiator dengan username dan secret bersama. Ini wajib diaktifkan untuk lingkungan yang tidak sepenuhnya terisolasi.
IncomingUsername: nas-init
IncomingUser: nas-init
Password: rahasia-kuat-2026Di TrueNAS SCALE, kredensial CHAP diatur di halaman Shares > Block Shares > iSCSI. Gunakan password panjang dan simpan di password manager, karena akan diminta di sisi initiator.
Di sisi client, opsi CHAP diberikan saat login ke target:
iscsiadm -m discovery -t sendtargets -p 192.168.1.100
iscsiadm -m node -T iqn.2026-08.lab.local:nas-db \
-p 192.168.1.100 --op update -n node.session.auth.authmethod -v CHAPPerintah iscsiadm pertama menemukan target, lalu yang kedua mengaktifkan CHAP untuk sesi. Detail kredensial dilengkapi di file konfigurasi node atau lewat flag auth yang sesuai.
VMware ESXi dan Hyper-V memakai iSCSI sebagai shared storage datastore. Setelah login iSCSI di hypervisor, disk block diformat sebagai datastore VMFS atau NTFS dan langsung bisa dipakai untuk menyimpan VM.
iscsiadm -m session
lsblkOutput iscsiadm -m session menampilkan target yang terhubung, dan lsblk menunjukkan disk iSCSI sebagai perangkat baru seperti sdb. Disk ini kemudian diformat dan dipakai hypervisor.
Kubernetes mendukung PV bertipe iSCSI untuk workload yang butuh block device. PV iSCSI diakses dengan mode ReadWriteOnce dan cocok untuk database stateful seperti PostgreSQL.
apiVersion: v1
kind: PersistentVolume
metadata:
name: iscsi-pv
spec:
capacity:
storage: 100Gi
accessModes:
- ReadWriteOnce
iscsi:
targetPortal: 192.168.1.100:3260
iqn: iqn.2026-08.lab.local:nas-db
lun: 0
fsType: ext4Manifest di atas mendaftarkan target iSCSI sebagai PV. Sifatnya block-level, sehingga lebih cocok untuk database dibanding NFS yang file-based.
Karena berbasis blok, iSCSI memungkinkan backup pada level LUN — misalnya snapshot zvol lalu mengirim snapshot ke lokasi lain. Ini membuka pola backup yang berbeda dari file-level rsync, dan akan dibahas lebih lanjut di episode 12.
Warning
Jangan pernah menyimpan dua workload yang saling berbagi satu LUN yang sama tanpa filesystem cluster. Sistem file biasa seperti ext4 tidak dirancang untuk dua penulis sekaligus. Untuk sharing block antar host, gunakan filesystem cluster atau shared-disk filesystem.
Di episode 11 ini kalian sudah menguasai iSCSI: memahami peran target dan initiator, membuat LUN dengan zvol sebagai backing store, mengamankan koneksi dengan CHAP, serta memakai iSCSI untuk datastore VMware, Hyper-V, Kubernetes PV, dan backup block-level.
Inti yang harus dibawa pulang:
Di episode 12 selanjutnya kita akan membahas snapshot, replication, dan backup — dari snapshot ZFS manual dan terjadwal, kebijakan retention, rollback, hingga replikasi dengan zfs send dan receive, rsync, dan TrueNAS Replication Tasks untuk backup offsite. Storage kalian sudah siap, sekarang saatnya memastikan data tidak pernah hilang.