Linux администрирование: Лекции Технотрека. Администрирование Linux / Блог компании Mail.ru Group / Хабр

Содержание

Лекции Технотрека. Администрирование Linux / Блог компании Mail.ru Group / Хабр

Представляем вашему вниманию очередную порцию лекций Технотрека. В рамках курса будут рассмотрены основы системного администрирования интернет-сервисов, обеспечения их отказоустойчивости, производительности и безопасности, а также особенности устройства ОС Linux, наиболее широко применяемой в подобных проектах. В качестве примера будут использоваться дистрибутивы семейства RHEL 7 (CentOS 7), веб-сервер nginx, СУБД MySQL, системы резервного копирования bacula, системы мониторинга Zabbix, системы виртуализации oVirt, балансировщика нагрузки на базе ipvs+keepalived. Курс ведёт Сергей Клочков, системный администратор в компании Variti.

Список лекций:


  1. Основы.
  2. Пользовательское окружение Linux.
  3. Linux и сеть (основы).
  4. Управление пользовательским окружением.
  5. Веб-сервисы.
  6. Хранение данных.
  7. Сервисы инфраструктуры.
  8. Резервное копирование.
  9. Резервное копирование (часть 2).
  10. Инфраструктура электронной почты.
  11. Распределение ресурсов системы.

Лекция 1. Основы


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


Лекция 2. Пользовательское окружение Linux


Сначала подробно рассказывается об этапах загрузки системы и ОС, обсуждается ядро Linux. Объясняется, что собой представляет «процесс», как он использует оперативную память. Вы узнаете, что такое дескрипторы и для чего они нужны, как процессор потребляет ресурсы. Затем рассматриваются системные вызовы, сигналы, лимиты процессов, переменные окружения. Обсуждается вопрос размножения процессов и подробно анализируется работа процесса. В завершение вы узнаете о подсистеме perf и логах.


Лекция 3. Linux и сеть (основы)


Вы узнаете, что такое сетевой стек и модель OSI. Вспомните, что такое Ethernet и как с ним работает Linux. Дальше будут освежены ваши знания об использовании IPv4, особенностях IPv4-пакетов и сетей. Затем рассматривается ICMP, мультикаст в IPv4.

Далее переходим к IPv6, обсуждаются заголовки IPv6-пакетов, UDP, TCP-соединения. Затрагивается тема TCP congestion control. Потом рассказывается о NAT, протоколах уровня приложения, DNS, NTP, HTTP и URL. Разбираются коды HTTP-ответа (успешные ответы и ошибки).


Лекция 4. Управление пользовательским окружением


Вы узнаете о том, что такое менеджер пакетов RPM и как его использовать. Далее рассматривается классический init, системный менеджер systemd. Разбирается пример init-файла. Обсуждаются основные типы Unit’ов, рассказывается про системный логгер и ротацию логов. В заключение вы узнаете об основах конфигурации сетевых интерфейсов.


Лекция 5. Веб-сервисы


Сначала рассматривается типовая архитектура веб-сервиса. Рассказывается о том, что такое фронтенд, что такое сервер приложений. Разбирается вопрос хранения данных веб-приложениями. Подробно разбирается работа и использование протокола HTTP. Обсуждаются виды HTTP-запросов. Затрагивается тема создания шифрованных туннелей с помощью SSL. Затем рассматриваются примеры установки СУБД MySQL с созданием БД и пользователя. Разбирается работа с PHP-FPM, конфигурирование nginx, установка и настройка wiki-движка.


Лекция 6. Хранение данных


Перечисляются основные проблемы хранения данных, рассматриваются достоинства и недостатки разных устройств хранения, их интерфейсы. Затем вы узнаете, как определять состояние жёсткого диска, какова его производительность, что такое RAID, какие бывают RAID-массивы и как их создавать. Сравниваются разные типы RAID, а также программные и аппаратные массивы. Обсуждаются LVM-снепшоты, рассматриваются разные файловые системы. Затрагивается вопрос удалённого хранения данных и использование протокола ISCSI.


Лекция 7. Сервисы инфраструктуры


Рассматривается DNS-сервер bind, NTP-сервер. Обсуждается централизованная аутентификация на основе LDAP. Разбирается DHCP, задача установки ОС по сети с помощью kickstart, а в завершение рассматривается система управления конфигурацией Salt.


Лекция 8. Резервное копирование


Начало лекции посвящено продолжению рассказа о системе управления конфигурацией Salt. Рассказывается, как её установить, как осуществляется управление конфигурацией Linux, разбирается её пример. Вы узнаете, что такое «зёрна» и зачем они нужны. Далее переходим к теме резервного копирования: какие данные нужно копировать, каковы основные трудности, какие бывают виды резервных копий.

Обсуждается задача резервного копирования ОС. Рассказывается об использовании системы резервного копирования bacula.


Лекция 9. Резервное копирование (часть 2)


