1. Trang chủ
  2. » Công Nghệ Thông Tin

IT training 17 tech book

268 54 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 268
Dung lượng 7,5 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

-e ssh – этим ключем мы показываем что будем использовать ssh, то есть наш трафик будет шифроваться; -a – работа в режиме архивирования, сохраняются права доступа и информация о владельц

Trang 1

Модуль 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) 13

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

Storage Area Network 14

Network Attached Storage 15

Direct Attached Storage 16

Самописный скрипт использующий атрибут mtime файлов 17

Rsync 19

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

Amanda 22

Модуль 2 Сетевой интерфейс Linux. Какие файлы влияют на работу сетевого интерфейса 30

DHCP iface 31

Loopback iface 32

Custom iface 32

Практика 33

Маршрутизация 35

Прописываем маршруты 36

Про шлюз 38

Полезные ключи netstat 38

NMAP 40

tcpdump 41

СОДЕРЖАНИЕ Модуль 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) 13

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

Storage Area Network k 14 Network Attached Storage 15

Direct Attached Storage 16

Самописный скрипт использующий атрибут mtime файлов 17

Rsync 19

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

Amanda 22

Модуль 2 Сетевой интерфейс Linux ду рф Какие файлы влияют на работу сетевого интерфейса 30

DHCP iface 31

Loopback iface 32

Custom iface 32

Практика 33

Маршрутизация 35

Прописываем маршруты 36

Про шлюз 38

Полезные ключи netstat 38

NMAP 40

tcpdump 41

СОДЕРЖАНИЕ

Trang 2

Модуль 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

Модуль 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

Trang 3

Модуль 7 Subversion.

Архитектура Subversion 63

Протоколы работы с SVN 64

Способы хранения данных 64

Компоненты Subversion 64

Проблема одновременной работы с файлами 64

Рабочий цикл 66

Установка 66

Работаем с репозиторием 66

Получение копии репозитария с удаленного сервера где у вас есть аккаунт 68

Ограничение доступа 69

Работа через Proxy 72

Модуль 8 Apache. Об 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

Модуль 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

Trang 4

Модуль 10 DHCPD

Принцип работы 112

Установка DHCPD 113

Настройка DHCPD 113

Описание опций из dhcpd.conf 114

Секции-объявления 116

Типы пакетов протокола DHCP 119

Используемые порты 119

DHCP-клиент 119

Модуль 11 MySQL. Принцип работы 121

Пример роли MySQL в информационном пространстве 122

Типы данных 122

Сколько нужно места под хранение типа данных ? 124

Практика 125

Файл как источник запросов 130

Пользователи и привелегии 132

Саммари по командам и принципу работы 133

Конфигурационный файл my.cnf 134

Забытый пароль администратора 136

Резервное копирование 136

Проверка целостности таблиц с помощью myisamchk 137

Саммари по myisamchk 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

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

Установка DHCPD 113

Настройка DHCPD 113

Описание опций из 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

Проверка целостности таблиц с помощью myisamchk k 137 Саммари по myisamchk k 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

Trang 5

Мониторинг соединений 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.conf 190

Статистика работы 190

Модуль 14 Nginx. Что такое Nginx ? 192

Преимущества Nginx 192

Варианты использования Nginx 192

Установка EPEL 193

Ставим EPEL-пакет 193

Установка Nginx с поддержкой PHP Настраиваем связку Nginx + FastCGI 194

Конфигурирование Nginx + FastCGI 195

Понижаем нагрузку на основной веб-сервер Установка Nginx как Frontend к Apache 198

Установка mod_rpaf 201

Включение SSL 202

Использование двух версий PHP в Nginx одновременно 203

Примеры производительности с Nginx и без него 204

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

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

Postfi x 210

Мониторинг соединений 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.conf f 190 Статистика работы 190

Модуль 14 Nginx ду g Что такое Nginx ? 192

Преимущества Nginx 192

Варианты использования Nginx 192

Установка EPEL 193

Ставим EPEL-пакет 193

Установка Nginx с поддержкой PHP Настраиваем связку Nginx + FastCGI 194

Конфигурирование Nginx + FastCGI 195

Понижаем нагрузку на основной веб-сервер Установка Nginx как Frontend к Apache 198

Установка mod_rpaf f 201 Включение SSL 202

Использование двух версий PHP в Nginx одновременно 203

Примеры производительности с Nginx и без него 204

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

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

Postfi x 210

Trang 6

MySQL 216

Dovecot 217

Clamd 220

ClamSMTP 221

Spamassassin 221

Postfi xadmin 224

Squirrelmail 225

Описание конфигурационных файлов 226

Postfi x 226

Dovecot 229

Clamd 230

Clamsmtp 231

Spamassassin 232

Модуль 16 OpenVPN. Об 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

MySQL 216

Dovecot 217

Clamd 220

ClamSMTP 221

Spamassassin 221

Postfi xadmin 224

Squirrelmail 225

Описание конфигурационных файлов 226

Postfi x 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

Trang 7

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

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

В случае потери информации и её невозможности восстановить компания может понести большие убытки

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

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

Копирование данных с продакшен-сервера на backup-сервер

Продакшен-сервер – это рабочий сервер, который выполняет какие либо сервисы для пользователей

backup-сервер – это сервер на который копируется контент с сервера Единственное предназначение такого сервера – хранить данные

продакшен-с других продакшен-серверов Обычно продакшен-сам он никаких продакшен-сервипродакшен-сов не выполняет Главное требование – большое дисковое пространство Скорость дисковых накопителей особого значения не имеет, так как доступ к данным не частый – записать бекап на диск и считать его в случае необходимости

Минус этого решения – необходимость в отдельном сервере под backup`ы

а это дополнительные затраты Маленькие и средние компании обычно пытаются сэкономить деньги на покупке вспомогательного оборудования

Перекрестное копирование данных

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

на server2 а данные с server2 на server1

Плюс – экономим деньги на оборудование Как я писал выше маленькие

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

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

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

В случае потери информации и её невозможности восстановить компания может понести большие убытки

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

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

Копирование данных с продакшен-сервера на backup-сервер

Продакшен-сервер – это рабочий сервер, который выполняет какие либо сервисы для пользователей

backup-сервер – это сервер на который копируется контент с сервера Единственное предназначение такого сервера – хранить данные

продакшен-с других продакшен-серверов Обычно продакшен-сам он никаких продакшен-сервипродакшен-сов не выполняет Главное требование – большое дисковое пространство Скорость дисковых накопителей особого значения не имеет, так как доступ к данным не частый – записать бекап на диск и считать его в случае необходимости

Минус этого решения – необходимость в отдельном сервере под backup`ы

а это дополнительные затраты Маленькие и средние компании обычно пытаются сэкономить деньги на покупке вспомогательного оборудования

Перекрестное копирование данных

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

на server2 а данные с server2 на server1

Плюс – экономим деньги на оборудование Как я писал выше маленькие

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

Trang 8

Системы хранения данных

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

Дисковые массивы

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

Дисковый массив Sun Storage J4500 Масштабируемость – от 24 до 192 Тб

Поддерживаемые ОС: Solaris, RedHat, Suse, Windows

Ленточные накопители

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

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

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

Системы хранения данных

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

Дисковые массивы

Д

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

Дисковый массив Sun Storage J4500 Масштабируемость – от 24 до 192 Тб

