Подборка вопросов и ответов #3

Подборка вопросов и ответов #3

Почему команда ls добавляет точку (.) или плюс (+) к полю прав доступа некоторых файлов?

Last modified on 2009-07-06 20:03:47 GMT. 0 comments. Top.

Система: Fedora 11

Это новая функциональность, добавленная в последние версии пакета coreutils , который включён в дистрибутив Fedora 11. Ответ на этот вопрос содержит страница информации команды ls . Посмотреть её можно командой # info ls . Вот выдержка оттуда:

За битами прав доступа следует один символ, который указывает на то, используется ли альтернативный метод контроля доступа, такой, например, как списки контроля доступа. Если этот символ отсутствует, это означает, что альтернативные методы не используется. Если же отображается какой-либо печатный символ — значит используется.

Команда GNU ls использует символ точки (.) для обозначения, что у файла есть только контекст безопасности SELinux. Если у файла присутствуют и другие методы контроля доступа в любой комбинации, он помечается символом плюс (+).

Как определить, выполняется ли текущая система в виртуальной машине?

Last modified on 2009-07-05 09:53:25 GMT. 0 comments. Top.

Translated by Ivan Pesin, July 2009

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

Xen

VMWare

QEMU или KVM

Кроме того, можно также использовать команду dmidecode , для получения информации из системного BIOS. Например:

VMWare:

QEMU или KVM:

Как получить дополнительную информацию о производительности дисков?

Last modified on 2009-07-02 08:32:35 GMT. 0 comments. Top.

Translated by Ivan Pesin, June 2009

Команда iostat предоставляет статистику операций ввода/вывода, но иногда администраторам требуется более детальная информация. В таких случаях может оказаться полезным файл /proc/diskstats. Ниже приведён пример выполнения команды cat /proc/diskstats :

Рассмотрим приведённый вывод:

Первые две колонки — это старший и младший номер устройства.

Третья колонка содержит имя устройства, после которого идут ещё 11 колонок.

Поле 1: количество выполненных операций чтения. Это общее число успешно завершённых операций чтения.

Поле 2: количество объединённых операций чтения.

Поле 3: количество считанных секторов. Это общее число успешно прочитанных секторов.

Поле 4: количество миллисекунд, затраченных на чтение. Это общее число миллисекунд, затраченных на операции чтения (измеряется от вызова __make_request() до end_that_request_last()).

Поле 5: количество выполненных операций записи. Это общее число успешно завершённых операций записи.

Поле 6: количество объединённых операций записи. Последовательные операции чтения и записи могут объединяться для повышения эффективности. Потому две операции считывания по 4K, могут стать одной операцией по считыванию 8K непосредственно перед передачей запроса диску. Таким образом, эти операции будут посчитаны (и выполнены) как одна операция ввода/вывода. Это поле показывает насколько часто происходит такая ситуация.

Поле 7: количество записанных секторов. Это общее число успешно записанных секторов.

Поле 8: количество миллисекунд, затраченных на запись. Это общее число миллисекунд, затраченных на операции записи (измеряется от вызова __make_request() до end_that_request_last()).

Поле 9: количество выполняемых операций ввода/вывода в текущий момент. Единственное поле, значение которого может уменьшаться до нуля. Увеличивается при передаче запросов соответствующей request_queue_t и уменьшается при их завершении.

Поле 10: количество миллисекунд, затраченных на выполнение операций ввода/вывода. Это значение возрастает, пока значение поля 9 не равно нулю.

Поле 11: взвешенное число миллисекунд, затраченных на выполнение операций ввода/вывода. При каждом начале, завершении,или объединении операций ввода/вывода, или при считывании этой статистики, это поле увеличивается на число выполняемых в текущий момент операций ввода/вывода (поле 9), умноженное на количество миллисекунд, затраченных на выполнение операций ввода/вывода, с момента последнего обновления данного поля. Это позволяет получить простую статистику как времени выполнения операций ввода/вывода, так и количества незавершённых операций, число которых может возрастать.

Прим.пер.: здесь рассматривается формат записи, относящийся к диску, не разделу. Для разделов представлены только 4 поля, аналоги описанных полей 1,3,5,7. Начиная с ядра 2.6.25 у разделов появился полный набор полей статистики.

Как настроить дополнительные маршруты в Red Hat Enterprise Linux?

Last modified on 2009-06-30 20:16:37 GMT. 0 comments. Top.

Translated by Ivan Pesin, June 2009

Система: Red Hat Enterprise Linux 3.5, 4 and 5

Чтобы задать статические маршруты, используются файлы /etc/sysconfig/network-scripts/route-interface . Они считываются при инициализации сетевых интерфейсов (ниже описывается синтаксис файлов).

Существуют два варианта синтаксиса этих файлов. Первый — это аргументы к команде ip , второй состоит из директив “сеть/маска/шлюз”.

Синтаксис 1:

Если используется синтаксис с аргументами команды ip , скрипт ifup-route для каждой строки из файла выполняет команду ip route add . Строка в файле должна содержать все необходимые параметры для добавления маршрута. Например, чтобы задать маршрут по-умолчанию, файл должен содержать следующее:

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

Синтаксис 2:

Альтернативный вариант синтаксиса следующий:

Где X.X.X.X это IP-адрес шлюза. Следующие записи должны быть последовательно пронумерованы (например ADDRESS1=, NETMASK1=, GATEWAY1= ). Обратите внимание, что нумерация должна идти последовательно без пропусков (после 0 должна идти 1, а не любое число, большее 0).

