X

Neuigkeiten, Best Practices, Hinweise auf Events zu Oracle Solaris auf Deutsch.

Solaris Cluster 4.4 in VirtualBox (4) - Zonen Cluster

Detlef Drewanz
Master Principal Sales Consultant

Und hier folgt der 4.Teil aus der Reihe Solaris Cluster in (Virtual)Box. Dieses Mal geht es (nur) um:

  • Zonen Cluster

Konfigurationsbild

Nach dem Setup von Teil 3 liegt die folgende Konfiguration vor, mit der hier weitergearbeitet wird.

Zonen Cluster

Nach der Einrichtung eines HA-NFS Service und einer Failover Zone in Teil 3, geht es jetzt an ein weniger bekanntes und weniger benutztes Feature von Solaris Cluster 4 - den Zonen Cluster. In diesem kleinen Setup sind die Möglichkeiten begrenzt, aber es reicht immerhin, einen Zonen Cluster aufzusetzen und sich dieses Feature genauer anzusehen.

Was genau ist denn ein Zonen Cluster ?

Es handelt sich bei den Zonen Clustern um einen Cluster aus Solaris Non-global Zones. Hier können Solaris 11 Zonen oder Branded Solaris 10 Zonen verwendet werden. (Mehr zu Solaris 10 Branded Zones im nächsten Teil). So können mehrere virtuelle Cluster erzeugt werden, die sich eine gemeinsame Cluster Infrastruktur in der globalen Zone teilen - dem Globalen Cluster. Die Zonen Cluster haben nahezu alle der Eigenschaften der Non-global Zones. Wer z.B. einen Zonen Cluster aus Solaris 10 Branded Zones erzeugt, kann darin die Solaris Cluster 3.3 Software installieren und so einen virtuellen Solaris Cluster 3.3 erzeugen. Das kann z.B. für Migrationen von Altsystemen sehr sinnvoll sein. ... aber mehr dazu im nächsten Teil ...

Durch die Erzeugung von virtuellen Clustern mit eigenen administrativen Rechten, der Möglichkeit zur "Gewaltenteilung", der umfassenden Isolation in Zonen und eigenen IP-Adressen über eigene Netzwerk Ports, ergeben sich neue Möglichkeiten zur Konsolidierung von Clusterumgebungen. ... und in den Zonen Clustern sind eine Reihe von Data Services unterstützt. Die Details dazu finden sich im Solaris Cluster Compatibility Guide.

Wie funktionieren Zonen Cluster prinzipiell ? Hier ein paar Stichpunkte:

  • Jeder Zonen Cluster bekommt einen Namen.
  • Ein Zonen Cluster besteht sinnvoller Weise aus zwei oder mehr Non-global Zones.
  • Die Zonen sind über globale Cluster Knoten verteilt.
  • Je Zonen Cluster kann nur eine Zone je globalem Knoten eingerichtet werden.
  • Die Zone des Zonen Clusters auf einem globalen Knoten heisst so, wie der Zonen Cluster selbst.
  • In die Zonen werden Teile der Cluster Software installiert und so werden bestimmte Clusterfunktionalitäten in den Zonen des Zone Clusters verfügbar. Das ist ein wichtiger Unterschied zu den Failover Zonen, die nur als "BlackBox" funktionieren.
  • Die Zonen nutzen die "Infrastruktur" des globalen Clusters.
  • In einem Zonen Cluster können Data Services installiert werden.

Um sich das konkret anzusehen, ist der Cluster in (Virtual)Box bestens geeignet. Also los ! Zunächst wieder ein bischen Planung:

  • Der Zonen Cluster soll zc11 heißen.
  • Es sollen für zc11 Native Zones mit exclusive IP-Instanzen verwendet werden - also auch mit separaten Netzwerkports je Zone.
  • Das zoneroot der Zonen soll aus Gründen der Einfachheit im rpool der Globalen Zonen liegen.
  • Im Zonen Cluster zc11  sollen an beiden Zonen Cluster Knoten bestimmte Daten aus dem globalen Zpool (Siehe Teil 2) verfügbar sein.