Поддерживаемые ОС: Solaris, RedHat, Suse, Windows

Ленточные накопители

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

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

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

Trang 9

Ленточные библиотеки

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

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

Инкрементальное – копируем только то, что изменилось с момента последнего резервного копирования Полного или инкрементального.Дифференциальное – копируем только то, что изменялось с момента последнего ПОЛНОГО бекапа

Пофайловый метод – копируем нужные файлы в индивидуальном порядке.Дублирование диска – метод при котором мы делаем полный снимок диска Например утилитой dd

Ленточные библиотеки

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

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

Инкрементальное – копируем только то, что изменилось с момента последнего резервного копирования Полного или инкрементального.Дифференциальное – копируем только то, что изменялось с момента последнего ПОЛНОГО бекапа

Пофайловый метод – копируем нужные файлы в индивидуальном порядке.Дублирование диска – метод при котором мы делаем полный снимок диска Например утилитой dd

Trang 10

Схемы ротации бекапов

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

Одноразовое копирование – администратор делает копирование вручную Обычно делается полный бекап данных

Простая ротация – подразумевается, что некий набор носителей используется циклически К примеру 5 ленточных носителей на каждый день недели В пятницу

мы делаем полный бекап данных а в остальные дни недели инкрементальный

“Дед, отец, сын” (GFS) – имеет иерархическую структуру ротации Используется три набора носителей Раз в неделю делается полной бекап данных В остальные дни недели – инкрементальный Раз в месяц делается еще один полный бекап системы Набор носителей для ежедневного инкрементального копирования – сын, набор для еженедельного полного бекапа – отец, набор для ежемесячного полного бекапа – дед

“Ханойская башня” – название пошло от древней китайской игры Смысл игры заключается в следующем Есть три стержня и какой-то набор дисков Диски нужно перемещать со стержня на стержень, но так, чтобы каждый новый диск ложился на диск большего диаметра

Такой метод бекапа достаточно сложен и практически не применяется в настоящее время

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

Методы резервирования баз данных

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

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

Схемы ротации бекапов

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

Одноразовое копирование – администратор делает копирование вручную Обычно делается полный бекап данных

Простая ротация – подразумевается, что некий набор носителей используется циклически К примеру 5 ленточных носителей на каждый день недели В пятницу

мы делаем полный бекап данных а в остальные дни недели инкрементальный

“Дед, отец, сын” (GFS) – имеет иерархическую структуру ротации Используется три набора носителей Раз в неделю делается полной бекап данных В остальные дни недели – инкрементальный Раз в месяц делается еще один полный бекап системы Набор носителей для ежедневного инкрементального копирования – сын, набор для еженедельного полного бекапа – отец, набор для ежемесячного полного бекапа – дед

“Ханойская башня” – название пошло от древней китайской игры Смысл игры заключается в следующем Есть три стержня и какой-то набор дисков Диски нужно перемещать со стержня на стержень, но так, чтобы каждый новый диск ложился на диск большего диаметра

Такой метод бекапа достаточно сложен и практически не применяется в настоящее время

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

Методы резервирования баз данных

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

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

Trang 11

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 Они достаточно просты

и для их работы не нужны большие вычисления Поэтому программные рейды чаще используют в решениях начального уровня Аппаратный рейд в своей работе использует рейд-контроллер Рейд-контроллер имеет свой процессор для вычислений и именно он производит операции ввода/вывода

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 Они достаточно просты

и для их работы не нужны большие вычисления Поэтому программные рейды чаще используют в решениях начального уровня Аппаратный рейд в своей работе использует рейд-контроллер Рейд-контроллер имеет свой процессор для вычислений и именно он производит операции ввода/вывода

Trang 12

Уровни RAID-массивов

Их достаточно много Это основные – 0, 1, 2, 3, 4, 5, 6, 7 и комбинированные –

10, 30, 50, 53

Мы рассмотрим только самые ходовые, которые используются в современной инфраструктуре предприятия Буква D в схемах означает Data (данные), или блок данных

RAID 0 (Striped Disk Array without Fault Tolerance)

Он же stripe Это когда два или более физических дисков объединяются в один логический с целью объединения места То есть берем два диска по

500 Гб, объединяем их в RAID 0 и в системе видим 1 HDD объемом в 1 Тб Информация распределяется по всем дискам рейда равномерно в виде небольших блоков (страйпов)

Плюсы – Высокая производительность, простота реализации

Минусы – отсутствие отказоустойчивости При использование этого рейда надежность системы понижается в два раза (если используем два диска) Ведь при выходе из строя хотя бы одного диска вы теряете все данные

RAID 1 (Mirroring & Duplexing)

Он же mirror Это когда два или более физических дисков объединяются в один логический диск с целью повышения отказоустойчивости Информация пишется сразу на оба диска массива и при выходе одного из них информация сохраняется на другом

Плюсы – высокая скорость чтения/записи, простота реализации

Минусы – высокая избыточность В случае использования 2-х дисков это 100%

Уровни RAID-массивов

Их достаточно много Это основные – 0, 1, 2, 3, 4, 5, 6, 7 и комбинированные –

10, 30, 50, 53

Мы рассмотрим только самые ходовые, которые используются в современной инфраструктуре предприятия Буква D в схемах означает Data (данные), или блок данных

RAID 0 (Striped Disk Array without Fault Tolerance) ( p y )

Он же stripe Это когда два или более физических дисков объединяются в один логический с целью объединения места То есть берем два диска по

500 Гб, объединяем их в RAID 0 и в системе видим 1 HDD объемом в 1 Тб Информация распределяется по всем дискам рейда равномерно в виде небольших блоков (страйпов)

Плюсы – Высокая производительность, простота реализации

Минусы – отсутствие отказоустойчивости При использование этого рейда надежность системы понижается в два раза (если используем два диска) Ведь при выходе из строя хотя бы одного диска вы теряете все данные

RAID 1 (Mirroring & Duplexing) ( g p g)

Он же mirror Это когда два или более физических дисков объединяются в один логический диск с целью повышения отказоустойчивости Информация пишется сразу на оба диска массива и при выходе одного из них информация сохраняется на другом

Плюсы – высокая скорость чтения/записи, простота реализации

Минусы – высокая избыточность В случае использования 2-х дисков это 100%

Trang 13

RAID 5 (Independent Data Disks with Distributed Parity Blocks)

Самый популярный вид рейд-массива, в целом благодаря экономичности использования носителей данных Блоки данных и контрольные суммы циклически записываются на все диски массива При выходе из строя одного

из дисков будет заметно снижена производительность, так как придется совершать дополнительные манипуляции для функционирования массива Сам по себе рейд имеет достаточно хорошую скорость чтения/записи но немного уступает RAID 1 Нужно не менее трех дисков чтобы организовать RAID 5

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

Минусы – сложное восстановление данных и реализация

RAID 1+0 (Very High Reliability with High Performance)

Он же RAID 10 Сочетание зеркального рейда и рейда с чередованием дисков

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

Плюсы – высокая отказоустойчивость и производительность

Минусы – высокая стоимость

RAID 5 (Independent Data Disks with Distributed Parity Blocks) ( p y )

Самый популярный вид рейд-массива, в целом благодаря экономичности использования носителей данных Блоки данных и контрольные суммы циклически записываются на все диски массива При выходе из строя одного

