Почему команда ls добавляет точку (.) или плюс (+) к полю прав доступа некоторых файлов?
Last modified on 2009-07-06 20:03:47 GMT. 0 comments. Top.
Система: Fedora 11
Пример:
[ivan@radon ~]$ ll /boot/vmlinuz-* -rwxr-xr-x. 1 root root 3089424 2009-05-28 00:39 /boot/vmlinuz-2.6.29.4-167.fc11.i686.PAE -rwxr-xr-x. 1 root root 3088208 2009-06-17 06:27 /boot/vmlinuz-2.6.29.5-191.fc11.i686.PAE
Это новая функциональность, добавленная в последние версии пакета coreutils
, который включён в дистрибутив Fedora 11. Ответ на этот вопрос содержит страница информации команды ls
. Посмотреть её можно командой # info ls
. Вот выдержка оттуда:
За битами прав доступа следует один символ, который указывает на то, используется ли альтернативный метод контроля доступа, такой, например, как списки контроля доступа. Если этот символ отсутствует, это означает, что альтернативные методы не используется. Если же отображается какой-либо печатный символ — значит используется.
Команда GNU ls использует символ точки (.) для обозначения, что у файла есть только контекст безопасности SELinux. Если у файла присутствуют и другие методы контроля доступа в любой комбинации, он помечается символом плюс (+).
Как определить, выполняется ли текущая система в виртуальной машине?
Last modified on 2009-07-05 09:53:25 GMT. 0 comments. Top.
Original article: http://kbase.redhat.com/faq/docs/DOC-15413.pdf
Translated by Ivan Pesin, July 2009
В только-что загрузившейся системе, чтобы узнать, работает ли она в виртуальном окружении, достаточно проверить вывод команды dmesg
. Ниже приведены примеры выполнения команды в разных виртуализационных средах:
Xen
$ dmesg | grep -i virtual Xen virtual console successfully installed as xvc0
VMWare
$ dmesg | grep -i virtual VMware vmxnet virtual NIC driver Vendor: VMware Model: Virtual disk Rev: 1.0 hda: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive
QEMU или KVM
$ dmesg | grep -i virtual CPU: AMD QEMU Virtual CPU version 0.9.1 stepping 03
Кроме того, можно также использовать команду dmidecode
, для получения информации из системного BIOS. Например:
VMWare:
# dmidecode | egrep -i 'manufacturer|product' Manufacturer: VMware, Inc. Product Name: VMware Virtual Platform
QEMU или KVM:
# dmidecode | egrep -i 'vendor' Vendor: QEMU
Как получить дополнительную информацию о производительности дисков?
Last modified on 2009-07-02 08:32:35 GMT. 0 comments. Top.
Original article: http://kb.redhat.com/faq/docs/DOC-7888.pdf
Translated by Ivan Pesin, June 2009
Команда iostat предоставляет статистику операций ввода/вывода, но иногда администраторам требуется более детальная информация. В таких случаях может оказаться полезным файл /proc/diskstats. Ниже приведён пример выполнения команды cat /proc/diskstats
:
# cat /proc/diskstats 1 0 ram0 0 0 0 0 0 0 0 0 0 0 0 ......................................... 1 15 ram15 0 0 0 0 0 0 0 0 0 0 0 8 0 sda 13707 12045 788079 251532 3517 6016 76252 184444 0 77704 435976 8 1 sda1 834 1670 2 4 8 2 sda2 23606 784578 9531 76248 8 3 sda3 1267 1431 0 0 22 0 hdc 9 9 144 544 0 0 0 0 0 468 544 2 0 fd0 0 0 0 0 0 0 0 0 0 0 0 9 0 md0 0 0 0 0 0 0 0 0 0 0 0
Рассмотрим приведённый вывод:
Первые две колонки — это старший и младший номер устройства.
Третья колонка содержит имя устройства, после которого идут ещё 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.
Original article: http://kbase.redhat.com/faq/docs/DOC-6417.pdf
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
. Строка в файле должна содержать все необходимые параметры для добавления маршрута. Например, чтобы задать маршрут по-умолчанию, файл должен содержать следующее:
default via X.X.X.X dev bond0 10.10.10.0/24 via X.X.X.X dev bond0
В приведённом примере, X.X.X.X
— это IP-адрес шлюза. Вторая строка задаёт другой статический маршрут, где X.X.X.X
это тоже IP-адрес шлюза. Каждая строка в файле обрабатывается как отдельный маршрут.
Синтаксис 2:
Альтернативный вариант синтаксиса следующий:
ADDRESS0=10.10.10.0 NETMASK0=255.255.255.0 GATEWAY0=X.X.X.X
Где 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.
Original article: http://kbase.redhat.com/faq/docs/DOC-2893.pdf
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
.
[root@localhost ~]# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. The number of cylinders for this disk is set to 60799. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-60799, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-60799, default 60799): Using default value 60799 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@localhost ~]# parted -s /dev/sdb unit s print Model: APPLE Xserve RAID (scsi) Disk /dev/sdb: 976748543s Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 63s 976735934s 976735872s primary [root@localhost ~]#
Parted показывает, что fdisk создал раздел, начиная с 63-сектора (32,256 байта) тома, что совместимо с геометрией C/H/S, но не оптимально для RAID. Поскольку RAID использует полосы размером 64KB, начало раздела должно быть сдвинуто на сектор 128. Начинать раздел с нулевого сектора нельзя, поскольку будет перезаписана таблица разделов. Большинство RAID-массивов используют сектора размером 512 байт, но возможны сектора и большего размера.
Примечание: По-умолчанию, parted использует в единицах размера легко читаемые сокращения системы СИ (степени числа 10). Поскольку они редко совпадают со степенями числа 2, parted нужно перевести в режим работы с секторами (unit s), перед тем как проверять или задавать выравнивание разделов по секторам.
Пример 2: удалите раздел /dev/sdb1
и создайте его заново, начиная с сектора 128.
[root@localhost ~]# parted /dev/sdb GNU Parted 1.8.1 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) unit s (parted) print Model: APPLE Xserve RAID (scsi) Disk /dev/sdb: 976748543s Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 63s 976735934s 976735872s primary (parted) rm 1 (parted) mkpart primary 128 976735934 (parted) print Model: APPLE Xserve RAID (scsi) Disk /dev/sdb: 976748543s Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 128s 976735934s 976735807s primary (parted) quit [root@localhost ~]#
Примечание: Команды move
и resize
утилиты parted пытаются сохранить содержимое файловой системы раздела. Если в разделе нет файловой системы, то эти команды откажутся работать.
Выровненная файловая система ext3 может быть создана на выровненном разделе или на логическом томе, состоящем из выровненных физических томов. LVM не влияет на выравнивание, если размер физического экстента, превосходит размер блока RAID. Обычно размер RAID блока равен 64KB, а размер физического экстента — 4MB.
Команда mke2fs
принимает параметр stride, который позволяет оптимизировать размещение метаданных файловой системы для RAID-массивов. Параметр задаётся в блоках файловой системы, которые в большинстве случаев равняются 4KB. Чтобы избежать возможных неточностей и гарантировать правильность вычислений, лучше всего его задать явно.
Пример 3: создайте файловую систему ext3 на /dev/sdb1
, оптимизированную для RAID с размером блока 64KB.
[root@localhost ~]# mke2fs -j -b 4096 -E stride=16 /dev/sdb1 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 61046784 inodes, 122091975 blocks 6104598 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 3726 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 32 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@localhost ~]#
Как определить и настроить вероятность с которой процесс будет завершён при нехватке оперативной памяти
Last modified on 2009-06-25 12:24:59 GMT. 0 comments. Top.
Original article: http://kbase.redhat.com/faq/docs/DOC-5359.pdf
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
, выполните:echo 15 > /proc/1111/oom_adj
Учтите, что OOM-счёт наследуется процессом-потомком от родительского процесса при использовании системных вызовов семейства
fork()
./proc/[pid]/oom_score
— содержит текущий OOM-счёт для данного процесса. Используйте командуcat
чтобы посмотреть текущий OOM-счёт для процесса с номером[pid]
. Например, чтобы узнать текущий OOM-счёт для процесса1111
, выполните:cat /proc/1111/oom_score
Прим. пер.: Значение в файле 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.
Original article: http://kb.redhat.com/faq/docs/DOC-16759.pdf
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:
- Загрузитесь с установочного носителя и начните установку.
- Когда вы дойдёте до экрана выбора пакетов (package customization), выберите опцию “Customize now” и нажмите “Next.”
- Следующий экран будет содержать несколько категорий, в каждой из которых находятся разные группы пакетов. Пройдите по всем категориям, снимая отметки со всех групп, кроме группы ‘Base’ в категории ‘Base’.
- Нажмите “Next” чтобы продолжить процесс установки.
После завершение установки, система должна автоматически загрузиться в уровень выполнения 3. Зарегистрируйтесь в системе как пользователь root и просмотрите файл /root/anaconda-ks.cfg
. Если @base
это единственная присутствующая в нём группа пакетов, то система установлена в минимальном варианте.