Tải bản đầy đủ (.pdf) (268 trang)

IT training 17 tech book

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (7.5 MB, 268 trang )

СОДЕРЖАНИЕ
Модуль
ду 1. Резервное
р
копирование.
р
Копирование данных с продакшен-сервера на backup-сервер ............................................ 7
Перекрестное копирование данных ................................................................................................... 7
Системы хранения данных ...................................................................................................................... 8
Другие носители данных .......................................................................................................................... 9
Виды бекапа .................................................................................................................................................... 9
Схемы ротации бекапов ..........................................................................................................................10
Методы резервирования баз данных ...............................................................................................10
RAID – Redundant Array of Independent Disks ................................................................................11
Типы RAID-массивов..................................................................................................................................11
Уровни RAID-массивов.............................................................................................................................12
RAID 0 (Striped Disk Array without Fault Tolerance) .......................................................................12
RAID 1 (Mirroring & Duplexing) ..............................................................................................................12
RAID 5 (Independent Data Disks with Distributed Parity Blocks) ...............................................13
RAID 1+0 (Very High Reliability with High Performance)
Performance)..............................................................13
..............................................................13
RAID 5+0 (High I/O Rates & Data Transfer Performance) ...............................................................14
Storage Area Networkk ................................................................................................................................
14
................................................................................................................................14
Network Attached Storage .......................................................................................................................15
Direct Attached Storage ............................................................................................................................16
Самописный скрипт использующий атрибут mtime файлов.................................................17
файлов .................................................17
Rsync .................................................................................................................................................................19


Зеркалируем разделы ..............................................................................................................................21
Amanda............................................................................................................................................................22

Модуль
ду 2. Сетевой интерфейс
рф
Linux.
Какие файлы влияют на работу сетевого интерфейса
интерфейса..............................................................30
..............................................................30
DHCP iface ......................................................................................................................................................31
Loopback iface ..............................................................................................................................................32
Custom iface...................................................................................................................................................32
Практика.........................................................................................................................................................33
Маршрутизация ..........................................................................................................................................35
Прописываем маршруты ........................................................................................................................36
Про шлюз........................................................................................................................................................38
Полезные ключи netstat ..........................................................................................................................38
NMAP ................................................................................................................................................................40
tcpdump ..........................................................................................................................................................41

1


Модуль
ду 3. TFTP.
Установка .......................................................................................................................................................42
Работа с TFTP.................................................................................................................................................42
Типы пакета ...................................................................................................................................................43
Режимы передачи ......................................................................................................................................43

Коды ошибок ................................................................................................................................................43
Клиент tftp .....................................................................................................................................................44

Модуль
ду 4. NFS.
Установка .......................................................................................................................................................45
Настройка ......................................................................................................................................................46
Опции конфигурационного файла.....................................................................................................47
Дополнительная информация .............................................................................................................48

Модуль
ду 5. Install-сервер.
р р
Принцип работы .........................................................................................................................................49
DHCP .................................................................................................................................................................50
TFTP ...................................................................................................................................................................51
Syslinux ............................................................................................................................................................51
NFS.....................................................................................................................................................................51
Создаем структуру tftp-сервера добавляем контент на сервер .........................................52
Устанавливаем ОС по сети .....................................................................................................................52
Автоматизация установки с помощью Kickstart ...........................................................................53
Диагностика ..................................................................................................................................................55

Модуль
ду 6. Виртуализация
р у
ц Xen.
Что это такое ? ..............................................................................................................................................56
Зачем это нужно ?.......................................................................................................................................56
Типы виртуализации .................................................................................................................................56

Архитектура Xen .........................................................................................................................................58
Причины по которым стоит использовать виртуализацию. ..................................................58
Настраиваем сервер виртуализации ................................................................................................58
Установка Xen...............................................................................................................................................59
Создание новых виртуальных машин в Xen .................................................................................60
Работа с виртуальными машинами ....................................................................................................61
Производительность виртуальных машин ....................................................................................62

2


Модуль
ду 7. Subversion.
Архитектура Subversion ..........................................................................................................................63
Протоколы работы с SVN ........................................................................................................................64
Способы хранения данных ....................................................................................................................64
Компоненты Subversion...........................................................................................................................64
Проблема одновременной работы с файлами.............................................................................64
Рабочий цикл................................................................................................................................................66
Установка .......................................................................................................................................................66
Работаем с репозиторием ......................................................................................................................66
Получение копии репозитария с удаленного сервера где у вас есть аккаунт ..............68
Ограничение доступа...............................................................................................................................69
Работа через Proxy .....................................................................................................................................72

Модуль
ду 8. Apache.
p
Об Apache ......................................................................................................................................................73
Установка .......................................................................................................................................................73

Настройка ......................................................................................................................................................74
Добавляем виртуальный хост ..............................................................................................................82
Возможные опции в директиве Options ..........................................................................................84
Определение возможных директив в .htaccess ...........................................................................85
Аутентификация на сайте .......................................................................................................................86
Включение SSL .............................................................................................................................................87
Server-status и server-info ........................................................................................................................90
SSI.......................................................................................................................................................................91
Использование mod_rewrite .................................................................................................................91
Регулярные выражения mod_rewrite и флаги ..............................................................................93
Коды веб-сервера ......................................................................................................................................94