из дисков будет заметно снижена производительность, так как придется совершать дополнительные манипуляции для функционирования массива Сам по себе рейд имеет достаточно хорошую скорость чтения/записи но немного уступает RAID 1 Нужно не менее трех дисков чтобы организовать RAID 5

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

Минусы – сложное восстановление данных и реализация

RAID 1+0 (Very High Reliability with High Performance) ( y g y g )

Он же RAID 10 Сочетание зеркального рейда и рейда с чередованием дисков

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

Плюсы – высокая отказоустойчивость и производительность

Минусы – высокая стоимость

Trang 14

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

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

Плюсы – высокая отказоустойчивость, скорость передачи данных и выполнение запросов

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

Storage Area Network

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

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

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

Плюсы – высокая отказоустойчивость, скорость передачи данных и выполнение запросов

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

Storage Area Network

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

Trang 15

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

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

за пределы крупных компаний

Network Attached Storage

NAS – это сетевая система хранения данных В целом это обычный сервер

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

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

за пределы крупных компаний

Network Attached Storage

NAS – это сетевая система хранения данных В целом это обычный сервер

Trang 16

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

DEPO Storage NAS 1005 До 5 Тб данных.

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

с fl ash-носителя/cdrom диска

Direct Attached Storage

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

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

DEPO Storage NAS 1005 До 5 Тб данных.

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

с fl ash-носителя/cdrom диска

Direct Attached Storage

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

Trang 17

В рабочем скрипте цифр быть не должно Я добавил их для удобства объяснения строк кода.

Любой скрипт в Linux начинается с этой последовательности, которая

1

называется sha-bang По сути исполняемый файл может быть просто перечислением набора команд, но если планируется что-то сложнее, где предстоит работа с переменными то sha-bang стоит поместить в файл В этом случае будет создан процесс, в котором мы можем хранить временные данные;

В рабочем скрипте цифр быть не должно Я добавил их для удобства объяснения строк кода

Любой скрипт в Linux начинается с этой последовательности, которая

1

называется sha-bang По сути исполняемый файл может быть просто перечислением набора команд, но если планируется что-то сложнее, где предстоит работа с переменными то sha-bang стоит поместить в файл В этом случае будет создан процесс, в котором мы можем хранить временные данные;

Trang 18

Все строки в файле начинающиеся с символа #, кроме первой строки –

2

комментарии Здесь я просто указал название нашего скрипта как многие делают;

В переменную timestamp мы сохраняем результат выполнения команды

3

date в нужном нам формате: год-месяц-день-час-минута Значение переменной будет фигурировать в конечном имени файла;

В переменной backupFS мы будем сохранять список каталогов для бекапа

4

Каталоги указываем через пробел а весь их список берем в двойные кавычки;

Перед созданием бекапа мы просматриваем backup-каталог и удаляем

8

файлы которые хранятся более 7 дней Для вычисления сколько архив находится в файловой системе мы использовали атрибут файла mtime В этом атрибуте сохраняется время последней модификации файла;

Архивируем нужную нам директорию Имя файла мы генерируем

12

динамически В имени будет использован результат выполнения команды hostname, То есть мы подставим имя нашего сервера, что весьма полезно при хранение бекапов в централизованном месте, где могут быть бекапы

с десятка серверов Далее в название файла добавляем текущее время

в соответствие с форматом переменной timestamp После добавления времени добавляем название резервируемого каталога с заменой символов “/” на “-”;

В переменную timestamp мы сохраняем результат выполнения команды

3.

date в нужном нам формате: год-месяц-день-час-минута Значение переменной будет фигурировать в конечном имени файла;

В переменной backupFS мы будем сохранять список каталогов для бекапа

4.

Каталоги указываем через пробел а весь их список берем в двойные кавычки;

Перед созданием бекапа мы просматриваем backup-каталог и удаляем

8.

файлы которые хранятся более 7 дней Для вычисления сколько архив находится в файловой системе мы использовали атрибут файла mtime В этом атрибуте сохраняется время последней модификации файла;

Архивируем нужную нам директорию Имя файла мы генерируем

12

динамически В имени будет использован результат выполнения команды hostname, То есть мы подставим имя нашего сервера, что весьма полезно при хранение бекапов в централизованном месте, где могут быть бекапы

с десятка серверов Далее в название файла добавляем текущее время

в соответствие с форматом переменной timestamp После добавления времени добавляем название резервируемого каталога с заменой символов “/” на “-”;

Trang 19

Завершение условного оператора и выход из программы.

18

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

в cron администратора, например на 4 часа утра каждый рабочий день, еще

мы добавим и субботу, чтобы захватить данные которые были сделаны в течение рабочего дня пятницы

0 4 * * 1-6 /root/backup.sh

Каталог для бекапа может быть NFS-ресурсом экспортированным на сервер Так мы простым скриптом решаем важную задачу системного администрирования Для более сложной инфраструктуры скорее всего понадобится что-то более функциональное и гибкое

В своих backup-скриптах больше внимания уделяйте обходу потенциальных ошибок и неадекватного поведения в случае отсутствия места на диске или

в случае отсутствия нужных каталогов Не тратьте время на оптимизацию, смысла в этом не много, ведь узким местом всегда будет процесс копирования/архивирования ваших данных

Добавим пользователя rsync и установим ему пароль

# useradd rsync

# passwd rsync

Добавим его в нужные группы чтобы он мог получить право на чтение если такого еще нет

Скопируем каталог /etc с сервера unixbox в наш локальный каталог /var/backup

$ rsync -e ssh -avz delete-after force rsync@unixbox:/etc /var/backup/

Завершение условного оператора и выход из программы

18.

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

в cron администратора, например на 4 часа утра каждый рабочий день, еще

мы добавим и субботу, чтобы захватить данные которые были сделаны в течение рабочего дня пятницы

0 4 * * 1-6 /root/backup.sh

Каталог для бекапа может быть NFS-ресурсом экспортированным на сервер Так мы простым скриптом решаем важную задачу системного администрирования Для более сложной инфраструктуры скорее всего понадобится что-то более функциональное и гибкое

В своих backup-скриптах больше внимания уделяйте обходу потенциальных ошибок и неадекватного поведения в случае отсутствия места на диске или

в случае отсутствия нужных каталогов Не тратьте время на оптимизацию, смысла в этом не много, ведь узким местом всегда будет процесс копирования/архивирования ваших данных

Добавим пользователя rsync и установим ему пароль

# useradd rsync

# passwd rsync

Добавим его в нужные группы чтобы он мог получить право на чтение если такого еще нет

Скопируем каталог /etc с сервера unixbox в наш локальный каталог /var/backup

$ rsync -e ssh -avz delete-after force rsync@unixbox:/etc /var/backup/

Вводим пароль и все

Trang 20

Если хочется процедуру автоматизировать то нужно будет сгенерировать public ключ на сервере centos52 и положить его в файл authorized_keys пользователю rsync на сервере unixbox Давайте сделаем это.

Пояснения

Внимание: если после /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 Поэтому подробно рассматривать его не вижу смысла

Если хочется процедуру автоматизировать то нужно будет сгенерировать public ключ на сервере centos52 и положить его в файл authorized_keys пользователю rsync на сервере unixbox Давайте сделаем это

Пояснения

Внимание: если после /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 Поэтому подробно рассматривать его не вижу смысла

Trang 21

Скрипт в помощь

