Objętości ZFS to urządzenia do przechowywania bloków, które działają jak każde inne urządzenie pamięci (HDD/SSD). Możesz tworzyć tabele partycji, tworzyć nowe partycje, sformatować te partycje, tworzyć systemy plików i zamontować je na komputerze.
Możesz także udostępniać objętości ZFS za pośrednictwem protokołu ISCSI i uzyskać dostęp do nich ze zdalnych komputerów.
W tym artykule pokażę ci, jak udostępnić tomy ZFS za pośrednictwem ISCSI i uzyskać dostęp do nich ze zdalnych komputerów. Będę używać Ubuntu 20.04 LTS System operacyjny do demonstracji. Jednak kroki pokazane w tym artykule powinny również działać na innych rozkładach Linux z pewnymi korektami.
Zacznijmy.
Spis treści:
Internetowy diagram:
W tym artykule utworzę dwa Ubuntu 20.04 Komputery LTS: ISCSI-SERVER i ISCSI-CLIENT. Zainstaluję ZFS i oprogramowanie serwera ISCSI na komputer ISCSI-SERVER i skonfiguruj go tak, aby udostępniać objętości ZFS za pośrednictwem ISCSI.
Zainstaluję Oprogramowanie klienta ISCSI na komputer iSCSI-CLIENT i skonfiguruj go, aby uzyskuje dostęp do objętości ZFS wyeksportowanych z komputer ISCSI-Server przez ISCSI.
Cała konfiguracja jest wizualizowana na poniższym rysunku:
Instalowanie TGT na serwerze ISCSI:
W tej sekcji pokażę Ci, jak zainstalować pakiet serwera ISCSI TGT na komputerze ISCSI-Server.
Najpierw zaktualizuj pamięć podręczną repozytorium pakietów Apt w następujący sposób:
Aktualizacja $ sudo apt
Następnie zainstaluj pakiet TGT na komputerze ISCSI-Server za pomocą następującego polecenia:
$ sudo apt instal tgt -y
Jeśli nie masz już ZFS na komputerze ISCSI-Server, możesz zainstalować go za pomocą następującego polecenia:
$ sudo apt Zainstaluj Zfsutils -Linux -y
Instalowanie Open-ISCSI na kliencie ISCSI:
W tej sekcji pokażę ci, jak zainstalować pakiet klientów ISCSI Open-ISCSI na ISCSI-CLIENT komputer.
Najpierw zaktualizuj pamięć podręczną repozytorium pakietów Apt za pomocą następującego polecenia:
Aktualizacja $ sudo apt
Następnie zainstaluj Pakiet Open-ISCSI na komputer iSCSI-CLIENT Z następującym poleceniem:
$ sudo apt instinst instaluj otwarte
Tworzenie puli ZFS:
W przypadku demonstracji utworzę pulę ZFS, pulę1, na ISCSI-SERVER komputer za pomocą pamięć VDB i VDC urządzenia:
$ sudo lsblk -e7 -d
Utwórz pulę ZFS, pula 1, używając urządzeń pamięci VDB i VDC w konfiguracji lustrzanej w następujący sposób:
$ sudo zpool Utwórz -f pula 1 lustro vdb vdc
Na komputerze ISCSI-Server powinien być utworzony nową pulę ZFS.
Lista $ sudo zfs
Tworzenie tomów ZFS:
W tej sekcji pokażę ci, jak utworzyć ZFS Volumes Vol1 i Vol2 na Basen ZFS, basen1, abyś mógł je wyeksportować za pośrednictwem ISCSI.
Aby utworzyć objętość ZFS Vol1 o rozmiarze 1 GB na puli ZFS, pula 1, uruchom następujące polecenie:
$ sudo zfs Utwórz -v 1G puli1/vol1
Aby utworzyć objętość ZFS Vol2 o rozmiarze 2 GB w puli ZFS, Pool1, uruchom następujące polecenie:
$ sudo zfs Utwórz -v 2G puli1/vol2
ZFS VOLUMES VOL1 i VOL2 powinny być tworzone w puli ZFS, puli1.
Lista $ sudo zfs
Tworzenie celów ISCSI:
Cel ISCSI jest jak nazwany pojemnik. Możesz umieścić tam jeden lub więcej tomów ZFS. Po uzyskaniu dostępu do celu od innych komputerów, wszystkie tomy ZFS, które umieściłeś w tym pojemniku, zostaną zamontowane.
Nazwy docelowych ISCSI mają standardowy format:
IQN.- . :
Tutaj:
- Rok w 4-cyfrowym formacie. I.mi. 2021, 2018
- Miesiąc numeryczny w 2-cyfrowym formacie. Powinno znajdować się w zakresie 01-12. I.mi. 01 (dla stycznia), 08 (za sierpień), 12 (grudzień)
- W pełni kwalifikowana nazwa domeny w formacie odwrotnym. I.mi. ISCSI.Linuxhint.com powinien być napisany jako com.Linuxhint.ISCSI.
- Może to być wszystko wyjątkowe w twojej konfiguracji. Do konfiguracji małego domu i biura możesz użyć nazwy i nazwy puli ZFS i nazwy woluminu (I.mi., Pool1.Vol1, Pool1.Vol2) lub nazwa działu/oddziału (I.mi., Inżynieria.PC1, konto.PC2, inżynieria.US-1, konto.UK-2) klientów, którzy będą korzystać z tych wspólnych tomów. To powinno być wystarczająco wyjątkowe. W dużej firmie możesz użyć unikalnego UUID dla każdego celu.
W tej sekcji pokażę ci, jak stworzyć Dwa cele ISCSI: IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 I IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2. W następnej sekcji pokażę, jak dodać tomy ZFS do tych celów.
Aby utworzyć ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 i ustaw identyfikator 1 dla celu, uruchom następujące polecenie:
$ sudo tgtadm --lld iscsi --op new -Mode Target -Tid 1 - -celname iqn.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1
W ten sam sposób uruchom następujące polecenie, aby utworzyć ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2 i ustaw identyfikator 2 dla celu:
$ sudo tgtadm --lld iscsi --op new -Mode Target -Tid 2 - -TargetName IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2
Aby wymienić wszystkie utworzone cele, uruchom następujące polecenie:
$ sudo tgtadm --lld iscsi --op show -Mode Target
Utworzone cele powinny być wymienione, jak widać na zrzucie ekranu poniżej:
Dodawanie objętości ZFS do celów ISCSI:
Wolume ZFS, które dodasz do celu, są wywoływane Luns (jednostki logiczne).
Jak wspomniano wcześniej, możesz dodać jeden lub więcej objętości ZFS w celu ISCSI. Ale jeśli to zrobisz, gdy uzyskasz dostęp do celu z innych komputerów, wszystkie tomy ZFS, które dodałeś do tego celu, zostaną zamontowane. Tak więc, jeśli chcesz umożliwić dostęp do jednego Objętość ZFS na cel ISCSI, Dodaj tylko jeden objętość ZFS do jednego celu ISCSI.
W tej sekcji pokazuję, jak dodać objętości ZFS Vol1 i Vol2 do celów IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 i IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2, odpowiednio.
Każdy z Luns w celu ISCSI ma identyfikator od 0. Więc pierwszy Lun nazywa się Lun 0. Następnie drugi Lun nazywa się Lun 1, podczas Trzeci Lun nazywa się Lun 2, i tak dalej.
Domyślnie, Lun 0 każdego ISCSI cel będzie zajęty przez kontroler ISCSI, jak pokazano na zrzucie ekranu poniżej. Więc będziesz musiał użyć Lun 1, Lun 2, i tak dalej, aby dodać objętości ZFS do celów ISCSI.
$ sudo tgtadm --lld iscsi --op show -Mode Target
Aby dodać ZFS Volume Vol1 z ZFS Pool Pool1 jako LUN 1 do celu docelowego 1 (IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1), Uruchom następujące polecenie:
$ sudo tgtadm --lld iscsi --op new-tryb logicalUnit-TID 1-lun 1--backing-sklep/dev/pula1/vol1
Aby dodać ZFS Volume Vol2 z Basen ZFS, pula 1, jako LUN 1 do docelowego id 2 (IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2), Uruchom następujące polecenie:
$ sudo tgtadm --lld iscsi --op new-tryb logicalUnit-Tid 2-lun 1--backing-sklep/dev/pula1/vol2
ZFS Volume Vol1 należy dodać do ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 jako Lun 1, Jak zaznaczono w zrzucie ekranu poniżej:
$ sudo tgtadm --lld iscsi --op show -Mode Target
ZFS Volume Vol2 należy dodać do ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2 jako Lun 1, Jak zaznaczono w zrzucie ekranu poniżej:
Konfigurowanie uwierzytelniania ISCSI (opcjonalnie):
W tej sekcji pokażę, jak włączyć podstawową nazwę użytkownika i uwierzytelnianie hasła dla ISCSI celuje w IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 I IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2.
Możesz z radością pominąć tę sekcję, jeśli nie chcesz włączyć uwierzytelnienia dla celów ISCSI.
Najpierw stwórz nowe Użytkownik ISCSI Linuxhint1 Z hasłem manekina 123456 (Będziesz musiał to zmienić później) z następującym poleceniem:
$ sudo tgtadm --lld ISCSI --P NOWOŚĆ -Konto Mode -User Linuxhint1 - -Password 123456
W ten sam sposób stwórz inną Użytkownik ISCSI Linuxhint2 Z hasłem manekina 456789 (Będziesz musiał to zmienić później) z następującym poleceniem:
$ sudo tgtadm --lld ISCSI --P NOWOŚĆ -Konto mode -User Linuxhint2 - -Password 456789
Użytkownicy ISCSI Linuxhint1 i Linuxhint2 należy utworzyć, jak widać na zrzucie ekranu poniżej:
$ sudo tgtadm --lld iscsi --op show -konto mode
Aby umożliwić tylko dostęp użytkownika Linuxhint1 do ISCSI Target ID 1 (IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1) Od zdalnych klientów ISCSI uruchom następujące polecenie:
$ sudo tgtadm --lld ISCSI --P BIND -Konto -Mode -TID 1 -User Linuxhint1
W ten sam sposób, aby umożliwić Użytkownik Linuxhint2 dostęp do ISCSI Target ID 2 (IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2) Od zdalnych klientów ISCSI uruchom następujące polecenie:
$ sudo tgtadm --lld ISCSI --P BIND -Konto -Mode -TID 2 -User Linuxhint2
Konto użytkownika Linuxhint1 należy dodać do ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1, Jak widać na zrzucie ekranu poniżej:
$ sudo tgtadm --lld iscsi --op show -Mode Target
Konto użytkownika Linuxhint2 należy również dodać do ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2, Jak widać na zrzucie ekranu poniżej:
Generowanie konfiguracji serwera ISCSI:
W tej sekcji pokażę, jak wygenerować plik konfiguracyjny dla serwera ISCSI, aby wprowadzone zmiany były trwałe i ponownie uruchomić system Survive.
Najpierw zezwól na dostęp do ISCSI Target ID 1 (IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1) Od dowolnego klienta ISCSI w następujący sposób:
$ sudo tgtadm --lld ISCSI --P BIND-MODE Target-TID 1-Initiator-Address All
W ten sam sposób pozwól na dostęp do ISCSI Target ID 2 (IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2) Od dowolnego klienta ISCSI w następujący sposób:
$ sudo tgtadm --lld ISCSI --P BIND-MODE Target-Tid 2-Initiator-Address All
Teraz zrzuć bieżącą konfigurację serwera ISCSI do pliku konfiguracyjnego serwera ISCSI /etc/tgt/cele.conf następująco:
$ sudo tgt-admin-dump | sudo tee/etc/tgt/cele.conf
Obecna konfiguracja serwera ISCSI powinna być zapisana do /etc/tgt/cele.conf plik.
Hasło użytkownika nie zostanie zapisane. Więc będziesz musiał wymienić Proszę_correct_the_password String z hasłem użytkownika w /etc/tgt/cele.plik CONF.
Otwórz plik konfiguracyjny serwera ISCSI /etc/tgt/cele.conf z edytorem tekstu Nano w następujący sposób:
$ sudo nano/etc/tgt/cele.conf
Wymień struny Proszę_correct_the_password Z odpowiednim hasłem użytkownika tutaj:
Dla Użytkownik Linuxhint1, Ustawę hasło Secret1 i dla Użytkownik Linuxhint2, Poniżej ustawię hasło Secret2, jak zaznaczono na zrzucie ekranu.
Po zakończeniu naciśnij + X, a następnie y i Aby uratować /etc/tgt/cele.plik CONF:
Aby zmiany zaczęły się uruchomić komputer ISCSI-SERVER:
$ sudo restart
Kiedyś Buty komputerowe ISCSI-SERVER, serwer ISCSI powinien być działany Port 3260, Jak pokazano na zrzucie ekranu poniżej:
$ sudo ss -tlpn
Dostęp do wspólnych objętości ZFS za pośrednictwem ISCSI:
Po ustawieniu serwer ISCSI na komputer ISCSI-SERVER, Możesz uzyskać dostęp do ZFS VOLUMES VOL1 i VOL2 przez ISCSI na komputerze iSCSI-klient.
Aby uzyskać dostęp do cele ISCSI z komputer ISCSI-SERVER, musisz znać adres IP komputer ISCSI-SERVER. W moim przypadku adres IP mojego komputer ISCSI-SERVER Jest 192.168.122.98. Będzie dla Ciebie inaczej. Dlatego upewnij się, że zastąpię go od teraz.
$ hostName -i
Aby odkryć wszystkie cele ISCSI z ISCSI-SERVER (adres IP 192.168.122.98), Uruchom następujące polecenie:
$ sudo ISCSIADM -Discovery -Mode -Type SendTargets -Portal 192.168.122.98
Jak widać, ISCSI celuje w IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 i IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2 są wymienione.
Jeśli nie skonfigurowałeś uwierzytelnienia, powinieneś mieć dostęp do ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 Z następującym poleceniem:
$ sudo ISCSIADM -MODE Węzeł - -celname iqn.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 -Login
W ten sam sposób możesz uzyskać dostęp do ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2 Z następującym poleceniem:
$ sudo ISCSIADM -MODE Węzeł - -celname iqn.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2 -login
Jeśli włączyłeś uwierzytelnianie dla ISCSI celuje w IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 i IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2, Powinieneś otrzymać komunikat o awarii autoryzacji, jak zaznaczono na zrzucie ekranu poniżej.
Aby skutecznie zalogować się do celów ISCSI z obsługą uwierzytelniania, ustaw metodę uwierzytelniania, nazwę użytkownika i hasło dla każdego celu ISCSI z obsługą uwierzytelniania.
Możesz ustawić metodę uwierzytelniania ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 do rozdz Z następującym poleceniem:
$ sudo ISCSIADM -MODE Węzeł - -celname iqn.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 --p aktualizacja -Node Node.sesja.Auth.AuthMethod --value Chap
Możesz ustawić nazwę użytkownika logowania ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 do Linuxhint1 Z następującym poleceniem:
$ sudo ISCSIADM -MODE Węzeł - -celname iqn.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 --p aktualizacja -Node Node.sesja.Auth.Nazwa użytkownika -wartość Linuxhint1
Możesz ustawić hasło logowania ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 do Secret1 Z następującym poleceniem:
$ sudo ISCSIADM -MODE Węzeł - -celname iqn.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 --p aktualizacja -Node Node.sesja.Auth.hasło -wartość secret1
Po zakończeniu konfigurowania metody uwierzytelniania, logowania nazwy użytkownika i hasła dla ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1, Powinieneś być w stanie z powodzeniem zalogować się do ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1:
$ sudo ISCSIADM -MODE Węzeł - -celname iqn.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 -Login
Po pomyślnym zalogowaniu się do ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1, Nowy dysk SCSI powinien być przymocowany do komputer iSCSI-CLIENT. Uwaga, może być inaczej w twoim przypadku:
$ sudo dmesg | Grep -i dołączone
Jak widać, do nowego urządzenia pamięci SDA o rozmiarze 1 GB jest dodawane do ISCSI-CLIENT komputer. Jest to wolumen ZFS Vol1, który udostępniłeś za pośrednictwem ISCSI:
$ sudo lsblk -e7 -d
W ten sam sposób ustaw metodę uwierzytelniania ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2 do rozdz Z następującym poleceniem:
$ sudo ISCSIADM -MODE Węzeł - -celname iqn.2021-08.com.Linuxhint.ISCSI: Pool1.vol2 --p aktualizacja -węzeł nazwy.sesja.Auth.AuthMethod --value Chap
Ustaw nazwę użytkownika logowania ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2 do Linuxhint2 Z następującym poleceniem:
$ sudo ISCSIADM -MODE Węzeł - -celname iqn.2021-08.com.Linuxhint.ISCSI: Pool1.vol2 --p aktualizacja -węzeł nazwy.sesja.Auth.Nazwa użytkownika -wartość Linuxhint2
Ustaw hasło logowania ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2 do Secret2 Z następującym poleceniem:
$ sudo ISCSIADM -MODE Węzeł - -celname iqn.2021-08.com.Linuxhint.ISCSI: Pool1.vol2 --p aktualizacja -węzeł nazwy.sesja.Auth.hasło -wartość secret2
Zaloguj się do ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2 Z następującym poleceniem:
$ sudo ISCSIADM -MODE Węzeł - -celname iqn.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2 -Login
Powinieneś być w stanie z powodzeniem zalogować się do ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2:
Po pomyślnym zalogowaniu się do ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2, Nowy dysku SCSI SDB powinien być przymocowany do komputer iSCSI-CLIENT. Uwaga, może być inaczej w twoim przypadku.
$ sudo dmesg | Grep -i dołączone
Jak widać, do nowego urządzenia pamięci SDB rozmiaru 2 GB jest dodawane do komputer iSCSI-CLIENT. Jest to wolumen ZFS Vol2, który udostępniłeś za pośrednictwem ISCSI:
$ sudo lsblk -e7 -d
Automatycznie montaż wspólnych wolumenów ZFS za pośrednictwem ISCSI:
Aby automatycznie zalogować się do celu ISCSI, będziesz musiał ustawić węzeł.właściwość uruchamiania celu ISCSI do automatycznego.
Ustawić węzeł.nieruchomość startupowa z ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 Aby automatycznie, uruchom następujące polecenie:
$ sudo ISCSIADM -MODE Węzeł - -celname iqn.2021-08.com.Linuxhint.ISCSI: Pool1.Vol1 --p aktualizacja -Node Node.Startup -wartość automatyczna
Ustawić węzeł.Własność uruchamiania ISCSI Target IQN.2021-08.com.Linuxhint.ISCSI: Pool1.Vol2 do automatycznego, Uruchom następujące polecenie:
$ sudo ISCSIADM -MODE Węzeł - -celname iqn.2021-08.com.Linuxhint.ISCSI: Pool1.vol2 --p aktualizacja -węzeł nazwy.Startup -wartość automatyczna
Wreszcie, włącz Usługa systemu Open-ISCSI Aby uruchamia się automatycznie w czasie rozruchu z następującym poleceniem:
$ sudo systemCtl włącza Open-ISCSI
Aby zmiany zaczęły się uruchomić komputer iSCSI-CLIENT Z następującym poleceniem:
$ sudo restart
Kiedyś Buty komputerowe ISCSI-CLIENT, Powinieneś zobaczyć Urządzenia pamięci SDA i SDB na komputer iSCSI-CLIENT Jak zaznaczono w zrzucie ekranu poniżej:
$ sudo lsblk -e7 -d
Wniosek:
W tym artykule pokazałem, jak tworzyć tomy ZFS i udostępniać je za pośrednictwem ISCSI. Pokazałem też, jak skonfigurować uwierzytelnianie dla celów ISCSI. Pokazałem ci, jak zdalnie zalogować się do celów ISCSI i uzyskać dostęp do wspólnych wolumenów ZFS.
Bibliografia:
[1] Ubuntu Manpage: TGTADM - Linux SCSI Cel Administration Narzędzie
[2] Ubuntu Manpage: TGT -Admin - Linux SCSI Cel Configuration Tool
[3] Ubuntu Manpage: ISCSIADM - Narzędzie administracyjne Open -ISCSI
[4] Service - ISCSI | Ubuntu
[5] Konwencje nazewnictwa ISCSI