Модуль
ду 9. SAMBA.
Что такое SAMBA и зачем она нужна ? ........................................................................................... 104
Возможности SAMBA ............................................................................................................................. 104
Установка .................................................................................................................................................... 104
Типы аутентификации ........................................................................................................................... 104
Ключевые файлы ..................................................................................................................................... 105
Структура конфигурационного файла .......................................................................................... 106
Пример конфигурационного файла ............................................................................................... 106
Описание конфигурационного файла ........................................................................................... 107
SWAT – веб-интерфейс к SAMBA ....................................................................................................... 111

3


Модуль
ду 10. DHCPD.
Принцип работы ...................................................................................................................................... 112

Установка DHCPD .................................................................................................................................... 113
Настройка DHCPD ................................................................................................................................... 113
Описание опций из dhcpd.conf
dhcpd.conf.........................................................................................................
f......................................................................................................... 114
Секции-объявления ............................................................................................................................... 116
Типы пакетов протокола DHCP ......................................................................................................... 119
Используемые порты............................................................................................................................. 119
DHCP-клиент .............................................................................................................................................. 119

Модуль
ду 11. MySQL.
y Q
Принцип работы ...................................................................................................................................... 121
Пример роли MySQL в информационном пространстве ..................................................... 122
Типы данных .............................................................................................................................................. 122
Сколько нужно места под хранение типа данных ? ................................................................ 124
Практика...................................................................................................................................................... 125
Файл как источник запросов ............................................................................................................. 130
Пользователи и привелегии .............................................................................................................. 132
Саммари по командам и принципу работы ................................................................................ 133
Конфигурационный файл my.cnf...................................................................................................... 134
Забытый пароль администратора ................................................................................................... 136
Резервное копирование ...................................................................................................................... 136
Проверка целостности таблиц с помощью myisamchkk ......................................................... 137
Саммари по myisamchkk ........................................................................................................................ 138

Модуль
ду 12. Мониторинг.
р

О Nagios ....................................................................................................................................................... 139
Установка и настройка Nagios ........................................................................................................... 140
Добавление хостов и сервисов на мониторинг ........................................................................ 166
Мониторинг различных параметров сервера ........................................................................... 167
Мониторинг свободного места......................................................................................................... 167
Защита системы от пользовательских процессов ................................................................... 168
Мониторинг S.M.A.R.T. - параметров жесткого диска ............................................................. 168
Мониторинг сетевых портов в Linux .............................................................................................. 169
Мониторинг открытых файлов и сокетов .................................................................................... 169
Мониторинг запущенных процессов ............................................................................................. 170
Мониторинг системных ресурсов ................................................................................................... 170
Мониторинг свободного места в разделах ................................................................................. 170
Мониторинг сетевой подсистемы в реальном времени ...................................................... 171
Мониторинг работы DNS-сервера в реальном времени...................................................... 171

4


Мониторинг соединений proftpd в реальном времени........................................................
времени........................................................ 172
Статистика по виртуальной памяти ................................................................................................ 172
Статистика по процессору и устройствам ввода-вывода..................................................... 172

Модуль
ду 13. DNS.
Установка .................................................................................................................................................... 173
Инструменты ............................................................................................................................................. 173
Базовые понятия ..................................................................................................................................... 174
Правила построения DNS-системы ................................................................................................ 174
Режимы работы ДНС-серверов......................................................................................................... 175

Типы ответов DNS-серверов .............................................................................................................. 177
Виды запросов к DNS-серверу .......................................................................................................... 177
Способы копирования зоны с master-сервера ......................................................................... 177
Виды записей............................................................................................................................................. 179
Структура конфигурационного файла .......................................................................................... 181
Настройка ................................................................................................................................................... 182
Опции конфигурационного файла.................................................................................................. 186
Slave-сервер............................................................................................................................................... 187
Записи в /etc/resolv.conff ....................................................................................................................... 190
Статистика работы ................................................................................................................................. 190

Модуль
ду 14. Nginx.
g
Что такое Nginx ?...................................................................................................................................... 192
Преимущества Nginx ............................................................................................................................. 192
Варианты использования Nginx ....................................................................................................... 192
Установка EPEL .......................................................................................................................................... 193
Ставим EPEL-пакет ................................................................................................................................... 193
Установка Nginx с поддержкой PHP. Настраиваем связку Nginx + FastCGI.
FastCGI...................
.................. 194
Конфигурирование Nginx + FastCGI................................................................................................ 195
Понижаем нагрузку на основной веб-сервер. Установка
Nginx как Frontend к Apache............................................................................................................... 198
Установка mod_rpaff ............................................................................................................................... 201
Включение SSL .......................................................................................................................................... 202
Использование двух версий PHP в Nginx одновременно .................................................... 203
Примеры производительности с Nginx и без него. ................................................................. 204
...................................................................... 205

