Cara Membagikan Volume ZFS melalui iSCSI

Volume ZFS adalah perangkat penyimpanan blok yang berfungsi seperti perangkat penyimpanan lainnya (HDD/SSD). Anda dapat membuat tabel partisi, membuat partisi baru, memformat partisi ini, membuat sistem file, dan memasangnya di komputer Anda.

Anda juga dapat berbagi volume ZFS melalui protokol iSCSI dan mengaksesnya dari komputer jarak jauh.

Pada artikel ini, saya akan menunjukkan kepada Anda cara membagikan volume ZFS melalui iSCSI dan mengaksesnya dari komputer jarak jauh. Saya akan menggunakan sistem operasi Ubuntu 20.04 LTS untuk demonstrasi. Namun, langkah-langkah yang ditampilkan dalam artikel ini juga harus bekerja pada distribusi Linux lainnya dengan beberapa penyesuaian.

Mari kita mulai.

Daftar isi:

  1. Diagram jaringan
  2. Menginstal tgt di Server iSCSI
  3. Menginstal open-iscsi pada Client iSCSI
  4. Membuat Kumpulan ZFS
  5. Membuat Volume ZFS
  6. Membuat Target iSCSI
  7. Menambahkan Volume ZFS ke Target iSCSI
  8. Mengonfigurasi Otentikasi iSCSI (Opsional)
  9. Membuat Konfigurasi Server iSCSI
  10. Mengakses Volume ZFS Bersama melalui iSCSI
  11. Secara Otomatis Memasang Volume ZFS Bersama melalui iSCSI
  12. Kesimpulan
  13. Referensi

Diagram jaringan:

Pada artikel ini, saya akan menyiapkan dua komputer Ubuntu 20.04 LTS: iscsi-server and iscsi-client. Saya akan menginstal ZFS dan perangkat lunak server iSCSI di iscsi-server computer dan konfigurasikan untuk berbagi volume ZFS melalui iSCSI.

Saya akan menginstal iSCSI client software pada iscsi-client computer dan konfigurasikan untuk mengakses volume ZFS yang diekspor dari iscsi-server computer via iSCSI.

Seluruh pengaturan divisualisasikan pada gambar di bawah ini:

Menginstal tgt di Server iSCSI:

Di bagian ini, saya akan menunjukkan kepada Anda cara menginstal paket server iSCSI tgt di komputer server iscsi.

Pertama, perbarui cache repositori paket APT sebagai berikut:

$ sudo apt update

Kemudian, instal paket tgt di komputer server iscsi dengan perintah berikut:

$ sudo apt install tgt -y

Jika Anda belum menginstal ZFS di komputer server iscsi, Anda dapat menginstalnya dengan perintah berikut:

$ sudo apt install zfsutils-linux -y

Menginstal open-iscsi pada Client iSCSI:

Di bagian ini, saya akan menunjukkan kepada Anda cara menginstal iSCSI client package open-iscsi pada iscsi-client komputer.

Pertama, perbarui cache repositori paket APT dengan perintah berikut:

$ sudo apt update

Kemudian, instal open-iscsi package pada iscsi-client computer dengan perintah berikut:

$ sudo apt install open-iscsi -y

Membuat Kumpulan ZFS:

Untuk demonstrasi, saya akan membuat kolam ZFS, kolam1, di iscsi-server komputer menggunakan vdb and vdc storage perangkat:

$ sudo lsblk -e7 -d

Buat kumpulan ZFS, kumpulan1, menggunakan perangkat penyimpanan vdb dan vdc dalam konfigurasi cermin sebagai berikut:

$ sudo zpool create -f pool1 mirror vdb vdc

Kumpulan ZFS baru, kumpulan1, harus dibuat di komputer server iscsi.

$ sudo zfs list

Membuat Volume ZFS:

Di bagian ini, saya akan menunjukkan cara membuat ZFS volume vol1 dan vol2 di ZFS pool, pool1, sehingga Anda dapat mengekspornya melalui iSCSI.

Untuk membuat volume ZFS vol1 dengan ukuran 1 GB pada pool ZFS, pool1, jalankan perintah berikut:

$ sudo zfs create -V 1G pool1/vol1

Untuk membuat volume ZFS vol2 ukuran 2 GB pada pool ZFS, pool1, jalankan perintah berikut:

$ sudo zfs create -V 2G pool1/vol2

Volume ZFS vol1 dan vol2 harus dibuat di pool ZFS, pool1.

$ sudo zfs list

Membuat Target iSCSI:

Target iSCSI seperti wadah bernama. Anda dapat menempatkan satu atau lebih volume ZFS di sana. Saat Anda mengakses target dari komputer lain, semua volume ZFS yang telah Anda tempatkan di wadah itu akan dipasang.

Nama target iSCSI memiliki format standar:

