GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengatur Target Penyimpanan iSCSI Linux dan Akses Klien Jarak Jauh

iSCSI adalah singkatan dari Internet Small Computer System Interface.

Ini berfungsi pada lapisan TCP/IP dan memungkinkan perintah SCSI dikirim melalui jaringan area lokal (LAN).

Ini digunakan untuk mengakses penyimpanan di jaringan Anda melalui TCP/IP menggunakan transfer data tingkat blok.

Sering ada perbandingan antara NFS vs iSCSI. Perbedaan utama adalah NFS adalah implementasi tingkat file sedangkan iSCSI adalah implementasi tingkat blok.

Dalam implementasi tingkat blok seperti iSCSI dan Fibre Channel, larik penyimpanan menawarkan kumpulan blok ke klien, yang kemudian memformat penyimpanan mentah tersebut dengan sistem file apa pun yang diputuskan untuk digunakan.

Secara berurutan untuk mengakses penyimpanan melalui iscsi, kita perlu memiliki komponen berikut:

  1. iSCSI initiator (Hardware/Software) – Ini adalah klien iscsi yang dapat mengirim perintah iscsi melalui jaringan TCP/IP. Ini biasanya adaptor NIC Anda di server Anda dan dapat berupa fisik atau virtual dengan IP yang dikonfigurasi pada subnet yang sama dengan antarmuka iscsi array penyimpanan.
  2. Target iSCSI (Node penyimpanan Anda) – Ini adalah node penyimpanan Anda yang dapat Anda konfigurasikan sendiri atau dapat berupa larik fisik dari vendor yang mendukung konfigurasi iscsi
  3. Sakelar iSCSI (opsional) – Sakelar iscsi bersifat opsional di sini, tetapi untuk memisahkan lalu lintas host dari lalu lintas iscsi dalam penerapan perusahaan, disarankan untuk menggunakan sakelar terpisah untuk lalu lintas iscsi.

Dalam tutorial ini, kita akan melihat cara mengatur node penyimpanan kita sendiri yang mendukung konfigurasi iscsi dan mengakses penyimpanan dari klien iscsi pada mesin Centos 6.

Prosedur yang sama harus bekerja untuk versi RHEL 6 (CentOS 6). Untuk CentOS 7, prosedurnya sedikit berbeda menggunakan targetcli, yang akan kita bahas di artikel yang berbeda.

1. Instal Utilitas Target SCSI dan Mulai tgtd

Pertama, instal scsi-target-utils menggunakan perintah yum pada node penyimpanan, yang diperlukan untuk mengonfigurasi iSCSI.

yum install scsi-target-utils

Jika Anda belum menginstal Perl di sistem Anda, perintah di atas akan menginstal Perl dan beberapa dependensi lainnya (misalnya:sg3_utils) secara otomatis.

Ini akan menginstal perintah tgtadm seperti yang ditunjukkan di bawah ini.

# which tgtadm
/usr/sbin/tgtadm

Bintangi daemon target SCSI seperti yang ditunjukkan di bawah ini.

# service tgtd start
Starting SCSI target daemon: [ OK ]

Menggunakan perintah chkconfig, pastikan itu dimulai secara otomatis selama startup sistem.

chkconfig tgtd on

2. Tambahkan Target iSCSI Baru menggunakan tgtadm

Gunakan perintah tgtadm untuk menambahkan target iSCSI baru pada node penyimpanan menggunakan sintaks berikut:

tgtadm --lld --mode target --op new --tid --targetname

Contoh berikut membuat target dengan target id 1 dengan iqn di bawah ini,

tgtadm --lld iscsi --op new --mode target --tid 1 \
       -T iqn.2016-03.com.thegeekstuff:storage.lun01.thegeekstuff.com