Описание директив конфигурационного файла
файла......................................................................

Модуль
ду 15. Postfix.
Установка и настройка .......................................................................................................................... 210
Postfix ............................................................................................................................................................ 210

5


MySQL ........................................................................................................................................................... 216
Dovecot......................................................................................................................................................... 217
Clamd............................................................................................................................................................. 220
ClamSMTP .................................................................................................................................................... 221
Spamassassin .............................................................................................................................................. 221
Postfixadmin ............................................................................................................................................... 224
Squirrelmail ................................................................................................................................................. 225
Описание конфигурационных файлов.......................................................................................... 226
Postfix ............................................................................................................................................................ 226
Dovecot......................................................................................................................................................... 229
Clamd............................................................................................................................................................. 230
Clamsmtp ..................................................................................................................................................... 231
Spamassassin .............................................................................................................................................. 232

Модуль
ду 16. OpenVPN.
p
Об OpenVPN ............................................................................................................................................... 234
Установка Linux VPN-сервера ............................................................................................................ 234

Настройка Linux VPN-сервера ........................................................................................................... 235
Linux VPN-клиент ..................................................................................................................................... 240
Windows VPN-клиент.............................................................................................................................. 242
Добавление клиентов ........................................................................................................................... 243
Таблица предназначения ключей и сертификатов.................................................................. 243
Конфигурационный файл openvpn.conf на Linux VPN-сервере......................................... 243
Конфигурационный файл client.conf на Linux-клиентах ....................................................... 246
Конфигурационный файл client.ovpn на Windows-клиенте................................................. 247

Модуль
ду 17. Отказоустойчивый
у
кластер.
р
Что такое кластер ? ................................................................................................................................. 248
Принцип работы нашего кластера ................................................................................................. 248
DRBD .............................................................................................................................................................. 249
Программы входщие в состав пакета DRBD................................................................................ 250
Heartbeat ..................................................................................................................................................... 251
Именование серверов .......................................................................................................................... 251
Установка ПО ............................................................................................................................................. 251
Настройка DRBD ...................................................................................................................................... 252
Настройка Heartbeat .............................................................................................................................. 257
Установка Apache .................................................................................................................................... 259

6


Модуль 1. Резервное копирование
Процедура бекапа или резервного копирования очень проста, но может

стать большой головной болью если её не делать. Бизнес многих компаний
напрямую зависит от манипуляций с информацией которая хранится на
серверах. Базы данных, репозитории исходных кодов, веб-проекты и т.д. Все
это нужно ежедневно сохранять на резервные носители информации.
В случае потери информации и её невозможности восстановить компания
может понести большие убытки.
В этом модуле мы рассмотрим несколько вариантов резервного
копирования, от самописных скриптов до промышленных решений и
получим необходимую теорию.
Во первых, есть несколько схем резервного копирования.