iqn.<yyyy>-<mm>.<fqdn-reverse-format>:<unique-identifier>

Di Sini:

<yyyy> – Tahun dalam format 4 digit. yaitu 2021, 2018

<mm> – Bulan numerik dalam format 2 digit. Harus di kisaran 01-12. yaitu 01 (untuk Januari), 08 (untuk Agustus), 12 (Desember)

<fqdn-reverse-format> – Nama domain yang sepenuhnya memenuhi syarat dalam format terbalik. yaitu iscsi.linuxhint.com harus ditulis sebagaicom.linuxhint.iscsi.

<unique-identifier> – Ini bisa berupa apa saja yang unik dalam pengaturan Anda. Untuk pengaturan rumah dan kantor kecil, Anda dapat menggunakan nama kumpulan dan nama volume ZFS(i.e., pool1.vol1, pool1.vol2) atau nama departemen/cabang (i.e., engineering.pc1, account.pc2, engineering.us-1, account.uk-2) dari client yang akan menggunakan volume bersama ini. Itu harus cukup unik. Di perusahaan besar, Anda dapat menggunakan UUID unik untuk setiap target.

Di bagian ini, saya akan menunjukkan cara membuat two iSCSI targets: iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 dan iqn.2021-08.com.linuxhint.iscsi:pool1.vol2. Di bagian selanjutnya, saya akan menunjukkan cara menambahkan volume ZFS ke target ini.

Untuk membuat iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 dan atur ID 1 untuk target, jalankan perintah berikut:

$ sudo tgtadm --lld iscsi --op new --cara target --tid 1 --targetname iqn.2021-08.com.linuxhint.iscsi:pool1.vol1

Dengan cara yang sama, jalankan perintah berikut untuk membuat iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol2 dan tetapkan ID 2 untuk target:

$ sudo tgtadm --lld iscsi --op new --cara target --tid 2 --targetname iqn.2021-08.com.linuxhint.iscsi:pool1.vol2

Untuk membuat daftar semua target yang telah Anda buat, jalankan perintah berikut:

$ sudo tgtadm --lld iscsi --op show --cara target

Target yang telah Anda buat harus terdaftar, seperti yang Anda lihat pada tangkapan layar di bawah ini:

Menambahkan Volume ZFS ke Target iSCSI:

Volume ZFS yang akan Anda tambahkan ke target disebut LUNs (Logical Units).

Seperti yang disebutkan sebelumnya, Anda dapat menambahkan satu atau lebih volume ZFS dalam target iSCSI. Namun, jika Anda melakukannya, saat Anda mengakses target dari komputer lain, semua volume ZFS yang telah Anda tambahkan ke target itu akan dipasang. Jadi, jika Anda ingin mengizinkan akses hanya ke satuZFS volume per iSCSI target, tambahkan hanya satu volume ZFS ke satu target iSCSI.

Di bagian ini, saya mendemonstrasikan cara menambahkan volume ZFS vol1 dan vol2 ke target iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 and iqn.2021-08.com.linuxhint.iscsi:pool1.vol2, masing-masing.

masing-masing LUNs in an iSCSI target memiliki ID mulai dari 0. Jadi, yang pertama LUN is called LUN 0. Kemudian, yang keduaLUN is called LUN 1, selagi third LUN is called LUN 2, dan seterusnya.

Secara default, LUN 0 of each iSCSItarget akan ditempati oleh pengontrol iSCSI, seperti yang ditunjukkan pada gambar di bawah. Jadi, Anda harus menggunakanLUN 1, LUN 2, dan seterusnya untuk menambahkan volume ZFS Anda ke target iSCSI.

$ sudo tgtadm --lld iscsi --op show --cara target

Untuk menambahkan ZFS volume vol1 dari ZFS pool pool1 as LUN 1 ke target ID 1 (iqn.2021-08.com.linuxhint.iscsi:pool1.vol1), jalankan perintah berikut:

$ sudo tgtadm --lld iscsi --op new --cara logicalunit --tid 1 --lun 1 --backing-store /dev/pool1/vol1

Untuk menambahkan ZFS volume vol2 dari ZFS pool, pool1, as LUN 1 ke ID target 2 (iqn.2021-08.com.linuxhint.iscsi:pool1.vol2), jalankan perintah berikut:

$ sudo tgtadm --lld iscsi --op new --cara logicalunit --tid 2 --lun 1 --backing-store /dev/pool1/vol2

Itu ZFS volume vol1 harus ditambahkan ke iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 as LUN 1, seperti yang ditandai pada tangkapan layar di bawah ini:

$ sudo tgtadm --lld iscsi --op show --cara target

Itu ZFS volume vol2 harus ditambahkan ke iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol2 as LUN 1, seperti yang ditandai pada tangkapan layar di bawah ini:

Mengonfigurasi Otentikasi iSCSI (Opsional):