Этого материала достаточно чтобы начать пользоваться 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 должен содержать список каталог для копирования Примерно так:

# 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 Теперь его можно перенести на другой сервер и развернуть в точную копию

Скрипт в помощь

Этого материала достаточно чтобы начать пользоваться 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 должен содержать список каталог для копирования Примерно так:

# 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 Теперь его можно перенести на другой сервер и развернуть в точную копию

Trang 22

/dev/hda3 Только учтите один минус dd — программа копирует данные по секторам и ей все равно есть на этом участке диска данные или нет, будет воссоздана точная копия и размер будет точно такой же! То есть если раздел /dev/hda3 имеет объем в 5 Гб а занят на нем только 1 то файл hda3.img будет весить 5 Гб.

# 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 – это клиент/серверная система создания резервных копий Хороший выбор для средних и крупных предприятий Что тут говорить,

/dev/hda3 Только учтите один минус dd — программа копирует данные по секторам и ей все равно есть на этом участке диска данные или нет, будет воссоздана точная копия и размер будет точно такой же! То есть если раздел /dev/hda3 имеет объем в 5 Гб а занят на нем только 1 то файл hda3.img будет весить 5 Гб

# 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 – это клиент/серверная система создания резервных копий Хороший выбор для средних и крупных предприятий Что тут говорить,

Trang 23

сама корпорация Xerox использует Amanda в своей ИТ инфраструктуре Изначально Amanda была создана для работы с ленточными накопителями

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

centos52 – Amanda Server

unixbox – Amanda Client

/var/backup – каталог для резервных копий

Задача

Будем делать бекап каталога /etc сервера unixbox Один раз в неделю будем делать полный бекап, остальные – инкрементальный

Начинаем установку

yum -y install amanda-server.i386

Создаем каталог для нового проекта и копируем файл amanda.conf из проекта по умолчанию

mkdir /etc/amanda/fasttech

сама корпорация Xerox использует Amanda в своей ИТ инфраструктуре Изначально Amanda была создана для работы с ленточными накопителями

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

centos52 – Amanda Server

unixbox – Amanda Client

/var/backup – каталог для резервных копий

Задачад

Будем делать бекап каталога /etc сервера unixbox Один раз в неделю будем делать полный бекап, остальные – инкрементальный

Начинаем установку

yum -y install amanda-server.i386

Создаем каталог для нового проекта и копируем файл amanda.conf из проекта по умолчанию

mkdir /etc/amanda/fasttech

Trang 24

tpchanger «chg-disk» # /usr/lib/amanda/chg-disk

tapedev «fi le:/var/backup»

tpchanger «chg-disk» # /usr/lib/amanda/chg-disk

tapedev «fi le:/var/backup»

Trang 25

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

# echo 'unixbox /etc comp-tar' > /etc/amanda/fasttech/disklist

$ echo «export PATH=$PATH:/usr/sbin» >> bash_profi le

Проверяем статус “лент”

$ ammt -t fi le:/var/backup/ status

fi le:/var/backup/ status: ONLINE

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

$ cd /var/backup

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

# echo 'unixbox /etc comp-tar' > /etc/amanda/fasttech/disklist

$ echo «export PATH=$PATH:/usr/sbin» >> bash_profi le

Проверяем статус “лент” р р у

$ ammt -t fi le:/var/backup/ status

fi le:/var/backup/ status: ONLINE

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

$ cd /var/backup

Trang 26

-slot 3: read label `fasttech-3’, date `X’

NOTE: skipping tape-writable test

Tape fasttech-3 label ok

WARNING: tapecycle (5) <= runspercycle (5).

Server check took 0.070 seconds

(brought to you by Amanda 2.5.0p2)

# netstat -lp | grep :amanda

tcp 0 0 *:amandaidx *:* LISTEN 3403/xinetd Сервер готов

# netstat -lp | grep :amanda

udp 0 0 *:amanda *:* 4850/xinetd

-slot 3: read label `fasttech-3’, date `X’

NOTE: skipping tape-writable test

Tape fasttech-3 label ok

WARNING: tapecycle (5) <= runspercycle (5).

Server check took 0.070 seconds

(brought to you by Amanda 2.5.0p2)

# netstat -lp | grep :amanda

tcp 0 0 *:amandaidx *:* LISTEN 3403/xinetd

# netstat -lp | grep :amanda

udp 0 0 *:amanda *:* 4850/xinetd

Клиент готов

Trang 27

$ amadmin fasttech info unixbox /etc

Current info for unixbox /etc:

Stats: dump rates (kps), Full: 968.0, -1.0, -1.0

Сделав бекап еще раз, мы увидим что на этот раз получена инкрементальная копия (Dumps: 1)

$ amadmin fasttech info unixbox /etc

Current info for unixbox /etc:

Stats: dump rates (kps), Full: 968.0, -1.0, -1.0

$ amadmin fasttech info unixbox /etc

Current info for unixbox /etc:

Stats: dump rates (kps), Full: 968.0, -1.0, -1.0

Сделав бекап еще раз, мы увидим что на этот раз получена инкрементальная копия (Dumps: 1)

$ amadmin fasttech info unixbox /etc

Current info for unixbox /etc:

Stats: dump rates (kps), Full: 968.0, -1.0, -1.0

Trang 28

Current info for unixbox /etc:

Stats: dump rates (kps), Full: 968.0, -1.0, -1.0

date host disk lv tape or fi le fi le part status

2009-02-14 unixbox /etc 0 fasttech-3 1 OK

2009-02-14 unixbox /etc 1 fasttech-4 1 OK

К примеру нам нужен файл shells из каталога /etc c ленты fasttech-3

не передавать в качестве аргумента нужный нам каталог то мы получим все резервируемые каталоги с сервера Дальше дело техники

Чтобы делать бекап в 4 утра каждый будний день, пользователю amanda в crontab (crontab -e) помещаем такую строку:

0 4 * * 1-6 /usr/sbin/amdump fasttech

Полезное

Эта команда попросит Amanda сделать полный бекап каталога /etc с сервера unixbox в следующий раз:

amadmin fasttech force unixbox /etc

Команда перемотает виртуальную ленту на начало

ammt -t fi le:/var/backup rewind

Конфигурационный файл /etc/amanda/fasttech/amanda.conf

Current info for unixbox /etc:

Stats: dump rates (kps), Full: 968.0, -1.0, -1.0

date host disk lv tape or fi le fi le part status

2009-02-14 unixbox /etc 0 fasttech-3 1 OK

2009-02-14 unixbox /etc 1 fasttech-4 1 OK

К примеру нам нужен файл shells из каталога /etc c ленты fasttech-3

не передавать в качестве аргумента нужный нам каталог то мы получим все резервируемые каталоги с сервера Дальше дело техники

Чтобы делать бекап в 4 утра каждый будний день, пользователю amanda в crontab (crontab -e) помещаем такую строку:

0 4 * * 1-6 /usr/sbin/amdump fasttech

Полезное

Эта команда попросит Amanda сделать полный бекап каталога /etc с сервера unixbox в следующий раз:

amadmin fasttech force unixbox /etc

Команда перемотает виртуальную ленту на начало

ammt -t fi le:/var/backup rewind

Конфигурационный файл /etc/amanda/fasttech/amanda.conf

Trang 29

runspercycle Тоже самое что и dumpcycle;

tapecycle