Копирование данных с продакшен-сервера на backup-сервер
Продакшен-сервер – это рабочий сервер, который выполняет какие либо
сервисы для пользователей.
backup-сервер – это сервер на который копируется контент с продакшенсервера. Единственное предназначение такого сервера – хранить данные
с других серверов. Обычно сам он никаких сервисов не выполняет. Главное
требование – большое дисковое пространство. Скорость дисковых
накопителей особого значения не имеет, так как доступ к данным не частый
– записать бекап на диск и считать его в случае необходимости.
Минус этого решения – необходимость в отдельном сервере под backup`ы
а это дополнительные затраты. Маленькие и средние компании обычно
пытаются сэкономить деньги на покупке вспомогательного оборудования.

Перекрестное копирование данных
Когда два или более продакшен серверов копируют друг на друга свои
данные. В случае когда на продакшен серверах есть достаточное количество
дискового пространства для хранение данных с других серверов, их можно
использовать как backup-серверы. Мы копируем данные с сервера server1
на server2 а данные с server2 на server1.
Плюс – экономим деньги на оборудование. Как я писал выше маленькие

и средние организации могут не выделить деньги на вспомогательное
оборудование, даже если это необходимо под резервные копии. В таком
случае вам может помочь такой способ бекапа.
Модуль 1. Резервное копирование.

7


Системы хранения данных
“Классические” сервера для хранения бекапов хороши при относительно
небольших объемах. Сейчас это несколько сотен гигабайт. Когда же объемы
гораздо больше на помощь приходят СХД, Системы Хранения Данных.

Дисковые массивы
Д
По сути такой же сервер, но спроектирован специально под хранение
данных. Имеет много HDD большего размера.

Дисковый массив Sun Storage J4500. Масштабируемость – от 24 до 192 Тб
Поддерживаемые ОС: Solaris, RedHat, Suse, Windows

Ленточные накопители
Они же стримеры. Данные как и в случае с ленточными библиотеками
записываются на специальные картриджи. Как правило, картридж – это
магнитная лента в пластиковом корпусе.

Ленточный накопитель HP StorageWorks DAT 160 SAS.

Картридж для HP StorageWorks DAT 160 SAS. 160 Гб.


8

Модуль 1. Резервное копирование.


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

Одно из самых серьезных решений SUN. Ленточная библиотека Sun
StorageTek SL8500. До 56 петабайт данных. До 70 тысяч картриджей.

Другие носители данных
optical disc (CD-R/RW, DVD-R/RW);
flash-накопители;
ZIP, Jaz, MO драйвы.

Виды бекапа
Полное – все файлы и каталоги которые мы хотим сохранять на отдельном
носителе.
Инкрементальное – копируем только то, что изменилось с момента
последнего резервного копирования. Полного или инкрементального.
Дифференциальное – копируем только то, что изменялось с момента
последнего ПОЛНОГО бекапа.
Пофайловый метод – копируем нужные файлы в индивидуальном порядке.
Дублирование диска – метод при котором мы делаем полный снимок диска.
Например утилитой dd.
Модуль 1. Резервное копирование.


9


Схемы ротации бекапов
Ротация – это политика по которой делается резервное копирование. Как
часто мы будем делать бекап, как долго мы будем хранить резервные копии.
Все это описывается политикой ротации.
Одноразовое копирование – администратор делает копирование вручную.
Обычно делается полный бекап данных.
Простая ротация – подразумевается, что некий набор носителей используется
циклически. К примеру 5 ленточных носителей на каждый день недели. В пятницу
мы делаем полный бекап данных а в остальные дни недели инкрементальный.
“Дед, отец, сын” (GFS) – имеет иерархическую структуру ротации.
Используется три набора носителей. Раз в неделю делается полной бекап
данных. В остальные дни недели – инкрементальный. Раз в месяц делается
еще один полный бекап системы. Набор носителей для ежедневного
инкрементального копирования – сын, набор для еженедельного полного
бекапа – отец, набор для ежемесячного полного бекапа – дед.
“Ханойская башня” – название пошло от древней китайской игры. Смысл
игры заключается в следующем. Есть три стержня и какой-то набор дисков.
Диски нужно перемещать со стержня на стержень, но так, чтобы каждый
новый диск ложился на диск большего диаметра.

Такой метод бекапа достаточно сложен и практически не применяется в
настоящее время.
“10 наборов” – метод рассчитан на 10 наборов носителей. Период из 40
недель делится на десять циклов. В течение цикла за каждым набором
закреплен один день недели. По прошествии четырехнедельного цикла
осуществляется сдвиг номера набора. То есть в первом цикле за понедельник

отвечал набор N1, за вторник N2, за среду N3 и т.д. Во втором цикле за
понедельник будет отвечать набор N2, за вторник N3, за среду N4 и т.д. Такая
схема позволяет равномерно распределить нагрузку между носителями но
из-за своей сложности практически не используется.

Методы резервирования баз данных
hot backup – горячий бекап базы данных. Это когда резервная копия делается
при включенном сервере БД.
cold backup – холодный бекап базы данных. Это когда сервер БД нужно
выключить чтобы сделать резервную копию.

10

Модуль 1. Резервное копирование.


RAID – Redundant Array of Independent Disks
Избыточный массив независимых дисков. Это когда несколько физических
дисков объединяются вместе в один логический чтобы решать какие либо
задачи. Скорее всего вы его будете использовать для отказоустойчивости.
При выходе из строя одного из дисков система будет продолжать работать.
В операционной системе массив будет выглядеть как обычный HDD. RAID –
массивы зародились в сегменте серверных решений, но сейчас получили
широкое распространение и уже используются дома. Для управления
RAID-ом используется специальная микросхема с интеллектом , которая
называется RAID-контроллер. Это либо чипсет на материнской плате, либо
отдельная внешняя плата.

Типы RAID-массивов
Есть два типа RAID-массивов.


RAID-контроллер - LSI LOGIC MegaRAID SCSI 320-1
Аппаратный – это когда состоянием массива управляет специальная
микросхема. На микросхеме есть свой CPU и все вычисления ложатся на
него, освобождая CPU сервера от лишней нагрузки.
Программный – это когда состоянием массива управляет специальная
программа в ОС. В этом случае будет создаваться дополнительная нагрузка
на CPU сервера. Ведь все вычисления ложатся именно на него.
Однозначно сказать какой тип рейда лучше – нельзя. В случае программного
рейда нам не нужно покупать дорогостоящий рейд-контроллер. Который
обычно стоит от 250 у.е. (можно найти и за 70 у.е. но я бы не стал рисковать
данными) Но все вычисления ложатся на CPU сервера. Программная
реализация хорошо подходит для рейдов 0 и 1. Они достаточно просты
и для их работы не нужны большие вычисления. Поэтому программные
рейды чаще используют в решениях начального уровня. Аппаратный
рейд в своей работе использует рейд-контроллер. Рейд-контроллер имеет
свой процессор для вычислений и именно он производит операции
ввода/вывода.
Модуль 1. Резервное копирование.

11


Уровни RAID-массивов
Их достаточно много. Это основные – 0, 1, 2, 3, 4, 5, 6, 7 и комбинированные –
10, 30, 50, 53...
Мы рассмотрим только самые ходовые, которые используются в современной
инфраструктуре предприятия. Буква D в схемах означает Data (данные), или
блок данных.


RAID 0 ((Striped
p Disk Arrayy without Fault Tolerance))

Он же stripe. Это когда два или более физических дисков объединяются в
один логический с целью объединения места. То есть берем два диска по
500 Гб, объединяем их в RAID 0 и в системе видим 1 HDD объемом в 1 Тб.
Информация распределяется по всем дискам рейда равномерно в виде
небольших блоков (страйпов).
Плюсы – Высокая производительность, простота реализации.
Минусы – отсутствие отказоустойчивости. При использование этого рейда
надежность системы понижается в два раза (если используем два диска).
Ведь при выходе из строя хотя бы одного диска вы теряете все данные.

RAID 1 ((Mirroringg & Duplexing)
p
g)

Он же mirror. Это когда два или более физических дисков объединяются в
один логический диск с целью повышения отказоустойчивости. Информация
пишется сразу на оба диска массива и при выходе одного из них информация
сохраняется на другом.
Плюсы – высокая скорость чтения/записи, простота реализации.
Минусы – высокая избыточность. В случае использования 2-х дисков это
100%.

12

Модуль 1. Резервное копирование.



RAID 5 ((Independent
p
Data Disks with Distributed Parityy Blocks))

Самый популярный вид рейд-массива, в целом благодаря экономичности
использования носителей данных. Блоки данных и контрольные суммы
циклически записываются на все диски массива. При выходе из строя одного
из дисков будет заметно снижена производительность, так как придется
совершать дополнительные манипуляции для функционирования массива.
Сам по себе рейд имеет достаточно хорошую скорость чтения/записи но
немного уступает RAID 1. Нужно не менее трех дисков чтобы организовать
RAID 5.
Плюсы – экономичное использование носителей, хорошая скорость чтения/
записи. Разница в производительности по сравнению с RAID 1 не так сильно
видна как экономия дискового пространства. В случае использования трех
HDD избыточность составляет всего 33%.
Минусы – сложное восстановление данных и реализация.

RAID 1+0 ((Veryy High
g Reliabilityy with High
g Performance))

Он же RAID 10. Сочетание зеркального рейда и рейда с чередованием
дисков.
В работе этого вида рейда диски объединяются парами в зеркальные
рейды (RAID 1) а затем все эти зеркальные пары объединяются в массив с
чередованием (RAID 0). В рейд можно объединить только четное количество
дисков, минимум – 4, максимум – 16. От RAID 1 мы наследуем надежность, от
RAID 0 - скорость.
Плюсы – высокая отказоустойчивость и производительность

Минусы – высокая стоимость
Модуль 1. Резервное копирование.

13


RAID 5+0 ((High
g I/O Rates & Data Transfer Performance))

Он же RAID 50, это сочетание RAID 5 и RAID 0. Массив объединяет в себе
высокую производительность и отказоустойчивость.
Плюсы – высокая отказоустойчивость, скорость передачи данных и
выполнение запросов
Минусы – высокая стоимость

Итоги
Уровень RAID

Использование

Мин.дисков

Механизм обеспечения
надежности

RAID 0

100%

1


нет

RAID 1

50%

2

зеркалирование

RAID 5

67-94%

3

четность

RAID 1+0

50%

4

зеркалирование

RAID 5+0

67-94%


6

четность

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

Storage Area Network
Архитектурное решение SAN представляет собой сеть, как правило на базе

14

Модуль 1. Резервное копирование.


Fibre Channel (оптика) которая служит для подключения хранилищ данных к
серверам таким образом, чтобы те считали устройства как локальные.

Такое решение добавляет большую гибкость инфраструктуре предприятия.
Ведь СХД могут находиться физически в любом месте и их не нужно
переподключать от одного сервера к другому. Все что нужно сделать
– добавить сервер/СХД в SAN-сеть. Также, трафик LAN/WAN и SAN не
конфликтует между собой. Из-за некоторой сложности, SAN пока не вышел
за пределы крупных компаний.


Network Attached Storage

NAS – это сетевая система хранения данных. В целом это обычный сервер
Модуль 1. Резервное копирование.

15


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

DEPO Storage NAS 1005. До 5 Тб данных.
Неоспоримым плюсом NAS-серверов по отношению к “классическим”
серверам является – цена. Так что, если от будущего сервера потребуются
функции только файл-сервера стоит обратить внимание на NAS-решения.
Для NAS-серверов была специально разработана операционная
система FreeNAS, которая построена на базе FreeBSD. ОС максимально
оптимизирована под задачи NAS и весит в районе 32 Мб. Её можно загрузить
с flash-носителя/cdrom диска.

Direct Attached Storage
Представляет из себя дисковый массив с прямым подключением к серверу.
Другие сервера/клиенты могут получить доступ к этому массиву только
через сервер, к которому он подключен.

16

Модуль 1. Резервное копирование.



Примеры DAS-устройств:
USB-носители
CD/DVD – драйвы
ATA, SATA, SAS, SCSI – диски
Ленточные накопители/библиотеки

Самописный скрипт использующий атрибут mtime файлов
Сделаем простую реализацию бекапа.
Пишем скрипт вида “Что бекапим, куда бекапим, как долго храним копии”.
1
2

#!/bin/bash
#backup.sh

3
4
5
6

timestamp=`date “+%Y-%m-%d-%H-%M”`
backupFS=”/etc /var/lib/mysql /usr/local/etc”
backupTO=/var/backup
KeepTime=7

7

if [ -d $backupTO ]; then


8

find $backupTO -maxdepth 1 -name \*.tar.gz -mtime +${KeepTime} -exec rm -f {} \;

9
10
11
12
13
14
15
16
17

for i in $backupFS
do
j=`expr ${i//\//-}`
tar -zcvf $backupTO/`hostname`.${timestamp}.${j}.tar.gz $i
echo “$i is done”
done
else
echo “backup directory is missing...exiting”
exit 1

18

fi

Выполняем команду chmod +x <имя этого скрипта>, другими словами
делаем его исполняемым.

В рабочем скрипте цифр быть не должно. Я добавил их для удобства
объяснения строк кода.
1. Любой скрипт в Linux начинается с этой последовательности, которая
называется sha-bang. По сути исполняемый файл может быть просто
перечислением набора команд, но если планируется что-то сложнее,
где предстоит работа с переменными то sha-bang стоит поместить в
файл. В этом случае будет создан процесс, в котором мы можем хранить
временные данные;
Модуль 1. Резервное копирование.

17


2. Все строки в файле начинающиеся с символа #, кроме первой строки –
комментарии. Здесь я просто указал название нашего скрипта как многие
делают;
3. В переменную timestamp мы сохраняем результат выполнения команды
date в нужном нам формате: год-месяц-день-час-минута. Значение
переменной будет фигурировать в конечном имени файла;
4. В переменной backupFS мы будем сохранять список каталогов для бекапа.
Каталоги указываем через пробел а весь их список берем в двойные
кавычки;
5. Переменная backupTO содержит каталог, куда мы будем делать бекапы;
6. В переменной KeepTime мы храним срок хранения бекапов. Файлы
старше 7 дней мы будем удалять. Место на диске все таки не резиновое;
7. В дело вступает команда test. Прежде чем продолжить дальше имеет
смысл проверить существование backup-каталога. Иначе нет смысла
продолжать. В скрипте мы не будем его создавать – пусть администратор
сам управляет своей файловой системой;
8. Перед созданием бекапа мы просматриваем backup-каталог и удаляем

файлы которые хранятся более 7 дней. Для вычисления сколько архив
находится в файловой системе мы использовали атрибут файла mtime. В
этом атрибуте сохраняется время последней модификации файла;
9. Начинаем цикл for и последовательно для каждого каталога в переменной
backupFS сделаем ряд действий;
10. Начинаем новую итерацию цикла for;
11. В переменную j мы сохраняем результат выполнения регулярного
выражения. Нам необходимо удалить символ “/” из путей каталогов в
переменной i. Так как создать tar.gz-архив с “/” в имени файла у нас не
получится;
12. Архивируем нужную нам директорию. Имя файла мы генерируем
динамически. В имени будет использован результат выполнения команды
hostname, То есть мы подставим имя нашего сервера, что весьма полезно
при хранение бекапов в централизованном месте, где могут быть бекапы
с десятка серверов. Далее в название файла добавляем текущее время
в соответствие с форматом переменной timestamp. После добавления
времени добавляем название резервируемого каталога с заменой
символов “/” на “-”;
13. Выводим сообщение, что архивация директории завершена. Впрочем
для скрипта висящего в cron в этом нет необходимости;
14. Завершение итерации цикла for;
15. Это условие выполняется если backup-каталог отсутствует в файловой
системе;

18

Модуль 1. Резервное копирование.


16. Выводим сообщение “backup-каталог отсутствует”;

17. Выходим из скрипта с ошибкой (код 1). Польза от этого есть когда это
анализируется каким-то другим процессом. Но в целях правописания мы
это добавим;
18. Завершение условного оператора и выход из программы.
В соответствие со своими нуждами поправьте список каталогов для бекапа,
путь куда их сохранять и количество дней хранения копий. Помещаем скрипт
в cron администратора, например на 4 часа утра каждый рабочий день, еще
мы добавим и субботу, чтобы захватить данные которые были сделаны в
течение рабочего дня пятницы.
0 4 * * 1-6 /root/backup.sh
Каталог для бекапа может быть NFS-ресурсом экспортированным на
сервер. Так мы простым скриптом решаем важную задачу системного
администрирования. Для более сложной инфраструктуры скорее всего
понадобится что-то более функциональное и гибкое.
В своих backup-скриптах больше внимания уделяйте обходу потенциальных
ошибок и неадекватного поведения в случае отсутствия места на диске или
в случае отсутствия нужных каталогов. Не тратьте время на оптимизацию,
смысла в этом не много, ведь узким местом всегда будет процесс
копирования/архивирования ваших данных.

Rsync
Rsync (Remote Synchronization) — с помошью этой программы происходит
копирование файлов между серверами, пришла на замену rcp.
centos52 — сервер куда будем делать бекап
unixbox — сервер с которого будем делать бекап
На сервере unixbox создадим пользователя rsync от которого будут
запрашиваться файлы для бекапа.
Добавим пользователя rsync и установим ему пароль.
# useradd rsync
# passwd rsync

Добавим его в нужные группы чтобы он мог получить право на чтение если
такого еще нет.
Скопируем каталог /etc с сервера unixbox в наш локальный каталог /var/
backup
$ rsync -e ssh -avz --delete-after --force rsync@unixbox:/etc /var/backup/
Вводим пароль и все.
Модуль 1. Резервное копирование.

19


Если хочется процедуру автоматизировать то нужно будет сгенерировать
public ключ на сервере centos52 и положить его в файл authorized_keys
пользователю rsync на сервере unixbox. Давайте сделаем это.
# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub rsync@unixbox
Все. Теперь можно поместить выполнение команды в crontab
# crontab -e
* */4 * * * rsync -e ssh -avz --delete-after --force rsync@unixbox:/etc /var/backup
Каждые 4 часа будем копировать каталог /etc с сервера unixbox в локальный
каталог /var/backup

Пояснения
Внимание: если после /etc нет “/” то будет скопирован сам каталог и его
содержимое. Если “/” есть, то будет скопировано только содержимое этого
каталога.
-e ssh – этим ключем мы показываем что будем использовать ssh, то есть наш
трафик будет шифроваться;
-a – работа в режиме архивирования, сохраняются права доступа и
информация о владельцах;

-v – выводить больше информативной информации;
-z – архивировать передаваемые данные;
--delete-after – удалять файлы которые отсутствуют в источнике после того
как закончится передача файлов по сети. Мы хотим иметь полную копию
контента с удаленного сервера. Можете включать эту опцию периодически.
Вдруг кто-нибудь случайно удалит файл на удаленном сервере и во время
ближайшей синхронизации мы удалим его тоже;
--force – не удалять директорию пока в ней есть файлы.

rsyncd
Также есть сервис – rsyncd который работает на порту 873 TCP. При
запущенном сервисе строка доступа может выглядеть так:
rsync://[USER@]HOST[:PORT]/SRC [DEST]
то есть в начале будет добавлено rsync:// а остальное также как и в примере
выше. Аутентификация в rsyncd основана на 128 bit MD4, что очень не
надежно в наше время. К тому же данные передаются в открытом виде, что
явно не в пользу этого сервиса, когда есть такие средства как rsync+ssh и scp.
Поэтому подробно рассматривать его не вижу смысла.

20

Модуль 1. Резервное копирование.


Скрипт в помощь
Этого материала достаточно чтобы начать пользоваться rsync в создание
своих файловых зеркал/резервных копий. Ниже я дам пример скрипта,
который может помочь когда нужно копировать набор каталогов с
удаленного сервера.
#!/bin/bash

#backup.sh
LIST=/var/backup/backup.list
cat ${LIST} | while read res; do
rsync -e ssh -avz --delete-after --force rsync@unixbox:$res /var/backup
done

Файл /var/backup/backup.list должен содержать список каталог для
копирования. Примерно так:
/etc
/var/www/cms
/usr/local/etc
/var/billing

Зеркалируем разделы (используем dd)
Программа dd идеально подойдет там где нужно сделать точную копию
раздела/слайса диска. Она сектор за сектором копирует данные из источника
(параметр if ) в пункт назначения, если так можно выразиться (параметр of ).
Чтобы понять как просто пользоваться программой давайте сделаем это на
практике.
# dd if=/dev/hda of=/dev/hdb conv=noerror,sync
Команда выше сделает точную копию раздела /dev/hda в разделе /dev/hdb.
То есть мы «отзеркалировали» /dev/hda
После conv= мы можем указать ряд параметров.
noerror — продолжать копирование не обращая внимание на bad-блоки и
прочие ошибки
sync — поврежденные или отсутствующие данные во входном буфере на
выходе будут заменены на нули. Опция замедляет работу команды dd, но
для более корректного образа стоит воспользоваться ею.
# dd if=/dev/hda3 of=/var/backup/hda3.img
Этой командой мы записали раздел /dev/hda3 в бинарный файл hda3.img.

Теперь его можно перенести на другой сервер и развернуть в точную копию
Модуль 1. Резервное копирование.

21


/dev/hda3. Только учтите один минус dd — программа копирует данные по
секторам и ей все равно есть на этом участке диска данные или нет, будет
воссоздана точная копия и размер будет точно такой же! То есть если раздел
/dev/hda3 имеет объем в 5 Гб а занят на нем только 1 то файл hda3.img будет
весить 5 Гб.
Восстановить раздел из образа также просто как и создать:
# dd if=/var/backup/hda3.img of=/dev/hda3
Ну и напоследок сделаем копию нашей MBR (Master Boot Record). MBR – это
первый сектор на жестком диске содержащий таблицу разделов и запись,
с какого раздела загружаться. Иногда требуется восстановить MBR из
резерва.
# dd if=/dev/hda1 of=/var/backup/mbr.dump bs=512 count=1
Команде dd мы просто передали параметры bs и count, этим указав какой
объем данных мы хотим скопировать.
bs — block size, размера блока который мы хотим скопировать
count — количество bs
Мы ведь уже знаем, что MBR находится в первых 512 байтах (1-й сектор).
Теперь восстановим MBR из резервной копии
# dd if=/var/backup/mbr.dump of=/dev/hda1 bs=512 count=1
Размер сектора можно узнать так:
# fdisk -l /dev/hda1

Amanda - Advanced Maryland Automatic Network Disk Archiver


Amanda – это клиент/серверная система создания резервных копий.
Хороший выбор для средних и крупных предприятий. Что тут говорить,

22

Модуль 1. Резервное копирование.


сама корпорация Xerox использует Amanda в своей ИТ инфраструктуре.
Изначально Amanda была создана для работы с ленточными накопителями
но сейчас активно используется при бекапе на HDD. Такая концепция
получила название “виртуальные ленты” (vtapes). Amanda не испытывает
проблем при работе в гетерогенных сетях (в сетях, которые используют
разные платформы и операционные системы).

Некоторые термины
level 0 – полный бекап
level 1 – инкрементальный бекап
level n – инкрементальный бекап с момента предыдущего инкрементального
бекапа (level n-1)
Disklist Entry (DLE) – каждая запись в файле disklist
dumpcycle – Промежуток времени в течение которого делается level 0
backup каждой из DLE (обычно 1 неделя)
runspercycle – сколько раз Amanda будет запущена в течение dumpcycle
tapecycle – сколько лент будет использовано в системе резервного
копирования
Мы рассмотрим версию Amanda-2.5.0p2

Настройка Amanda Server
Описание

fasttech – так назовем наш проект про резервному копированию
centos52 – Amanda Server
unixbox – Amanda Client
/var/backup – каталог для резервных копий
Задача
д
Будем делать бекап каталога /etc сервера unixbox. Один раз в неделю будем
делать полный бекап, остальные – инкрементальный.
Начинаем установку
yum -y install amanda-server.i386
Создаем каталог для нового проекта и копируем файл amanda.conf из
проекта по умолчанию.
mkdir /etc/amanda/fasttech
Модуль 1. Резервное копирование.

23


cp /etc/amanda/DailySet1/amanda.conf /etc/amanda/fasttech/
Редактируем файл /etc/amanda/fasttech/amanda.conf
org «Fasttech.ru»
mailto «root»
dumpuser «amanda»
dumporder «sssS»
taperalgo first
displayunit «m»
dumpcycle 5
runspercycle 5
tapecycle 10
tpchanger «chg-disk» # /usr/lib/amanda/chg-disk

tapedev «file:/var/backup»
tapetype DISK
labelstr «fasttech-.*»
infofile «/etc/amanda/fasttech/curinfo»
logdir «/etc/amanda/fasttech»
indexdir «/etc/amanda/fasttech/index»
define tapetype DISK {
length 500000 MB
}
define dumptype comp-tar {
program «GNUTAR»
compress fast
index yes
}

Создаем структуру каталогов и файлов которые потребуются во время
работы.
# mkdir /etc/amanda/fasttech/{curinfo,index}
Создаем два пустых файла
# touch /etc/amanda/fasttech/{tapelist,disklist}
Нашему проекту назначаем правильного владельца
# chown -R amanda:disk /etc/amanda/fasttech/

24

Модуль 1. Резервное копирование.


В файл disklist помещаем систему с которой будем делать бекап и
директорию

# echo 'unixbox /etc comp-tar' > /etc/amanda/fasttech/disklist
Разрешаем пользователю root с сервера unixbox получать с нас бекап.
# echo 'unixbox root' > `grep amanda /etc/passwd | cut -d: -f6`/.amandahosts
Создаем директорию для временных файлов
# mkdir -p /var/backup/holding
В цикле создаем директории для наших будущих виртуальных лент
# for i in 1 2 3 4 5; do mkdir /var/backup/slot$i; done
Делаем символическую ссылку первой ленты на каталог data
# ln -s /var/backup/slot1 /var/backup/data
Устанавливаем права на backup-директорию
# chown -R amanda:disk /var/backup/
Создаем каталог amanda
# mkdir -p /usr/adm/amanda
Устанавливаем правильного владельца на директорию
# chown -R amanda:disk /usr/adm/amanda
Переходим на учетную запись amanda
# su - amanda
В свой файл настроек добавляем каталог /usr/sbin в переменную PATH. Тогда
не нужно будет писать полный путь к программам расположенным в этом
каталоге, достаточно только указать их название.
$ echo «export PATH=$PATH:/usr/sbin» >> .bash_profile

Проверяем
р р
статус
у “лент”
$ ammt -t file:/var/backup/ status
file:/var/backup/ status: ONLINE

Переходим в бекап-директорию

$ cd /var/backup
Модуль 1. Резервное копирование.

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×