В начале лекции рассказывается о резервном копировании БД. Обсуждаются различные стратегии резервного копирования — mysqldump, mylvmbackup. Вы узнаете, для чего нужен мониторинг и как его выполнять, какие есть средства мониторинга. Рассматриваются разные виды проверок. Обсуждаются шаблоны проверок. В заключение рассказывается об элементах данных, о выполнении веб-мониторинга.


Лекция 10. Инфраструктура электронной почты


Вы узнаете, что такое электронная почта, познакомитесь с основными понятиями. Затем рассматривается процесс доставки и выдачи почты. Обсуждается использование протоколов SMTP, POP3 и IMAP. Разбирается применение SMTP-сервера postfix, IMAP-сервера Dovecot. Рассказывается о том, как ходят письма по сети и что такое MX-записи. Наконец, обсуждается защита от спама, разбираются SPF-записи, DKIM и Spamassassin.


Лекция 11. Распределение ресурсов системы


Лекция посвящена продвинутым вопросам администрирования Linux. Сначала вы узнаете, как управлять параметрами ядра ОС. Затем рассматриваются модули ядра, как ими управлять. Обсуждается выделение ресурсов приложения. Далее рассказывается о планировщике задач, об алгоритмах шедулинга, о приоритетах процессов. Разбирается шедулер CFS, политики шедулинга. Вы узнаете, что такое NUMA и как с ней работать. Познакомитесь с планировщиками ввода/вывода. Далее рассказывается о контрольных группах, об управляемых ресурсах, об управлении контрольными группами и лимитами ввода/вывода.



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

Другие курсы Технотрека на Хабре:


Информацию обо всех наших образовательных проектах вы можете найти в недавней статье.

Лекции Технотрека. Администрирование Linux / Mail.ru Group / Хабр

Представляем вашему вниманию очередную порцию лекций Технотрека. В рамках курса будут рассмотрены основы системного администрирования интернет-сервисов, обеспечения их отказоустойчивости, производительности и безопасности, а также особенности устройства ОС Linux, наиболее широко применяемой в подобных проектах. В качестве примера будут использоваться дистрибутивы семейства RHEL 7 (CentOS 7), веб-сервер nginx, СУБД MySQL, системы резервного копирования bacula, системы мониторинга Zabbix, системы виртуализации oVirt, балансировщика нагрузки на базе ipvs+keepalived. Курс ведёт Сергей Клочков, системный администратор в компании Variti.

Список лекций:


  1. Основы.
  2. Пользовательское окружение Linux.
  3. Linux и сеть (основы).
  4. Управление пользовательским окружением.
  5. Веб-сервисы.
  6. Хранение данных.
  7. Сервисы инфраструктуры.
  8. Резервное копирование.
  9. Резервное копирование (часть 2).
  10. Инфраструктура электронной почты.
  11. Распределение ресурсов системы.

Лекция 1. Основы


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


Лекция 2. Пользовательское окружение Linux


Сначала подробно рассказывается об этапах загрузки системы и ОС, обсуждается ядро Linux. Объясняется, что собой представляет «процесс», как он использует оперативную память. Вы узнаете, что такое дескрипторы и для чего они нужны, как процессор потребляет ресурсы. Затем рассматриваются системные вызовы, сигналы, лимиты процессов, переменные окружения. Обсуждается вопрос размножения процессов и подробно анализируется работа процесса. В завершение вы узнаете о подсистеме perf и логах.


Лекция 3. Linux и сеть (основы)


Вы узнаете, что такое сетевой стек и модель OSI. Вспомните, что такое Ethernet и как с ним работает Linux. Дальше будут освежены ваши знания об использовании IPv4, особенностях IPv4-пакетов и сетей. Затем рассматривается ICMP, мультикаст в IPv4. Далее переходим к IPv6, обсуждаются заголовки IPv6-пакетов, UDP, TCP-соединения. Затрагивается тема TCP congestion control. Потом рассказывается о NAT, протоколах уровня приложения, DNS, NTP, HTTP и URL.

Разбираются коды HTTP-ответа (успешные ответы и ошибки).


Лекция 4. Управление пользовательским окружением


Вы узнаете о том, что такое менеджер пакетов RPM и как его использовать. Далее рассматривается классический init, системный менеджер systemd. Разбирается пример init-файла. Обсуждаются основные типы Unit’ов, рассказывается про системный логгер и ротацию логов. В заключение вы узнаете об основах конфигурации сетевых интерфейсов.


Лекция 5. Веб-сервисы


Сначала рассматривается типовая архитектура веб-сервиса. Рассказывается о том, что такое фронтенд, что такое сервер приложений. Разбирается вопрос хранения данных веб-приложениями. Подробно разбирается работа и использование протокола HTTP. Обсуждаются виды HTTP-запросов. Затрагивается тема создания шифрованных туннелей с помощью SSL. Затем рассматриваются примеры установки СУБД MySQL с созданием БД и пользователя. Разбирается работа с PHP-FPM, конфигурирование nginx, установка и настройка wiki-движка.


