Оптимизация операционной системы Linux с целью построения DNS-серверов различного назначения
Осадчиев А.А., Островский В.Ю.
г. Москва, Московский энергетический институт (технический университет), Россия
DNS – служба доменных имен является одной из важнейших
служб при работе со стеком TCP/IP. Свойство распределенности
службы DNS дает возможность локально управлять отдельными
сегментами общей базы, а также позволяет сделать данные этого сегмента
доступными всей сети.
Задачи оптимизации
Для максимальной скорости работы
DNS-сервера нужна не только современная аппаратура, но правильно выбранная
конфигурация самой операционной системы. Можно выделить два основных
направления связанных с оптимизацией операционной системы Linux для
построения DNS-серверов различного назначения:
- Задача оптимизации жесткого
диска и выбора файловой системы по критерию повышения скорости работы и защиты
файловой системы от сбоев. В данной работе производительность – время выполнения
операций чтения и записи файловой системой в секундах. Рассмотрим три варианта
различных DNS-серверов
(корневой DNS-сервер, DNS-сервер первого уровня и корпоративный DNS-сервер).
- Задача оптимизации ядра
операционной системы и программного обеспечения по критерию повышения скорости
работы, т.е. выбор конфигурации под конкретную машину и перекомпиляция ядра
с оптимизацией по скорости. Перекомпиляция программного обеспечения с оптимизацией
по скорости.
- Задача оптимизации жесткого
диска и выбора файловой системы по критерию повышения скорости работы и защиты
файловой системы от сбоев.
Рассмотрим пример того, как пользователь вводит в
браузере адрес страницы кафедры ВМСС (Рис 2). Локальный
DNS-сервер
запрашивает у корневого сервера адрес vmss.mpei.ac.ru
и получает ссылку на DNS-сервер домена ru. Локальный DNS-сервер повторяет запрос DNS-серверу домена ru и получает ссылку на DNS-сервер ac.ru. Снова
повторяется запрос теперь DNS-серверу домена ac.ru и
получает ссылку на DNS-сервер mpei.ac.ru. И,
наконец, локальный DNS-сервер получает искомый адрес от DNS-сервера mpei.ac.ru.
Так как служба доменных имен – это распределенная база данных, то ее
сегменты распределены по различным серверам. На каждом из них храниться
информация о доменах, поддоменах и узлах.
Не менее важным аспектом
является защита файловой системы от аппаратных и программных сбоев. Такие сбои
могут легко вывести файловую систему из строя и повредить важные для нас файлы
настроек или файл данных зоны. Конечно, существуют специальные утилиты для
восстановления файловой системы после таких сбоев, но на это требуется большое
количество времени, а если корневой
DNS-сервер будет недоступен хотя бы несколько минут,
то очень большое число людей просто не смогут работать с сетью.
Задача
оптимизации ядра операционной системы и программного обеспечения по критерию
повышения скорости работы
Решение данной задачи состоит в тонкой конфигурации
ядра операционной системы, выборе необходимых для конкретного сервера опций и
исключение тех опций, которые не являются критичными, его перекомпиляции с
опциями максимальной производительности по скорости. Также необходимо
перекомпилировать некоторое программное обеспечение также для получения
наибольшей производительности по скорости. Есть смысл в тонкой настройке стека
протокола TCP/IP.
Проблемы, возникающие
со стандартной файловой системой Ext2fs
в ОС Linux
Файловая система
обеспечивает целостность данных, контролируя идентичность данных при их записи
и последующем чтении. Также, помимо хранения данных, находящихся в файлах,
файловая система хранит и управляет важной информацией о файлах и о самой
файловой системе (информация о дате, времени, владельце, правах доступа,
размере файла, а также носителе информации и местонахождении файлов на диске и
т.д.). Такую информацию называют метаданными.
Рис.1.1.1 Выполнение
DNS запроса
Проблема потери и искажения данных в Ext2fs
Для повышения быстродействия
операций ввода/вывода данные временно располагаются в оперативной памяти.
Проблема возникает, если сбой происходит до того, как данные из кэша перепишутся
на диск, например при добавлении нового узла в файл, содержащий данные
зоны. Этот сбой вызывает несоответствие
в файловой системе. Возможны следующие варианты:
- Сбой произошел после
сохранения файла с данными зоны. Это самый оптимистичный сценарий, мы
ничего не потеряли, кроме времени, которое требуется на перезагрузку DNS-сервера.
- Сбой произошел до
сохранения файла с данными зоны. В этом случае все несохраненные изменения
будут утеряны, однако, старая версия файла с данными зоны по-прежнему на
месте.
- Сбой произошел в момент
сохранения файла с данными зоны или в момент изменения метаданных. Это
худшее из того, что могло произойти. Новая версия файла записывается
поверх старой, и происходит изменение метаданных. Если метаданные были
изменены корректно, но сбой произошел во время сохранения файла, то
получится файл, частично состоящий из новой версии и частично – из старой,
т.е. файл, содержащий данные зоны будет содержать ошибки и DNS-сервер не будет
работать или будет работать не корректно. Если произошла ошибка в
метаданных, то файл, содержащий данные зоны или даже директория с ним
может просто исчезнуть, но блоки данных останутся на диске, или будут
читаться некорректно.
Проблема производительности в Ext2fs
Возникает вторая проблема,
пока идет сканирование файловой системы, пользователи
DNS-сервера
не смогут соединиться с узлами, информация о которых хранится на этом DNS-сервере.
Проблема ограничения возможностей и поиска в
файловой системе Ext2fs
Еще две проблемы, с которыми
мы сталкиваемся в файловой системе Ext2fs, связаны с поиском. Первая проблема возникает при
записи в файл, содержащий данные зоны, новой записи. Вторая проблема связана с
поиском файлов в больших каталогах. Журналируемые файловые системы, доступные
под Linux, являются решением данной
проблемы.
Журналирующие
файловые системы
Журналирующая файловая
система – это устойчивая к сбоям файловая система, которая призвана улучшить
восстановление после сбоев в работе системы. Были рассмотрены три наиболее
подходящих решения:
ReiserFS от Namesys, XFS от SGI и Ext3fs. Для
этих файловых систем были предложены решения максимальной производительности
для различных
DNS
-серверов (корневой DNS-сервер, DNS-сервер первого уровня и корпоративный DNS-сервер).
Литература
1.
Альбитц
П., Ли К. DNS и BIND. – Пер. с англ. – СПб:
Символ-Плюс, 2002. -696 с., ил.
2.
Gerhard M.
Securing and Optimizing Linux: RedHat Edition version 1.3, RedHat, 2000.
486 c.
3.
Сивер
Э., Спейнауэр С., Фиггинс С., Хекман Д. Linux. Справочник. – Пер. с англ.
– СПб: Символ-Плюс, 2001. -912 с., ил.