<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://lorwiki.zhbert.ru/index.php?action=history&amp;feed=atom&amp;title=Bacula%2FPools%2C_Volumes_and_Labels</id>
	<title>Bacula/Pools, Volumes and Labels - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://lorwiki.zhbert.ru/index.php?action=history&amp;feed=atom&amp;title=Bacula%2FPools%2C_Volumes_and_Labels"/>
	<link rel="alternate" type="text/html" href="http://lorwiki.zhbert.ru/index.php?title=Bacula/Pools,_Volumes_and_Labels&amp;action=history"/>
	<updated>2026-10-13T01:38:41Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>http://lorwiki.zhbert.ru/index.php?title=Bacula/Pools,_Volumes_and_Labels&amp;diff=27&amp;oldid=prev</id>
		<title>Admin: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://lorwiki.zhbert.ru/index.php?title=Bacula/Pools,_Volumes_and_Labels&amp;diff=27&amp;oldid=prev"/>
		<updated>2023-02-27T18:39:13Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 21:39, 27 февраля 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://lorwiki.zhbert.ru/index.php?title=Bacula/Pools,_Volumes_and_Labels&amp;diff=26&amp;oldid=prev</id>
		<title>lor&gt;Cetjs2: файл потерялся, эх</title>
		<link rel="alternate" type="text/html" href="http://lorwiki.zhbert.ru/index.php?title=Bacula/Pools,_Volumes_and_Labels&amp;diff=26&amp;oldid=prev"/>
		<updated>2018-10-25T13:04:49Z</updated>

		<summary type="html">&lt;p&gt;файл потерялся, эх&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Описание =&lt;br /&gt;
