Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

C.3. Vererbung, der Block, und Wiederverwendung von Ressourcen

Einige Ressourcen können davon profitieren, Werte von einer Elternressource zu erben; dies ist zum Beispiel üblicherweise bei einem NFS-Dienst der Fall. Beispiel C.5, »NFS-Dienst eingerichtet zur Ressourcen-Wiederverwendung und -Vererbung « zeigt eine typische NFS-Dienstkonfiguration, die zur Ressourcen-Wiederverwendung und -Vererbung eingerichtet ist.

Beispiel C.5. NFS-Dienst eingerichtet zur Ressourcen-Wiederverwendung und -Vererbung


    <resources>
        <nfsclient name="bob" target="bob.example.com" options="rw,no_root_squash"/>
        <nfsclient name="jim" target="jim.example.com" options="rw,no_root_squash"/>
        <nfsexport name="exports"/>
    </resources>
    <service name="foo">
        <fs name="1" mountpoint="/mnt/foo" device="/dev/sdb1" fsid="12344">
            <nfsexport ref="exports">  <!-- nfsexport's path and fsid attributes
                                            are inherited from the mountpoint &
                                            fsid attribute of the parent fs 
                                            resource -->
                <nfsclient ref="bob"/> <!-- nfsclient's path is inherited from the
                                            mountpoint and the fsid is added to the
                                            options string during export -->
                <nfsclient ref="jim"/>
            </nfsexport>
        </fs>
        <fs name="2" mountpoint="/mnt/bar" device="/dev/sdb2" fsid="12345">
            <nfsexport ref="exports">
                <nfsclient ref="bob"/> <!-- Because all of the critical data for this
                                            resource is either defined in the 
                                            resources block or inherited, we can
                                            reference it again! -->
                <nfsclient ref="jim"/>
            </nfsexport>
        </fs>
        <ip address="10.2.13.20"/>
    </service>

Wäre dieser Dienst flach (also ohne Eltern-/Kind-Relationen), müsste er wie folgt konfiguriert werden:
  • Der Dienst benötigte vier nfsclient-Ressourcen — eine pro Dateisystem (insgesamt zwei für Dateisysteme), und eine pro Zielrechner (insgesamt zwei für Zielrechner).
  • Der Dienst müsste den Exportpfad und die Dateisystem-ID für jeden nfsclient spezifizieren, was mögliche Fehlerquellen in die Konfiguration einbringt.
In Beispiel C.5, »NFS-Dienst eingerichtet zur Ressourcen-Wiederverwendung und -Vererbung « werden die NFS-Client-Ressourcen nfsclient:bob und nfsclient:jim jedoch nur einmal definiert; ebenso wird die NFS-Export-Ressource nfsexport:exports nur einmal definiert. Alle von den Ressourcen benötigten Parameter werden von der Elternressource geerbt. Da die vererbten Parameter dynamisch sind (und nicht miteinander in Konflikt stehen), ist es möglich, diese Ressourcen wiederzuverwenden — weshalb sie im Ressourcenblock definiert sind. Es ist nicht sehr praktisch, manche Ressourcen an mehreren Stellen zu konfigurieren. Wenn Sie z.B. eine Dateisystemressource an mehreren Stellen konfigurieren, kann dies dazu führen, dass ein Dateisystem in zwei Knoten eingehängt wird und dadurch Probleme verursacht.