Pada perintah di atas:

  • perintah tgtadm adalah Utilitas Administrasi Target SCSI Linux
  • –lld iscsi menentukan bahwa kita menggunakan driver iscsi (Anda juga dapat menggunakan -L sebagai ganti –lld)
  • –op new menentukan operasi, dalam hal ini, kami membuat target baru (Anda juga dapat menggunakan -o alih-alih –op)
  • –mode target menunjukkan bahwa kita sedang membuat target. Mode lain yang mungkin adalah:logicalunit, account, portal, conn, sys. (Anda juga dapat menggunakan -m sebagai ganti –mode)
  • –tid 1 menentukan id target, yaitu 1 dalam contoh ini (Anda juga dapat menggunakan -t sebagai ganti –tid)
  • -T menentukan nama target (Anda juga dapat menggunakan –targetname sebagai ganti -T)

3. Lihat konfigurasi Target iSCSI

Setelah target dibuat, Anda dapat melihat detailnya menggunakan operasi "tampilkan" seperti yang ditunjukkan di bawah ini. Ini akan memberikan informasi sistem, dan informasi LUN dari semua target yang tersedia di sistem Anda.

Seperti yang Anda lihat dari output berikut, kami hanya memiliki satu target (Target 1), yaitu driver iSCSI, dengan satu LUN (LUN 0).

# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2016-03.com.thegeekstuff:storage.lun01.thegeekstuff.com
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
Backing store type: null
Backing store path: None
Backing store flags:
Account information:
ACL information:

Catatan:Pada output di atas, “Jalur penyimpanan cadangan” saat ini adalah Tidak Ada, karena kami belum mengaitkan jalur penyimpanan fisik apa pun ke iSCSI ini.

4. Tambahkan LUN ke target iSCSI

Pada contoh berikut, kita akan menambahkan lun yang sudah ada, yaitu /storage/lun01 yang terpasang dan tersedia di node penyimpanan kita ke target iSCSI yang kita buat.

Untuk LUN yang ada (/storage/lun01), Anda juga harus mengatur konteks SELinux dengan tepat seperti yang ditunjukkan di bawah ini.

semanage fcontext -a -t tgtd_var_lib_t /storage/lun01

restorecon -Rv /storage/lun01

Jika Anda mendapatkan "Permintaan Tidak Valid", untuk tujuan pengujian sementara, Anda mungkin ingin menonaktifkan SELinux dengan menyetel SELinux ke mode permisif untuk melihat apakah itu menyelesaikan masalah, dan mempersempit masalah ke izin SELinux.

Sekarang, dengan menggunakan perintah tgtadm, tambahkan /storage/lun01 ke target iSCSI yang kita buat sebelumnya.

tgtadm --lld iscsi --op new --mode logicalunit --tid 1 \
       --lun 1 --backing-store /storage/lun01

Pada perintah di atas:

  • sebagian besar opsi sama seperti yang kami jelaskan di perintah tgtadm kami sebelumnya di atas.
  • –unit logika mode. Harap dicatat bahwa sebelumnya kami menggunakan "target" untuk mode, tetapi di sini kami menggunakan logicalunit untuk mode.
  • –lun menunjukkan id LUN, yaitu 1 dalam contoh ini (Anda juga dapat menggunakan -l sebagai ganti –lun)
  • –backing-store menunjukkan jalur penyimpanan fisik di server penyimpanan. Dalam contoh kita, ini adalah /storage/lun01 (Anda juga dapat menggunakan -b sebagai ganti opsi –backing-store)
  • –tid 1 menunjukkan bahwa menghubungkan LUN yang diberikan ini ke target id 1 yang ada, yang kita buat sebelumnya.

Sekarang, lihat kembali detail iSCSI di sistem Anda.

Namun, kali ini, Di LUN 1, “Jalur penyimpanan cadangan” pada output berikut akan menunjuk ke jalur penyimpanan yang kita kaitkan dengan iSCSI ini. Dalam contoh kita, ini adalah /storage/lun01.

# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2016-03.com.thegeekstuff:storage.lun01.thegeekstuff.com
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 5369 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: rdwr
Backing store path: /storage/lun01
Backing store flags:
Account information:
ACL information:

Untuk beberapa alasan, jika Anda melakukan kesalahan pada perintah di atas, dan ingin menghapus asosiasi LUN1 yang kita buat di atas, gunakan perintah berikut.

tgtadm --lld iscsi --mode logicalunit --op delete --tid 1 --lun 1

Pada perintah di atas:

  • Semuanya sama dengan perintah sebelumnya
  • Tapi, di sini -op (yang merupakan operasi) dihapus.
  • Ini akan menghapus lun1 dari iSCSI tid 1 (target 1)

5. Siapkan Pembatasan ACL untuk iSCSI

Selanjutnya, Anda perlu mengatur ACL untuk mengizinkan inisiator yang dapat mengakses target scsi ini.

tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL

Pada perintah di atas:

  • Sebagian besar opsi sangat mirip dengan perintah kita sebelumnya
  • -I ALL opsi menunjukkan bahwa kami mengizinkan target untuk menerima SEMUA inisiator (Anda juga dapat menggunakan –initiator-address alih-alih -I)

Saat Anda melihat detail iSCSI menggunakan operasi "tampilkan", Anda akan melihat informasi ACL menjelang akhir output seperti yang ditunjukkan di bawah ini.

# tgtadm --lld iscsi --op show --mode target
..
..
Backing store path: /storage/lun01
Backing store flags:
Account information:
ACL information:
ALL

Jika Anda ingin membatasi hanya klien yang perlu mengakses penyimpanan, Anda dapat menggunakan perintah berikut dan menentukan alamat ip tertentu.

tgtadm --lld iscsi --mode target --op bind --tid 1 192.168.2.109

Jika Anda ingin membatasi akses ke sub-jaringan tertentu, Anda dapat menentukan sub-jaringan alih-alih alamat ip seperti yang ditunjukkan di bawah ini.

tgtadm --lld iscsi --mode target --op bind --tid 1 192.168.2.0/24

6. Izinkan Akses ke Port 3260

Jika Anda menjalankan ip-tables, tambahkan aturan ip-tables dan izinkan port 3260 seperti yang ditunjukkan di bawah ini.

iptables -I INPUT -p tcp -m tcp --dport 3260 -j ACCEPT

Verifikasi bahwa port 3260 terbuka menggunakan perintah netstat seperti yang ditunjukkan di bawah ini.

# netstat -tunlp | grep 3260
tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 1248/tgtd
tcp 0 0 :::3260 :::* LISTEN 1248/tgtd

Catatan:Sampai saat ini, semua perintah di atas dijalankan pada node server penyimpanan. Mulai sekarang, semua perintah di bagian berikut akan dijalankan pada mesin klien, yang perlu terhubung ke server penyimpanan.

7. Pada Klien:Temukan iSCSI

Di klien, sebelum Anda menemukan iSCSI, Anda tidak akan melihat disk iSCSI baru. Misalnya, output berikut tidak akan menampilkan apa pun.

fdisk -l /dev/sdb

Sekarang semua konfigurasi sisi target selesai dan lun dapat diakses melalui iscsi dari klien. Prosedur di bawah ini akan menunjukkan cara mengonfigurasi sisi klien untuk mengakses penyimpanan.

Pada server klien, instal paket iscsi-initiator-utils seperti yang ditunjukkan di bawah ini.

yum install iscsi-initiator-utils

Selanjutnya, temukan target iSCSI menggunakan perintah iscsiadm seperti gambar di bawah ini.

[root@client ~]# iscsiadm --mode discovery --type sendtargets \
                --portal 192.168.2.166

Perintah di atas akan menampilkan output sebagai berikut:

192.168.2.166:3260,1 iqn.2016-03.com.thegeekstuff:storage.lun01.thegeekstuff.com