Di bagian ini, saya akan menunjukkan kepada Anda cara mengaktifkan otentikasi nama user dan password dasar untuk iSCSI targets iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 dan iqn.2021-08.com.linuxhint.iscsi:pool1.vol2.

Anda dapat dengan senang hati melewati bagian ini jika Anda tidak ingin mengaktifkan otentikasi untuk target iSCSI Anda.

Pertama, buat yang baru iSCSI user linuxhint1 dengan password palsu 123456 (Anda harus mengubahnya nanti) dengan perintah berikut:

$ sudo tgtadm --lld iscsi --op new --cara account --user linuxhint1 --password 123456

Dengan cara yang sama, buat yang lain iSCSI user linuxhint2 dengan password palsu 456789 (Anda harus mengubahnya nanti) dengan perintah berikut:

$ sudo tgtadm --lld iscsi --op new --cara account --user linuxhint2 --password 456789

user iSCSI linuxhint1 and linuxhint2 harus dibuat, seperti yang Anda lihat pada tangkapan layar di bawah ini:

$ sudo tgtadm --lld iscsi --op show --cara account

Untuk mengizinkan hanya akses user linuxhint1 ke iSCSI target ID 1 (iqn.2021-08.com.linuxhint.iscsi:pool1.vol1) dari client iSCSI jarak jauh, jalankan perintah berikut:

$ sudo tgtadm --lld iscsi --op bind --cara account --tid 1 --user linuxhint1

Dengan cara yang sama, untuk memungkinkan linuxhint2 user akses ke iSCSI target ID 2 (iqn.2021-08.com.linuxhint.iscsi:pool1.vol2) dari client iSCSI jarak jauh, jalankan perintah berikut:

$ sudo tgtadm --lld iscsi --op bind --cara account --tid 2 --user linuxhint2

Itu linuxhint1 user account harus ditambahkan ke iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol1, seperti yang Anda lihat pada tangkapan layar di bawah ini:

$ sudo tgtadm --lld iscsi --op show --cara target

Itu linuxhint2 user account juga harus ditambahkan ke iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol2, seperti yang Anda lihat pada tangkapan layar di bawah ini:

Untuk linuxhint1 user, saya akan mengatur rahasia password1, dan untuk linuxhint2 user, saya akan mengatur password secret2 seperti yang ditandai pada tangkapan layar di bawah ini.

Setelah selesai, tekan <Ctrl> + X followed by Y and <Enter> untuk menyelamatkan /etc/tgt/targets.conf file:

Agar perubahan diterapkan, reboot iscsi-server computer:

$ sudo reboot

sekali iscsi-server computer boots, server iSCSI harus berjalan pada port 3260, seperti yang ditampilkan pada tangkapan layar di bawah ini:

$ sudo ss -tlpn

Mengakses Volume ZFS Bersama melalui iSCSI:

Setelah Anda mengatur iSCSI server pada iscsi-server computer, Anda dapat mengakses ZFS volumes vol1 and vol2 via iSCSI on the iscsi-client computer.

Untuk mengakses iSCSI targets dari iscsi-server computer, Anda perlu mengetahui alamat IP dari iscsi-server computer. Dalam kasus saya, alamat IP myiscsi-server computer adalah 192.168.122.98. Ini akan berbeda untuk Anda. Jadi, pastikan untuk menggantinya dengan milik Anda mulai sekarang.

$ hostname -I

Untuk menemukan semua target iSCSI dari iscsi-server (IP address 192.168.122.98), jalankan perintah berikut:

$ sudo iscsiadm --cara discovery --type sendtargets --portal 192.168.122.98

Seperti yang Anda lihat, iSCSI targets iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 and iqn.2021-08.com.linuxhint.iscsi:pool1.vol2 terdaftar.

Jika Anda belum mengatur otentikasi, Anda seharusnya dapat mengakses iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 dengan perintah berikut:

$ sudo iscsiadm --cara node --targetname iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 --login

Dengan cara yang sama, Anda dapat mengakses iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol2 dengan perintah berikut:

$ sudo iscsiadm --cara node --targetname iqn.2021-08.com.linuxhint.iscsi:pool1.vol2 –login

Jika Anda telah mengaktifkan otentikasi untuk iSCSI targets iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 and iqn.2021-08.com.linuxhint.iscsi:pool1.vol2, Anda akan menerima pesan kegagalan otorisasi seperti yang ditandai pada tangkapan layar di bawah.

Agar berhasil masuk ke target iSCSI yang diaktifkan autentikasi, atur metode autentikasi, nama user, dan password untuk setiap target iSCSI yang diaktifkan autentikasi.

Anda dapat mengatur metode otentikasi dari iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 to CHAP dengan perintah berikut:

$ sudo iscsiadm --cara node --targetname iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 --op update --name node.session.auth.authmethod --value CHAP

