Product SiteDocumentation Site

D.3. Наследование, блок <resources>
и повторное использование ресурсов

Для некоторых ресурсов может оказаться полезным наследование некоторых значений родительского ресурса; примером может служить сервис NFS. В примере D.5, “Настройка наследования и повторного использования ресурсов для сервиса NFS” рассматривается типовая конфигурация сервиса NFS, настройка повторного использования ресурсов и наследования.
<resources>
  <nfsclient name="bob" target="bob.test.com" options="rw,no_root_squash"/>
  <nfsclient name="jim" target="jim.test.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 and 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>
Пример D.5. Настройка наследования и повторного использования ресурсов для сервиса NFS

Если бы использовалась конфигурация без родительских/дочерних отношений, понадобилось бы сделать следующие настройки:
Тем не менее, в примере D.5, “Настройка наследования и повторного использования ресурсов для сервиса NFS” ресурсы типа NFS client, nfsclient:bob и nfsclient:jim определяются только один раз; ресурс NFS export, nfsexport:exportsтакже, определяется только один раз. Все необходимые для ресурсов атрибуты наследуются от родительских ресурсов. Поскольку наследуемые атрибуты являются динамическими (и не конфликтуют друг с другом), становится возможным их повторное использование - именно поэтому они определяются в блоке resources. На практике не всегда допустимо конфигурировать некоторые ресурсы в различных местах. Например, настройка ресурса файловой системы в нескольких местах может привести к монтированию одной файловой системы на разные узлы, что может вызвать проблемы.