Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 22
Текст из файла (страница 22)
Для включения режима DMA выполните:[root@drwalbr /]# /sbin/hdparm –d1 /dev/hdaЭта команда не только включает поддержку DMA (только для интерфейсов, поддерживающих этотрежим), но и в зависимости от набора микросхем, поддерживаемых ядром системы, вдвое сокращает времясчитывания информации с диска.Шаг 3Протокол Multiword DMA mode 2 (максимальная скорость передачи данных - 16,6 МБ/с), такжеизвестный как ATA-2 интерфейс – более скоростной преемник DMA. Если у вас жесткий диск, поддерживающий этот режим, для включения режима DMA-2 выполните команду:[root@drwalbr /]# /sbin/hdparm –d1 –X34 /dev/hdaШаг 4Протокол multiword DMA mode 3, названный UltraDMA, также известный как ATA/ATAPI-4 –это дальнейшее развитие технологии DMA (максимальная скорость пакетной передачи данных - 33 МБ/с).Если у вас такой диск, то выбирайте этот режим:[root@drwalbr /]# /sbin/hdparm –d1 –X66 /dev/hdaШаг 5Протокол UltraDMA с пропускной способностью 66 МБ/с, также известный как ATA/ATAPI-5.
Жесткие диски, поддерживающие такой интерфейс, появились начиная с 1999 года. Включение поддержки протокола осуществляется командой:[root@drwalbr /]# /sbin/hdparm –d1 –X12 –X68 /dev/hdaШаг 6Протокол UltraDMA с пропускной способностью 100 МБ/с – один из распространенных сейчас интерфейсов, также известен как ATA/ATAPI-6. Производители представили такие жесткие диски уже в середине 2000 года, т. е. еще до официального утверждения ATA/ATAPI-5.
Фактически, их объявление былоприурочено к объявлению 5 июня первого чипсета, поддерживающего протокол UltraATA/100 – i820E. Мыдумаем, что у большинства из вас именно такие жесткие диски. Включение поддержки протокола осуществляется командой:[root@drwalbr /]# /sbin/hdparm –d1 –X12 –X70 /dev/hdaШаг 7Режим Multiple sector mode (IDE Block Mode) поддерживается большинством современныхжестких дисков с IDE-интерфейсом. Этот режим позволяет сокращать количество обращений к жесткомудиску на 30…50 % , увеличивая скорость передачи данных на 5…50%. Для включения режима выполнитекоманду:[root@drwalbr /]# /sbin/hdparm –mXX /dev/hdaГлава 5. Оптимизация операционной системы69Параметр "ХХ" представляет максимальное значение, поддерживаемое IDE/ATA диском. Для определения величины этого параметра используется опция "-i". Посмотрите вывод значения MaxMultSect втексте:[root@drwalbr /]# /sbin/hdparm –i /dev/hda/dev/hda:Model=QUANTUM FIREBALLP LM15, FwRev=A35.0700, SerialNo=737909725840Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>IOMbs }RawCHS=16383/16/63, TrkSize=32256, SectSize=21298, ECCbytes=4BuffType=3(DualPortCache), BuffSize=1900kB, MaxMultSect=16, MultSect=16DblWordIO=no, OldPIO=2, DMA=yes, OldDMA=2CurCHS=16383/16/63, CurSects=-66060037, LBA=yes, LBAsects=29336832tDMA={min:120,rec:120}, DMA modes: mword0 mword1 mword2IORDY=on/off, tPIO={min:120,w/IORDY:120}, PIO modes: mode3 mode4UDMA modes: mode0 mode1 mode2 mode3 *mode4Шаг 8Число секторов get/set влияет на быстродействие многократного обращения к большим файлам.Значение этого параметра по умолчанию – 8 секторов (4 кБайт).
Мы советуем увеличить его вдвое, для этоговыполните команду:[root@drwalbr /]# /sbin/hdparm -a16 /dev/hda .Шаг 9Флаг get/set interrupt-unmask несколько увеличивает скорость обмена с жестким диском иустраняет ошибки переполнения последовательного порта. Для установки флага выполните команду:[root@drwalbr /]# /sbin/hdparm -u1 /dev/hdaШаг 10Кэширование записи также несколько увеличивает скорость обмена с жестким диском. Для включения кэширования выполните команду:[root@drwalbr /]# /sbin/hdparm –W1 /dev/hdaШаг 11Эти опции позволяют сохранять параметры настройки диска при перезагрузке системы.
К сожалению, не все диски их поддерживают. Для включения опций выполните команду:[root@drwalbr /]# /sbin/hdparm -K1 -k1 /dev/hdaШаг 12Протестировать настройки можно с помощью команды:[root@drwalbr /]# /sbin/hdparm -vtT /dev/hda/dev/hda:multcount= 16 (on)I/O support= 3 (32-bit w/sync)unmaskirq= 1 (on)using_dma= 1 (on)keepsettings= 1 (on)nowerr= 0 (off)readonly= 0 (off)readahead= 16 (on)geometry- 1826/255/63, sectors = 29336832, start = 0Timing buffer-cache reads: 128 MB in 0.85 seconds = 150.59 MB/secTiming buffered disk reads: 64 MB in 2.54 seconds = 25.20 MB/secЗАМЕЧАНИЕ Использование всех перечисленных выше опций должно осуществляться с максимальной осторожностью, т. к. может привести к повреждению жесткого диска.После того, как выполнена установка и проверка опции hdparm в конец файла /etc/rc.local логично добавить строку, запускающую hdparm с выбранными опциями, например:/sbin/hdparm -c3 -d1 -X12 -X68 -m16 -a16 -u1 -W1 -k1 -K1 /dev/hdaЭто позволит устанавливать требуемые опции при каждой перезагрузке системы.70Часть 1.
Инсталляция операционной системы Linux на сервереГлава 6Безопасность и оптимизация ядраСодержание главы:1. Различия между ядрами с модульной и монолитной архитектурами2. Ограничения и допущения3. Пакеты4. Дополнительно устанавливаемые пакеты5. Создание аварийной загрузочной дискеты для ядра с модульной архитектурой6.
Подготовка ядра к инсталляции7. Применения патча Grsecurity8. Настройка ядра9. Очистка ядра10. Конфигурирование ядра11. Конфигурирование ядра с монолитной архитектурой12. Конфигурация ядра с модульной архитектурой13. Компиляция ядра14. Инсталляция ядра15. Настройка загрузчика16. Файл /etc/modules.conf17. Проверка работоспособности нового ядра18. Создание аварийной загрузочной дискеты для ядра с монолитной архитектуройГлава 6.
Безопасность и оптимизация ядра71Самая главная часть системы – ядро. Оно сконфигурировано поставщиком дистрибутива, исходя изсоображений максимальной совместимости. В него включена поддержка как можно большего числа устройств и функций и, по мнению авторов, ориентирована в основном на пользователей, использующих Linuxв качестве настольной операционной системы. Это обстоятельство, конечно, упрощает установку системына рабочих станциях и компьютерах домашних пользователей, способствует росту популярности Linux, нони коим образом не удовлетворяет специфичным требованиям, предъявляемым к ядру сервера.
В этой главеописана технология создания уникальной версии ядра, включающей только те фрагменты кода, которые необходимы для использования системы в качестве оптимизированного и безопасного Linux-сервера. Это достаточно простая задача, потому, что код ядра 2.4 был написан специально для серверных систем, и многиеиз ограничений, присущих старым версиям ядра, были сняты. Ядро, созданное в соответствии с изложенными ниже рекомендациями позволит:• повысить производительность системы и устойчивость к хакерским атакам за счет уменьшенияобъема исполняемого кода ядра, удаления неиспользуемых фрагментов кода ядра и применения патчаGrsecurity;• дополнительно увеличить производительность системы за счет отказа от модульной архитектурыядра (по мнению авторов, ядро с модульной архитектурой работают несколько медленнее);• увеличить объем свободной оперативной памяти (ядро не использует раздел Swap);Ниже описаны процедуры конфигурирования и инсталляции ядра с модульной и монолитной архитектурой.
Основное отличие этих процедур состоит в том, что при конфигурировании ядра с монолитнойархитектурой на вопросы о включении той или иной опции вы должны отвечать только "y" или "n" (примодульной архитектуре возможен ответ "m" – включить в качестве модуля). При монолитной архитектуреисключены шаги, связанные с компиляцией и инсталляцией модулей, т. е. команды make modules и makemodules_install.ЗАМЕЧАНИЕ Процесс компиляции ядра оброс слухами, приводящими в ужас начинающих пользователей. Например, авторы сталкивались с ситуацией, в которой пользователь отказывался от компиляции ядра потому, что для этого «нужно знать в совершенстве языки С и С++".
Другой пользователь жаловался, что«в результате компиляции ядра вышел из строя CD-RW". По этому поводу хотелось бы заметить, что знаниеC и других языков программирования никогда не помешает, но для компиляции ядра в этом нет необходимости. По поводу CD-RW выяснилось, что его владелец пытался что-то дописать на лицензионный штампованный инсталляционный диск MS Windows. Ниже описана процедура, с помощью которой вы всегда можетевернуться к старой работоспособной версии ядра. Отбрасываем все страхи и сомнения и переходим к делу.Различия между ядрами с модульной и монолитной архитектурамиОдной из причин использования ядра с модульной архитектурой является то, что оно должно бытьсовместимо с конфигурацией множества систем (тип процессора, чипсет материнской платы, тип жесткогодиска и т. д.).
Различия между этими системами заставляют разработчиков непрерывно разрабатывать ивключать в состав ядра все новые и новые драйверы, поддерживающие соответствующие устройства. Еслибы коды всех драйверов непосредственно включались в код ядра, оно стало бы очень большим, что негативно отразилось бы на производительности системы. Кроме того, не все драйверы устройств являются совместимыми. Поэтому была предложена модульная архитектура ядра, которая предполагает загрузку только техдрайверов, которые необходимы для поддержки устройств, используемых в системе.В ядро с монолитной архитектурой на этапе конфигурирования включаются те, и только те драйверы,которые необходимы для нормального его функционирования.Таким образом, ядро с модульной архитектурой позволяет фрагментам откомпилированного кода модулей, которые находятся в каталоге ядра /lib/modules/2.4.18-5asp/ (для дистрибутиваASPLinux 7.3), при необходимости загружаться и удаляться из кода ядра.
Ядро же с монолитной архитектурой содержит в своем коде все драйверы.Преимущества и недостатки каждой из архитектур мы рассмотрели выше. Выбор за вами. Мы же советуем для использования в серверной системе, где решается постоянная или редко изменяемая номенклатура задач и используется постоянная аппаратная конфигурация, использовать ядро с монолитной архитектурой.Ограничения и допущенияВсе операции выполняются пользователем с учетной записью root.Используется ядро версии 2.4.18-5asp.Используется дистрибутив ASPLinux 7.3 (Vostok).
На других дистрибутивах возможно успешное выполнение подобной процедуры, но авторы этого не проверяли.72Часть 1. Инсталляция операционной системы Linux на сервереПакетыПоследующие шаги описаны в соответствии с информацией, представленной наhttp://www.kernel.orq. Мы использовали две версии ядра: 2.4.18 (на ней основан рассматриваемыйдистрибутив ASPLinux 7.3) и 2.4.19 (последняя доступная на момент написания главы версия).