Internet Small Computer System Interface (iSCSI) adalah standar berbasis IP untuk menghubungkan perangkat penyimpanan. iSCSI menggunakan jaringan IP untuk merangkum perintah SCSI, memungkinkan data untuk ditransfer jarak jauh. iSCSI menyediakan penyimpanan bersama di antara sejumlah sistem klien. Perangkat penyimpanan terpasang ke server (target). Sistem klien (pemrakarsa) mengakses perangkat penyimpanan jarak jauh melalui jaringan IP. Untuk sistem klien, perangkat penyimpanan tampaknya terpasang secara lokal. iSCSI menggunakan infrastruktur IP yang ada dan tidak memerlukan kabel tambahan, seperti halnya dengan jaringan area penyimpanan Fibre Channel (FC).
Mengonfigurasi Server iSCSI
RHEL/CentOS 7 menggunakan subsistem target kernel Linux-IO (LIO) untuk iSCSI. Selain iSCSI, LIO mendukung sejumlah struktur penyimpanan termasuk Fibre Channel over Ethernet (FCoE), akses iSCSI melalui jaringan Mellanox InfiniBand (iSER), dan akses SCSI melalui jaringan Mellanox InfiniBand (SRP). Di RHEL 7, semua kain penyimpanan dikelola dengan targetcli utilitas.
Untuk mengkonfigurasi sistem RHEL sebagai server iSCSI, mulailah dengan menginstal paket perangkat lunak targetcli:
# yum install targetcli
Menginstal paket perangkat lunak targetcli juga menginstal python-rtslib paket, yang menyediakan /usr/lib/systemd/system/target.service mengajukan. Sebelum menggunakan utilitas targetcli untuk membuat, menghapus, dan melihat target penyimpanan, gunakan perintah systemctl untuk mengaktifkan dan memulai layanan target di server iSCSI.
# systemctl enable target Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.
# systemctl start target
Utilitas targetcli
Utilitas targetcli adalah shell administrasi untuk membuat, mengedit, dan melihat konfigurasi subsistem target kernel. Jalankan targetcli untuk masuk ke shell konfigurasi.
# targetcli Warning: Could not load preferences file /root/.targetcli/prefs.bin. targetcli shell version 2.1.fb46 Copyright 2011-2013 by Datera, Inc and others. For help on commands, type 'help'. /> help
Jalankan bantuan perintah dari prompt targetcli untuk melihat perintah yang tersedia. Berikut adalah beberapa perintah targetcli yang tersedia:
- l :Melihat hierarki objek.
- cd :Melintasi hierarki objek.
- buat :Membuat objek penyimpanan, target, LUN, portal jaringan, daftar kontrol akses.
- keluar :Keluar dari shell targetcli dan secara otomatis menyimpan konfigurasi.
Anda juga dapat memasukkan “targetcli [command]”” untuk menjalankan perintah tanpa memasukkan shell.
Backstore
Backstore adalah berbagai jenis sumber daya penyimpanan lokal yang digunakan target kernel untuk "mendukung" perangkat SCSI yang diekspor ke sistem klien. Pemetaan ke sumber daya penyimpanan lokal yang dibuat oleh setiap backstore disebut objek penyimpanan. Gunakan targetcli ls perintah untuk membuat daftar berbagai jenis backstore.
# targetcli ls /backstores
Jenis-jenis backstore dijelaskan sebagai berikut:
- blokir :Linux memblokir perangkat seperti /dev/sda
- fileio :File apa pun pada sistem file yang terpasang seperti /tmp/disk1.img
- pscsi :Objek penyimpanan apa pun yang mendukung perintah SCSI pass-through
- ramdisk :Memori menyalin disk RAM
Untuk membuat blok backstore dari shell targetcli:
/> cd /backstores/block /backstores/block> create name=LUN_1 dev=/dev/xvdb
Untuk membuat fileio backstore dari shell targetcli:
/> cd /backstores/fileio /backstores/fileio> create name=LUN_3 /root/disk1.img 5G
Membuat Target iSCSI
Untuk membuat target iSCSI dari shell targetcli, gunakan perintah cd untuk mengubah ke direktori /iscsi.
/> cd /iscsi /iscsi>
Gunakan perintah buat tanpa argumen apa pun untuk membuat target iSCSI dengan menggunakan nama target default. Secara default, target diidentifikasi dengan “iqn ” pengenal. Ini adalah iSCSI Qualified Name (IQN) , yang secara unik mengidentifikasi target. Alamat format IQN paling sering digunakan untuk mengidentifikasi target. Alamat ini terdiri dari bidang-bidang berikut:
- Iqn harfiah
- Tanggal (dalam format yyyy-mm) saat otoritas penamaan mengambil alih kepemilikan domain
- Nama domain terbalik dari otoritas
- Opsional “:” yang mengawali nama target penyimpanan yang ditentukan oleh otoritas penamaan
/> cd /iscsi /iscsi> create Created target iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb. Created TPG 1. Global pref auto_add_default_portal=true Created default portal listening on all IPs (0.0.0.0), port 3260. /iscsi>
Untuk membuat daftar target yang dibuat, gunakan perintah di bawah ini.
# targetcli ls /iscsi
Untuk mengizinkan sistem jarak jauh mengakses target iSCSI pada port 3260, nonaktifkan layanan firewalld di server iSCSI atau konfigurasikan firewalld untuk mempercayai port 3260/tcp. Contoh berikut menggunakan firewall-cmd untuk membuka port 3260/tcp untuk layanan firewalld.
# firewall-cmd --permanent --add-port=3260/tcp
Jika Anda menyertakan –permanen opsi saat menambahkan port, gunakan perintah firewall-cmd untuk memuat ulang konfigurasi.
# firewall-cmd –reload
Membuat iSCSI LUNs
Target kernel mengekspor Unit Logika SCSI ke sistem jarak jauh. Gunakan shell targetcli untuk menautkan objek penyimpanan yang ditentukan sebelumnya dengan target, dan untuk menentukan Nomor Unit Logis (LUN) yang digunakan perangkat. Contoh berikut menggunakan perintah create untuk membuat dua LUN baru untuk target. Dari shell targetcli, mulailah dengan menggunakan perintah cd untuk mengubah ke direktori luns dalam hierarki [target/TGP].
/iscsi> cd /iscsi/iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb/ /iscsi/iqn.20....b0df6e328beb> cd tpg1/luns
Perintah berikut membuat LUN dari objek penyimpanan blok yang ditentukan sebelumnya.
/iscsi/iqn.20...beb/tpg1/luns> create /backstores/block/LUN_1 lun1 Created LUN 1.
Membuat ACL
Access Control Lists (ACL) membatasi akses ke LUN dari sistem jarak jauh. Anda dapat membuat ACL untuk setiap inisiator untuk menerapkan otentikasi saat inisiator terhubung ke target. Ini memungkinkan Anda untuk memberikan inisiator tertentu akses eksklusif ke target tertentu. Contoh berikut menggunakan perintah create untuk membuat ACL untuk inisiator. Dari shell targetcli, mulailah dengan menggunakan perintah cd untuk mengubah ke direktori acls dalam hierarki [target/TGP].
/> cd /iscsi/iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb/tpg1/acls /iscsi/iqn.20...beb/tpg1/acls> create iqn.1994-05.com.redhat:aabb51a64012 Created Node ACL for iqn.1994-05.com.redhat:aabb51a64012 Created mapped LUN 1.
Mengonfigurasi Inisiator iSCSI
Untuk mengonfigurasi sistem Linux sebagai inisiator iSCSI, instal iscsi-initiator-utils paket perangkat lunak. Paket ini adalah Inisiator Open-iSCSI Linux.
# yum install iscsi-initiator-utils
Paket menginstal beberapa file termasuk yang berikut:
- /etc/iscsi/iscsid.conf :File konfigurasi dibaca oleh iscsid dan iscsiadm. File ini banyak dikomentari dengan deskripsi untuk setiap arahan konfigurasi.
- /sbin/iscsid :Daemon Open-iSCSI yang mengimplementasikan jalur kontrol dan fasilitas manajemen
- /sbin/iscsiadm :Utilitas administrasi Open-iSCSI yang digunakan untuk menemukan dan masuk ke target iSCSI
Edit /etc/iscsi/initiatorname.iscsi file dan ganti parameter InitiatorName dengan nama inisiator yang sebelumnya Anda konfigurasikan sebagai ACL pada target. Ada nama inisiator iscsi default yang ditentukan dalam file ini. Jika Anda telah menggunakan nama yang sama saat mengkonfigurasi ACL maka Anda tidak perlu mengubah apa pun di sini.
# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.1994-05.com.redhat:aabb51a64012
Gunakan perintah systemctl untuk mengaktifkan dan memulai layanan iscsid.
# systemctl enable iscsid # systemctl start iscsidMemahami Utilitas iscsiadm di CentOS / RHEL
Penemuan iSCSI
Discovery adalah proses yang membuat target diketahui oleh inisiator. Contoh berikut menggunakan metode penemuan SendTargets untuk menemukan target pada alamat IP 192.168.12.13. Perintah ini juga memulai daemon iscsid jika diperlukan.
# iscsiadm -m discovery --type sendtargets –p 192.168.12.13
Setelah ditemukan, tabel node dan tabel send_targets dalam database diperbarui:
# ls /var/lib/iscsi/nodes iqn.2011-12.com.example.mypc:tgt1 iqn.2011-12.com.example.mypc:tgt2 iqn.2012-11.com.example.mypc:tgt3
# ls /var/lib/iscsi/send_targets 192.168.12.13,3260
Sesi Inisiator iSCSI
Sesi adalah koneksi TCP antara port node inisiator dan port node target. LUN tidak dapat diakses sampai sesi dibuat. Gunakan opsi -l (atau –login) untuk membuat sesi:
# iscsiadm -m node -l
Untuk masuk ke target tertentu:
# iscsiadm -m node --targetname iqn.2011-12.com.example.mypc:tgt1 –p 192.0.2.102:3260 –l
Gunakan opsi -u (atau –logout) untuk menutup sesi. Untuk melihat informasi sesi:
# iscsiadm -m session [-P [printlevel]]
Level pencetakan adalah 1, 2, dan 3. Masing-masing menampilkan lebih detail.