Число лент которое Amanda использует в порядке ротации, должно быть больше чем в dumpcycle, обычно это количество лент dumpcycle*2;

tpchanger Название устройства по смене лент;

tapedev Тип ленточного устройства;

tapetype Тип ленточного устройства ассоциированного с tapedev; labelstr Метка которая будет наноситься на ленты;

infofi le

logdir

indexdir

Опции задают расположение log-файлов, индексных файлов (содержащих образ бекап-директорий);

defi ne tapetype Задает бекап-устройство, в моем примере это диск на 500 Гб; defi ne dumptype Здесь задаются backup-опции.

Подводим итоги

Принцип работы Amanda понять не сложно Есть сервер с запущенной службой через xinetd и есть клиенты с запущенным сервисом ожидающим подключения от сервера В файле amandahosts на клиенте мы разрешаем каким серверам можно получать с нас бекап В файле disklist на сервере мы перечисляем список серверов и каталогов которые мы хотим резервировать

с них Как я писал выше, изначально Amanda была создана для работы с ленточными накопителями и это дает о себе знать Нам нужно создать набор каталогов и пометить их как лента Как будто мы работаем с набором лент ленточного накопителя При каждом запуске резервного копирования ленты последовательно будут меняться в “виртуальном лотке”

Резюме

Мы разобрали теорию бекапов и научились на практике дублировать наши данные разными способами

Домашняя работа

Установить и настроить Amanda, сделать пару бекапов, потом удалить “случайно” какой-нибудь файл в системе и восстановить его средствами Amanda

runspercycle Тоже самое что и dumpcycle;

tapecycle

Число лент которое Amanda использует в порядке ротации, должно быть больше чем в dumpcycle, обычно это количество лент dumpcycle*2;

tpchanger Название устройства по смене лент;

tapedev Тип ленточного устройства;

tapetype Тип ленточного устройства ассоциированного с tapedev; labelstr Метка которая будет наноситься на ленты;

infofi le

logdir

indexdir

Опции задают расположение log-файлов, индексных файлов (содержащих образ бекап-директорий);

defi ne tapetype Задает бекап-устройство, в моем примере это диск на 500 Гб; defi ne dumptype Здесь задаются backup-опции.

Подводим итоги

Принцип работы Amanda понять не сложно Есть сервер с запущенной службой через xinetd и есть клиенты с запущенным сервисом ожидающим подключения от сервера В файле amandahosts на клиенте мы разрешаем каким серверам можно получать с нас бекап В файле disklist на сервере мы перечисляем список серверов и каталогов которые мы хотим резервировать

с них Как я писал выше, изначально Amanda была создана для работы с ленточными накопителями и это дает о себе знать Нам нужно создать набор каталогов и пометить их как лента Как будто мы работаем с набором лент ленточного накопителя При каждом запуске резервного копирования ленты последовательно будут меняться в “виртуальном лотке”

Резюме

Мы разобрали теорию бекапов и научились на практике дублировать наши данные разными способами

Домашняя работа

Установить и настроить Amanda, сделать пару бекапов, потом удалить “случайно” какой-нибудь файл в системе и восстановить его средствами Amanda

Trang 30

Сетевой интерфейс Linux

Сетевой интерфейс – это точка присутствия сервера в локальной сети В свою очередь, локальная сеть скорее всего будет иметь доступ в глобальные сети

Настройка сетевого интерфейса очень частая работа для системного администратора и в ней нет нечего сложного

Какие файлы влияют на работу сетевого интерфейса

/etc/modprobe.conf – здесь загружаются модули ядра для различных устройств

alias eth0 pcnet32

alias eth1 pcnet32

/etc/hosts – здесь находится список ip-адресов и назначенных им имен Удобно в отсутствие DNS-сервера или когда нет необходимости сообщать эти имена на всю сеть

/etc/resolv.conf – в этом файле указываются DNS сервера DNS-сервер задается директивой nameserver

# cat /etc/resolv.conf

nameserver 192.168.146.2

/etc/host.conf – файл указывает последовательность использования механизмов разрешения имени В нашем случае сначала используем /etc/hosts а только потом DNS-сервер

# cat /etc/host.conf

order hosts,bind

/etc/init.d/network – скрипт останавливающий и запускающий работу сети в Linux

/proc/sys/net/ipv4/ip_forward – включение маршрутизации для своих интерфейсов, если у вас два или более интерфейсов её нужно включить Включение осуществляется передачей “1” в этот файл

# echo '1' > /proc/sys/net/ipv4/ip_forward

/etc/sysconfi g/network — здесь мы указываем, является ли наш сервер доступным по сети, если да то по каким протоколам и указываем наш hostname, то есть имя сервера Default gateway рекомендуется указывать здесь

# cat /etc/sysconfi g/network

NETWORKING=yes

Сетевой интерфейс Linux

Сетевой интерфейс – это точка присутствия сервера в локальной сети В свою очередь, локальная сеть скорее всего будет иметь доступ в глобальные сети

Настройка сетевого интерфейса очень частая работа для системного администратора и в ней нет нечего сложного

Какие файлы влияют на работу сетевого интерфейса

/etc/modprobe.conf – здесь загружаются модули ядра для различных устройств

alias eth0 pcnet32

alias eth1 pcnet32

/etc/hosts – здесь находится список ip-адресов и назначенных им имен Удобно в отсутствие DNS-сервера или когда нет необходимости сообщать эти имена на всю сеть

/etc/resolv.conf – в этом файле указываются DNS сервера DNS-сервер задается директивой nameserver

# cat /etc/resolv.conf

nameserver 192.168.146.2

/etc/host.conf – файл указывает последовательность использования механизмов разрешения имени В нашем случае сначала используем /etc/hosts а только потом DNS-сервер

# cat /etc/host.conf

order hosts,bind

/etc/init.d/network – скрипт останавливающий и запускающий работу сети в Linux

/proc/sys/net/ipv4/ip_forward – включение маршрутизации для своих интерфейсов, если у вас два или более интерфейсов её нужно включить Включение осуществляется передачей “1” в этот файл

# echo '1' > /proc/sys/net/ipv4/ip_forward

/etc/sysconfi g/network — здесь мы указываем, является ли наш сервер доступным по сети, если да то по каким протоколам и указываем наш hostname, то есть имя сервера Default gateway рекомендуется указывать здесь

# cat /etc/sysconfi g/network

NETWORKING=yes

Trang 31

HOSTNAME=centos52

NETWORKING=yes — будет ли наш сервер работать в сети, наверно 99% случаев ответ будет — да, то есть yes :) Эта директива для Ipv4

NETWORKING_IPV6=no — Ipv6 уже где-то используется но не настолько чтобы переводить сервера на его использование Пока я не буду его включать.HOSTNAME=centos52 — имя нашего сервера

В /etc/sysconfi g/network-scripts/ находятся различные скрипты влияющие на работу сетевого интерфейса Linux

# ls -l /etc/sysconfi g/network-scripts/

-rw-r r 1 root root 140 Feb 14 19:23 ifcfg-eth0

-rw-r r 1 root root 254 Mar 3 2008 ifcfg-lo

/etc/sysconfi g/network-scripts/ifcfg-*

Для нас самое большое значение имеют скрипты ifcfg-* Именно в них описываются настройки сетевых интерфейсов присутствующих в сервере Давайте посмотрим что у них внутри

