Wyszukiwanie w witrynie

Utwórz scentralizowaną bezpieczną pamięć masową za pomocą obiektu docelowego/inicjatora iSCSI w systemie RHEL/CentOS 7 — część 12


iSCSI to protokół na poziomie blokowym służący do zarządzania urządzeniami pamięci masowej w sieciach TCP/IP, szczególnie na duże odległości. Obiekt docelowy iSCSI to zdalny dysk twardy prezentowany ze zdalnego serwera (lub) obiektu docelowego iSCSI. Z drugiej strony klient iSCSI nazywany jest inicjatorem i będzie miał dostęp do pamięci współdzielonej na komputerze docelowym.

W tym artykule wykorzystano następujące maszyny:

Serwer (docelowy):


Operating System – Red Hat Enterprise Linux 7
iSCSI Target IP – 192.168.0.29
Ports Used : TCP 860, 3260

Klient (Inicjator):


Operating System – Red Hat Enterprise Linux 7
iSCSI Target IP – 192.168.0.30
Ports Used : TCP 3260

Krok 1: Instalowanie pakietów w obiekcie docelowym iSCSI

Aby zainstalować pakiety potrzebne dla celu (klientem zajmiemy się później), wykonaj:


yum install targetcli -y

Po zakończeniu instalacji uruchomimy i włączymy usługę w następujący sposób:


systemctl start target
systemctl enable target

Na koniec musimy zezwolić na usługę w zaporze ogniowej:


firewall-cmd --add-service=iscsi-target
firewall-cmd --add-service=iscsi-target --permanent

I na koniec, nie możemy zapomnieć o umożliwieniu wykrywania obiektów docelowych iSCSI:


firewall-cmd --add-port=860/tcp
firewall-cmd --add-port=860/tcp --permanent
firewall-cmd --reload

Krok 2: Definiowanie jednostek LUN na serwerze docelowym

Przed przystąpieniem do definiowania jednostek LUN w obiektu docelowym musimy utworzyć dwa woluminy logiczne, jak wyjaśniono w części 6 serii RHCSA („Konfigurowanie pamięci systemowej ”).

Tym razem nazwiemy je vol_projects i vol_backups i umieścimy je w grupie woluminów o nazwie vg00, jak pokazano na rys. 1. Możesz to zrobić wybierz miejsce przydzielone każdemu LV:

Po utworzeniu jednostek LV jesteśmy gotowi zdefiniować jednostki LUN w obiektu docelowym, aby udostępnić je komputerowi klienckiemu.

Jak pokazano na ryc. 2, otworzymy powłokę targetcli i wydamy następujące polecenia, które utworzą dwie blokowe kopie zapasowe (lokalne zasoby pamięci reprezentujące jednostkę LUN, której faktycznie użyje inicjator) oraz Nazwa kwalifikowana Iscsi (IQN), metoda adresowania serwera docelowego.

Więcej szczegółów na temat struktury IQN można znaleźć na stronie 32 dokumentu RFC 3720. W szczególności tekst po dwukropku (:tgt1) określa nazwę celu, podczas gdy tekst przed (server:) wskazuje nazwę hosta celu wewnątrz domena.


targetcli
cd backstores
cd block
create server.backups /dev/vg00/vol_backups
create server.projects /dev/vg00/vol_projects
cd /iscsi
create iqn.2016-02.com.tecmint.server:tgt1

W powyższym kroku utworzono nową TPG (Target Portal Group) wraz z portalem domyślnym (parą składającą się z adresu IP i portu, na którym inicjatorzy może dotrzeć do celu) nasłuchuje na porcie 3260 wszystkich adresów IP.

Jeśli chcesz powiązać swój portal z konkretnym adresem IP (na przykład głównym adresem IP obiektu docelowego), usuń portal domyślny i utwórz nowy w następujący sposób (w przeciwnym razie pomiń następujące polecenia targetcli. style="color:red;">Pamiętaj, że dla uproszczenia je również pominęliśmy):


cd /iscsi/iqn.2016-02.com.tecmint.server:tgt1/tpg1/portals
delete 0.0.0.0 3260
create 192.168.0.29 3260

Teraz możemy przystąpić do tworzenia jednostek LUN. Pamiętaj, że korzystamy z utworzonych wcześniej kopii zapasowych (server.backups i server.projects). Proces ten ilustruje ryc. 3:


cd iqn.2016-02.com.tecmint.server:tgt1/tpg1/luns
create /backstores/block/server.backups
create /backstores/block/server.projects