Лекция 6. Хранение данных


Перечисляются основные проблемы хранения данных, рассматриваются достоинства и недостатки разных устройств хранения, их интерфейсы. Затем вы узнаете, как определять состояние жёсткого диска, какова его производительность, что такое RAID, какие бывают RAID-массивы и как их создавать. Сравниваются разные типы RAID, а также программные и аппаратные массивы. Обсуждаются LVM-снепшоты, рассматриваются разные файловые системы. Затрагивается вопрос удалённого хранения данных и использование протокола ISCSI.


Лекция 7. Сервисы инфраструктуры


Рассматривается DNS-сервер bind, NTP-сервер. Обсуждается централизованная аутентификация на основе LDAP. Разбирается DHCP, задача установки ОС по сети с помощью kickstart, а в завершение рассматривается система управления конфигурацией Salt.


Лекция 8. Резервное копирование


Начало лекции посвящено продолжению рассказа о системе управления конфигурацией Salt. Рассказывается, как её установить, как осуществляется управление конфигурацией Linux, разбирается её пример. Вы узнаете, что такое «зёрна» и зачем они нужны. Далее переходим к теме резервного копирования: какие данные нужно копировать, каковы основные трудности, какие бывают виды резервных копий. Обсуждается задача резервного копирования ОС. Рассказывается об использовании системы резервного копирования bacula.


Лекция 9. Резервное копирование (часть 2)


В начале лекции рассказывается о резервном копировании БД. Обсуждаются различные стратегии резервного копирования — mysqldump, mylvmbackup. Вы узнаете, для чего нужен мониторинг и как его выполнять, какие есть средства мониторинга. Рассматриваются разные виды проверок. Обсуждаются шаблоны проверок. В заключение рассказывается об элементах данных, о выполнении веб-мониторинга.


Лекция 10. Инфраструктура электронной почты


Вы узнаете, что такое электронная почта, познакомитесь с основными понятиями. Затем рассматривается процесс доставки и выдачи почты. Обсуждается использование протоколов SMTP, POP3 и IMAP. Разбирается применение SMTP-сервера postfix, IMAP-сервера Dovecot. Рассказывается о том, как ходят письма по сети и что такое MX-записи. Наконец, обсуждается защита от спама, разбираются SPF-записи, DKIM и Spamassassin.


Лекция 11. Распределение ресурсов системы


Лекция посвящена продвинутым вопросам администрирования Linux. Сначала вы узнаете, как управлять параметрами ядра ОС. Затем рассматриваются модули ядра, как ими управлять. Обсуждается выделение ресурсов приложения. Далее рассказывается о планировщике задач, об алгоритмах шедулинга, о приоритетах процессов. Разбирается шедулер CFS, политики шедулинга. Вы узнаете, что такое NUMA и как с ней работать. Познакомитесь с планировщиками ввода/вывода. Далее рассказывается о контрольных группах, об управляемых ресурсах, об управлении контрольными группами и лимитами ввода/вывода.



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

Другие курсы Технотрека на Хабре:


Информацию обо всех наших образовательных проектах вы можете найти в недавней статье.

Администрирование Linux на лету

Использование /proc для изменения параметров Linux ядра (proc kernel linux tune)

Грэхем Уайт (Graham White)
Опубликовано 27.03.2007

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

Linux позволяет вносить изменения в систему и устанавливать различные параметры во время работы многими способами. Есть две основные формы, общие для всех систем Linux, которые заложены в ядро (вы можете найти много информации о ядре Linux и загрузить исходный код ядра из архивов; см. Источники), а также в том ядре, которое идет в дистрибутиве. В этой статье рассматриваются оба способа.

Внимание: Эта статья написана для ядер серии 2.4-х. Некоторые опции и возможности могут отличаться в ядрах других серий.

Изменение параметров работающего ядра

Linux имеет отличный способ изменять параметры ядра во время работы системы и без необходимости перезагрузки. Это делается при помощи виртуальной файловой системы /proc. Linux Gazette дает один из простейших и легчайших объяснений /proc, которые я когда-либо видел. (см. Источники.) Вкратце, файловая система /proc дает вам возможность заглянуть в работающее ядро, что может быть полезно для мониторинга производительности, проверки системной информации, конфигурирования системы и изменения конфигурации. Эта файловая система называется виртуальной, потому что это в действительности не файловая система. Это карта, создаваемая ядром и присоединяемая к вашей обычной файловой системе, чтобы обеспечить доступ.

Тот факт, что мы можем разными способами внести изменения в ядро во время работы системы дает системному администратору огромную мощь и гибкость при изменении параметров. Но может быть слишком много власти это плохо? Иногда. Если вы собираетесь внести изменения в файловую систему /proc, вы должны быть уверены, что вы знаете, что вы делаете и какой эффект произведут на систему ваши действия. Это очень полезная техника, но одно неверное движение может вызвать неожиданные последствия. Если вы не уверены и новичок в таких делах, попрактикуйтесь на машине с меньшей важностью для ваших дел.