HWADDR=00:0C:29:43:5B:3D — MAC-адрес нашей сетевой карты Media Access Control — это уникальный идентификатор сетевой карты У каждой сетевой карты свой MAC-адрес и в идеале он не повторяется больше ни с каким в мире Иногда MAC-адрес пытаются подменить чтобы выдать свой компьютер за чужой, по каким либо соображениям, обычно враждебным Длина MAC-адреса составляет 48 бит что позволяет иметь 281 474 976 710

656 уникальных комбинаций У каждого производителя сетевых плат есть

NETWORKING_IPV6=no

HOSTNAME=centos52

NETWORKING=yes — будет ли наш сервер работать в сети, наверно 99% случаев ответ будет — да, то есть yes :) Эта директива для Ipv4

NETWORKING_IPV6=no — Ipv6 уже где-то используется но не настолько чтобы переводить сервера на его использование Пока я не буду его включать.HOSTNAME=centos52 — имя нашего сервера

В /etc/sysconfi g/network-scripts/ находятся различные скрипты влияющие на работу сетевого интерфейса Linux

# ls -l /etc/sysconfi g/network-scripts/

-rw-r r 1 root root 140 Feb 14 19:23 ifcfg-eth0

-rw-r r 1 root root 254 Mar 3 2008 ifcfg-lo

/etc/sysconfi g/network-scripts/ifcfg-*

Для нас самое большое значение имеют скрипты ifcfg-* Именно в них описываются настройки сетевых интерфейсов присутствующих в сервере Давайте посмотрим что у них внутри

HWADDR=00:0C:29:43:5B:3D — MAC-адрес нашей сетевой карты Media Access Control — это уникальный идентификатор сетевой карты У каждой сетевой карты свой MAC-адрес и в идеале он не повторяется больше ни с каким в мире Иногда MAC-адрес пытаются подменить чтобы выдать свой компьютер за чужой, по каким либо соображениям, обычно враждебным Длина MAC-адреса составляет 48 бит что позволяет иметь 281 474 976 710

656 уникальных комбинаций У каждого производителя сетевых плат есть

Trang 32

свой диапазон в котором он назначает адреса своим платам адрес пишется в шестнадцатеричной форме счисления.

MAC-ONBOOT=yes — включать ли этот интерфейс автоматически при включение сервера Думаю, что скорее всего это и нужно

IPADDR=127.0.0.1 — ip-адрес loopback интерфейса Он всегда такой

NETMASK=255.0.0.0 — сетевая маска

NETWORK=127.0.0.0 — сеть в которой находится наш ip-адрес

BROADCAST=127.255.255.255 — адрес широковещательной рассылкиONBOOT=yes — включать ли интерфейс при загрузке сервера, конечно да!NAME=loopback — имя сетевого интерфейса Вывод команды ifconfi g будет показывать значение указанное именно в DEVICE

Custom iface

Выше мы рассмотрели интерфейс работающий по протолу dhcp Но как правило придется работать именно с custom-интерфейсами, то есть вручную задавать параметры и маршрутизацию о которой мы поговорим немного позже

MAC-ONBOOT=yes — включать ли этот интерфейс автоматически при включение сервера Думаю, что скорее всего это и нужно

IPADDR=127.0.0.1 — ip-адрес loopback интерфейса Он всегда такой

NETMASK=255.0.0.0 — сетевая маска

NETWORK=127.0.0.0 — сеть в которой находится наш ip-адрес

BROADCAST=127.255.255.255 — адрес широковещательной рассылкиONBOOT=yes — включать ли интерфейс при загрузке сервера, конечно да!NAME=loopback — имя сетевого интерфейса Вывод команды ifconfi g будет показывать значение указанное именно в DEVICE

Custom iface

Выше мы рассмотрели интерфейс работающий по протолу dhcp Но как правило придется работать именно с custom-интерфейсами, то есть вручную задавать параметры и маршрутизацию о которой мы поговорим немного позже

Trang 33

# service network restart

или

# /etc/init.d/network restart

Shutting down interface eth0: [ OK ]

Shutting down loopback interface: [ OK ]

Bringing up loopback interface: [ OK ]

Bringing up interface eth0: [ OK ]

# service network restart

или

# /etc/init.d/network restart

Shutting down interface eth0: [ OK ]

Shutting down loopback interface: [ OK ]

Bringing up loopback interface: [ OK ]

Bringing up interface eth0: [ OK ]

Проверим все ли поднялось

# ifconfi g

eth0 Link encap:Ethernet HWaddr 00:0C:29:43:5B:3D

Trang 34

inet addr:192.168.146.130 Bcast:192.168.146.255 Mask:255.255.255.0

inet6 addr: fe80::20c:29ff :fe43:5b3d/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:1327 errors:0 dropped:0 overruns:0 frame:0

TX packets:1340 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:149547 (146.0 KiB) TX bytes:232486 (227.0 KiB)

Interrupt:59 Base address:0x2000

Жирным выделены особенно интересные нам участки в выводе команды ifconfi g Как видим все похоже на правду и интерфейс «поднят», то есть находится в рабочем режиме

Для большей ясности разберем и некоторые другие параметры сетевого интерфейса

MTU:1500 — это Maximum Transfer Unit Различные сети и каналы передачи имеют разные скорости обмена Это определяет максимальную длину пакета, пересылка которого с высокой вероятностью произойдет без ошибок Для Ethernet — сетей значение MTU составляет 1500 байт

Metric:1 — чем меньше это значение тем лучше считается маршрут до этой сети На серверах скорее всего это менять не придется Этот параметр играет большую роль в работе протоколов маршрутизации

Сollisions:0 — нулевое значение говорит о том, что с сетевым интерфейсом все в порядке на физическом уровне

RX bytes — сколько данных принято

TX bytes — сколько данных отослано

Так идем дальше В примере выше, после настройки сетевого интерфейса

мы полностью перезагружали службу network Когда на сервере только один интерфейс это не страшно, но если их несколько и какие-то уже работают

и выполняют свои функции прерывать их работу нежелательно Тут нам на помощь приходит скрипт ifup/ifdown Он нужен для перезагрузки какого либо одного сетевого интерфейса Короткий пример

Шаг 1 Вносим изменения в /etc/sysconfi g/network-scripts/ifcfg-eth0

Шаг 2 # ifdown eth0

Шаг 3 # ifup eth0

inet addr:192.168.146.130 Bcast:192.168.146.255 Mask:255.255.255.0

inet6 addr: fe80::20c:29ff :fe43:5b3d/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:1327 errors:0 dropped:0 overruns:0 frame:0

TX packets:1340 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:149547 (146.0 KiB) TX bytes:232486 (227.0 KiB)

Interrupt:59 Base address:0x2000

Жирным выделены особенно интересные нам участки в выводе команды ifconfi g Как видим все похоже на правду и интерфейс «поднят», то есть находится в рабочем режиме

Для большей ясности разберем и некоторые другие параметры сетевого интерфейса

MTU:1500 — это Maximum Transfer Unit Различные сети и каналы передачи имеют разные скорости обмена Это определяет максимальную длину пакета, пересылка которого с высокой вероятностью произойдет без ошибок Для Ethernet — сетей значение MTU составляет 1500 байт

Metric:1 — чем меньше это значение тем лучше считается маршрут до этой сети На серверах скорее всего это менять не придется Этот параметр играет большую роль в работе протоколов маршрутизации

Сollisions:0 — нулевое значение говорит о том, что с сетевым интерфейсом все в порядке на физическом уровне

RX bytes — сколько данных принято

TX bytes — сколько данных отослано

Так идем дальше В примере выше, после настройки сетевого интерфейса

мы полностью перезагружали службу network Когда на сервере только один интерфейс это не страшно, но если их несколько и какие-то уже работают

и выполняют свои функции прерывать их работу нежелательно Тут нам на помощь приходит скрипт ifup/ifdown Он нужен для перезагрузки какого либо одного сетевого интерфейса Короткий пример

Шаг 1 Вносим изменения в /etc/sysconfi g/network-scripts/ifcfg-eth0

Шаг 2 # ifdown eth0

Шаг 3 # ifup eth0

Trang 35

Маршрутизация — это процесс поиска наилучшего пути от источника к получателю Это набор правил по которым будет передаваться трафик

Мы вроде бы с ней еще нечего не делали, но она уже у вас работает Не верите ? Сейчас проверим

netstat – команда позволяющая отслеживать сетевые подключения сервера

# netstat -r

Kernel IP routing table

Destination Gateway Genmask Flags MSS Window irtt Iface192.168.146.0 * 255.255.255.0 U 0 0 0 eth0default 192.168.146.2 0.0.0.0 UG 0 0 0 eth0

В выводе мы увидим список сетей и как до них добраться То есть какой шлюз использовать для достижения пункта назначения Помните, когда мы настраивали сетевой интерфейс eth0 мы указали директиву GATEWAY в ifcfg-eth0 ? Этот gateway был помечен как default, то есть шлюз по умолчанию Весь трафик в сети, которые явно не описаны в таблице маршрутизации, отправляются через шлюз по умолчанию В нашем случае default gateway — 192.168.146.2

Вывод команды “netstat -r” нам говорит следующее

Первая строка Чтобы попасть в подсеть 192.168.146.0 нам не нужен никакой шлюз (*), поскольку мы и так находимся в этой сети

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

irtt - initial round trip time, задает значение которое используется при установке

Маршрутизация р ру ц

Маршрутизация — это процесс поиска наилучшего пути от источника к получателю Это набор правил по которым будет передаваться трафик

Мы вроде бы с ней еще нечего не делали, но она уже у вас работает Не верите ? Сейчас проверим

netstat – команда позволяющая отслеживать сетевые подключения сервера

# netstat -r

Kernel IP routing table

Destination Gateway Genmask Flags MSS Window irtt Iface192.168.146.0 * 255.255.255.0 U 0 0 0 eth0default 192.168.146.2 0.0.0.0 UG 0 0 0 eth0

В выводе мы увидим список сетей и как до них добраться То есть какой шлюз использовать для достижения пункта назначения Помните, когда мы настраивали сетевой интерфейс eth0 мы указали директиву GATEWAY в ifcfg-eth0 ? Этот gateway был помечен как default, то есть шлюз по умолчанию Весь трафик в сети, которые явно не описаны в таблице маршрутизации, отправляются через шлюз по умолчанию В нашем случае default gateway — 192.168.146.2

Вывод команды “netstat -r” нам говорит следующее

Первая строка Чтобы попасть в подсеть 192.168.146.0 нам не нужен никакой шлюз (*), поскольку мы и так находимся в этой сети

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

irtt - initial round trip time, задает значение которое используется при установке

Trang 36

соединения Round trip time – представляет из себя отрезок времени, если

в течение которого от удаленного хоста не пришло подтверждение о получение пакета, пакет будет выслан снова

Iface – показывает к какому интерфейсу относится маршрут

Прописываем маршруты

Если на сервере несколько сетевых интерфейсов то скорее всего понадобится вручную составить таблицу маршрутизации

Приведу пример У нас два сетевых интерфейса eth0 и eth1 Через eth0

мы получаем доступ во внешние сети и по умолчанию весь трафик направляется через него Через eth1 мы получаем доступ ко внутренней сети 192.168.147.0/24 но что еще важнее, в этой сети есть сервер 192.168.147.1

у которого есть сетевой интерфейс в подсеть 192.168.148.0/24 и мы очень хотим туда попадать А для того что туда попадать необходимо прописать правильные маршруты у себя в ОС

Так выглядит таблица маршрутизации в нашем случае

# netstat -r

Kernel IP routing table

Destination Gateway Genmask Flags MSS Window irtt Iface192.168.147.0 * 255.255.255.0 U 0 0 0 eth1192.168.146.0 * 255.255.255.0 U 0 0 0 eth0192.168.148.0 192.168.147.1 255.255.255.0 UG 0 0 0 eth1default 192.168.146.2 0.0.0.0 UG 0 0 0 eth0

То есть в подсеть 192.168.148.0/24 (внутренняя подсеть) мы попадаем через eth1 -> 192.168.147.1, сервер выполняющий роль шлюза в эту подсеть Все остальное идет через default шлюз Все очень просто Ну и собственно как привести настройки к этому

соединения Round trip time – представляет из себя отрезок времени, если

в течение которого от удаленного хоста не пришло подтверждение о получение пакета, пакет будет выслан снова

Iface – показывает к какому интерфейсу относится маршрут

Прописываем маршруты р р ру

Если на сервере несколько сетевых интерфейсов то скорее всего понадобится вручную составить таблицу маршрутизации

Приведу пример У нас два сетевых интерфейса eth0 и eth1 Через eth0

мы получаем доступ во внешние сети и по умолчанию весь трафик направляется через него Через eth1 мы получаем доступ ко внутренней сети 192.168.147.0/24 но что еще важнее, в этой сети есть сервер 192.168.147.1

у которого есть сетевой интерфейс в подсеть 192.168.148.0/24 и мы очень хотим туда попадать А для того что туда попадать необходимо прописать правильные маршруты у себя в ОС

Так выглядит таблица маршрутизации в нашем случае

# netstat -r

Kernel IP routing table

Destination Gateway Genmask Flags MSS Window irtt Iface192.168.147.0 * 255.255.255.0 U 0 0 0 eth1192.168.146.0 * 255.255.255.0 U 0 0 0 eth0192.168.148.0 192.168.147.1 255.255.255.0 UG 0 0 0 eth1default 192.168.146.2 0.0.0.0 UG 0 0 0 eth0

То есть в подсеть 192.168.148.0/24 (внутренняя подсеть) мы попадаем через eth1 -> 192.168.147.1, сервер выполняющий роль шлюза в эту подсеть Все остальное идет через default шлюз Все очень просто Ну и собственно как привести настройки к этому

Trang 37

# cat /etc/sysconfi g/network-scripts/route-eth1

192.168.148.0/24 via 192.168.147.1

Для того чтобы прописать маршруты для какого либо интерфейса, необходимо создать файл route-<название интерфейса> в каталоге /etc/sysconfi g/network-scripts/ После того как все готово к работе, мы перезагружаем сетевой сервис

# service network restart

# cat /etc/sysconfi g/network-scripts/route-eth1

192.168.148.0/24 via 192.168.147.1

Для того чтобы прописать маршруты для какого либо интерфейса, необходимо создать файл route-<название интерфейса> в каталоге /etc/sysconfi g/network-scripts/ После того как все готово к работе, мы перезагружаем сетевой сервис

# service network restart

Trang 38

Теперь подведем итоги, что и как мы сделали.

