Tag Archives: basics

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

Система: Fedora 11

Пример:

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

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

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

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

Система: 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.

Как определить архитектуру установленного пакета?

По-умолчанию, если вы сделаете запрос командой rpm -q, архитектура пакета отображаться не будет. Чтобы узнать архитектуру пакета, используйте команду rpm с такими параметрами:

Замените <имя пакета> названием пакета, архитектуру которого нужно узнать. Если вы не знаете точного имени пакета, то та же опция --queryformat может использоваться с командой rpm -qa, а вывод пропустите через фильтр grep, чтобы найти все пакеты, соответствующие шаблону:

Чтобы вывод команды rpm всегда включал архитектуру пакета, отредактируйте файл /etc/rpm/macros.prelink и добавьте в конце следующую строку:

Где найти дополнительную информацию для отладки autofs?

Использование ключа --debug системы automounter может помочь получить полезную информацию при отладке, но при этом генерируется большой объём журнальных записей. Поэтому, использование этого ключа рекомендуется лишь во время отладки конкретной проблемы.

Сначала настройте syslog писать сообщения уровня daemon.debug в отдельный файл. Это поможет в дальнейшем отбирать необходимые сообщения. Добавьте такую строку в файл /etc/syslog.conf:

daemon.debug /var/log/autofs

Перегрузите syslog:

service syslog reload

Разрешите режим отладки демона automount. В карте auto.master добавьте флаг --debug в нужной строке.

Например, у нас есть такая строка в файле auto.master:

/autofoo auto.foo --timeout=60

Измените её на следующую:

/autofoo auto.foo --timeout=60 --debug

Перегрузите autofs:

service autofs reload

В результате, autofs начнёт писать подробную информацию о своей работе в журнальный файл /var/log/autofs.

После того, как вы получили необходимую информацию, стоит отменить внесённые изменения. Удалите строки, добавленные в конфигурационные файлы, и перезапустите сервисы autofs и syslog.