Как вносить изменения

Сначала, подумайте о том, как не вносить изменения в ядро. Есть две отличных причины, почему вам не стоит просто перейти в /proc, открыть файл в текстовом редакторе, сделать несколько изменений и сохранить файл. Вот они:

  • Целостность данных: Все эти файлы представляют работающую систему, а поскольку ядро может внести изменения в эти файлы в любое время, то если вы откроете файл и попытаетесь внести изменения в то время, когда туда вносит изменения система, то вы можете сохранить не то, что ожидает увидеть ядро.
  • Виртуальные файлы: Все эти файлы в действительности не существуют. Как же тогда синхронизировать сохраненные данные?

Ответом на это является не использование текстового редактора для внесения изменений. Поэтому для внесения изменения в что-либо в файловой системе /proc, вам следует использовать команду echo и перенаправлять вывод команды в выбранный файл в /proc. Например:

echo "Your-New-Kernel-Value" > /proc/your/file

Аналогично, если вы хотите увидеть информацию из /proc, вам следует использовать либо команду, которая предназначена для этого, либо команду cat.

Что изменять

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

Каждый файл в /proc имеет особый набор атрибутов и может принадлежать конкретному пользователю по его ID. Сделано это очень аккуратно, так что правильная работа обеспечена и администратору и пользователям. Следующий список обобщает какие атрибуты могут быть у файлов:

  • Read-only: Файл не может быть изменен ни каким пользователем; используется для представления системной информации
  • Root-write: Если файл может быть изменен, то изменения может вносить только пользователь root
  • Root-read: Некоторые файлы могут быть не читаемы для обычных пользователей системы, только для root
  • Other: Вы можете найти другие комбинации, чем перечисленные выше, по различным причинам

В основном в /proc вы найдете файлы read-only за исключением /proc/sys, которая содержит большинство параметров ядра и предназначена для изменения во время работы системы. Как результат в этой статье рассматривается в основном эта директория.

Последнее, что вам нужно знать о изменении файлов в /proc — это то, что нужно записывать в эти файлы. Вы заметите, что некоторые из файлов могут быть легко прочитаны человеком, а некоторые являются файлами данных и могут быть прочитаны только при специальных утилит таких как top, lspci,и free. Вы также заметите, что эти легко читаемые файлы имеют два различных формата: некоторые являются бинарными ключами, а другие содержат больше информации. Файлы с бинарными ключами содержат только 0 (выключено) или 1 (включено) для некоторых функций ядра.

Внесение изменений

Детальная информация об использовании каждого файла в /proc выходит за рамки этой статьи. За дополнительной информацией о любом файле /proc стоит непосредственно обратиться в исходники ядра, которые содержат очень хорошую документацию. Следующие файлы в /proc наиболее полезны для системного администратора. Они не являются исчерпывающими, но полезны для повседневного использования.

/proc/scsi

/proc/scsi/scsi
Одна из наиболее полезных вещей, которые нужно знать администратору — как добавить дисковое пространство, если у вас есть диски горячей замены без перезагрузки системы. Без использования /proc, вы должны вставить ваш диск, но затем вам придется перезагружать систему для того, чтобы дать ей возможность распознать новый диск. Вы можете позволить системе распознать новый диск с помощью следующей команды:

echo "scsi add-single-device w x y z" > /proc/scsi/scsi

Чтобы эта команда работала правильно, вы должны указать параметры значений w, x, y, и z следующим образом:

  • w — это ID хост адаптера, где первый адаптер имеет ID ноль (0))
  • x — это канал SCSI на хост адаптере, где первый канал ноль (0)
  • y — это SCSI ID устройства
  • z — это номер LUN, где первый LUN ноль (0)

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

Команда для удаления устройства из системы без перезагрузки:

echo "scsi remove-single-device w x y z" > /proc/scsi/scsi

Перед тем как ввести эту команду и удалить SCSI диск, убедитесь, что вы отмонтировали файловые системы на этом диске.

/proc/sys/fs/

/proc/sys/fs/file-max
Здесь указывается максимальное количество заголовков файлов, которое может быть одновременно открыто. Вам может понадобиться увеличить это число если пользователи получают сообщение об ошибке потому что достигнуто максимальное количество открытых файлов. Можно указать любое числовое значение в этом файле.

Default setting: 4096

/proc/sys/fs/file-nr
Этот файл связан с file-max и содержит три значения:

  • Количество назначенных заголовков файлов
  • Количество используемых заголовков
  • Максимальное число заголовков

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

/proc/sys/fs/inode-*
Любые файлы, начинающиеся с «inode» будут выполнять те же функции, что и файлы с именем «file» выше, но выполняют эти операции относительно inodes вместо заголовков файлов.

/proc/sys/fs/overflowuid and /proc/sys/fs/overflowgid
Эти файлы содержат User ID (UID) и Group ID (GID) для любой файловой системы, которая поддерживает 16-bit user и group ID. Эти значения могут быть изменены, но если вы действительно считаете это нужным, то более простым будет изменить файл группы и пароля группы вместо этого.