Ostatnia część konfiguracji obiektu docelowego polega na utworzeniu listy kontroli dostępu w celu ograniczenia dostępu dla poszczególnych inicjatorów. Ponieważ nasza maszyna kliencka nosi nazwę „klient”, dołączymy ten tekst do IQN. Patrz Rys. 4, aby uzyskać szczegółowe informacje:


cd ../acls
create iqn.2016-02.com.tecmint.server:client

W tym momencie możemy powłokę targetcli wyświetlić wszystkie skonfigurowane zasoby, jak widać na ryc. 5:


targetcli
cd /
ls

Aby zamknąć powłokę targetcli, po prostu wpisz exit i naciśnij Enter. Konfiguracja zostanie automatycznie zapisana w pliku /etc/target/saveconfig.json.

Jak widać na ryc. 5 powyżej, mamy portal nasłuchujący na porcie 3260 wszystkich adresów IP zgodnie z oczekiwaniami. Możemy to sprawdzić za pomocą polecenia netstat (patrz Rys. 6):


netstat -npltu | grep 3260

To kończy konfigurację docelową. Możesz ponownie uruchomić system i sprawdzić, czy wszystkie ustawienia przetrwają ponowne uruchomienie. Jeśli nie, upewnij się, że otworzyłeś niezbędne porty w konfiguracji zapory i uruchomiłeś usługę docelową podczas rozruchu. Jesteśmy teraz gotowi do skonfigurowania Inicjatora i połączenia się z klientem.

Krok 3: Konfigurowanie inicjatora klienta

W kliencie będziemy musieli zainstalować pakiet iscsi-initiator-utils, który udostępnia demona serwera dla protokołu iSCSI (iscsid) oraz iscsiadm<, narzędzie administracyjne:


yum update && yum install iscsi-initiator-utils

Po zakończeniu instalacji otwórz plik /etc/iscsi/initiatorname.iscsi i zastąp domyślną nazwę inicjatora (komentowaną na Rys. 7) nazwą, która została wcześniej ustawiona w pliku ACL na serwerze (iqn.2016-02.com.tecmint.server:client).

Następnie zapisz plik i uruchom iscsiadm w trybie wykrywania, wskazując cel. Jeśli się powiedzie, to polecenie zwróci informacje o celu, jak pokazano na ryc. 7:


iscsiadm -m discovery -t st -p 192.168.0.29

Kolejny krok polega na ponownym uruchomieniu i włączeniu usługi iscsid:


systemctl start iscsid
systemctl enable iscsid

i kontaktowanie się z celem w trybie węzła. Powinno to skutkować wyświetleniem komunikatów na poziomie jądra, które po przechwyceniu przez dmesg pokazują identyfikację urządzenia, na podstawie której zdalne jednostki LUN zostały nadane w systemie lokalnym (sde i sdf na ryc. 8):


iscsiadm -m node -T iqn.2016-02.com.tecmint.server:tgt1 -p 192.168.0.29 -l
dmesg | tail

Od tego momentu możesz tworzyć partycje, a nawet LV (i systemy plików na nich), tak jak w przypadku każdego innego urządzenia pamięci masowej. Dla uproszczenia utworzymy na każdym dysku partycję podstawową, która zajmie całe dostępne miejsce i sformatujemy ją za pomocą ext4.

Na koniec zamontujmy /dev/sde1 i /dev/sdf1 odpowiednio na /projects i /backups ( pamiętaj, że te katalogi muszą zostać najpierw utworzone):


mount /dev/sde1 /projects
mount /dev/sdf1 /backups

Dodatkowo możesz dodać dwa wpisy w pliku /etc/fstab, aby oba systemy plików były montowane automatycznie podczas rozruchu przy użyciu UUID każdego systemu plików zwracanego przez blkid mocny>.

Pamiętaj, że należy użyć opcji montowania _netdev, aby odłożyć montowanie tych systemów plików do czasu uruchomienia usługi sieciowej:

Możesz teraz używać tych urządzeń tak samo, jak innych nośników danych.

Streszczenie

W tym artykule omówiliśmy, jak skonfigurować obiekt docelowy iSCSI oraz inicjator w dystrybucjach RHEL/CentOS 7. Choć pierwsze zadanie nie wchodzi w zakres kompetencji wymaganych na egzaminie EX300 (RHCE), to jest potrzebne do realizacji drugiego tematu.

Nie wahaj się dać nam znać, jeśli masz jakieś pytania lub komentarze dotyczące tego artykułu – napisz do nas, korzystając z poniższego formularza komentarza.

Chcąc skonfigurować obiekt docelowy iSCSI i inicjator klienta w systemie RHEL/CentOS 6, postępuj zgodnie z tym przewodnikiem: Konfigurowanie scentralizowanej pamięci iSCSI za pomocą inicjatora klienta.