C.2. Порядок запуска параллельных и дочерних ресурсов

Ресурс «service» определяет порядок запуска и остановки дочерних ресурсов в соответствии с атрибутом «child type»:
  • Атрибут дочернего типа указан (типовой ресурс). Если в ресурсе типа «service» явно задан тип дочернего ресурса, такой дочерний ресурс называется типовым. Тип позволяет явно определить порядок запуска и остановки дочернего ресурса.
  • Атрибут типа не указан (нетиповой ресурс). Если в ресурсе типа «service» тип дочернего ресурса не задан, такой ресурс называется нетиповым. Ресурс службы не контролирует порядок запуска и остановки нетиповых ресурсов. Они запускаются и останавливаются в соответствии с порядком следования в файле /etc/cluster/cluster.conf. К тому же, запуск нетиповых ресурсов начинается только после запуска ресурсов с определенным значением типа, а их остановка происходит до остановки типовых ресурсов.

Примечание

Единственным ресурсом, где определяется порядок запуска и остановки типовых дочерних ресурсов, является ресурс службы.
Раздел C.2.1, «Запуск и остановка типовых дочерних ресуров» содержит дополнительную информацию о порядке запуска и остановки типовых дочерних ресуров, а Раздел C.2.2, «Запуск и остановка нетиповых дочерних ресуров» — о нетиповых ресурсах.

C.2.1. Запуск и остановка типовых дочерних ресуров

Атрибут «type» содержит значения от 1 до 100, определяющие порядок запуска и остановки ресурсов. Чем меньше значение, тем раньше ресурс запускается или останавливается. Таблица C.1, «Запуск и остановка разных типов ресурсов» содержит список значений для разных типов ресурсов, а Пример C.2, «Фрагмент service.sh с определениями значений запуска и остановки ресурсов» демонстрирует пример значений в service.sh. Сначала происходит запуск ресурсов типа LVM, затем ресурсов файловых систем, сценариев и т.д.

Таблица C.1. Запуск и остановка разных типов ресурсов

Ресурс Тип Порядок запуска Порядок остановки
LVM lvm 1 9
Файловая система fs 2 8
GFS2 clusterfs 3 7
ФС NFS netfs 4 6
Экспорт NFS nfsexport 5 5
Клиент NFS nfsclient 6 4
IP-адрес ip 7 2
Samba smb 8 3
Сценарий script 9 1

Пример C.2. Фрагмент service.sh с определениями значений запуска и остановки ресурсов

<special tag="rgmanager">
    <attributes root="1" maxinstances="1"/>
    <child type="lvm" start="1" stop="9"/>
    <child type="fs" start="2" stop="8"/>
    <child type="clusterfs" start="3" stop="7"/>
    <child type="netfs" start="4" stop="6"/>
    <child type="nfsexport" start="5" stop="5"/>
    <child type="nfsclient" start="6" stop="4"/>
    <child type="ip" start="7" stop="2"/>
    <child type="smb" start="8" stop="3"/>
    <child type="script" start="9" stop="1"/>
</special>
Порядок запуска и остановки ресурсов одного типа определяется положением соответствующей записи в файле /etc/cluster/cluster.conf (см. Пример C.3, «Запуск и остановка ресурсов одного типа»).

Пример C.3. Запуск и остановка ресурсов одного типа

<service name="foo">
  <script name="1" .../>
  <lvm name="1" .../>
  <ip address="10.1.1.1" .../>
  <fs name="1" .../>
  <lvm name="2" .../>
</service>

C.2.1.1. Порядок запуска типовых ресурсов

В приведенном выше примере (см. Пример C.3, «Запуск и остановка ресурсов одного типа») запуск ресурсов производится в следующем порядке:
  1. lvm:1 — ресурс LVM. Ресурсы LVM запускаются в первую очередь. lvm:1 (<lvm name="1" .../>) запускается первым среди прочих ресурсов LVM, так как он является первым в списке ресурсов службы foo в файле /etc/cluster/cluster.conf.
  2. lvm:2 — ресурс LVM. Ресурсы LVM запускаются в первую очередь. lvm:2 (<lvm name="2" .../>) запускается после lvm:1 , так как в списке ресурсов службы foo он следует за lvm:1.
  3. fs:1 — ресурс файловой системы. Если бы в состав foo входили другие ресурсы этого типа, их запуск происходил бы в порядке следования в списке ресурсов службы foo в файле /etc/cluster/cluster.conf.
  4. ip:10.1.1.1 — IP-адрес. Если бы для foo было определено несколько ресурсов этого типа, их запуск происходил бы в порядке следования в файле /etc/cluster/cluster.conf.
  5. script:1 — ресурс типа «script». Если бы для foo было определено несколько ресурсов этого типа, их запуск происходил бы в порядке следования в файле /etc/cluster/cluster.conf.

C.2.1.2. Порядок остановки ресурсов согласно типу

В приведенном выше примере (см. Пример C.3, «Запуск и остановка ресурсов одного типа») остановка ресурсов производится в следующем порядке:
  1. script:1 — ресурс типа «script». Если бы для foo было определено несколько ресурсов этого типа, их остановка происходила бы в порядке, обратном тому, в котором ресурсы этого типа были бы перечислены в файле /etc/cluster/cluster.conf.
  2. ip:10.1.1.1 — IP-адрес. Если бы для foo было определено несколько ресурсов этого типа, их запуск происходил бы в порядке, обратном тому, в котором ресурсы этого типа были бы перечислены в файле /etc/cluster/cluster.conf.
  3. fs:1 — ресурс файловой системы. Если бы для foo было определено несколько ресурсов этого типа, их запуск происходил бы в порядке, обратном тому, в котором ресурсы этого типа были бы перечислены в файле /etc/cluster/cluster.conf.
  4. lvm:2 — ресурс LVM. Ресурсы LVM останавливаются последними. lvm:2 (<lvm name="2" .../>) останавливается до lvm:1 , так как в списке ресурсов службы foo он следует за lvm:1.
  5. lvm:1 — ресурс LVM. Ресурсы LVM останавливаются последними. lvm:1 (<lvm name="1" .../>) останавливается после lvm:2 , так как в списке ресурсов службы foo он определен перед lvm:1.