Default Setting: 65534

/proc/sys/fs/super-max
Здесь указывается максимальное количество заголовков суперблоков. Любая файловая система, которую вы монтируете должна использовать суперблоки, так что вам, возможно, придется использовать его если вы монтируете много файловых систем.

Default setting: 256

/proc/sys/fs/super-nr
Здесь указано текущее значение количества суперблоков. Этот файл только для чтения и используется для информации.

/proc/sys/kernel

/proc/sys/kernel/acct
Здесь содержатся три конфигурируемых значения, которые управляют подсчетом процессов, основанном на свободном пространстве (в процентах) файловой системы и ведет лог:

  1. Если свободное пространство ниже значения в процентах, то процесс подсчета останавливается
  2. Если свободное пространство выше, то процес запускается
  3. Частота в секундах, с которой проверяются предыдущие два значения

Чтобы изменить значения в этом файле вам следует использовать разделенный список параметров.

Default setting: 2 4 30

Эти значения остановят подсчет, если в файловой системе менее 2 процентов свободного пространства и начнет опять если появится 4 или более процентов. Проверка производится каждые 30 секунд.

/proc/sys/kernel/ctrl-alt-del
Этот файл содержит двоичное значение, которое управляет тем, как система реагирует на комбинацию ctrl+alt+delete. Возможны два значения:

  1. Ноль (0) значит, что ctrl+alt+delete принимается и отправляется программе init. Это позволит выполнить системе мягкую остановку и перезагрузку как если бы вы ввели команду shutdown.
  2. Один (1) значит, что ctrl+alt+delete не принимается и никакого чистого отключения не происходит как если бы вы просто выключили питание.

Default setting: 0

/proc/sys/kernel/domainname
Здесь вы можете сконфигурировать ваше сетевое доменное имя. Значения по умолчанию нет и оно может быть, а может и не быть установлено.

/proc/sys/kernel/hostname
Здесь вы можете сконфигурировать ваше сетевое имя хоста. Значения по умолчанию нет и оно может быть, а может и не быть установлено.

/proc/sys/kernel/msgmax
Здесь определяется максимальный размер сообщения, которое может быть отправлено от одного процесса другому. Сообщения между процессами в памяти ядра не копируются на диск, так что если вы увеличите это значение, то вы увеличите количество памяти используемой операционной системой.

Default setting: 8192

/proc/sys/kernel/msgmnb
Здесь указывается максимальное количество байт в одном сообщении.

Default setting: 16384

/proc/sys/kernel/msgmni
Здесь указывается максимальное количество идентификаторов сообщений в очереди.

Default setting: 16

/proc/sys/kernel/panic
Здесь установлено время в секундах, которое ядро будет ждать перед перезагрузкой если произойдет «kernel panic.» Установка в ноль (0) секунд отключит возможность перезагрузки при kernel panic.

Default setting: 0

/proc/sys/kernel/printk
Здесь четыре числовых значения, которые определяют куда будут отправлены сообщения логов, в зависимости от их важности. За более подробной информацией о различных уровнях логов отправляейтесь в man syslog(2). Четыре значения это:

  1. Console Log Level: сообщения с высшим приоритетом, чем это будут выведены на консоль
  2. Default Message Log Level: сообщения без приоритета будут напечатаны с этим приоритетом
  3. Minimum Console Log Level: минимальное (высочайший приоритет) значение, в которое может быть установлен Console Log Level
  4. Default Console Log Level: значение по умолчанию для Console Log Level

Default setting: 6 4 1 7

/proc/sys/kernel/shmall
Это общее количество разделяемой памяти (в байтах), которое может быть использовано в системе.

Default setting: 2097152

/proc/sys/kernel/shmax
Здесь указывается наибольший размер сегмента памяти (в байтах) позволяемый ядром.

Default setting: 33554432

/proc/sys/kernel/shmmni
Этот файл связан с максимальным числом сегментов раздляемой памяти всей системы.

Default setting: 4096

/proc/sys/kernel/sysrq
Активирует System Request Key, если не равно нулю.

Default setting: 0

/proc/sys/kernel/threads-max
Максимальное число потоков, которое может быть использовано ядром.

Default setting: 2048

/proc/sys/net

/proc/sys/net/core/message_burst
Это время (в десятых долях секунды) необходимое для записи нового предупреждения; другие предупреждения, полученные в это время будут пропущены. Это используется для предотвращения атаки Denial of Service, которая может быть выполнена при заваливании вашей системы сообщениями.

Default setting: 50 (5 seconds)

/proc/sys/net/core/message_cost
Здесь указывается значимость каждого предупреждения. Чем выше значение, тем больше предупреждений будет проигнорировано.

Default setting: 5

/proc/sys/net/core/netdev_max_backlog
Здесь указывается максимальное количество пакетов в очередь на обработку если интерфейс получает пакеты быстрее, чем ядро может их обработать.