Pada perintah di atas:

  • perintah iscsiadm adalah utilitas administrasi open-iscsi
  • –mode find menunjukkan bahwa kami menemukan server iSCSI di sini. Mode lain yang mungkin adalah:discoverydb, node, fw, host iface atau session. (Anda juga dapat menggunakan -m sebagai ganti –mode)
  • –ketik target pengiriman khusus di sini. Nilai-nilai lain yang memungkinkan adalah:sendtargets, fw, dan iSNS. Anda juga dapat menggunakan singkatan st alih-alih target kirim. (Anda juga dapat menggunakan -t sebagai ganti –type)
  • –portal menentukan alamat ip dari node penyimpanan iSCSI yang kita atur sebelumnya (Anda juga dapat menggunakan -p sebagai ganti –portal).
  • Untuk ip-address, jika Anda menjalankan iSCSI pada port non-default (apa pun selain 3260), tentukan setelah ip-address. Misalnya, 192.168.2.166:3261

Catatan:Jika Anda mendapatkan kesalahan “Tidak ada rute ke host”, maka iptables pada target atau klien tidak dikonfigurasi dengan benar.

8. Pada Klien:Masuk ke Sesi Target iSCSI

Setelah proses penemuan selesai dengan sukses, Anda harus login ke sesi target iscsi dengan menggunakan perintah berikut:

[root@client ~]# iscsiadm --mode node --targetname iqn.2016-03.com.thegeekstuff:storage.lun01.thegeekstuff.com \
                          --portal 192.168.2.166 --login

Perintah di atas akan menampilkan output sebagai berikut:

Logging in to [iface: default, target: iqn.2016-03.com.thegeekstuff:storage.lun01.thegeekstuff.com, portal: 192.168.2.166,3260] (multiple)
Login to [iface: default, target: iqn.2016-03.com.thegeekstuff:storage.lun01.thegeekstuff.com, portal: 192.168.2.166,3260] successful.

Pada perintah di atas:

  • Sebagian besar opsi mirip dengan perintah sebelumnya.
  • Untuk mode, di sini kita menggunakan node (bukan discovery)
  • -targetname menentukan nama target. Ini adalah tragetname yang kami tentukan pada node penyimpanan sebelumnya ketika kami membuat iSCSI (Anda juga dapat menggunakan -T sebagai ganti –targetname)
  • –opsi login akan login ke semua target yang ditemukan. Dalam kasus kami, itu akan masuk ke server iSCSI penyimpanan kami yang ditentukan dalam opsi –portal.

Sekarang Anda akan melihat perangkat iscsi baru Anda pada output fdisk Anda. Anda dapat memformatnya, menambahkannya ke lvm dan menggunakannya sesuai kebutuhan.

Output perintah fdisk sekarang akan menampilkan perangkat.

[root@client ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 5368 MB, 5368709120 bytes
166 heads, 62 sectors/track, 1018 cylinders
Units = cylinders of 10292 * 512 = 5269504 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Catatan:Disk di atas tidak berasal dari mesin klien, ini berasal dari server penyimpanan sebagai iSCSI.


Linux
  1. Cara Setup NTP Server dan Client di Debian 9 Stretch Linux

  2. Cara Mengatur Server Penyimpanan iSCSI di Ubuntu 20.04 LTS

  3. Cara Mengakses Sistem File Linux di Windows 10 dan WSL 2

  1. Cara Menyinkronkan Direktori Lokal Dan Jarak Jauh Di Linux

  2. Cara Setup Server VNC (Linux Remote Desktop Access) di CentOS/RHEL dan Fedora

  3. Cara Setup dan Konfigurasi YPServ Linux NIS Server dan Client

  1. Cara Mengatur Server Penyimpanan iSCSI di Ubuntu 18.04 LTS

  2. Cara Mengatur Server dan Klien NFS di Rocky/Alma Linux 8

  3. Cara Menginstal dan Mengonfigurasi Klien SSH Putty di Desktop Linux