Есть три вида маршрутов Динамические – которые динамически назначаются сетевому интерфейсу, например сервером DHCP Статические – которые вы вручную прописываете и они остаются в настройках после перезагрузки сервера И маршруты по умолчанию – когда никакие другие маршруты не подходят для того, чтобы отослать по ним пакеты

Мы могли добавить маршрут в подсеть 192.168.148.0/24 командой route

# route add -net 192.168.148.0/24 gw 192.168.147.1

Но после перезагрузки сервера информация о маршруте пропала бы Чтобы такого не произошло используется специальный механизм А именно создание файла вида route-<имя интерфейса> в /etc/sysconfi g/network-scripts В него мы вносим список сетей и как до них добраться Каждая новая запись начинается с новой строки

Про шлюз

Чтобы сервер был шлюзом для других компьютеров необходимо удовлетворить ряд условий:

1 На сервере корректная таблица маршрутизации благодаря которой он поймет что делать с пакетами дальше;

# echo '1' > /proc/sys/net/ipv4/ip_forward

нужной нам сети, например вот так (перенаправлять пакеты для хостов из подсети 192.168.146.0/24):

# iptables -t nat -A POSTROUTING -s 192.168.146.0/24 -j MASQUERADE

Полезные ключи netstat

r – показывает таблицу маршрутизации

n – выводит статистику по ip-адресу, не пытается определить имя хоста Это работает несколько быстрее и обычно, вывод команды удобнее читать

a – показывает состояние всех сокетов на сервере Сокет – это конечная точка сетевых коммуникаций Каждый сокет имеет тип и ассоциированный

Мы могли добавить маршрут в подсеть 192.168.148.0/24 командой route

# route add -net 192.168.148.0/24 gw 192.168.147.1

Но после перезагрузки сервера информация о маршруте пропала бы Чтобы такого не произошло используется специальный механизм А именно создание файла вида route-<имя интерфейса> в /etc/sysconfi g/network-scripts В него мы вносим список сетей и как до них добраться Каждая новая запись начинается с новой строки

Про шлюз р

Чтобы сервер был шлюзом для других компьютеров необходимо удовлетворить ряд условий:

1 На сервере корректная таблица маршрутизации благодаря которой он поймет что делать с пакетами дальше;

2 Включена передача пакетов между интерфейсами:

# echo '1' > /proc/sys/net/ipv4/ip_forward

3 Включен маскарадинг (или установлен прокси) для нужной нам сети, например вот так (перенаправлять пакеты для хостов из подсети 192.168.146.0/24):

# iptables -t nat -A POSTROUTING -s 192.168.146.0/24 -j MASQUERADE

Полезные ключи netstat

r – показывает таблицу маршрутизации

n – выводит статистику по ip-адресу, не пытается определить имя хоста Это работает несколько быстрее и обычно, вывод команды удобнее читать

a – показывает состояние всех сокетов на сервере Сокет – это конечная точка сетевых коммуникаций Каждый сокет имеет тип и ассоциированный

Trang 39

netstat на практике

Параметров выше вполне достаточно, чтобы многое узнать из жизни сетевых служб

# netstat -nt

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 ::ff ff :192.168.146.130:22 ::ff ff :192.168.146.1:2642 ESTABLISHEDtcp 0 132 ::ff ff :192.168.146.130:22 ::ff ff :192.168.146.1:2027 ESTABLISHED

TIME_WAIT – сокет после своего закрытия, еще какое-то время принимает пакеты из сети;

CLOSED – сокет не используется;

CLOSE_WAIT – удаленный хост отключился, ожидаем закрытия сокета;LAST_ACK – удаленный хост отключился и сокет закрыт Ожидание потдверждения;

LISTEN – сокет ожидает входящие подключения;

CLOSING – оба сокета отключились но еще не все наши данные отосланы;UNKNOWN – статус сокета неизвестен

netstat на практике р

Параметров выше вполне достаточно, чтобы многое узнать из жизни сетевых служб

# netstat -nt

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 ::ff ff :192.168.146.130:22 ::ff ff :192.168.146.1:2642 ESTABLISHEDtcp 0 132 ::ff ff :192.168.146.130:22 ::ff ff :192.168.146.1:2027 ESTABLISHED

TIME_WAIT – сокет после своего закрытия, еще какое-то время принимаетпакеты из сети;

CLOSED – сокет не используется;

CLOSE_WAIT – удаленный хост отключился, ожидаем закрытия сокета;LAST_ACK – удаленный хост отключился и сокет закрыт Ожиданиепотдверждения;

LISTEN – сокет ожидает входящие подключения;

CLOSING – оба сокета отключились но еще не все наши данные отосланы;UNKNOWN – статус сокета неизвестен

Trang 40

Мы научились настраивать один и более сетевых интерфейсов Разобрались

с маршрутизацией Узнали какие файлы и как влияют на работу сети в Linux Сейчас мы познакомимся с двумя программами которые играют существенную роль в работе сети Это программа nmap – которая сканирует порты удаленного хоста и сообщается какие порты на нем открыты И программа tcpdump, она переводит вашу сетевую плату в режим promiscuous, что позволяет перехватывать весь трафик проходящий через карту

NMAP

Nmap позволяет сканировать удаленные компьютеры на предмет открытых портов С более агрессивными опциями можно узнать версию ОС и некоторые другие вещи

Not shown: 1677 closed ports

PORT STATE SERVICE VERSION

22/tcp open ssh OpenSSH 4.3 (protocol 2.0)

111/tcp open rpcbind 2 (rpc #100000)

935/tcp open status 1 (rpc #100024)

MAC Address: 00:0C:29:25:04:55 (VMware)

Device type: general purpose

Running: Linux 2.4.X|2.5.X|2.6.X

OS details: Linux 2.4.7 - 2.6.11

Uptime 0.195 days (since Wed Feb 18 14:55:10 2009)

Nmap fi nished: 1 IP address (1 host up) scanned in 14.239 seconds

У nmap много различных опций, подробнее о них можно прочитать в man nmap

Мы научились настраивать один и более сетевых интерфейсов Разобрались

с маршрутизацией Узнали какие файлы и как влияют на работу сети в Linux Сейчас мы познакомимся с двумя программами которые играют существенную роль в работе сети Это программа nmap – которая сканирует порты удаленного хоста и сообщается какие порты на нем открыты И программа tcpdump, она переводит вашу сетевую плату в режим promiscuous, что позволяет перехватывать весь трафик проходящий через карту

NMAP

Nmap позволяет сканировать удаленные компьютеры на предмет открытых портов С более агрессивными опциями можно узнать версию ОС и некоторые другие вещи

Not shown: 1677 closed ports

PORT STATE SERVICE VERSION

22/tcp open ssh OpenSSH 4.3 (protocol 2.0)

111/tcp open rpcbind 2 (rpc #100000)

935/tcp open status 1 (rpc #100024)

MAC Address: 00:0C:29:25:04:55 (VMware)

Device type: general purpose

Running: Linux 2.4.X|2.5.X|2.6.X

OS details: Linux 2.4.7 - 2.6.11

Uptime 0.195 days (since Wed Feb 18 14:55:10 2009)

Nmap fi nished: 1 IP address (1 host up) scanned in 14.239 seconds

У nmap много различных опций, подробнее о них можно прочитать в man nmap

Ngày đăng: 05/11/2019, 14:31