Как создать файловую систему ext3, оптимизированную для работы на RAID и приложений с прямым вводом/выводом?

Last modified on 2009-06-28 07:56:50 GMT. 0 comments. Top.

Translated by Ivan Pesin, June 2009

Система: Red Hat Enterprise Linux 3, Red Hat Enterprise Linux 4, Red Hat Enterprise Linux 5

Решение:

RAID уровней 0, 4, 5 и 6 для записи на разные диски, разбивает данные на большие блоки — “полосы”, обычно по 64KB. Выравнивание разделов и файловых систем в соответствии с размером этих полос может повысить производительность, в частности, программ, которые используют прямой ввод/вывод.

Программа fdisk создаёт разделы, выровненные по границам цилиндров, в соответствии с исторической геометрией “цилиндр/дорожка/сектор” (cylinder/head/sector, C/H/S). Это позволяет обеспечить максимальную совместимость с другими операционными системами и утилитами. К сожалению, такая геометрия обычно не соответствует размеру полосы RAID-массива. Если доступ к RAID будет осуществляться только операционными системами и утилитами, полностью поддерживающими логическую адресацию блоков (Logical Block Addressing, LBA), то необходимость в выравнивании по геометрии C/H/S отпадает, а с помощью программы parted можно выровнять разделы под полосы RAID-массива.

Внимание: все приводимые здесь примеры уничтожают существующие разделы и файловые системы. Применяйте их только для создания новых файловых систем.

Пример 1: выровненный по границе цилиндра раздел, созданный утилитой fdisk на диске /dev/sdb .

Parted показывает, что fdisk создал раздел, начиная с 63-сектора (32,256 байта) тома, что совместимо с геометрией C/H/S, но не оптимально для RAID. Поскольку RAID использует полосы размером 64KB, начало раздела должно быть сдвинуто на сектор 128. Начинать раздел с нулевого сектора нельзя, поскольку будет перезаписана таблица разделов. Большинство RAID-массивов используют сектора размером 512 байт, но возможны сектора и большего размера.

Примечание: По-умолчанию, parted использует в единицах размера легко читаемые сокращения системы СИ (степени числа 10). Поскольку они редко совпадают со степенями числа 2, parted нужно перевести в режим работы с секторами (unit s), перед тем как проверять или задавать выравнивание разделов по секторам.

Пример 2: удалите раздел /dev/sdb1 и создайте его заново, начиная с сектора 128.

Примечание: Команды move и resize утилиты parted пытаются сохранить содержимое файловой системы раздела. Если в разделе нет файловой системы, то эти команды откажутся работать.

Выровненная файловая система ext3 может быть создана на выровненном разделе или на логическом томе, состоящем из выровненных физических томов. LVM не влияет на выравнивание, если размер физического экстента, превосходит размер блока RAID. Обычно размер RAID блока равен 64KB, а размер физического экстента — 4MB.

Команда mke2fs принимает параметр stride, который позволяет оптимизировать размещение метаданных файловой системы для RAID-массивов. Параметр задаётся в блоках файловой системы, которые в большинстве случаев равняются 4KB. Чтобы избежать возможных неточностей и гарантировать правильность вычислений, лучше всего его задать явно.

Пример 3: создайте файловую систему ext3 на /dev/sdb1 , оптимизированную для RAID с размером блока 64KB.

Как определить и настроить вероятность с которой процесс будет завершён при нехватке оперативной памяти

Last modified on 2009-06-25 12:24:59 GMT. 0 comments. Top.

Translated by Ivan Pesin, June 2009

Ядро Red Hat Enterprise Linux 5.2 создает 2 файла для каждого процесса, которые позволяют управлять вероятностью, с которой этот процесс будет завершён, когда система будет вынуждена заврешать процессы из-за нехватки оперативной памяти (out-of-memory, OOM). Это файлы:

    /proc/[pid]/oom_adj — используется для изменения “OOM-счёта” (OOM score), который определяет вероятность завершения процесса при нехватке оперативной памяти. Чем больше значение OOM-счёта, тем больше вероятность того, что процесс будет завершён подсистемой oomkill . Допустимые значения находятся в промежутке от -17 до 15; обратите внимание, что OOM-счёт равный -17 означает, что [pid] не будет завершён при нехватке памяти.

Чтобы задать OOM-счёт, просто выполните команду echo значение с выводом в файл /proc/[pid]/oom_adj . Например, чтобы установить OOM-счёт равный 15 для процесса 1111 , выполните:

Прим. пер.: Значение в файле oom_score — динамически вычисляемое, оно не равняется значению, которое передаётся в файл oom_adj . Значение, передаваемое в файл oom_adj , меняет вероятность в большую или меньшую сторону, а не задаёт абсолютное значение.

Как выполнить минимальную установку Red Hat Enterprise Linux 5 с помощью Anaconda?

Last modified on 2009-06-23 10:45:31 GMT. 0 comments. Top.

Translated by Ivan Pesin, June 2009

Система: Red Hat Enterprise Linux 5

Проблема

Минимальная установка Red Hat Enterprise Linux необходима для некоторых продуктов Red Hat, таких как Red Hat Network Satellite (RHN Satellite). Одной из наиболее распространённых причин неудачной установки RHN Satellite, является установка на “не-минимальную” (или, “не- @base “) систему Red Hat Enterprise Linux.

Решение

Следующие шаги описывают порядок действий для установки минимальной системы Red Hat Enterprise Linux 5 с помощью графического режима утилиты установки Anaconda: