qkowlew: На Зилантконе меня сфоткали мыльницей. Мыльницам не позирую! (Default)
qkowlew ([personal profile] qkowlew) wrote2010-11-04 03:19 pm

О резервном копировании (с матерком)

Для внутреннего употребления сисадминами и приближенными к ним самостоятельными людьми.

Смысл и принципы

Спаси и сохрани!
Молитва
В условиях поголовной информационной
неграмотности населения из всех действий
для нас главнейшим является резервное копирование.

Люди

С точки зрения сохранности и безопасности информации сотрудники делятся на:
  1. Пользователей
  2. Сисадминов
  3. Самостоятельных людей.

Пользователь неграмотен, капризен и хитрожоп.
Единственный способ сохранить ценную для него информацию – скопировать её туда, откуда он её не достанет без обращения к грамотному, похуистичному и прямолинейному сисадмину.

Сисадмин есть бог, к которому обращается нерадивый пользователь с молитвой о спасении. Пользователя всё равно ждёт АдЪ, но если не сделан бекап, то будет сисадмин ввергнут в тот же АдЪ, что пользователь. И вечно будут просить пользователи его о спасении, а он не сможет их даже послать нахуй.

Начальство есть разновидность пользователей, которых админ не может послать нахуй, и потому АдЪ есть на Земле прямо сейчас.

Самостоятельные люди сохраняют информацию как следует и потому спасают себя сами. По настоящему самостоятельных людей по настоящему мало. Сисадмин их, равно как и они его, со спокойной совестью и совершенно беззлобно шлёт нахуй.

Оборудование

Выходит из строя. Периодически. Резервное копирование должно быть чаще.
  1. Аппаратные проблемы, ошибки в программах и злые хакеры - тоже пользователи Вашей информации. Только ещё и злонамеренные.
  2. Именно поэтому резервная копия должна периодически попадать на носитель, не зависимый от основного экземпляра.
  3. Доступ к резервной копии должен осуществляться способом, принципиально отличным от употребляемого пользователями для доступа к основному экземпляру. Иначе, рано или поздно хитрожопость возьмёт своё, и пользователи (или их злонамеренные версии) доберутся до бекапа сами.
Поэтому восхваляемое многими аппаратное зеркало (RAID1) НЕ является способом резервного копирования информации и не может заменить его. Аппаратное зеркало – средство минимизировать время простоя при процедуре восстановления работоспособности сети и должно рассматриваться только в таком качестве. Все, кто применяют или требуют применять RAID любого уровня в других целях, идут нахуй.

Безопасность

  1. Требования безопасности и сохранности информации противоречивы, однако это противоречие диалектическое и разрешается грамотным сисадмином.
  2. Главный элемент безопасности резервной копии – пользователям не должно быть известно, где и как она хранится.
  3. Организация, не доверяющая своему сисадмину, идёт нахуй.

Правильное устройство файлсервера и его бекапа

Помните! Несмотря на все усилия даже правильного сисадмина, работа хотя бы части пользователей всё равно отличается низкой дисциплиной. И потому потери информации по схеме "ой, я не туда мышкой повела" вполне возможны, а троян обладает всеми правами пользователя, на рабочей станции которого он запущен. А сбои памяти на рабочей станции могут приводить к очень интересным искажениям, сразу незаметным.
  1. Содержимое \\fserver расшарено по сети для специального пользователя (например, backup) с отдельным паролем и правами на чтение всего содержимого \\fserver\all
  2. На бэкапящей машине запускается сначала скрипт dirlist, формирующий список полных путей, которые надо бекапить в виде отдельных файлов. Этот скрипт полезно иметь отдельным, так как он определяет структуру дальнейшей работы при восстановлении информации - в частности, в большой организации настоятельно рекомендуется разбивка И по крупным подразделениям, и по отдельным пользователям.
  3. Руками запускается скрипт fullbackup формирующий в каталоге /usr/backup/fserver/текущая_дата-full/ файлы имя_файла_для_каталога.tar.gz c полным содержимым каталогов и файлы скриптов restore.sh, которыми эти каталоги будут восстанавливаться.
  4. Далее запускается собственно скрипт резервного копирования daybackup, который и кладёт обновления соответствующих каталогов в файлы вида /usr/backup/fserver/текущая_дата/имя_файла_для_каталога.tar.gz и /usr/backup/fserver/текущая_дата/restore.sh
  5. Также используется файл /usr/backup/fserver/Last для фиксации времени, с которого надо формировать следующий апдейт.

Действия сисадмина в штатном режиме

  1. Следить за достаточностью места на бекапном винте.
  2. Время от времени создавать копию бекапа на каком-нибудь ещё носителе и откладывать эти копии в сторону.
  3. Время от времени трясти начальство на винт большего размера для бекапа.

Восстановление просимого пользователями

  1. Вытрясти из пользователя примерную дату (изменения или создания) нужного ему файла, путь к оному или хотя бы – имя файла.
  2. Пойти в соответствующий дате архив нужного подразделения и вытащить искомое. (Midnight Commander прекрасно для этого подходит).
  3. При неспособности пользователя вспомнить хотя бы один из трёх параметров (дата, путь, имя) – слать нахуй.

Восстановление при проблемах с сервером

  1. Создать на новом сервере шару allrestore и разрешить в неё запись пользователю restore с паролем, который прописан в сформированных бекапом скриптах restore.sh.
  2. Зайти в последний каталог с полным бекапом YYMMDD-full и запустить из него файл restore.sh (из соображений безопасности не имеет установленного права на исполнение!) - он автоматически пройдёт по таким же файлам в более поздних каталогах.
  3. Восстановить права по вкусу.

Какую документацию курить во изменение системы

man smbclient

Известные баги

  1. Файлы, имеющие дату создания/изменения в будущем, пакуются в каждый из дневных бекапов, пока не наступит эта самая дата. Свойство smbclient в используемом варианте
  2. Формируются не осмысленные tar файлы с пустыми поддиректориями.
  3. При копировании с виндового сервера символ № (номер) в именах файлов в ЛУЧШЕМ случае превращается в _ (подчёркивание) при любых мне известных комбинациях настроек кодовых таблиц в smb.conf. :(

Образец скрипта С НЕОБХОДИМЫМИ НАСТРОЙКАМИ как-нибудь выложу. Не немедленно. Сорри. Умный сисадмин по этим рекомендациям, пожалуй, напишет такие скрипты сам. :)

Сергей Яковлев (когда-то для ВНИРО). 22 ноября 2008 года.


Можно использовать этот текст в любых целях, свободно копировать, как с указанием, так и без указания авторства.


Post a comment in response:

This account has disabled anonymous posting.
(will be screened if not validated)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org