Большой обзор Red Hat Linux
В одной из предыдущих статей мы делали обзор операционной системы Ubuntu, как одного из лучших коммерческих дистрибутивов. На самом деле дистрибутивов Linux, которые могут использоваться в серьезных компаниях и имеют хорошую поддержку не так много. Это Ubuntu от Canonical, Red Hat Enterprise Linux и SUSE Linux.
Эти дистрибутивы поддерживаются не разработчиками любителями, а серьезными компаниями, поэтому можно рассчитывать на то, что они более стабильны и будут своевременно получать обновления. В сегодняшней статье мы более подробно рассмотрим продукт компании Red Hat — сделаем обзор Red Hat Linux Enterprise.
История Red Hat Linux
Red Hat Linux — это один из старейших дистрибутивов Linux, который был основан в 1993 году. Как другие давние дистрибутивы, Red Hat Linux имеет много последователей, например: Caldera, Mandrake, TurboLinux, Yellow Dog и Red Flag.
В 2003 году Red Hat Linux разделился на две редакции — Red Hat Enterprise Linux и Fedora Linux, это провело четкую грань между коммерческой и бесплатной версией. Fedora — это 100% свободное программное обеспечение, в ней содержатся все самые новые технологии и в то же время, это хорошая система для персонального компьютера.
Red Hat Enterprise Linux обеспечивает очень высокую надежность и большой срок поддержки. Каждый выпуск поддерживается на протяжении 10 лет. Пользователи Red Hat 5 могут приобрести расширенную поддержку в течение более чем 10 лет.
Исходный код Red Hat Linux полностью открыт, и любой желающий может его полностью бесплатно скачивать или распространять и даже создавать конкурентные ответвления. Например, CentOS и Scientific Linux — это популярные ответвления, использующие кодовую базу Red Hat практически без изменений. Oracle имеет свою систему, основанную на исходном коде Red Hat — Oracle Unbreakable Linux. Это точно тот же Red Hat Linux, только с возможностью использования ядра от Oracle с различными патчами для увеличения безопасности.
Компания Red Hat — это отличный пример большого успеха проекта с открытым исходным кодом. Это первая компания в сфере свободного ПО, доход которой достиг $1 млрд долларов, в 2016 компания достигла отметки в $2 млрд долларов.
Получение Red Hat Linux
Пользователи Linux привыкли получать все программное обеспечение бесплатно, несмотря на то, что это не является обязательным требованием большинства лицензий СПО. Но Red Hat — платная операционная система. Но есть три способа получить дистрибутив бесплатно полностью легально:
- Вы можете собрать систему из исходных кодов, хотя и это не совсем простая задача;
- Можно использовать одно из ответвлений на основе Red Hat, которое уже предоставляет все готовые пакеты, например, CentOS;
- Скачать образ системы можно на официальном сайте, но для этого вам нужно зарегистрироваться в участника программы для разработчиков. Эта версия точно такая же, как и платная, здесь используются те же репозитории и инструменты, например, менеджер подписок и портал клиентов Red Hat. Но вы не сможете использовать систему в качестве сервера, только для тестирования и разработки.
Также можно купить Red Hat Linux если вы хотите систему для серверов и у вас есть достаточно средств.
Продукты Red Hat
Компания Red Hat выпускает несколько редакций своей системы для использования в различных областях. Есть версии для JBoss Middleware, сервера KVM, облака, хранилища, мобильной разработки, платформ управления, настольных компьютеров, интернета вещей и конечно же сервера. Эта операционная система может работать на всем, начиная от встраиваемых устройств и до суперкомпьютеров.
У Red Hat есть даже специальная система Atomic Host для популярных сейчас контейнеров. Это специально оптимизированная Red Hat 7 для управления контейнерами Docker. Atomic Host упрощает создание и развертывание контейнеров, обеспечивая центральную консоль управления, в которой есть такое программное обеспечение, как: Docker, Kubernetes, SELinux, Systemd и другие стандартные компоненты.
Red Hat имеет партнерские отношения со многими крупными компаниями в сфере информационных технологий, это Dell, SAP, Cisco, Hewlett-Packard, Intel, IBM, Amazon и даже Microsoft. Как и в большинстве проектов свободного программного обеспечения вы получаете функциональную совместимость, а не завязаность на том или ином аппаратном обеспечении.
У Red Hat Linux есть версия системы для рабочего стола и рабочих станций, но о них не так много слышно. Red Hat очень хорошо показывает себя на рабочем столе, это безопасная и стабильная операционная система, простая в настройке и управлении. Для обычных пользователей тут есть один минус — не всегда можно получить самую новую версию программного обеспечения, ведь в дистрибутив попадают только хорошо отлаженные версии. Но для предприятий это в самый раз.
Программное обеспечение
Наш обзор Red Hat Linux был бы неполным без рассмотрения программного обеспечения системы. В этой системе используется система управления пакетами на основе rpm. Она очень похожа на deb но отличается некоторыми особенностями реализации. Отличий в функциональности минимум, разве что, немного меньше программ, чем для формата deb.
По умолчанию система поставляется с большим количеством различного программного обеспечения. В качестве системы обеспечения безопасности используется SELinux. Red Hat очень хорошо поработала над безопасностью своей системы, были созданы даже различные профили безопасности, содержащие наборы правил SELinux, для различных ситуаций.
Для настройки iptables в Red Hat используется утилита firewalld, это не отдельный брандмауэр, а просто еще одна надстройка над iptables. Он упрощает настройку и реализует некоторые дополнительные функции.
Система инициализации — systemd. Именно RedHat была одним из инициаторов перехода Linux дистрибутивов на Systemd, как и сейчас пытается форсировать переход на wayland включением его в Fedora по умолчанию.
В качестве окружения рабочего стола используется Gnome 3 со всем его стеком программ. Здесь есть офисный пакет LibreOffice, браузер Firefox, Gnome Музыка, Gnome Видео, Empathy и другое программное обеспечение, которое может вам понадобиться при повседневной работе.
В качестве файловой системы по умолчанию предлагается использовать XFS. Она дает максимальную производительность при работе с большими файлами, но ее нельзя уменьшить.
Минусы Red Hat Enterprise Linux
Основной минус Red Hat Linux — это достаточно старые версии программного обеспечения. Это происходит из-за того, что система должна содержать только стабильные программы, а чтобы убедиться в стабильности и дождаться исправления всех проблем нужно кое-какое время.
Хотя это может вызвать некоторые проблемы. Например, Red Hat 6 содержит в своем составе PHP 5.3.3, а Red Hat 7 — 5.4. Обе версии уже устарели, не поддерживаются и небезопасны. Red Hat бекпортирует исправления, но большинство новых проектов требуют более новой версии php.
Поддержка
Поддержка у Red Hat очень качественная и, как правило, получает очень много положительных отзывов от пользователей. Также компания предлагает полный набор обучающих и сертифицированных курсов. Они специально рассчитаны на программное обеспечение Red Hat но основные аспекты Linux везде одинаковы. Также у Red Hat есть отличная документация по операционной системе.
Выводы
В этой статье мы сделали обзор Red Hat Enterprise Linux. Это отличная операционная система, особенно для корпоративных пользователей. Кроме того, в лице CentOS она может стать отличным решением для пользователей домашних компьютеров. А что вы думаете об Red Hat Linux и других, основанных на ней дистрибутивах? Напишите в комментариях!
RedHat/Oracle Linux с NetApp FAS (SAN)
В продолжении темы по оптимизации хоста. В предыдущей статье я писал об оптимизации Windows и SAN сети, в этой статье я хотел бы рассмотреть тему оптимизации RedHat/Oracle Linux (с виртуализацией и без) с использованием СХД NetApp FAS в среде SAN .
Для поиска и устранения узких мест в такой инфраструктуре, нужно опредилиться с компонентами инфраструктуры, среди которых их стоит искать. Разделим инфраструктуру на следующие компоненты:
Для поиска узкого места обычно выполняют методику последовательного исключения. Предлагаю перво-наперво начать с СХД . А дальше двигаться СХД -> Сеть (Ethernet / FC) -> Хост ( Windows / Linux / VMware ESXi 5.Х и ESXi 6.X ) -> Приложение. Сейчас остановимся на Хосте.
SAN Multipathing
Ethernet
Jumbo frames
В случае использования iSCSI крайне рекомендуется использовать Jumbo Frames в Ethernet со скоростью выше или равно 1Gb. Подробнее в статье про Ethernet с NetApp FAS. Не забудьте что ping нужно запускать на 28 байт меньше при использовании Jumbo Frames в Linux.
Flow Control
Flow Control желательно выключать на всём пути трафика от сервера до СХД с 10Гб линками. Подробнее.
ESXi & MTU9000
В случае использования окружения ESXi, не забудьте создать правильный сетевой адаптер — E1000 для 1GB сетей или VMXNET3 если у вас сеть выше чем 1Gb. E1000 и VMXNET3 поддерживают MTU 9000, а стандартный виртуальный сетевой адаптер типа «Flexible» не поддерживает.
Подробнее про оптимизацию VMware с NetApp FAS.
Converged Network
FC8 vs 10GBE: iSCSI, CIFS, NFS
Современные конвергентные коммутаторы, такие как Cisco Nexus 5500 способны коммутировать как трафик Ethernet так и FC позволяя иметь большую гибкость в будущем благодаря решению «два-в-одном».
Thin Provitioning
Хост ESXi
Гостевая ОС так и хост BareMetal Linux
Хочу обратить ваше внимание на то, что в большинстве дистрибутивов Linux как в качестве виртуальной машины так и BareMetal параметр I/O scheduling установлен в значение не подходящее для FAS систем, это может приводить к высокой утилизации CPU .
Обратите внимание на вывод команды top, на высокую утилизацию CPU вызванную процессом dd, который в общем-то должен генерировать нагрузку только на систему хранения.
Сбор статистики на хосте
Linux и другие Unix-like:
Теперь посмотрим на состояние дисковой подсистемы на стороне хоста
Подробнее здесь.
Iostat | Windows, аналог |
---|---|
rrqm/s (The,number of merged read requests queued per second.) read I/O per second | LogicalDisk(*)\Disk Transfers/sec = rrqm/s+wrqm/s., Для,Linux машин добавить колонку rrqm/s, а LogicalDisk(*)\Disk Transfers/sec пропускать |
wrqm/s (The number of merged write requests,queued per second.) write I/O per second | LogicalDisk(*)\Disk Transfers/sec = rrqm/s+wrqm/s., Для,Linux машин добавить колонку wrqm/s, а LogicalDisk(*)\Disk Transfers/sec пропускать |
r/s (The number of read requests sent to the device per,second.) | Disk,reads/sec |
w/s (The number of write requests sent to the device per,second.) | Disk,writes/sec |
rsec/s (The number of sectors read per second.) нужно знать размер сектора, обычно,512 байт. | rsec/s*512=,»\LogicalDisk(*)\Disk,Read Bytes/sec», |
wsec/s (The number of sectors written per second.) нужно знать размер сектора, обычно,512 байт. | wsec/s*512=,»\LogicalDisk(*)\Disk Write Bytes/sec», |
avgrq-sz (The request size in sectors.) нужно знать размер сектора, обычно 512 байт. | avgrq-sz — средний размер оперируемого блока — нужен. Добавить колонку, в Windows он высчитывается из других параметров. |
avgqu-sz (The number of,requests waiting in the device’s queue.) | »\LogicalDisk(*)\Avg.,Disk Queue Length». Отдельно по Read и Write получается нет, но этого, достаточно. Соотношение чтение записи будет высчитываться по «rrqm/s» с «wrqm/s» или «r/s» с «w/s»., Т.е., для Linux пропускать:,LogicalDisk(*)\Avg.,Disk Read Queue Length,LogicalDisk(_Total)\Avg.,Disk Write Queue Length. |
await (The number of milliseconds required to respond to,requests) | Среднее,Latency, в Windows это значение не выдаёт, высчитывается из других, пареметров, добавить колонку, параметр нужен. |
svctm (The number of milliseconds spent servicing,requests, from beginning to end) | Время, выполнения запроса. Добавить отдельную колонку для Linux машин, пригодится |
%util (The percentage of CPU time during which requests were,issued) | «\Processor(_total)\%,Processor Time», нагрузка на CPU пускай будет (добавить колонку), из неё косвенно понятно перегруз дисковой подсистемы. |
Linux elevator
Теперь про значения для elevator/scheduler:
По-умолчанию оно установлено в значение cfq или deadline:
Рекомендуется устанавливать его в значение noop:
Для того, чтобы настройки были постоянными, добавьте “elevator=noop” в параметры загрузки ядра в файле /etc/grub.conf, они будут применены ко всем блочным устройствам. Или добавьте соответствующий скрипт в /etc/rc.local, для того, чтобы гибко устанавливать настрйки для каждого отдельного блочного устройства.
Не забудьте поменять sdb на имя вашего блочного устройства
Настройки Sysctl с работой Virtual Memory
I/O queue size или длинна очереди ввода-вывода на HBA
Значение по-умолчанию обычно 128, его нужно подбирать вручную. Увеличение длинны очереди имеет смысл при случайных операциях ввода-вывода, генерирующих множество операций disk seek на дисковой подсистеме. Изменяем так:
Иногда изменение этого параметра может не давать результатов, к примеру в случае с InnoDB (из-за особенностей работы этого приложения, которое само оптимизирует данные перед их записью) или в случае увеличения параметра выше дефолтного при работе с SSD дисками (так как в них нет операций disk seek).
Гостевая ОС
Файловая система
Noatime на Хосте
На уровне файловой системы можно настроить параметр при монтрировании noatime и nodiratime, который не даст обновлять время доступа к файлам, что часто очень положительно сказывается на производительности. Для таких ФС как UFS, EXT3 и др. У одного из заказчиков установка noatime при монтировании файловой системы ext3 на Red Hat Enterprise Linux 6 сильно уменьшило нагрузку на CPU хоста.
Таблица загрузки
Для Linux машин нужно при создании LUN ‘а выбрать геометрию диска: «linux» (для машин без xen) или «xen» в случае если на этот лун будет установлен Linux LVM с Dom0.
Misalignment
NetApp Host Utilities
Она находиться
/opt/netapp/santools/
После чего, скорее всего, понадобится перезапустить хост.
NetApp Linux Forum
Не забудьте поискать больше информации и задать свои вопросы на https://linux.netapp.com/forum.
Приложения
Драйвера
Совместимость
Широко применяйте матрицу совместимости в вашей практике для уменьшения потенциальных проблем в инфрастурктуре ЦОД .
Уверен, что со временем мне будет что добавить в эту статью по оптимизации Linux хоста, так что заглядывайте сюда время от времени.
Редакторский дайджест
Присылаем лучшие статьи раз в месяц
Скоро на этот адрес придет письмо. Подтвердите подписку, если всё в силе.
Похожие публикации
Архитектура резервного копирования на системах NetApp FAS
NetApp 7-Mode: Недокументированные возможности или делаем DR из SnapVault
NetApp FAS и VMware ESXi: Swap
Вакансии
AdBlock похитил этот баннер, но баннеры не зубы — отрастут
Комментарии 6
Очень хорошая статья, большое спасибо.
Удалось ли вам снизить нагрузку на 8-ое ядро процессора на картинке с htop-ом, скажем, до 50% путем манипуляций с планировщиком вода-вывода?
Я это, собственно, к чему: я не нашел тестов, которые бы подтверждали выигрыш от смены CFQ на noop. Вот старый тест RedHat на Oracle 10G:
Я сомневаюсь, что код CFQ настолько плох, что становится узким местом на «обычных» хранилищах (про all-SSD я не говорю). Зато, отказываясь от CFQ мы теряем возможность задавать разным процессам разные приоритеты ввода-вывода, потому что ionice работает только с CFQ (man ionice: «Linux supports io scheduling priorities and classes since 2.6.13 with the CFQ io scheduler»)
В нашем случае выигрыш был существенным, во-первых утилизация CPU упала, во-вторых была увеличина пропускная способность по записи.
В случае с netapp параметр noop рекомендован. На сколько мне известно, в случае многих других производителей СХД, имеется та же ситуация.
Так что настройки «для ноута с SDD» и «для сервера с SAN LUN» похоже имеют существенные отличия в рекомендациях по оптимизации.
Но я не стремился к сравнению noop vs CFQ. Т.е. настраивали не только шедулер, сменили файловую систему, параметры sysctl.
Стремился получить наиболее оптимальную систему по вводу-выводу. Так что может noop и проигрывал немного (если не менять всего остального), а на тюнинге других параметрах ввода-вывода выигрывал на столько, что в сумме без noop вышло лучше.
На счёт приоритетов:
В случае применения СХД, настройка QoS на ввод-вывод как правило выполняется на самой СХД, а не на стороне сервера. Это кстати более удобно, когда у вас множество серверов (скорее всего гетерогенных), вы настраиваете все в одном месте, а не на каждом сервере.
Видимо отсюда и проистикает рекомендация использовать noop.