Default setting: 300

/proc/sys/net/core/optmem_max
Здесь указан максимальный размер буфера для одного сокета.

/proc/sys/net/core/rmem_default
Здесь размер буфера для получаемого сокета по умолчанию (в байтах).

/proc/sys/net/core/rmem_max
Это максимальный размер буфера для получаемого сокета (в байтах).

/proc/sys/net/core/wmem_default
Это размер буфера отправляемого сокета по умолчанию (в байтах).

/proc/sys/net/core/wmem_max
Это максимальный размер буфера посылаемого сокета (в байтах).

/proc/sys/net/ipv4
Все параметры IPv4 и IPv6 полностью документированы в документации к ядру. Смотри файл /usr/src/linux/Documentation/networking/ip-sysctl.txt.

/proc/sys/net/ipv6
То же что и IPv4.

/proc/sys/vm

/proc/sys/vm/buffermem
Здесь происходит управление количеством общей системной памяти (в процентах), которая будет использована как буферная память. Файл содержит три значения, которые могут быть указаны в виде списка через пробел:

  1. Минимальный процент памяти, которая будет использована для буфера
  2. Система будет пытаться установить это количество памяти для буфера если количество доступной памяти будет уменьшено
  3. Максимальный процент памяти, которая будет использована для буферов

Default setting: 2 10 60

/proc/sys/vm/freepages
Этот файл управляет как система реагирует на различные уровни свободной памяти. Содержит три значения, которые могут быть установлены в виде списка, разделенного пробелами:

  1. Если количество свободных страниц в системе достигнет этого минимального предела, только ядро будет иметь доступ к любому дополнительному количеству памяти.
  2. Если количество свободных страниц в системе упадет ниже этого предела, то ядро начнет более агрессивно свопировать для освобождения памяти и поддержания системной производительности.
  3. Если количество свободных страниц в системе упадет ниже этого предела, то ядро начнет более агрессивно свопировать для освобождения памяти и поддержания системной производительности.

Default setting: 512 768 1024

/proc/sys/vm/kswapd
Этот файл управляет как ядро будет свопировать память. Он содержит три значения в виде списка, разделенные пробелами:

  1. Максимальное количество страниц, которое ядро пытается освободить за один раз. Если вы хотите увеличить величину свопирования, вам нужно увеличить это значение.
  2. Минимальное количество раз, которое ядро пытается освободить страницу в время своппинга.
  3. Количество страниц, которое ядро может записать в один своп. Оказывает сильное влияние на производительность системы. Чем больше это значение, тем больше данных будет свопировано и тем меньше времени будет потрачено на поиск на диске. Однако, слишком большое значение окажет обратных эффект на производительность системы из-за увеличения очереди запросов.

Default setting: 512 32 8

/proc/sys/vm/pagecache
Этот файл выполняет ту же работу, что и /proc/sys/vm/buffermem, но он делает ее для карты памяти и общего кэширования файлов.

Выполнение постоянных установок ядра

Полезная утилита для внесения изменений в любые параметры ядра находится в директории /proc/sys. Она позволяет вам вносить изменения в работающее ядро (подобно echo и метод перенаправления, описанный выше), и имеет файл конфигурации, который выполняется при загрузке. Это позволяет чтобы внесенные изменения оставались в ядре после перезагрузки системы. Утилита называется sysctl и она полностью документирована в man sysctl(8).

Файл конфигурации для sysctl — /etc/sysctl.conf, который может быть редактирован, синтаксис файла описан в man sysctl.conf(8). Sysctl использует файлы в /proc/sys как индивидуальные переменные, которые могут быть изменены. Например, файл в /proc/sys, который представляет максимальное количество заголовков файлов в системе, /proc/sys/fs/file-max, представлен как fs.file-max. Этот пример требует некоторых дополнительных пояснений в записи sysctl. Так как sysctl может только изменять переменные в директории /proc/sys, то часть имени переменной обозначающая директорию отбрасывается. Другое изменение касается слэшей, которые заменяются на точки. Вот два простых правила для преобразования файлов в /proc/sys и переменных в sysctl:

  • Отбросьте /proc/sys от начала.
  • Замените слэши на точки в имени файла.

Эти два правила позволят вам преобразовать любой файл в /proc/sys в любое имя переменной в sysctl. Обычное преобразование имени файла в переменную:

/proc/sys/dir/file --> dir.file
dir1.dir2.file --> /proc/sys/dir1/dir2/file

Вы можете увидеть все переменные, доступные для изменения, используя команду sysctl -a. Переменные могут также быть изменены с помощью sysctl, которая выполняет ту же работу что и echo. Эта запись объясняет это:

sysctl -w dir.file="value"

Используя пример с file-max, мы можем изменить это значение на 16384, используя один из двух методов:

sysctl -w fs.file-max="16384"

Или:

echo "16384" > /proc/sys/fs/file-max

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

