forked from cbsd/cbsd-wwwdoc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwf_jstop_jstart.html
57 lines (54 loc) · 7.6 KB
/
wf_jstop_jstart.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<h1><span>Запуск и останов клетки</span></h1>
<h2><a name="jstart_cmd">Команда jstart, jrestart, jorder</a></h2>
<div class="block">
<pre class="brush:bash;ruler:true;">
% cbsd jstart jname=jail1
% cbsd jstart jail1 jail2 ... jailX
% cbsd jstop jname=jail1
% cbsd jstop jail1 jail2 ... jailX
% cbsd jrestart jail1
% cbsd jorder
</pre>
<strong>Описание</strong>:
<p>Запуск клеток происходит при запуске cbsd/сервера автоматически, если параметр <strong>astart</strong> (auto-start) соответствующего jail установлен в 1. Изменить этот параметр можно через <strong>cbsd jconfig</strong> или <strong>cbsd jset</strong>. При остановке сервера или сервиса <strong>cbsdd</strong>, автоматически останаваливаются все запущенные клетки. Запуск jail вручную производится командой:</p>
<pre class="brush:bash;ruler:true;">
% cbsd jstart jname=jail1
</pre>
<p>либо</p>
<pre class="brush:bash;ruler:true;">
% cbsd jstart jail1
</pre>
<p>либо</p>
<pre class="brush:bash;ruler:true;">
% cbsd jstart jail1 jail2 jail3 ..
</pre>
<p>(для запуска нескольких клеток одной командой)</p>
<p>Если настройках <strong>CBSD</strong> ( изменить это поведение можно в cbsd initenv-tui ) параметр <strong>parallel=0</strong>, то в случае запуска нескольких клеток, запуск/останов будет проходить последовательно. Это не всегда удобно и даже может быть опасно, поскольку любая ошибка внутри запускаемой клетки в rc-скриптах, которая приводит к паузе, способна блокировать запуск/останов следующих клеток. В том случае, если <strong>parallel</strong> имеет ненулевое значение, каждая следующая клетка будет запускаться через <strong>N</strong> секунд после запуска предыдущей, где <strong>N</strong> — значение параметра <em>parallel</em>. По истечению этого таймаута, не зависимо от того, успела ли предыдущая клетка запустится полностью, будет стартовать следуюзая клетка. </p>
<p>Для останова клеток используется команда <strong>jstop</strong>, с аналогичным синтаксисом и поведением:</p>
<pre class="brush:bash;ruler:true;">
% cbsd jstop jname=jail1
</pre>
<p>либо</p>
<pre class="brush:bash;ruler:true;">
% cbsd jstop jail1
</pre>
<p>либо</p>
<pre class="brush:bash;ruler:true;">
% cbsd jstop jail1 jail2 jail3 ..
</pre>
<p>(для останова нескольких клеток одной командой)</p>
<p>Если аргумент у команды jstart/jstop/jrestart отсутствует, будет выведет соответствующий список всех остановленных или запущенных клеток для интерактивного выбора</p>
<p>Когда jail запускается, он создает лок файл, признак того, что jail рабочий в виде файла <em>${jailsysdir}/${jname}/locked</em> в котором записывается имя ноды.
Этот признак используется в случае, когда данный jail презентован нескольким нодам, данные клетки находятся на DFS ( NFS, glusterfs и тд) и любая нода в состоянии его запустить.
Данный лок гарантирует, что при наличие той же клетки на второй ноде, он запущен не будет.</p>
<p>При большом количестве клеток (особенно баз данных, с такими сервисами как MySQL, redis, cassandra и тд), следует иметь ввиду, что низкое значение <strong>parallel</strong> (например, меньше 5 секунд) может породить очень большую дисковую I/O нагрузку, что в сумме может увеличить время запуска всех клеток, чем если бы они запускались последовательно или с более высоким таймаутом. Дополнительно, когда через shutdown команду гасится сервер с большим количеством клеток/сервисов, следует принять во внимание низкий таймаут что по-умолчанию на выполнение rc.shutdown последовательности. В связи с этим, процесс <strong>init</strong> может прервать выполнение rc-скриптов по этому таймауту, что приведет к некорректному останову клеток. В случае баз данных это может приводить к несохранению или повреждению данных. Чтобы этого избежать, <strong>/etc/rc.conf</strong> мастер-системы следует регулировать параметр <strong>rcshutdown_timeout</strong> до более приемлемого значения (по-умолчанию: 90 секунд) При отсутствии <strong>rcshutdown_timeout</strong> в системном <strong>/etc/rc.conf</strong>, <strong>cbsd initenv</strong> выставит этот параметр на свое усмотрение автоматически.</p>
<p>Также, следует иметь ввиду, что при использовании zfs features ( регулируется через cbsd inienv-tui только на файловой системе ZFS ) неактивная клетка может быть размонтирована. Те, каталог <em><strong>$workdir/</strong>jails-data/jail1-data</em> будет пуст. Если в таком случае требуются данные клетки без ее запуска, по команде <strong>zfs list</strong> можно посмотреть имя соостветствующей файловой системы и выполнить zfs mount <strong>fs</strong>.</p>
</div>
<h2><a name="jstart_cmd">Написание скриптов, отрабатывающих при запуске и останове клеток</a></h2>
<div class="block">
<p>Подробнее читайте в <a href="/<!--#echo var="lang" -->/<!--#echo var="version" -->/wf_jconfig_ssi.html#execscript">Конфигурации клетки</a>
</div>
<h2><a name="jorder">Очередность запуска клеток</a></h2>
<div class="block">
<p>В <strong>CBSD</strong> вы можете определить очередность запуска клеток. Подробнее читайте в <a href="/<!--#echo var="lang" -->/<!--#echo var="version" -->/wf_jorder_ssi.html">Очередность запуска jail</a>
</div>