GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nastavit iSCSI Storage Server na Ubuntu 20.04 LTS

iSCSI znamená Internet Small Computer System Interface je protokol Storage Area Network, který lze použít ke sdílení blokových zařízení, jako jsou oddíly HDD/SSD nebo oddíly LVM, nebo blokování souborů na síť. iSCSI pracuje v modelu klient-server a spoléhá na sítě TCP/IP při odesílání příkazů SCSI mezi iniciátorem a cílem. iSCSI Target je služba na serveru iSCSI, která poskytuje přístup ke sdílenému úložišti, a iSCSI Initiator je klient iSCSI, který se připojuje k cíli a přistupuje ke sdílenému úložišti.

V tomto tutoriálu vysvětlíme, jak nastavit cíle iSCSI a iniciátor iSCSI na serveru Ubuntu 20.04.

Požadavky

  • Systém se systémem Ubuntu 20.04 pro cíl iSCSI s 1 GB externího pevného disku.
  • Systém s novým Ubuntu 20.04 pro iniciátor iSCSI.
  • Statická IP adresa 192.168.1.10 je nakonfigurována v cíli iSCSI a 192.168.1.20 je nakonfigurována v iniciátoru iSCSI.
  • Na obou serverech je nakonfigurováno heslo uživatele root.

Aktualizujte systém

Než začnete, je dobré aktualizovat váš systém nejnovějšími balíčky. Můžete je aktualizovat pomocí následujícího příkazu:

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

Jakmile jsou všechny balíčky aktualizovány, restartujte systém, aby se změny projevily.

Instalovat iSCSI Target

Ve výchozím nastavení je balíček iSCSI Target dostupný ve výchozím úložišti Ubuntu 20.04. Můžete jej nainstalovat spuštěním následujícího příkazu na serveru iSCSI Target:

apt-get install tgt -y

Po instalaci iSCSI Target ověřte stav serveru pomocí následujícího příkazu:

systemctl status tgt

Měli byste získat následující výstup:

? 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.

V tomto okamžiku je na vašem serveru nainstalován iSCSI Target, nyní můžete přejít k dalšímu kroku.

Konfigurovat cíl iSCSI

Nejprve budete muset vytvořit LUN (Logical Unit Number) zařízení na vašem serveru iSCSI. LUN je koncové úložné zařízení, které je součástí fyzického zařízení SCSI. Všechny logické jednotky namapované na cíl iSCSI Target jsou virtuálně připojeny k operačnímu systému klienta. Proto mohou iniciátoři zakládat a spravovat systémy souborů na iSCSI LUN.

Můžete jej nakonfigurovat vytvořením nového konfiguračního souboru:

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

Přidejte následující řádky:

<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>

Po dokončení uložte a zavřete soubor.

Kde:

  • První řádek definuje název logické jednotky.
  • Druhý řádek definuje umístění a název úložného zařízení na serveru iSCSI Target.
  • Třetí řádek definuje IP adresu iniciátoru iSCSI.
  • Čtvrtý řádek definuje příchozí uživatelské jméno/heslo.
  • Pátý řádek definuje uživatelské jméno/heslo, které cíl poskytne iniciátorovi, aby bylo možné provést vzájemné ověření CHAP.

Poté restartujte službu iSCSI, aby se změny projevily:

systemctl restart tgt

Dále ověřte cílový server iSCSI pomocí následujícího příkazu:

tgtadm --mode target --op show

Měli byste získat následující výstup:

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

V tomto okamžiku je nainstalován a konfigurován cílový server iSCSI. Nyní můžete přejít k dalšímu kroku.

Instalace a konfigurace iSCSI iniciátoru

Dále přejděte na počítač s iniciátorem iSCSI a nainstalujte balíček iniciátoru iSCSI pomocí následujícího příkazu:

apt-get install open-iscsi -y

Po dokončení instalace vyhledejte cílový server iSCSI a zjistěte sdílené cíle pomocí následujícího příkazu:

iscsiadm -m discovery -t st -p 192.168.1.10

Měli byste vidět následující výstup:

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

Dále budete muset definovat název LUN zařízení v souboru initiatorname.iscsi:

nano /etc/iscsi/initiatorname.iscsi

Přidejte svůj název iSCSI Target LUN, jak je znázorněno níže:

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

Po dokončení uložte a zavřete soubor.

Dále budete muset definovat informace CHAP, které jste nakonfigurovali pro cíl iSCSI pro přístup k cíli iSCSI z iniciátoru iSCSI. Konfigurační soubor uzlu bude existovat v adresáři „/etc/iscsi/nodes/“ a bude mít k dispozici adresář pro každou LUN.

Můžete jej definovat úpravou následujícího souboru:

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

Přidejte/upravte následující řádky:

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

Uložte a zavřete soubor a poté restartujte službu iniciátoru iSCSI pomocí následujícího příkazu:

systemctl restart open-iscsi iscsid

Stav služby můžete také ověřit pomocí následujícího příkazu:

systemctl status open-iscsi

Měli byste získat následující výstup:

? 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.

Připojení iSCSI můžete také ověřit pomocí následujícího příkazu:

iscsiadm -m session -o show

Měli byste získat následující výstup:

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

Úložné zařízení sdílené z cíle iSCSI můžete také ověřit pomocí následujícího příkazu:

lsblk

Sdb sdíleného zařízení byste měli vidět v následujícím výstupu:

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

Vytvoření systému souborů na sdíleném zařízení

Abyste mohli používat sdílené zařízení na iniciátoru iSCSI, budete muset na sdíleném zařízení vytvořit systém souborů (sdb) a připojit jej, aby bylo toto zařízení užitečné.

Nejprve vytvořte souborový systém na sdíleném zařízení (sdb) pomocí následujícího příkazu:

fdisk /dev/sdb

Chcete-li vytvořit systém souborů, odpovězte na všechny níže uvedené otázky:

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.

Dále naformátujte oddíl pomocí následujícího příkazu:

mkfs.ext4 /dev/sdb1

Měli byste získat následující výstup:

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

Dále připojte oddíl do adresáře /mnt pomocí následujícího příkazu:

mount /dev/sdb1 /mnt

Nyní můžete ověřit připojený oddíl pomocí následujícího příkazu:

df -h

Měli byste získat následující výstup:

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

Závěr

Ve výše uvedené příručce jste se naučili, jak nastavit cíl a iniciátor iSCSI na serveru Ubuntu 20.04. Také jste se naučili, jak sdílet zařízení na cílovém serveru a jak k němu přistupovat od iniciátora. Pokud máte nějaké dotazy, neváhejte se mě zeptat.


Ubuntu
  1. Jak nastavit iSCSI Storage Server na Ubuntu 18.04 LTS

  2. Jak nastavit Rsyslog Server na Ubuntu 18.04 LTS

  3. Jak nastavit Elasticsearch na Ubuntu 18.04 a 16.04 LTS

  1. Jak nastavit server a klienta Kerberos na Ubuntu 18.04 LTS

  2. Jak nastavit IRedMail Server na Ubuntu 18.04 LTS

  3. Nastavení serveru Rsyslog na Ubuntu 20.04 – Jak na to?

  1. Jak nastavit VPN server pomocí Pritunl na Ubuntu 18.04 LTS

  2. Jak nainstalovat Ubuntu Server 18.04 LTS

  3. Jak nastavit OpenVPN na serveru Ubuntu