Bisher beschränkte sich diese Anleitung auf ein Target (Server) und einen Initiator (Client). In produktiven Umgebungen sind aber meist mehrere Clients mit Speicher zu bedienen. Um zu vermeiden, dass ein Client auf ein Blockdevice zugreift, das nicht für ihn vorgesehen ist, gibt es das LUN-Masking. Es macht explizit eine Logical Unit nur den vorgesehenen Clientsystemen bekannt. Alle anderen potenziellen Clients sehen die Logical Unit nicht, auch wenn sie sich im gleichen IP-Bereich bewegen und sogar mit dem Server verbinden können.
In der Regel wird LUN-Masking pro Logical Unit nur auf einen Initiator angewendet, aber beim Einsatz von Cluster-fähigen Dateisystemen kann der Administrator auch mehreren Clients zugleich dieselbe Logical Unit zuweisen.
Das Verfahren von LUN-Masking ist sehr einfach. Man weist der Logical Unit explizit das veröffentlichende Target und den konsumierenden Initiator (Host) zu. Die Adressierung erfolgt über die bei iSCSI übliche IQN. In COMSTAR erstellen Sie hierzu eine Target Group (TG) und eine Host Group (HG), denen Sie die entsprechenden IQNs hinzufügen. Im letzten Schritt veröffentlichen Sie die Logical Unit unter Einbeziehung der oben angelegten Host und Target Group ( Listing 5 ).
Listing 5
LUN-Masking
Auf einem Ubuntu-9.10-Linux-System findet der folgende Befehl die iSCSI-Initiator-IQN heraus:
# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.1993-08.org.debian:01:e8643eb578bf
Die IQN des Open-Solaris-COMSTAR-iSCSI-Target ermittelt dagegen:
# itadm list-target TARGET NAME STATE SESSIONS iqn.1986-03.com.sun:02:8f4cd1fa-b81d-c42b-c008-a70649501262 online 1
Ab sofort ist die Logical Unit ausschließlich über das Target mit der IQN
»iqn.1986-03.com.sun:02:8f4cd1fa-b81d-c42b-c008-a70649501262
«
und nur für den Initiator mit der IQN
»iqn.1993-08.org.debian:01:e8643eb578bf
«
erreichbar. Hinzu kommt, dass der Logical Unit die Logical Unit Number (LUN) 1 zugewiesen ist. Diese Nummer ist vergleichbar mit der typischen SCSI-ID eines SCSI-Bussystems. Jedem weiteren Blockdevice, das Sie über das obige Target veröffentlichen, müssen Sie eine eindeutige LUN zuordnen.
Selbstverständlich können Sie der zuvor erstellten Host oder Target Group weitere Systeme hinzufügen. In einem Cluster-System fügen Sie beispielsweise mehrere Hosts der Host-Gruppe hinzu, damit alle Systeme im Cluster die Logical Unit sehen können. Änderungen an der Target Group sind dagegen eher ungewöhnlich.
COMSTAR kann auch mehrere Targets verwalten. Sie dürfen jedem Target eine beliebige Anzahl von Blockdevices beziehungsweise Logical Units zuweisen, die über die LUN eindeutig adressiert sind. Ein Target ist dagegen immer einer so genannten Target Portal Group (TPG) zugeordnet. Standardmäßig weist COMSTAR einem neuen Target die TPG
»default
«
zu. Ein Aufruf von
»itadm list-target -v
«
gibt Aufschluss über die aktuelle Zuordnung des Target. Im Beispielfall sehen Sie, dass das Target der TPG
»default
«
angehört (
Listing 6
).
Listing 6
itadm list-target
Eine TPG beschreibt die IP-Verbindungsdaten in Form von IP-Adresse und IP-Port – im iSCSI-Fachjargon auch iSCSI-Portal genannt –, über das die zugeordneten Targets erreichbar sind. Die Standardeinstellung
»default
«
bedeutet demnach, dass ein Target über alle aktiven IP-Schnittstellen jeweils über den iSCSI-Standardport 3260 erreichbar ist. Verfügt das Target-System zum Beispiel über zwei Ethernet-Schnittstellen, denen Sie jeweils eine eigene IP-Adresse zugewiesen haben, können Sie die veröffentlichten Logical Units über beide Schnittstellen am Port 3260 erreichen.
Abbildung 1
veranschaulicht die Zusammenhänge der Target Portal Group.
Mit diesen Mitteln sind Sie im Stande, mehrere Targets über mehrere IP-Netze (IP-SAN) zu veröffentlichen. So können Sie zum Beispiel logisch zueinander gehörige Systeme besser organisieren, vergleichbar mit dem Zoning in Fibre-Channel-SANs. Daneben erreichen Sie auch eine Lastverteilung über alle installierten Ethernet-Schnittstellen. Derzeit ist iSCSI ja meist noch auf 1-GBit-Ethernet beschränkt. Mit dem Einzug von 10-GBit-Ethernet steht allerdings auch einzelnen iSCSI-Portalen genügend Bandbreite zur Verfügung.
Wenn Sie zum Beispiel das Target auf eine zweite Ethernet-Schnittstelle legen möchten, fügen Sie der virtuellen Maschine einen weiteren Netzwerkadapter hinzu. Im nächsten Schritt ordnen Sie der Netzwerkschnittstelle analog zur primären Netzwerkkarte eine statische IP-Adresse zu:
# ifconfig e1000g1 plumb up # ifconfig e1000g1 10.20.30.1 netmask 255.255.255.0 # echo 10.20.30.1 > /etc/hostname.e1000g1 # echo 10.20.30.0 255.255.255.0 >> /etc/netmasks
Dem Linux-Clientsystem fügen Sie ebenfalls einen entsprechenden Netzwerkadapter hinzu, der dem gleichen LAN-Segment wie die neue Netzwerkschnittstelle des Open-Solaris-Systems angehört. Achten Sie darauf, die Schnittstelle so zu konfigurieren, dass beide Ethernet-Schnittstellen über IP miteinander kommunizieren können.