Ok, soweit die Planung. Jetzt geht es an die Umsetzung:

Grundinstallation Zonen Cluster

  1. Die Erzeugung eines Zone Clusters kann auf unterschiedlichen Wegen erfolgen:

    - Erzeugung einer Nativen Zone auf jedem Cluster Knoten mit anschließendem "Import" in einen Zonen Cluster
    - Erzeugung des Zonen Cluster mit dem Wizard  clsetup
    - Manuelle Konfiguration und Installation des Zonen Clusters mit clzonecluster
    -
    Erzeugung des Zone Clusters mit dem Solaris Cluster Administration GUI

    Für diesen Teil soll der clsetup Wizard in Kombination mit clzonecluster zum Einsatz kommen.
  2. Zunächst steht die Aufgabe, jeder Zone des zc11 einen eigenen Netzwerkport für die exclusive IP-Instanz zu konfigurieren. Für eine Native Solaris 11 Zone wäre dafür das anet-Property der Zonenkonfiguration nutzbar. Das ist jedoch nicht von clsetup unterstützt (Die Behandlung der vielen möglichen Optionen für anet durch clsetup wäre sehr komplex und würde den Aufwand kaum rechtfertigen). Es gibt zwei Alternativen damit umzugehen:

    - Man erzeugt zunächst die Konfigurationen für den Zone Cluster und trägt vor der Installation des Zonen Cluster das Property anet mit evenuellen Optionen manuell nach.
    - Man erzeugt in der globalen Zone ein VNIC und benutzt dieses während der Zonen Cluster Konfiguration als separaten Netzwerk Port.

    Für dieses Setup wird die Erzeugung von separaten VNIC gewählt. Also wird zunächst auf jedem Knoten ein VNIC für den Zonen Cluster erzeugt. Auch hier wird aus Gründen der Vereinfachung für dieses Setup auf Redundanz verzichtet.
    @nodea # dladm create-vnic -l net0 zc11_net0
    @nodeb # dladm create-vnic -l net0 zc11_net0
    
  3. Nun wird clsetup benutzt, um den Zone Cluster zu konfigurieren. Der Wizard ist sehr einfach und führt durch die Konfiguration des Zonen Clusters. Wie oben beschrieben, wird dabei auf nodea und nodeb jeweils eine Zone zc11 konfiguriert, die zusammen den Zone Cluster zc11 bilden. Die folgenden Eingaben werden für clsetup benutzt. clsetup wird jedoch nur als Wizard für die Konfiguration, aber nicht für die Installation des Zonen Clusters benutzt.
    # clsetup
    8) Zone Cluster
       1) Create Zone Cluster
          Zone cluster name: zc11
          Zonepath: /system/zones/zc11
          Enable_priv_net: false
          Physical hosts for zone cluster nodes: nodeb, nodea
          Physical Host nodea:
                        Hostname: zc11-nodea
                        Net_physical: zc11_net0
          Physical Host nodeb:
                        Hostname: zc11-nodeb
                        Net_physical: zc11_net0
       c) Create Zone Cluster
       ... Continue to install the zone cluster ? no
  4. Jetzt sieht man an den beiden globalen Knoten die konfigurierten Zonen zc11 und kann sich auch die Zonenkonfiguration ansehen.
    @nodea # zoneadm list -cv
    ID   NAME STATUS     PATH                 BRAND   IP
     0 global running    /                    solaris shared
     - HAzone configured /system/zones/HAzone solaris excl
     - zc11   configured /system/zones/zc11   solaris excl
    
    @nodea # zonecfg -z zc11 info
    zonename: zc11
    zonepath: /system/zones/zc11
    brand: solaris
    autoboot: true
    file-mac-profile: none
    net:
            physical: zc11_net0
    attr:
            name: cluster
            type: boolean
            value: true
    
  5. Die Installation des Zonen Cluster kann mit clzonecluster erfolgen. Dabei wird z.B. noch ein angepasstes Zonen Manifest zur Installation verwendet werden, in das man gleich noch Pakete aufnehmen kann, die gleich mitinstalliert werden sollen. Dazu wird das Standard Zonen Manifest kopiert und erweitert. (In diesem Setup sieht die Erweiterung sehr "übersichtlich" aus.) Hier wird gleich die Cluster Software mit in den Zonen Cluster installiert.
    # cp /usr/share/auto_install/manifest/zone_default.xml /tmp/zc11-manifest.xml
    # vi /tmp/zc11-manifest.xml
         <software_data action="install">
           <name>pkg:/group/system/solaris-small-server</name>
           <name>ha-cluster/group-package/ha-cluster-full</name>
           <name>entire</name>
        </software_data>
    
    # clzc install -M /tmp/zc11-manifest.xml zc11
    
    # clzc status zc11
    Name   	Brand    Node Name   	Zone Host Name   Status    Zone  Status
    ----   	-----    ---------   	--------------   ------    -----------
    zc11   	solaris  nodea       	zc11-nodea       Offline   Installed
                     nodeb       	zc11-nodeb       Offline   Installed
    
  6. Jetzt kann der Zonen Cluster gebootet werden. Da keine System Configuration Datei bei der Installation mit angegeben wurde, muss beim ersten Boot der Zonen die Systemkonfiguration manuell ausgeführt werden.
    # clzc boot zc11
    @nodea # zlogin -C zc11
    Initiale Konfiguration: hostname: zc11-nodea; IP@zc11_net0: 192.168.175.170
    
    @nodeb # zlogin -C zc11
    Initiale Konfiguration: hostname: zc11-nodeb; IP@zc11_net0: 192.168.175.171
    
  7. Die Grundinstallation des Zone Clusters ist jetzt fertig ! ... fast ... aber dazu mehr im nächsten Schritt. Zunächst kann man sich jetzt den Status des Zonen Cluster aus Sicht des Globalen Clusters und aus Sicht des Zonen Clusters ansehen.
    @zc11-nodea # /usr/cluster/bin/cluster status
    === Cluster Resource Groups ===
    Group Name       Node Name       Suspended      State
    ----------       ---------       ---------      -----
    === Cluster Resources ===
    Resource Name       Node Name       State       Status Message
    -------------       ---------       -----       --------------
    
    @nodea # cluster status -t zonecluster
    === Zone Clusters ===
    --- Zone Cluster Status ---
    Name   Brand     Node Name   Zone Host Name   Status   Zone Status
    ----   -----     ---------   --------------   ------   -----------
    zc11   solaris   nodeb       zc11-nodeb       Online   Running
                     nodea       zc11-nodea       Online   Running
    
  8. Eine wichtige Kleinigkeit muss nun in den Zonen noch nachgetragen werden. Die Public Network Management (PNM) Interfaces einer Zone, die für Data Service genutzt werden, müssen entweder IPMP Gruppen oder Link Aggregationen sein. Wird ein VNIC für eine Zone verwendet, muss es in der Globalen Zone auf einer Link Aggregation erzeugt werden. Die zc11_net0 VNICs sind nicht auf einer Link Aggregation erzeugt worden, also muss in den zc11 Zonen eine IPMP Gruppe erzeugt werden. Das ist etwas nachträgliche Umbau-Arbeit.
    @zc11-nodea # ipadm delete-ip zc11_net0
    @zc11-nodea # ipadm create-ip zc11_net0
    @zc11-nodea # ipadm create-ipmp -i zc11_net0 sc_ipmp0
    @zc11-nodea # ipadm create-addr -T static -a 192.168.175.170/24 sc_ipmp0/v4
    
    @zc11-nodeb # ipadm delete-ip zc11_net0
    @zc11-nodeb # ipadm create-ip zc11_net0
    @zc11-nodeb # ipadm create-ipmp -i zc11_net0 sc_ipmp0
    @zc11-nodeb # ipadm create-addr -T static -a 192.168.175.171/24 sc_ipmp0/v4
    
  9. Jetzt ist der Zonen Cluster fertig aufgesetzt.

Zugriff auf das Globale ZFS im Zonen Cluster

Nachdem der Zonen Cluster fertig aufgesetzt ist, wird noch - wie geplant - der Zugriff der Zonen Cluster Knoten auf das Globale ZFS eingerichtet. In Teil 2 ist dafür bereits der Globale Zpool gpool eingerichtet worden. Die Freigabe im Zonen Cluster erfolgt in zwei Schritten.

  1. Nach der Erzeugung des Filesystems für diesen Zonen Cluster, wird zunächst aus der Ebene des Globalen Clusters festgelegt, auf welche zusätzlichen Ressourcen der jeweilige Zonen Cluster zugreifen darf. Dazu wird die Zonen Cluster Konfiguration erweitert.
    # cldg status gpool
    Device Group Name     Primary     Secondary     Status
    gpool                 nodea       nodeb         Online
    
    @nodea # zfs create gpool/zc11
    
    # clzc configure zc11
    clzc:zc11> add fs
    clzc:zc11:fs> set dir=/zc11
    clzc:zc11:fs> set special=/gpool/zc11
    clzc:zc11:fs> set type=lofs
    clzc:zc11:fs> end
    clzc:zc11> commit
    clzc:zc11> exit
    
    # clzc apply zc11
    
  2. Danach wird im Zonen Cluster eine Cluster Ressource konfiguriert, die das Filesystem in den Zonen Cluster mounted. Da es sich hier um ein Globales ZFS handelt, wird das Filesystem als Scalable Mountpunkt in beiden Zonen gleichzeitig gemounted.
    @zc11 # /usr/cluster/bin/clrg create -S gzfs-rg
    @zc11 # /usr/cluster/bin/clrs create -g gzfs-rg -t SUNW.HAStoragePlus\
                                  -p FileSystemMountPoints=/zc11 gzfs-rs
    @zc11 # /usr/cluster/bin/clrg online -M gzfs-rg
    
  3. Eine Überprüfung zeigt die Ressource und das Verzeichnis im Zonen Cluster online und verfügbar.
    @zc11 # /usr/cluster/bin/cluster status
    === Cluster Resource Groups ===
    Group Name       	Node Name       	Suspended      	State
    ----------       	---------       	---------      	-----
    gzfs-rg          	zc11-nodeb      	No             	Online
                     	zc11-nodea      	No             	Online
    === Cluster Resources ===
    Resource Name       	Node Name       	State       Status Message
    -------------       	---------       	-----       --------------
    gzfs-rs             	zc11-nodeb      	Online      Online
                        	zc11-nodea      	Online      Online
    
    @ zc11-nodea # touch /zc11/test1 /zc11/test2
    @ zc11-nodeb # ls /zc11
    test1 test2
    
  4. Soweit zur Einrichtung eines Zonen Clusters. Im nachfolgenden können im Zonen Cluster zertifizierte Data Services eingerichtet werden, z.B. der Apache Data Service nach dieser Anleitung.

Nach Abschluß aller Tests ist es in diesem kleinen Setup sehr sinnvoll, den Zonen Cluster wieder permanent abzuschalten, um Ressourcen für weitere Tests zu sparen. Ein einfaches clzc halt zc11 würde ggf. reichen, aber ein sauberes Shutdown sieht besser aus. Danach wird das Autoboot für den Zonen Cluster abgeschaltet.

# zlogin zc11 "/usr/cluster/bin/cluster shutdown -g0 -y"
# clzc configure zc11
clzc:zc11> set autoboot=false
clzc:zc11> commit
clzc:zc11> exit

Soviel in diesem Beitrag zur Einrichtung eines Nativen Zonen Clusters. Im nächsten Beitrag geht es mit Failover Solaris 10 Branded Zones und Solaris 10 Branded Zonen Clustern weiter.

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.Captcha
Oracle

Integrated Cloud Applications & Platform Services