&lt;br /&gt;
* '''Пул (pool)''' объединяет несколько томов так, чтобы отдельная резервная копия не была ограничена объёмом отдельного тома. &lt;br /&gt;
* '''Том (volume)''' представляет из себя отдельную единицу в которую идёт запись, и может являться: &lt;br /&gt;
** физической лентой;&lt;br /&gt;
** отдельным файлом;&lt;br /&gt;
* Прежде чем bacula сможет использовать том (volume), он должен иметь '''метку (label)'''. &lt;br /&gt;
** В случае, когда том является файлом, файл создаётся при нанесении метки, и метка используется в качестве названия. &lt;br /&gt;
** Метки могут наноситься автоматически. Это определяется параметрами:&lt;br /&gt;
*** &amp;lt;tt&amp;gt;LabelMedia = yes&amp;lt;/tt&amp;gt;, в секции device конфигурации sd;&lt;br /&gt;
*** &amp;lt;tt&amp;gt;Label Format = LableName-&amp;lt;/tt&amp;gt; в конфигурации пула.&lt;br /&gt;
** При этом, к заданному формату будет прибавляться цифровой индекс: LableName-0001. В формате метки можно использовать макросы, например:&lt;br /&gt;
*** &amp;lt;tt&amp;gt;Label Format = LableName-${Year}_${Month}_${Day}&amp;lt;/tt&amp;gt;&lt;br /&gt;
** При этом, индекс добавляться не будет. И если, например при проверке, будет выполнено более одного резервного копирования в день, то будет использован один и тот же том, если позволит параметр Maximum Volume Jobs. &lt;br /&gt;
* Для задания (Job) мы определяем не том а пул. При этом: &lt;br /&gt;
** Тома этого пула выбираются автоматически, используя новые по мере необходимости. &lt;br /&gt;
** При отсутствии возможности использования тома, будет запрос на подключение нужного.&lt;br /&gt;
&lt;br /&gt;
Из [http://www.opennet.ru/opennews/art.shtml?num=7385 краткого пересказа официальной документации]: &lt;br /&gt;
&lt;br /&gt;
:''Шаги по созданию Пула (Pool), добавлению Томов к нему, и запись программных меток на Тома, могут казаться утомительными сначала, но фактически они весьма просты и они позволяют Вам использовать множество Томов (вместо того, чтобы быть ограниченым размером одной единственной ленты). Пулы также дают вам существенную гибкость в вашем процессе резервирования. Например, вы можете иметь «Daily» (ежедневный) Пул Томов для инкрементальных (Incremental) резервных копий и «Weekly» (еженедельный) Пул Томов для полных (Full) резервных копий. Определяя соответствующий Пул в ежедневных и еженедельных резервных Заданиях (Job), вы таким образом обеспечиваете, чтобы никакое ежедневное Задание когда­ либо не записало данные в Том в Еженедельном Пуле и наоборот, и кроме того Bacula скажет вам, какая лента необходима и когда.''&lt;br /&gt;
&lt;br /&gt;
= Пробное использование  =&lt;br /&gt;
&lt;br /&gt;
== Конфигурационные файлы  ==&lt;br /&gt;
&lt;br /&gt;
Что бы было проще ориентироваться в конфигурационных файлах, можно выносить часть конфигурации в отдельные файлы. &lt;br /&gt;
&lt;br /&gt;
Например вся последующая конфигурация (Pool, File set, Schedule и Job) может быть вынесена в отдельный файл /etc/bacula/conf.d/test.conf, который можно подключить в конфигурацию директора (bacula-dir.conf) следующим образом: &lt;br /&gt;
&amp;lt;pre&amp;gt;@/etc/bacula/conf.d/test.conf&amp;lt;/pre&amp;gt; &lt;br /&gt;
== Pool  ==&lt;br /&gt;
&lt;br /&gt;
Создаём тестовый пул. Определяем параметры тома по умолчанию в этом пуле, например: &lt;br /&gt;
&amp;lt;pre&amp;gt;# Test Pool definition&lt;br /&gt;
Pool {&lt;br /&gt;
  Name = TestPool&lt;br /&gt;
  Pool Type = Backup&lt;br /&gt;
  Recycle = yes                       # Bacula can automatically recycle Volumes&lt;br /&gt;
  AutoPrune = yes                     # Prune expired volumes&lt;br /&gt;
  Volume Retention = 5 days&lt;br /&gt;
  Maximum Volume Jobs = 1             # Если носитель не является файлом то возможно имеет смысл установить значение отличное от 1&lt;br /&gt;
  Maximum Volume Bytes = 50M          # Limit Volume size to something reasonable&lt;br /&gt;
  Maximum Volumes = 10                # Limit number of Volumes in Pool&lt;br /&gt;
  Label Format = &amp;quot;Test_volume-&amp;quot;&lt;br /&gt;
}&amp;lt;/pre&amp;gt; &lt;br /&gt;
Из статьи на [http://www.ibm.com/developerworks/ru/library/l-Backup_4/ ibm.com]: &lt;br /&gt;
&lt;br /&gt;
:''Параметр Maximum Volume Jobs рекомендуется установить в значение 1. Это будет означать, что в рамках одного носителя данных могут быть размещены резервные данные, полученные в ходе выполнения только одного задания. &amp;amp;lt;…&amp;amp;gt; если мы говорим о файлах, то желательно придерживаться правила «один файл — одна копия», т. е. в одном файле Bacula должны храниться резервные данные, которые были сформированы в рамках выполнения одного задания. Для каждого последующего будут создаваться новые файлы.''&lt;br /&gt;
&lt;br /&gt;
== File set  ==&lt;br /&gt;
&amp;lt;pre&amp;gt;# Test Set&lt;br /&gt;
FileSet {&lt;br /&gt;
  Name = &amp;quot;TestFileSet&amp;quot;&lt;br /&gt;
  Include {&lt;br /&gt;
    Options {&lt;br /&gt;
      signature = MD5&lt;br /&gt;
    }&lt;br /&gt;
    File = /home/username/tmpfiles/	# заменить на актуальное значение&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt; &lt;br /&gt;
== Schedule  ==&lt;br /&gt;
&amp;lt;pre&amp;gt;Schedule {&lt;br /&gt;
  Name = &amp;quot;TestSchedule&amp;quot;&lt;br /&gt;
  Run = Full sun at 20:05&lt;br /&gt;
  Run = Incremental mon-sat at 23:05&lt;br /&gt;
}&amp;lt;/pre&amp;gt; &lt;br /&gt;
== Job  ==&lt;br /&gt;
&lt;br /&gt;
Теперь, описав пул (pool), набор файлов (fileset) и расписание (schedule), мы можем описать задание (Job) в котором их используем. &lt;br /&gt;
&lt;br /&gt;
Очевидно что описывать всё нужно не всегда, можно использовать в разных заданиях одинаковые пулы, наборы файлов и расписания. Но в нашем учебном примере имеет смысл сделать полное описание. &lt;br /&gt;
&amp;lt;pre&amp;gt;# Test Backup&lt;br /&gt;
Job {&lt;br /&gt;
  Name = &amp;quot;TestBackup&amp;quot;&lt;br /&gt;
  Type = Backup&lt;br /&gt;
  Level = Incremental&lt;br /&gt;
  Client = Client-fd			# заменить на актуальное значение&lt;br /&gt;
  FileSet = &amp;quot;TestFileSet&amp;quot;&lt;br /&gt;
  Schedule = &amp;quot;TestSchedule&amp;quot;&lt;br /&gt;
  Storage = File&lt;br /&gt;
  Messages = Standard&lt;br /&gt;
  Pool = TestPool&lt;br /&gt;
  Priority = 10&lt;br /&gt;
  Write Bootstrap = &amp;quot;/var/lib/bacula/%c.bsr&amp;quot;&lt;br /&gt;
  Level = Full&lt;br /&gt;
}&amp;lt;/pre&amp;gt; &lt;br /&gt;
== Тестирование  ==&lt;br /&gt;
&lt;br /&gt;
Готовим производство нужного количество файлов нужного объёма, например: &lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
DIR=~/tmpfiles&lt;br /&gt;
FILE=&amp;quot;`date +%Y.%m.%d-%H.%M.%N`&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# BS=1024&amp;amp;nbsp;; COUNT=10240&lt;br /&gt;
BS=1M&lt;br /&gt;
COUNT=10&lt;br /&gt;
&lt;br /&gt;
touch $DIR/$FILE&lt;br /&gt;
dd if=/dev/urandom of=$DIR/$FILE bs=$BS count=$COUNT&lt;br /&gt;
find $DIR/ -type f -ctime +3 -delete&amp;lt;/pre&amp;gt; &lt;br /&gt;
Можно выполнить всё несколько раз вручную и удостовериться что правильно разобрались с материалом, новые тома маркируются и создаются, и всё работает соответственно нашему ожиданию. &lt;br /&gt;
&lt;br /&gt;
После чего, на некоторое время создание тестового файлового материала можно поставить в crontab а задания бакулы в расписание. &lt;br /&gt;
&lt;br /&gt;
В настройках тестового пула использованы малые значения параметров, что бы была возможность рассмотреть нештатные ситуации с нехваткой: &lt;br /&gt;
&lt;br /&gt;
* Volume Retention;&lt;br /&gt;
* Maximum Volumes;&lt;br /&gt;
* Maximum Volume Bytes;&lt;br /&gt;
* Места на ФС (если нет малого раздела, то можно создать файловую систему в файле и смонтировать как loop).&lt;br /&gt;
&lt;br /&gt;
= Storage  =&lt;br /&gt;
&lt;br /&gt;
Для распределения резервного хранения по разным точкам необходимо: &lt;br /&gt;
&lt;br /&gt;
== bacula-sd.conf  ==&lt;br /&gt;
&lt;br /&gt;
В конфиге sd: &lt;br /&gt;
&lt;br /&gt;
# Определить устройства (device), которые могут быть:&lt;br /&gt;
#* ленточными накопителями;&lt;br /&gt;
#* каталогами на различных файловых системах (в случае если Media Type = File).&lt;br /&gt;
&lt;br /&gt;
В конфиге sd, в секции определения себя, sd определяется как storage. Не следует путать с последующими определениями storage в конфиге директора с которыми мы далее будем работать.&lt;br /&gt;
&lt;br /&gt;
== bacula-dir.conf  ==&lt;br /&gt;
&lt;br /&gt;
В конфиге директора: &lt;br /&gt;
&lt;br /&gt;
# Определить storage, при описании задать: &lt;br /&gt;
#* адрес sd к которому подключаться;&lt;br /&gt;
#* устройство (device) на данном sd;&lt;br /&gt;
#* название, по которому этот storage будет использоваться в заданиях (job).&lt;br /&gt;
# Описать пул (Pool).&lt;br /&gt;
# Использовать описанный storage в задании (job), указав: &lt;br /&gt;
#* Storage;&lt;br /&gt;
#* Pool.&lt;br /&gt;
&lt;br /&gt;
Насколько я понимаю, пулы не привязаны к хранилищам (storage) и любой пул может быть использован в любом хранилище. То есть, достаточно на каждое устройство для записи (например каталог с файлами) определить storage, после чего направлять произвольный пул на произвольное устройство. &lt;br /&gt;
&lt;br /&gt;
[[Category:Bacula]]&lt;/div&gt;</summary>
		<author><name>lor&gt;Cetjs2</name></author>
	</entry>
</feed>