Внимание: Не все дистрибутивы обеспечивают поддержку sysctl. Если это относится к вашей системе, то вы можете использовать echo и метод перенаправления, как описано выше и добавить эти команды в загрузочный скрипт, чтобы они выполнялись каждый раз при загрузке системы.

Команды для настройки системы

Есть возможность изменять другие параметры (не ядра) во время работы системы и сделать, чтобы эти изменения оказали эффект без перезагрузки системы. В основном это сервисы, демоны и серверы, которые прописаны в директории /etc/init.d. Поскольку в этой директории находится широкий спектр скриптов, то нет возможности рассмотреть их все здесь. Однако, ниже будут приведены несколько примеров того, как можно манипулировать этими скриптами в различных дистрибутивах Linux. Примеры изменения демона и перезагрузки конфигурации без перезагрузки системы могут быть полезны при:

  • Изменении конфигурации Web сервера и перезагрузки Apache
  • Удаления загружаемого в inetd сервиса, которым вы не пользуетесь
  • Манипулирования настройками вашей сети
  • Экспортирования новой файловой системы через NFS
  • Запуска/остановки вашего файервола

Сначала, основной способ манипулирования системными сервисами через скрипты в /etc/init. d. Эти скрипты используют параметры для управления своими сервисами. Вы можете ввести в командной строке имя сервиса без параметров чтобы увидеть допустимые параметры. Общие параметры таковы:

  • start: Запускает остановленный сервис
  • stop: Останавливает запущенный сервис
  • restart: Останавливает и затем запускает сервис; запускает остановленный сервис
  • reload: Перезагружает конфигурацию сервиса без прерывания его соединения
  • status: Выводит информацию запущен сервис или нет

В качестве примера следующая команда перезагрузит конфигурацию вашего xinetd без прерывания любых присоединенных сессий пользователей (полезно, если вы вносите изменения в ваш /etc/xinetd.conf):

/etc/init.d/xinetd reload

Red Hat предоставляет комнанду service, которая будет управлять сервисом для вас. Команда service выполняет те же действия, что и ввод имени скрипта. Синтаксис команды:

service script-name [parameter]

Пример:

service xinetd reload

SuSE также предоставляет команду rc. Она похожа на service, но не имеет пробела между командой и именем скрипта. Синтаксис команды:

rc{script-name} parameter

Пример:

rcapache start

Так же как и при изменении параметров ядра, при перезагрузке системы, все внесенные изменения будут потеряны. Многие дистрибутивы позволяют использовать команду chkconfig, которая управляет сервисами, запускаемыми на различных уровнях (включая загрузку). Во время написания статьи синтаксис команды chkconfig несколько отличался в различных версиях Linux, но если вы введете команду chkconfig без параметров, вы получите список возможных параметров и их использование. Больше информации о chkconfig может быть получено в man chkconfig(8).

Заключение

Конфигурирования ядра на лету с использованием файловой системы /proc не просто, но поняв один раз его структуру и то, как манипулировать различными параметрами и файлами, вы получите мощную утилиту для управления вашими сервисами в любое время.

Acknowledgment

Хочу сказать спасибо Mr. Adrian Fewings за редакцию этой статьи.

Ресурсы для скачивания
Похожие темы

Жизнь системного администратора Linux

Системное администрирование Linux — это работа. Это может быть весело, расстраивающе, сложно умственно, утомительно и часто является отличным источником достижений и не менее большим источником выгорания. То есть это работа, как и любая другая, с хорошими и плохими днями. Как и большинство системных администраторов, я нашел баланс, который мне подходит. Я выполняю свои обычные обязанности с различными уровнями автоматизации и ручных манипуляций, а также провожу довольно много исследований, которые обычно заканчиваются статьями.В этой статье я отвечу на два вопроса. Первый: «Как стать системным администратором?» И второй: «Чем занимается системный администратор Linux?».

Стать системным администратором

Поскольку нет специализации в колледже системного администратора Linux и нет реального курса обучения для системных администраторов Linux, как можно стать системным администратором Linux? Большинство системных администраторов (SA) Linux вошли в эту область случайно. Нет, серьезно.Просто спроси одного. Некоторые SA использовали Linux как побочный продукт к своим обязанностям как Unix SA, поскольку в конце 1990-х их интерес и популярность возросли. Поскольку Linux стал стандартом для центров обработки данных, а популярность различных «разновидностей» Unix пошла на убыль, те, кто попробовал это сделать, были превращены в администраторов Linux из-за необходимости.

Что касается новых администраторов Linux, то многие поступают на работу из-за своих интересов в качестве домашних энтузиастов, геймеров или тайных администраторов серверов колледжей. Вот как это случилось со мной. Как только я впервые увидел Linux в 1995 году, меня зацепило. К январю 1996 года я основал локальную группу пользователей Linux (LUG) здесь, в Талсе, штат Оклахома, к большому огорчению Unix Special Interest Group (Unix SIG).