Anda dapat mengatur nama user login dari iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 to linuxhint1 dengan perintah berikut:

$ sudo iscsiadm --cara node --targetname iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 --op update --name node.session.auth.username --value linuxhint1

Anda dapat mengatur password masuk dari iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 to secret1 dengan perintah berikut:

$ sudo iscsiadm --cara node --targetname iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 --op update --name node.session.auth.password --value secret1

Setelah Anda selesai mengatur metode otentikasi, nama user login, dan password untuk iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol1, Anda harus berhasil masuk ke iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol1:

$ sudo iscsiadm --cara node --targetname iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 --login

Setelah Anda berhasil masuk ke iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol1, sda disk SCSI baru harus dilampirkan ke iscsi-client computer. Catatan, ini mungkin berbeda dalam kasus Anda:

$ sudo dmesg | grep -I attached

Seperti yang Anda lihat, perangkat penyimpanan baru sda berukuran 1 GB ditambahkan ke iscsi-clientkomputer. Ini adalah volume ZFS vol1 yang telah Anda bagikan melalui iSCSI:

$ sudo lsblk -e7 -d

Dengan cara yang sama, atur metode otentikasi dari iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol2 to CHAP dengan perintah berikut:

$ sudo iscsiadm --cara node --targetname iqn.2021-08.com.linuxhint.iscsi:pool1.vol2 --op update --name node.session.auth.authmethod --value CHAP

Setel nama user masuk dari iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol2 to linuxhint2 dengan perintah berikut:

$ sudo iscsiadm --cara node --targetname iqn.2021-08.com.linuxhint.iscsi:pool1.vol2 --op update --name node.session.auth.username --value linuxhint2

Setel password masuk dari iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol2 to secret2 dengan perintah berikut:

$ sudo iscsiadm --cara node --targetname iqn.2021-08.com.linuxhint.iscsi:pool1.vol2 --op update --name node.session.auth.password --value secret2

Masuk ke iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol2 dengan perintah berikut:

$ sudo iscsiadm --cara node --targetname iqn.2021-08.com.linuxhint.iscsi:pool1.vol2 --login

Anda harus berhasil masuk ke iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol2:

Setelah Anda berhasil masuk ke iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol2, sdb disk SCSI baru harus dilampirkan ke iscsi-client computer. Catatan, mungkin berbeda dalam kasus Anda.

$ sudo dmesg | grep -I attached

Seperti yang Anda lihat, perangkat penyimpanan baru sdb berukuran 2 GB ditambahkan ke iscsi-client computer. Ini adalah volume ZFS vol2 yang telah Anda bagikan melalui iSCSI:

$ sudo lsblk -e7 -d

Memasang Volume ZFS Bersama secara Otomatis melalui iSCSI:

Untuk masuk secara otomatis ke target iSCSI, Anda harus menyetel properti node.startup dari target iSCSI ke otomatis.

Untuk mengatur node.startup property dari iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 untuk otomatis, jalankan perintah berikut:

$ sudo iscsiadm --cara node --targetname iqn.2021-08.com.linuxhint.iscsi:pool1.vol1 --op update --name node.startup --value automatic

Untuk mengatur node.startup property of the iSCSI target iqn.2021-08.com.linuxhint.iscsi:pool1.vol2 to automatic, jalankan perintah berikut:

$ sudo iscsiadm --cara node --targetname iqn.2021-08.com.linuxhint.iscsi:pool1.vol2 --op update --name node.startup --value automatic

Terakhir, aktifkan open-iscsi systemd service sehingga dimulai secara otomatis pada saat boot dengan perintah berikut:

$ sudo systemctl enable open-iscsi

Agar perubahan diterapkan, mulai ulang iscsi-client computer dengan perintah berikut:

$ sudo reboot

sekali iscsi-client computer boots, Anda harus melihat sda and sdb storage devices pada iscsi-client computer seperti yang ditandai pada tangkapan layar di bawah ini:

$ sudo lsblk -e7 -d

Kesimpulan:

Dalam artikel ini, saya telah menunjukkan kepada Anda cara membuat volume ZFS dan membagikannya melalui iSCSI. Juga, saya telah menunjukkan kepada Anda cara mengatur otentikasi untuk target iSCSI. Saya telah menunjukkan kepada Anda cara masuk ke target iSCSI dari jarak jauh dan mengakses volume ZFS bersama.

Referensi:

[1] Halaman Manual Ubuntu: tgtadm – Utilitas Administrasi Target SCSI Linux

[2] Halaman Manual Ubuntu: tgt-admin – Alat Konfigurasi Target SCSI Linux

[3] Ubuntu Manpage: iscsiadm – utilitas administrasi open-iscsi

[4] Layanan – iscsi | Ubuntu

[5] Konvensi Penamaan iSCSI

Related Posts