C.3. Herencia, los "recursos" Bloques y reutilización de recursos
Algunos recursos se benefician al heredar valores de un recurso de padre; es decir comúnmente el caso en un servicio NFS. El Ejemplo C.5, “Configuración de servicio NFS para reutilización y herencia” muestra una configuración de servicio NFS típica, establecida para reutilización de recurso y herencia.
Ejemplo C.5. Configuración de servicio NFS para reutilización y herencia
<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>
Si el servicio fuera plano (es decir, sin relaciones padre/hijo), se necesitaría configurarlo así:
- El servicio necesitaría cuatro recursos nfsclient — uno por sistema de archivos (un total de dos para sistemas de archivos), y uno por máquina de destino (un total de dos para máquinas de destino).
- El servicio necesitaría especificar la ruta de exportación y el ID del sistema de archivos para cada nfsclient, el cual introduce posibilidades de errores en la configuración.
Sin embargo, en el Ejemplo C.5, “Configuración de servicio NFS para reutilización y herencia” los recursos de cliente NFS nfsclient:bob y nfsclient:jim se definen una sola vez; igualmente, el recurso de exportación NFS nfsexport:exports se define una sola vez. Todos los atributos requeridos por los recursos se heredan de recursos padres. Ya que los atributos heredados son dinámicos (y no entran en conflicto con ningún otro), es posible reutilizar esos recursos — los cuales están definidos en el bloque de recursos. No es práctico configurar algunos recursos en varios sitios. Por ejemplo, si configura un recurso de sistema de archivos en varios sitios puede ocasionar problemas, puesto que puede resultar montando un sistema de archivos en dos nodos.