Мое начало работы с Linux было трудным. Я впервые наткнулся на Linux в журнале, где я мог купить комплект из двух компакт-дисков в начале 1995 года, когда я работал в WorldCom (да, , что WorldCom). Я установил групповой FTP-сервер / сервер загрузки для моих коллег по группе поддержки рабочего стола. Несколько недель спустя один из «гуру» из другой группы сказал мне: «Мы не разрешаем Lye-nix в нашей сети.«Я, конечно, не был уверен, что имеет значение, что разрешено, а что нет, поэтому я оставил сервер, но установил на нем Samba и изменил информацию заголовка демона, чтобы он выглядел так, будто моя маленькая система была сервером Windows.

После того, как я покинул группу поддержки Desktop, я перешел к администрированию домена Windows. Я установил систему Red Hat Linux 4.0, которую тоже спрятал под столом от посторонних глаз. Я также установил на него Samba, чтобы обмануть сетевые зонды и моего надоедливого руководителя группы, который однажды спросил: «Что этот сервер Linux делает для нас?» Я ответил: «Это ничего не значит для us , но много для меня .Я использую его для исследований ». Я оставил систему Red Hat Linux, пока не перешел в другую группу. Linux по-прежнему не разрешался в сети. Мне все равно было все равно. Да, я был дерзким и ужасным, но я тоже не был собираюсь сидеть и возиться с Windows 3.11 и Windows 95, в то время как остальной мир перешел на Linux.

Даже запустить LUG было сложно. У меня было всего около восьми человек, которые были заинтересованы, и это очень расстраивало. После почти года, когда я был слишком разочарован, чтобы продолжать, я передал факел LUG другому члену группы.Группа пользователей Linux в Талсе продолжает работать и сегодня и собирается раз в месяц в кампусе Университета Талсы. У них все еще есть фестивали установки и множество мероприятий. И, хотите верьте, хотите нет, но сейчас Linux является основной операционной системой * nix в этом холодном центре обработки данных, который когда-то не позволял этого. Это уже не WorldCom, а какая-то версия Verizon. Там работают те же люди, и никто никогда не извинился за свое поведение и не сказал: «Привет, Кен, ты был прав насчет Linux». Я тоже не собираюсь задерживать дыхание в ожидании.

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

Также используйте бесплатные ресурсы, такие как Opensource.com и Enable Sysadmin, чтобы расширить свои знания и расширить сеть возможностей обучения.

Чем занимается системный администратор Linux

Системный администратор Linux носит множество шляп, и чем меньше размер вашей среды, тем больше шляп вы будете носить. Администрирование Linux охватывает резервное копирование, восстановление файлов, аварийное восстановление, новый

Проект документации Linux


Информация о LDP
FAQ
Манифест / лицензия
История
Волонтеры / сотрудники
Должностные инструкции
Списки рассылки
IRC
Обратная связь

Автор / внести вклад
Руководство для авторов LDP
Помогите / помогите
Ресурсы
Как отправить
Репозиторий GIT
Загрузок
Контакты

Спонсор сайта LDP
Мастерская

LDP Wiki : LDP Wiki — это отправная точка для любой незавершенной работы
Члены | Авторы | Посетители
Документы

HOWTO : тематическая справка
последние обновления | основной индекс | просматривать по категориям
Руководства : более длинные и подробные книги
последние обновления / основной индекс
Часто задаваемые вопросы : Часто задаваемые вопросы
последние обновления / основной индекс
страницы руководства : справка по отдельным командам (20060810)
Бюллетень Linux : Интернет-журнал
Поиск / Ресурсы

Ссылки
Поиск OMF
Объявления / Разное


Обновления документов
Ссылка на HOWTO, которые были недавно обновлены.

Руководство по системному администрированию UNIX и Linux, пятое издание

«Я рекомендую эту книгу всем администрирование систем UNIX или Linux ».

Давид | 15 рецензенты сделали подобное заявление

«Это хорошо написано, легко читается и очень информативно.”

Гэри Л. Плотва | 12 рецензентов сделали аналогичный отчет

«Лучшая книга по Linux, которую я когда-либо купил встретиться.»

Джош | 15 рецензенты сделали подобное заявление

Мы рады анонсировать полностью обновленную пятую выпуск Системное администрирование UNIX и Linux Справочник! Книга издана Эддисон-Уэсли Профессионал.

«Это издание для тех, кто системы живут в облаке или в виртуализированных центрах обработки данных; те чья административная работа в значительной степени принимает форму автоматизации и исходный код конфигурации; те, кто тесно сотрудничает с разработчиками, сетевыми инженерами, специалистами по комплаенсу и всем другие рабочие пчелы, населяющие современный улей.”

— от Предисловие Пола Викси, признанного Интернет-Залом славы новатор и основатель ISC и Farsight Security

«Как автор, редактор и издатель, я никогда не обращал особого внимания на конкуренцию — кроме в некоторых случаях. Это один из таких случаев. Система UNIX Руководство администратора — одна из немногих книг, которые мы когда-либо мерили себя против.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *