GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Mengatur Server Penyimpanan iSCSI di Ubuntu 20.04 LTS

iSCSI adalah singkatan dari Internet Small Computer System Interface adalah protokol Jaringan Area Penyimpanan yang dapat digunakan untuk berbagi perangkat blok seperti partisi HDD/SSD, atau partisi LVM, atau memblokir file di jaringan. iSCSI bekerja dalam model client-server dan bergantung pada jaringan TCP/IP untuk mengirim perintah SCSI antara klien inisiator dan target. iSCSI Target adalah layanan di server iSCSI yang menyediakan akses ke penyimpanan bersama dan iSCSI Initiator adalah klien iSCSI yang terhubung ke target dan mengakses penyimpanan bersama.

Dalam tutorial ini, kami akan menjelaskan cara mengatur target iSCSI dan inisiator iSCSI di server Ubuntu 20.04.

Persyaratan

  • Sistem yang menjalankan Ubuntu 20.04 untuk target iSCSI dengan HDD eksternal 1 GB.
  • Sistem yang menjalankan Ubuntu 20.04 baru untuk inisiator iSCSI.
  • Alamat IP statis 192.168.1.10 dikonfigurasi pada target iSCSI dan 192.168.1.20 dikonfigurasi pada inisiator iSCSI.
  • Kata sandi root dikonfigurasi di kedua server.

Perbarui Sistem

Sebelum memulai, sebaiknya perbarui sistem Anda dengan paket terbaru. Anda dapat memperbaruinya dengan perintah berikut:

apt-get update -y
apt-get upgrade -y

Setelah semua paket diperbarui, mulai ulang sistem Anda untuk menerapkan perubahan.

Instal iSCSI Target

Secara default, paket Target iSCSI tersedia di repositori default Ubuntu 20.04. Anda dapat menginstalnya dengan menjalankan perintah berikut di server Target iSCSI:

apt-get install tgt -y

Setelah menginstal iSCSI Target, verifikasi status server dengan perintah berikut:

systemctl status tgt

Anda akan mendapatkan output berikut:

? tgt.service - (i)SCSI target daemon
     Loaded: loaded (/lib/systemd/system/tgt.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-07-11 07:13:04 UTC; 23s ago
       Docs: man:tgtd(8)
   Main PID: 7770 (tgtd)
     Status: "Starting event loop..."
      Tasks: 1
     Memory: 1.1M
     CGroup: /system.slice/tgt.service
             ??7770 /usr/sbin/tgtd -f

Jul 11 07:13:04 ubuntu2004 systemd[1]: Starting (i)SCSI target daemon...
Jul 11 07:13:04 ubuntu2004 tgtd[7770]: tgtd: iser_ib_init(3431) Failed to initialize RDMA; load kernel modules?
Jul 11 07:13:04 ubuntu2004 tgtd[7770]: tgtd: work_timer_start(146) use timer_fd based scheduler
Jul 11 07:13:04 ubuntu2004 tgtd[7770]: tgtd: bs_init(387) use signalfd notification
Jul 11 07:13:04 ubuntu2004 systemd[1]: Started (i)SCSI target daemon.

Pada titik ini, Target iSCSI diinstal di server Anda, Anda sekarang dapat melanjutkan ke langkah berikutnya.

Konfigurasikan Target iSCSI

Pertama, Anda perlu membuat perangkat LUN (Logical Unit Number) di server iSCSI Anda. LUN adalah perangkat penyimpanan backend yang merupakan bagian dari perangkat fisik SCSI. Semua LUN yang dipetakan ke Target iSCSI secara virtual terpasang ke sistem operasi klien. Oleh karena itu, Pemrakarsa dapat membuat dan mengelola sistem file pada iSCSI LUN.

Anda dapat mengonfigurasinya dengan membuat file konfigurasi baru:

nano /etc/tgt/conf.d/iscsi.conf

Tambahkan baris berikut:

<target iqn.2020-07.example.com:lun1>
     backing-store /dev/sdb
     initiator-address 192.168.1.20
    incominguser iscsi-user password
     outgoinguser iscsi-target secretpass
</target>

Simpan dan tutup file setelah Anda selesai.

Dimana:

  • Baris pertama mendefinisikan nama LUN.
  • Baris kedua mendefinisikan lokasi dan nama perangkat penyimpanan di server Target iSCSI.
  • Baris ketiga mendefinisikan alamat IP dari inisiator iSCSI.
  • Baris keempat mendefinisikan nama pengguna/sandi yang masuk.
  • Baris kelima mendefinisikan nama pengguna/sandi yang akan diberikan target kepada inisiator untuk memungkinkan autentikasi CHAP timbal balik.

Selanjutnya, restart layanan iSCSI untuk menerapkan perubahan:

systemctl restart tgt

Selanjutnya, verifikasi server Target iSCSI dengan perintah berikut:

tgtadm --mode target --op show

Anda akan mendapatkan output berikut:

Target 1: iqn.2020-07.example.com:lun1
    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: 
    Account information:
        iscsi-user
        iscsi-target (outgoing)
    ACL information:
        192.168.1.10

Pada titik ini, server target iSCSI diinstal dan dikonfigurasi. Sekarang Anda dapat melanjutkan ke langkah berikutnya.

Instal dan Konfigurasi Inisiator iSCSI

Selanjutnya, masuk ke mesin inisiator iSCSI dan instal paket inisiator iSCSI dengan perintah berikut:

apt-get install open-iscsi -y

Setelah instalasi selesai, temukan server target iSCSI untuk mengetahui target bersama menggunakan perintah berikut:

iscsiadm -m discovery -t st -p 192.168.1.10

Anda akan melihat output berikut:

192.168.1.10:3260,1 iqn.2020-07.example.com:lun1

Selanjutnya, Anda perlu menentukan nama perangkat LUN di file initiatorname.iscsi:

nano /etc/iscsi/initiatorname.iscsi

Tambahkan nama iSCSI Target LUN Anda seperti yang ditunjukkan di bawah ini:

InitiatorName=iqn.2020-07.example.com:lun1

Simpan dan tutup file setelah Anda selesai.

Selanjutnya, Anda perlu menentukan informasi CHAP yang telah Anda konfigurasikan pada target iSCSI untuk mengakses target iSCSI dari inisiator iSCSI. File konfigurasi node akan ada di direktori ‘/etc/iscsi/nodes/‘ dan akan memiliki direktori per LUN yang tersedia.

Anda dapat menentukannya dengan mengedit file berikut:

nano /etc/iscsi/nodes/iqn.2020-07.example.com\:lun1/192.168.1.10\,3260\,1/default

Tambahkan / Ubah baris berikut:

node.session.auth.authmethod = CHAP  
node.session.auth.username = iscsi-user
node.session.auth.password = password          
node.session.auth.username_in = iscsi-target
node.session.auth.password_in = secretpass         
node.startup = automatic

Simpan dan tutup file kemudian restart layanan inisiator iSCSI dengan perintah berikut:

systemctl restart open-iscsi iscsid

Anda juga dapat memverifikasi status layanan dengan perintah berikut:

systemctl status open-iscsi

Anda akan mendapatkan output berikut:

? open-iscsi.service - Login to default iSCSI targets
     Loaded: loaded (/lib/systemd/system/open-iscsi.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sat 2020-07-11 07:24:19 UTC; 10s ago
       Docs: man:iscsiadm(8)
             man:iscsid(8)
    Process: 3861 ExecStart=/sbin/iscsiadm -m node --loginall=automatic (code=exited, status=0/SUCCESS)
    Process: 3867 ExecStart=/lib/open-iscsi/activate-storage.sh (code=exited, status=0/SUCCESS)
   Main PID: 3867 (code=exited, status=0/SUCCESS)

Jul 11 07:24:19 initiator systemd[1]: Starting Login to default iSCSI targets...
Jul 11 07:24:19 initiator iscsiadm[3861]: Logging in to [iface: default, target: iqn.2020-07.example.com:lun1, portal: 104.245.33.142,3260] (m>
Jul 11 07:24:19 initiator iscsiadm[3861]: Login to [iface: default, target: iqn.2020-07.example.com:lun1, portal: 104.245.33.142,3260] success>
Jul 11 07:24:19 initiator systemd[1]: Finished Login to default iSCSI targets.

Anda juga dapat memverifikasi koneksi iSCSI dengan perintah berikut:

iscsiadm -m session -o show

Anda akan mendapatkan output berikut:

tcp: [2] 192.168.1.10:3260,1 iqn.2020-07.example.com:lun1 (non-flash)

Anda juga dapat memverifikasi perangkat penyimpanan yang dibagikan dari target iSCSI dengan perintah berikut:

lsblk

Anda akan melihat sdb perangkat bersama dalam output berikut:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   80G  0 disk 
??sda1   8:1    0   80G  0 part /
sdb      8:16   0 1000M  0 disk

Buat Sistem File di Perangkat Bersama

Untuk menggunakan perangkat bersama pada inisiator iSCSI, Anda perlu membuat sistem file pada perangkat bersama (sdb) dan memasangnya agar perangkat ini berguna.

Pertama, buat sistem file di perangkat bersama (sdb) dengan perintah berikut:

fdisk /dev/sdb

Jawab semua pertanyaan seperti yang ditunjukkan di bawah ini untuk membuat sistem file:

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x9743ddcf.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (1-4, default 1): 
First sector (2048-2047999, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2047999, default 2047999): 

Created a new partition 1 of type 'Linux' and of size 999 MiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Selanjutnya, format partisi dengan perintah berikut:

mkfs.ext4 /dev/sdb1

Anda akan mendapatkan output berikut:

mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 255744 4k blocks and 64000 inodes
Filesystem UUID: e7f06605-a0f5-41e1-b1b2-e85bd7a2d6a3
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

Selanjutnya, mount partisi ke direktori /mnt dengan perintah berikut:

mount /dev/sdb1 /mnt

Anda sekarang dapat memverifikasi partisi yang di-mount dengan perintah berikut:

df -h

Anda akan mendapatkan output berikut:

Filesystem      Size  Used Avail Use% Mounted on
udev            981M     0  981M   0% /dev
tmpfs           199M  588K  199M   1% /run
/dev/sda1        79G  1.8G   74G   3% /
tmpfs           994M     0  994M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           994M     0  994M   0% /sys/fs/cgroup
tmpfs           199M     0  199M   0% /run/user/0
/dev/sdb1       968M  2.5M  899M   1% /mnt

Kesimpulan

Dalam panduan di atas, Anda mempelajari cara mengatur target dan inisiator iSCSI di server Ubuntu 20.04. Anda juga mempelajari cara berbagi perangkat di server Target dan mengaksesnya dari inisiator. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.


Ubuntu
  1. Cara Mengatur Server Penyimpanan iSCSI di Ubuntu 18.04 LTS

  2. Cara Mengatur Server Rsyslog di Ubuntu 18.04 LTS

  3. Cara Mengatur Elasticsearch di Ubuntu 18.04 &16.04 LTS

  1. Cara Mengatur Server dan Klien Kerberos di Ubuntu 18.04 LTS

  2. Cara Mengatur Server IRedMail di Ubuntu 18.04 LTS

  3. Setup Rsyslog Server di Ubuntu 20.04 - Bagaimana cara melakukannya?

  1. Cara mengatur Server VPN menggunakan Pritunl di Ubuntu 18.04 LTS

  2. Cara menginstal Ubuntu Server 18.04 LTS

  3. Cara mengatur OpenVPN di Server Ubuntu