Internet Small Computer System Interface (iSCSI) je standard založený na protokolu IP pro připojení úložných zařízení. iSCSI používá sítě IP k zapouzdření příkazů SCSI, což umožňuje přenos dat na velké vzdálenosti. iSCSI poskytuje sdílené úložiště mezi řadou klientských systémů. Úložná zařízení jsou připojena k serverům (cílům). Klientské systémy (iniciátoři) přistupují ke vzdáleným úložným zařízením přes IP sítě. Zdá se, že ke klientským systémům jsou úložná zařízení připojena lokálně. iSCSI využívá stávající IP infrastrukturu a nevyžaduje žádnou další kabeláž, jako je tomu u sítí Fibre Channel (FC).
Konfigurace serveru iSCSI
RHEL/CentOS 7 používá cílový subsystém jádra Linux-IO (LIO) pro iSCSI. Kromě iSCSI podporuje LIO řadu úložných zařízení včetně Fibre Channel over Ethernet (FCoE), přístupu iSCSI přes sítě Mellanox InfiniBand (iSER) a přístupu SCSI přes sítě Mellanox InfiniBand (SRP). V RHEL 7 jsou všechny úložné struktury spravovány pomocí targetcli utility.
Chcete-li nakonfigurovat systém RHEL jako server iSCSI, začněte instalací softwarového balíčku targetcli:
# yum install targetcli
Instalace softwarového balíčku targetcli také nainstaluje python-rtslib balíček, který poskytuje /usr/lib/systemd/system/target.service soubor. Před použitím obslužného programu targetcli k vytvoření, odstranění a zobrazení cílů úložiště použijte příkaz systemctl k povolení a spuštění cílové služby na serveru 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
nástroj targetcli
Obslužný program targetcli je administrační shell pro vytváření, úpravy a prohlížení konfigurace cílového subsystému jádra. Spusťte targetcli pro vstup do konfiguračního shellu.
# 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
Spusťte nápovědu příkaz z výzvy targetcli pro zobrazení dostupných příkazů. Níže jsou uvedeny některé z dostupných příkazů targetcli:
- ls :Zobrazení hierarchie objektů.
- cd :Procházet hierarchií objektů.
- vytvořit :Vytvářejte objekty úložiště, cíle, logické jednotky, síťové portály, seznamy řízení přístupu.
- ukončit :Ukončete prostředí targetcli a automaticky uložte konfiguraci.
Můžete také zadat „targetcli [command]““ a spustit příkazy bez zadání shellu.
Backstores
Backstores jsou různé druhy zdrojů místního úložiště, které cíl jádra používá k „zálohování“ zařízení SCSI, která exportuje do klientských systémů. Mapování na prostředky místního úložiště, které každé úložiště backstore vytváří, se nazývají objekty úložiště. Použijte targetcli ls k seznamu různých typů backstores.
# targetcli ls /backstores
Typy backstores jsou popsány následovně:
- blokovat :Linux bloková zařízení, jako je /dev/sda
- fileio :Jakýkoli soubor v připojeném souborovém systému, jako je /tmp/disk1.img
- pscsi :Jakýkoli objekt úložiště, který podporuje průchozí příkazy SCSI
- ramdisk :Kopírování paměti RAM disky
Vytvoření úložiště bloků z prostředí targetcli:
/> cd /backstores/block /backstores/block> create name=LUN_1 dev=/dev/xvdb
Vytvoření úložiště souborů fileio z prostředí targetcli:
/> cd /backstores/fileio /backstores/fileio> create name=LUN_3 /root/disk1.img 5G
Vytvoření cíle iSCSI Target
Chcete-li vytvořit cíl iSCSI z prostředí targetcli, použijte příkaz cd a přejděte do adresáře /iscsi.
/> cd /iscsi /iscsi>
Pomocí příkazu create bez jakýchkoli argumentů vytvořte cíl iSCSI pomocí výchozího názvu cíle. Ve výchozím nastavení je cíl identifikován „iqn “identifikátor. Toto je iSCSI Qualified Name (IQN) , který jednoznačně identifikuje cíl. K identifikaci cíle se nejčastěji používají adresy ve formátu IQN. Tato adresa se skládá z následujících polí:
- Doslovné iqn
- Datum (ve formátu rrrr-mm), kdy autorita pro pojmenování převzala vlastnictví domény
- Obrácený název domény úřadu
- Volitelné „:“, které předchází názvu cíle úložiště určeného autoritou pro pojmenování
/> 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>
Chcete-li vytvořit seznam vytvořených cílů, použijte níže uvedený příkaz.
# targetcli ls /iscsi
Chcete-li povolit vzdáleným systémům přístup k cíli iSCSI na portu 3260, zakažte službu firewalld na serveru iSCSI nebo nakonfigurujte firewall tak, aby důvěřoval portu 3260/tcp. Následující příklad používá firewall-cmd k otevření portu 3260/tcp pro službu firewalld.
# firewall-cmd --permanent --add-port=3260/tcp
Pokud zahrnete –trvalé Při přidávání portu použijte příkaz firewall-cmd k opětovnému načtení konfigurace.
# firewall-cmd –reload
Vytváření jednotek iSCSI LUN
Cíl jádra exportuje logické jednotky SCSI do vzdálených systémů. Pomocí shellu targetcli propojte dříve definované objekty úložiště s cílem a určete, které číslo logické jednotky (LUN) zařízení používá. Následující příklad používá příkaz create k vytvoření dvou nových LUN pro cíl. Z prostředí targetcli začněte pomocí příkazu cd pro přechod do adresáře luns v rámci hierarchie [target/TGP].
/iscsi> cd /iscsi/iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb/ /iscsi/iqn.20....b0df6e328beb> cd tpg1/luns
Následující příkazy vytvoří LUN z dříve definovaných objektů úložiště bloků.
/iscsi/iqn.20...beb/tpg1/luns> create /backstores/block/LUN_1 lun1 Created LUN 1.
Vytváření seznamů ACL
Přístupové seznamy (ACL) omezují přístup k LUN ze vzdálených systémů. Pro každého iniciátora můžete vytvořit ACL, abyste vynutili autentizaci, když se iniciátor připojí k cíli. To vám umožní poskytnout konkrétnímu iniciátorovi exkluzivní přístup ke konkrétnímu cíli. Následující příklad používá příkaz create k vytvoření ACL pro iniciátora. Z prostředí targetcli začněte pomocí příkazu cd pro přechod do adresáře acls v rámci hierarchie [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.
Konfigurace iniciátoru iSCSI
Chcete-li nakonfigurovat systém Linux jako iniciátor iSCSI, nainstalujte iscsi-initiator-utils softwarový balík. Tento balíček je Linux Open-iSCSI Initiator.
# yum install iscsi-initiator-utils
Balíček nainstaluje několik souborů včetně následujících:
- /etc/iscsi/iscsid.conf :Konfigurační soubor načtený pomocí iscsid a iscsiadm. Tento soubor je silně komentován s popisy pro každou konfigurační direktivu.
- /sbin/iscsid :Démon Open-iSCSI, který implementuje řídicí cestu a prostředky správy
- /sbin/iscsiadm :Nástroj pro správu Open-iSCSI používaný ke zjišťování a přihlašování k cílům iSCSI
Upravte soubor /etc/iscsi/initiatorname.iscsi a nahraďte parametr InitiatorName názvem iniciátoru, který jste dříve nakonfigurovali jako ACL v cíli. V tomto souboru je definován výchozí název iniciátoru iscsi. Pokud jste při konfiguraci ACL použili stejný název, nebudete zde muset nic měnit.
# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.1994-05.com.redhat:aabb51a64012
Pomocí příkazu systemctl povolte a spusťte službu iscsid.
# systemctl enable iscsid # systemctl start iscsidPochopení nástroje iscsiadm v CentOS / RHEL
iSCSI Discovery
Zjištění je proces, který iniciátorovi zpřístupní cíle. Následující příklad používá metodu zjišťování SendTargets ke zjišťování cílů na adrese IP 192.168.12.13. Tento příkaz také v případě potřeby spustí démona iscsid.
# iscsiadm -m discovery --type sendtargets –p 192.168.12.13
Po zjištění se tabulka uzlů a tabulky send_targets v databázi aktualizují:
# 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
Relace iniciátoru iSCSI
Relace je spojení TCP mezi portem uzlu iniciátoru a portem cílového uzlu. LUN nejsou přístupné, dokud není vytvořena relace. K vytvoření relace použijte volbu -l (nebo –login):
# iscsiadm -m node -l
Chcete-li se přihlásit ke konkrétnímu cíli:
# iscsiadm -m node --targetname iqn.2011-12.com.example.mypc:tgt1 –p 192.0.2.102:3260 –l
K uzavření relace použijte volbu -u (nebo –logout). Zobrazení informací o relaci:
# iscsiadm -m session [-P [printlevel]]
Úrovně tisku jsou 1, 2 a 3. Každá zobrazuje více podrobností.