rhel5 – Ivan Pesin https://pesin.space/blog Articles & Translations Wed, 19 Oct 2016 02:08:18 +0000 en-US hourly 1 https://wordpress.org/?v=5.1.1 Как пересканировать SCSI-шину без перезагрузки компьютера? /blog/2009/07/%d0%ba%d0%b0%d0%ba-%d0%bf%d0%b5%d1%80%d0%b5%d1%81%d0%ba%d0%b0%d0%bd%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c-scsi-%d1%88%d0%b8%d0%bd%d1%83-%d0%b1%d0%b5%d0%b7-%d0%bf%d0%b5%d1%80%d0%b5%d0%b7%d0%b0/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25bf%25d0%25b5%25d1%2580%25d0%25b5%25d1%2581%25d0%25ba%25d0%25b0%25d0%25bd%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d1%2582%25d1%258c-scsi-%25d1%2588%25d0%25b8%25d0%25bd%25d1%2583-%25d0%25b1%25d0%25b5%25d0%25b7-%25d0%25bf%25d0%25b5%25d1%2580%25d0%25b5%25d0%25b7%25d0%25b0 Sun, 19 Jul 2009 09:06:56 +0000 http://www.n-ix.com/ipesin/?p=322

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

Добавить и удалить конкретное SCSI-устройство, как и пересканировать всю SCSI-шину, возможно без перезагрузки системы. Обратитесь к документу Online Storage Reconfiguration Guide за полным обзором по этой теме в Red Hat Enterprise Linux 5.

Для Red Hat Enterprise Linux 5

Для хранилища, подключённого через fibre channel, можно инициировать выполнение LIP (loop initialization primitive) на фабрике:

echo "1" > /sys/class/fc_host/host#/issue_lip

Выполнение LIP (как в приведённом примере) — это всё, что необходимо в Red Hat Enterprise Linux 5 для пересканирования шины fibre channel. Для завершения операции сканирования нужно несколько секунд. Эта функциональность полностью поддерживается начиная с версии Red Hat Enterprise Linux 5.

Для Red Hat Enterprise Linux 4 и 5

Чтобы пересканировать шину SCSI-контроллера, выполните команду:

echo "- - -" > /sys/class/scsi_host/host#/scan

Замените символ # номером SCSI-шины, которую нужно пересканировать.

Кроме полного пересканирования шины, можно добавлять или удалять только определённое заданное устройство. Команды для различных версий Red Hat Enterprise Linux приведены в следующих разделах.

Для Red Hat Enterprise Linux 4 или 5

Чтобы удалить одно заданное устройство, выполните:

# echo 1 > /sys/block/<dev>/device/delete

Для Red Hat Enterprise Linux 3, 4 или 5

Чтобы добавить одно заданное устройство, выполните:

# echo "scsi add-single-device <H> <B> <T> <L>" > /proc/scsi/scsi

Чтобы удалить заданное устройство, выполните:

# echo "scsi remove-single-device <H> <B> <T> <L>" > /proc/scsi/scsi

Где <H> <B> <T> <L> — это хост, шина, целевой номер устройства и логический номер (host, bus, target, LUN) соответственно. Соответствующие устройству номера можно найти в каталоге /sys (тольок для ядер версии 2.6), файле /proc/scsi/scsi или выводе команды dmesg.

В документации и выводе утилит указанные номера могут также называться как “хост”, “канал”, “идентификатор” и “lun”.

Рекомендации для виртуальных гостевых систем

Вышеописанные процедуры применимы для систем с гипервизорами (т.е. для dom0 в Red Hat Enterprise Linux 5), но не могут использоваться для динамического изменения хранилищ виртуальных гостевых систем. За подробной информацией о добавлении хранилищ в виртуальные гостевые системы обращайтесь к документу Virtualization Guide.

Для владельцев контроллеров Hewlett-Packard SmartArray

Контроллеры HP SmartArray и другое аппаратное обеспечение, использующее драйвер cciss, имеют другой интерфейс для управления SCSI-устройствами. Пользователи таких котроллеров могут обратится к аналогичному руководству здесь.

]]>
Как заставить HP Smart Array просканировать шину без перезагрузки Red Hat Enterprise Linux 4? /blog/2009/07/%d0%ba%d0%b0%d0%ba-%d0%b7%d0%b0%d1%81%d1%82%d0%b0%d0%b2%d0%b8%d1%82%d1%8c-hp-smart-array-%d0%bf%d1%80%d0%be%d1%81%d0%ba%d0%b0%d0%bd%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d1%88%d0%b8%d0%bd%d1%83/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25b7%25d0%25b0%25d1%2581%25d1%2582%25d0%25b0%25d0%25b2%25d0%25b8%25d1%2582%25d1%258c-hp-smart-array-%25d0%25bf%25d1%2580%25d0%25be%25d1%2581%25d0%25ba%25d0%25b0%25d0%25bd%25d0%25b8%25d1%2580%25d0%25be%25d0%25b2%25d0%25b0%25d1%2582%25d1%258c-%25d1%2588%25d0%25b8%25d0%25bd%25d1%2583 Thu, 16 Jul 2009 16:14:47 +0000 http://www.n-ix.com/ipesin/?p=500

Для работы с контроллером HP Smart Array используется драйвер cciss. Если в работающую систему были добавлены диски, поддерживающие горячую замену, они не будут видны до тех пор, пока не пересканируется шина SCSI. Обычно это происходит при загрузке системы. Если перезагрузка системы невозможна или нежелательна, можно использовать следующий подход: инициировать сканирование шины командами драйвера. Для этого, отправьте команду rescan драйверу cciss:

echo "rescan" &gt; /proc/driver/cciss/cciss0

А после того, как шина будет просканирована, можно добавить новое устройство в систему:

echo scsi add-single-device 3 2 1 0 &gt; /proc/scsi/scsi

Вышеприведённый пример добавляет устройство с SCSI-номером 1, логическим номером 0, подключенное ко второй шине третьего контроллера (controller 3, bus 2, target 1, lun 0). Измените эти значения в соответствии с параметрами добавляемого устройства.

]]>
Как с помощью yum скачать пакет, не устанавливая его в системе? /blog/2009/07/%d0%ba%d0%b0%d0%ba-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-yum-%d1%81%d0%ba%d0%b0%d1%87%d0%b0%d1%82%d1%8c-%d0%bf%d0%b0%d0%ba%d0%b5%d1%82-%d0%bd%d0%b5-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%b0/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d1%2581-%25d0%25bf%25d0%25be%25d0%25bc%25d0%25be%25d1%2589%25d1%258c%25d1%258e-yum-%25d1%2581%25d0%25ba%25d0%25b0%25d1%2587%25d0%25b0%25d1%2582%25d1%258c-%25d0%25bf%25d0%25b0%25d0%25ba%25d0%25b5%25d1%2582-%25d0%25bd%25d0%25b5-%25d1%2583%25d1%2581%25d1%2582%25d0%25b0%25d0%25bd%25d0%25b0 Mon, 13 Jul 2009 15:30:21 +0000 http://www.n-ix.com/ipesin/?p=498

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

Решение:

Убедитесь, что пакет yum-downloadonly установлен в системе. Если нет, то этот пакет доступен в Red Hat Network (RHN).  Чтобы установить пакет yum-downloadonly в системе, зарегистрированной в Red Hat Network, выполните команду:

#yum install yum-downloadonly

yum-downloadonly — это плагин, который может быть использован для загрузки пакетов из RHN или репозиториев yum, без установки их в системе. Проверьте содержимое файла /etc/yum/pluginconf.d/downloadonly.conf и убедитесь, что плагин разрешён:

[main]
enabled=1

Теперь, для примера, выполните следующую команду, которая загружает последнюю версию vsftpd, если она доступна, без установки в системе:

# yum install --downloadonly vsftpd
Loading "downloadonly" plugin
Loading "rhnplugin" plugin
rhel-i386-server-5        100% |=========================| 1.4 kB    00:00
Setting up Install Process
Parsing package install arguments
Package vsftpd - 2.0.5-10.el5.i386 is already installed.
Resolving Dependencies
--&gt; Running transaction check
---&gt; Package vsftpd.i386 0:2.0.5-12.el5 set to be updated
--&gt; Finished Dependency Resolution

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size 
=============================================================================
Updating:
 vsftpd                  i386       2.0.5-12.el5     rhel-i386-server-5  138 k

Transaction Summary
=============================================================================
Install      0 Package(s)
Update       1 Package(s)
Remove       0 Package(s)

Total download size: 138 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): vsftpd-2.0.5-12.el 100% |=========================| 138 kB    00:02

exiting because --downloadonly specified

По-умолчанию, пакет сохраняется в каталог /var/cache/yum/<repo>/packages/. В нашем случае <repo> это rhel-i386-server-5. Чтобы сохранить пакет в другом каталоге, укажите параметр --downloaddir вместе с --downloadonly. Например:

#yum install --downloadonly --downloaddir=/tmp vsftpd

В результате последняя доступная версия пакета vsftpd, если он не установлен в системе, будет загружена и сохранена в каталоге /tmp.

Чтобы скачать пакет установленный в системе, используйте команду yumdownloader. Например, в системе установлен пакет httpd-2.2.3-22.el5:

# rpm -q httpd
httpd-2.2.3-22.el5

Чтобы скачать его, воспользуйтесь командой yumdownloader:

# yumdownloader httpd-2.2.3-22.el5
Loaded plugins: fastestmirror, kmod, protectbase, rhnplugin, versionlock
Loading mirror speeds from cached hostfile
Reading version lock configuration
0 packages excluded due to repository protections
httpd-2.2.3-22.el5.i386.rpm

Пакет сохраняется в текущем каталоге. Чтобы указать другое место, добавьте ключ --destdir с указанием нужного каталога. За подробной информацией о возможностях и параметрах команды обращайтесь к странице руководства, доступной по команде man yumdownloader.

Прим.пер.: утилита yumdownloader входит в пакет yum-utils.

]]>
Как определить, выполняется ли текущая система в виртуальной машине? /blog/2009/07/%d0%ba%d0%b0%d0%ba-%d0%be%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d0%b8%d1%82%d1%8c-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d1%8f%d0%b5%d1%82%d1%81%d1%8f-%d0%bb%d0%b8-%d1%82%d0%b5%d0%ba%d1%83%d1%89%d0%b0/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25be%25d0%25bf%25d1%2580%25d0%25b5%25d0%25b4%25d0%25b5%25d0%25bb%25d0%25b8%25d1%2582%25d1%258c-%25d0%25b2%25d1%258b%25d0%25bf%25d0%25be%25d0%25bb%25d0%25bd%25d1%258f%25d0%25b5%25d1%2582%25d1%2581%25d1%258f-%25d0%25bb%25d0%25b8-%25d1%2582%25d0%25b5%25d0%25ba%25d1%2583%25d1%2589%25d0%25b0 Sun, 05 Jul 2009 09:53:25 +0000 http://www.n-ix.com/ipesin/?p=313

В только-что загрузившейся системе, чтобы узнать, работает ли она в виртуальном окружении, достаточно проверить вывод команды 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

]]>
Как получить дополнительную информацию о производительности дисков? /blog/2009/07/%d0%ba%d0%b0%d0%ba-%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b8%d1%82%d1%8c-%d0%b4%d0%be%d0%bf%d0%be%d0%bb%d0%bd%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d1%83%d1%8e-%d0%b8%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25bf%25d0%25be%25d0%25bb%25d1%2583%25d1%2587%25d0%25b8%25d1%2582%25d1%258c-%25d0%25b4%25d0%25be%25d0%25bf%25d0%25be%25d0%25bb%25d0%25bd%25d0%25b8%25d1%2582%25d0%25b5%25d0%25bb%25d1%258c%25d0%25bd%25d1%2583%25d1%258e-%25d0%25b8%25d0%25bd%25d1%2584%25d0%25be%25d1%2580%25d0%25bc%25d0%25b0 Thu, 02 Jul 2009 08:32:35 +0000 http://www.n-ix.com/ipesin/?p=327

Команда 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 5 с помощью Anaconda? /blog/2009/06/%d0%ba%d0%b0%d0%ba-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d0%b8%d1%82%d1%8c-%d0%bc%d0%b8%d0%bd%d0%b8%d0%bc%d0%b0%d0%bb%d1%8c%d0%bd%d1%83%d1%8e-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d1%83-red/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25b2%25d1%258b%25d0%25bf%25d0%25be%25d0%25bb%25d0%25bd%25d0%25b8%25d1%2582%25d1%258c-%25d0%25bc%25d0%25b8%25d0%25bd%25d0%25b8%25d0%25bc%25d0%25b0%25d0%25bb%25d1%258c%25d0%25bd%25d1%2583%25d1%258e-%25d1%2583%25d1%2581%25d1%2582%25d0%25b0%25d0%25bd%25d0%25be%25d0%25b2%25d0%25ba%25d1%2583-red Tue, 23 Jun 2009 10:45:31 +0000 http://www.n-ix.com/ipesin/?p=83

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

  1. Загрузитесь с установочного носителя и начните установку.
  2. Когда вы дойдёте до экрана выбора пакетов (package customization), выберите опцию “Customize now” и нажмите “Next.”
  3. Следующий экран будет содержать несколько категорий, в каждой из которых находятся разные группы пакетов. Пройдите по всем категориям, снимая отметки со всех групп, кроме группы ‘Base’ в категории ‘Base’.
  4. Нажмите “Next” чтобы продолжить процесс установки.

После завершение установки, система должна автоматически загрузиться в уровень выполнения 3. Зарегистрируйтесь в системе как пользователь root и просмотрите файл /root/anaconda-ks.cfg. Если @base это единственная присутствующая в нём группа пакетов, то система установлена в минимальном варианте.

]]>
Как настроить Xendump в Red Hat Enterprise Linux 5? /blog/2009/06/%d0%ba%d0%b0%d0%ba-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b8%d1%82%d1%8c-xendump-%d0%b2-red-hat-enterprise-linux-5/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25bd%25d0%25b0%25d1%2581%25d1%2582%25d1%2580%25d0%25be%25d0%25b8%25d1%2582%25d1%258c-xendump-%25d0%25b2-red-hat-enterprise-linux-5 Thu, 18 Jun 2009 07:20:22 +0000 http://www.n-ix.com/ipesin/?p=192

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

Решение:

Xendump это средство захвата дампов памяти гостевых систем Xen. Оно встроено в гипервизор Xen Hypervisor. Дампы памяти ядра полезны при выяснении причин краха системы. Для анализа таких дампов используется утилита crash. Утилита crash аналогична традиционной Unix-программе crash. Она предоставляет трассировки стека и другую отладочную функциональность для определения проблемных областей, вызывающих крах системы. Аналогичное средство, предназначенное для обычных (не-Xen) ядер, называется Kdump. Чтобы узнать больше о том, как работает Kdump, прочитайте Как настроить kexec/kdump в Red Hat Enterprise Linux 5? .

Чтобы настроить Xendump следуйте нижеприведённым инструкциям:

  1. Включите средство Xendump. Отредактируйте /etc/xen/xend-config.sxp и измените строку

    #(enable-dump no)

    на:

    (enable-dump yes)

  2. Перезапустите демон xen:

    # service xend restart

  3. Чтобы проверить работу Xendump, запустите гостевую систему Xen:

    # xm create /etc/xen/&lt;домен&gt;

  4. Выполните захват памяти командой:

    # xm dump-core &lt;имя_домена&gt; &lt;файл_дампа&gt;

Обратите внимание, что на данный момент Xendump может быть настроен для автоматического захвата дампов памяти паравиртуальных (PV) гостевых систем Xen при их крахе. Для захвата дампа памяти гостевых систем Xen с полной виртуализацией (FV) Xen, необходимо выполнять команду xm dump-core вручную.

]]>
Как загрузить новое ядро с помощью kexec? /blog/2009/06/%d0%ba%d0%b0%d0%ba-%d0%b7%d0%b0%d0%b3%d1%80%d1%83%d0%b7%d0%b8%d1%82%d1%8c-%d0%bd%d0%be%d0%b2%d0%be%d0%b5-%d1%8f%d0%b4%d1%80%d0%be-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-kexec/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25b7%25d0%25b0%25d0%25b3%25d1%2580%25d1%2583%25d0%25b7%25d0%25b8%25d1%2582%25d1%258c-%25d0%25bd%25d0%25be%25d0%25b2%25d0%25be%25d0%25b5-%25d1%258f%25d0%25b4%25d1%2580%25d0%25be-%25d1%2581-%25d0%25bf%25d0%25be%25d0%25bc%25d0%25be%25d1%2589%25d1%258c%25d1%258e-kexec Mon, 15 Jun 2009 07:17:59 +0000 http://www.n-ix.com/ipesin/?p=259

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

Решение:

Kexec это механизм быстрой загрузки, который позволяет загружать ядро Linux из контекста уже запущенного ядра без передачи управления BIOS. Процедуры инициализации BIOS-а могут занимать очень много времени, особенно на больших серверах со множеством периферийных устройств. Механизм kexec позволяет сэкономить массу времени разработчикам, которые должны многократно перезагружать систему.

Проверьте, установлен ли пакет kexec-tools:

# rpm -qa | grep kexe
kexec-tools-1.101-194.4.el5

Следующие команды показывают, как можно подготовить к загрузке (загрузить) kernel-2.6.18-53.1.4.el5:

# cat /proc/cmdline
ro root=/dev/VolGroup00/LogVol00 rhgb quiet
# kexec -l /boot/vmlinuz-2.6.18-53.1.4.el5   \
    --initrd=/boot/initrd-2.6.18-53.1.4.el5.img \
        --command-line="ro root=/dev/VolGroup00/LogVol00 rhgb quiet"

Чтобы передать управление подготовленному (загруженному) ядру, выполните:

# kexec -e

]]>
Как настроить kexec/kdump в Red Hat Enterprise Linux 5? /blog/2009/06/%d0%ba%d0%b0%d0%ba-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b8%d1%82%d1%8c-kexeckdump-%d0%b2-red-hat-enterprise-linux-5/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25bd%25d0%25b0%25d1%2581%25d1%2582%25d1%2580%25d0%25be%25d0%25b8%25d1%2582%25d1%258c-kexeckdump-%25d0%25b2-red-hat-enterprise-linux-5 Sun, 14 Jun 2009 11:00:31 +0000 http://www.n-ix.com/ipesin/?p=193
Общее представление

Kexec это механизм быстрой загрузки, который позволяет загружать ядро Linux из контекста уже запущенного ядра без передачи управления BIOS. Процедуры инициализации BIOS-а могут занимать очень много времени, особенно на больших серверах со множеством периферийных устройств. Механизм kexec позволяет сэкономить массу времени разработчикам, которые должны многократно перезагружать систему.

Kdump это новый очень надёжный механизм получения дампа памяти при крахе ядра. Дамп захватывается в контексте свежезагруженного ядра, а не в контексте сбойного ядра. Kdump использует kexec чтобы загрузить второе ядро при сбое основного ядра. Это второе ядро, которое часто называют “ядром захвата” (capture kernel), загружается в небольшой участок памяти и создаёт образ памяти основного ядра.

Первое ядро резервирует часть памяти, которая используется вторым ядром при загрузке. Учтите, что kdump резервирует значительную часть памяти при загрузке, что меняет фактические минимальные требования к оперативной памяти Red Hat Enterprise Linux 5. Чтобы рассчитать их, обратитесь к документу http://www.redhat.com/rhel/details/limits/, где указаны минимальные требования к ОЗУ и прибавьте к ним количество памяти, необходимое для kdump.

Kexec реализует загрузку ядра захвата без передачи управления BIOS-у, а значит сохраняется содержимое памяти основного ядра, что и представляет собой дамп памяти ядра при крахе.

Установка Kdump

Проверьте, что пакет kexec-tools установлен:

# rpm -q kexec-tools

Если он не установлен, установите его с помощью yum:

# yum install kexec-tools

Расположение дампа Kdump

В файле /etc/kdump.conf должно быть указано место для сохранения дампа памяти ядра при крахе. Отсутствие этого параметра ведёт к неопределённому поведению Kdump. Есть возможность сохранять дамп непосредственно на устройство, в файл, или через сеть по протоколам NFS и SSH.

Дампирование на устройство

Вы можете настроить Kdump выполнять дамп непосредственно на устройство, указав директиву raw в файле kdump.conf. Синтаксис этой директивы такой:

raw имя_устройства

Например:

raw /dev/sda1

Пожалуйста учтите, что эта конфигурация уничтожит все данные, которые находятся на этом устройстве.

Дампирование в файл на диске

Kdump может быть настроен монтировать раздел и сохранять дамп в файл на диске. Это делается указанием типа файловой системы и раздела в файле kdump.conf. Раздел может быть задан именем устройства, меткой файловой системы или UUID, аналогично тому, как это указывается в файле /etc/fstab.

По-умолчанию, каталог в котором будет сохранятся дамп, называется /var/crash/%DATE/, где %DATE — это текущая дата на момент создания дампа. Например, конфигурация:

ext3 /dev/sda1

смонтирует /dev/sda1, как устройство с файловой системой ext3, и запишет дамп в каталог /var/crash/, тогда как

ext3 LABEL=/boot

смонтирует устройство с файловой системой ext3 и меткой /boot. На большинстве инсталляций Red Hat Enterprise Linux, это будет каталог /boot. Самый простой способ узнать, какое устройство нужно указать в конфигурации — посмотреть файл /etc/fstab. Как уже говорилось, каталог по-умолчанию для сохранения дампов называется /var/crash/%DATE/. Изменить его можно с помощью директивы path в файле kdump.conf. Например:

ext3 UUID=f15759be-89d4-46c4-9e1d-1b67e5b5da82 
path /usr/local/cores

Эта конфигурация указывает, что сохранять файлы дампов нужно в каталоге /usr/local/cores/ вместо /var/crash/.

Дампирование на сетевое устройство по NFS

Чтобы настроить kdump для дампирования на том NFS, отредатируйте файл /etc/kdump.conf и добавьте в него строку в формате:

net &lt;nfs-сервер&gt;:/nfs/mount

Например:

net nfs.example.com:/export/vmcores

Эта директива указывает, что дамп памяти нужно сохранять в файл /export/vmcores/var/crash/[имя_хоста]-[дата] на сервере nfs.example.com. Система-клиент должна иметь права на запись для этого тома.

Дампирование на сетевое устройство по SSH

Преимущество SSH — шифрование передаваемого по сети трафика. По этой причине, этот метод является наилучшим в ситуации, когда дамп памяти нужно передавать через сеть с общем доступом, такую как Internet или корпоративную WAN.

net user@&lt;ssh-сервер&gt;

Например:

net kdump@crash.example.com

В этом случае, kdump будет использовать scp для подключения к серверу crash.example.com под пользователем kdump. Дамп памяти будет скопирован в каталог /var/crash/[имя_хоста]-[дата]/. Пользователь kdump должен иметь необходимые права для записи на удалённом сервере.

Чтобы активировать внесённые в настройку изменения, выполните команду service kdump propagate, которая должна выдать примерно следующий вывод:

Generating new ssh keys... done,
kdump@crash.example.com's password:
/root/.ssh/kdump_id_rsa.pub has been added to
~kdump/.ssh/authorized_keys2 on crash.example.com

Задание выборки страниц и сжатие

На системах с большим объемом оперативной памяти рекомендуется не дампировать ненужные страницы памяти и сжимать остальные. Это настраивается в файле kdump.conf командой core_collector. На текущий момент единственным полностью поддерживаемым коллектором является makedumpfile. Его опции можно посмотреть командой makedumpfile --help. Опция -d указывает какие типы страниц не нужно дампировать. Параметр этой опции представляет битовую маску следующих типов:

zero pages   = 1
cache pages   = 2
cache private = 4
user  pages   = 8
free  pages   = 16

Вообще говоря, все эти страницы не содержат ценной для отладки информации. Чтобы исключить их из дампа, укажите параметр -d 31. Опция -c говорит makedumpfile сжимать остальные страницы памяти.

#core_collector makedumpfile -d 1          # throw out zero pages (containing no data)
#core_collector makedumpfile -d 31         # throw out all trival pages
#core_collector makedumpfile -c            # compress all pages, but leave them all
core_collector makedumpfile -d 31 -c       # throw out trival pages and compress (recommended)

Помните, что использование ключей -d и -c немного увеличивает время, необходимое для создания дампа памяти.

Добавление параметров загрузки

Необходимо модифицировать параметры загрузки основного ядра, чтобы зарезервировать память для ядра захвата. Для архитектур i386 и x86_64 отредактируйте файл /etc/grub.conf и добавьте crashkernel=128M@16M в конец строки с параметрами ядра.

Примечание: вы можете указать размер резервируемой памяти меньше 128M, но тестирование показало, что уже при 64M kdump может работать ненадёжно.

Пример файла /etc/grub.conf с добавленными параметрами kdump:

# grub.conf generated by anaconda
 #
 # Note that you do not have to rerun grub after making changes to this file
 # NOTICE:  You do not have a /boot partition.  This means that
 #          all kernel and initrd paths are relative to /, eg.
 #          root (hd0,0)
 #          kernel /boot/vmlinuz-version ro root=/dev/hda1
 #          initrd /boot/initrd-version.img
 #boot=/dev/hda
 default=0
 timeout=5
 splashimage=(hd0,0)/boot/grub/splash.xpm.gz
 hiddenmenu
 title Red Hat Enterprise Linux Client (2.6.17-1.2519.4.21.el5)
         root (hd0,0)
         kernel /boot/vmlinuz-2.6.17-1.2519.4.21.el5 ro root=LABEL=/ rhgb quiet crashkernel=128M@16M
         initrd /boot/initrd-2.6.17-1.2519.4.21.el5.img

Тестирование

После внесения указанных изменений, перезагрузите систему. 128M памяти (начиная с 16M), зарезервированные для ядра захвата, не будут использоваться основной системой. Обратите внимание, что команда free -m покажет на 128M доступной памяти меньше, чем до настройки kdump.

Теперь, когда необходимая память выделена и зарезервирована, включите скрипт автозапуска kdump и запустите сервис:

#  chkconfig kdump on
 #  service kdump start

В результате через kexec будет загружен образ ядра, что приготовит систему к захвату дампа памяти при крахе. Чтобы это проверить, вызовите крах системы с помощью sysrq:

# echo "c" &gt; /proc/sysrq-trigger

Эта команда вызовет панику ядра, после чего система должна загрузить ядро kdump. Когда процесс загрузки дойдёт до момента запуска сервиса kdump, дамп памяти основного ядра будет скопирован на диск или другое место, указанное в файле /etc/kdump.conf.

Примечание: kdump не поддерживает работу консоли в режиме frame-buffers или X-ов. В системах, обычно работающих с параметром ядра вроде “vga=791” или с запущенным сервером X, изображение на консоли при загрузке ядра через kexec будет искажено. Тем не менее, это не помешает ядру kdump создать дамп памяти, а изображение восстановится после перезагрузки системы.

]]>
Как пользоваться списками контроля доступа (Access Controls Lists, ACLs) в Red Hat Enterprise Linux 5? /blog/2009/06/%d0%ba%d0%b0%d0%ba-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d1%8c%d1%81%d1%8f-%d1%81%d0%bf%d0%b8%d1%81%d0%ba%d0%b0%d0%bc%d0%b8-%d0%ba%d0%be%d0%bd%d1%82%d1%80%d0%be%d0%bb%d1%8f-%d0%b4/?utm_source=rss&utm_medium=rss&utm_campaign=%25d0%25ba%25d0%25b0%25d0%25ba-%25d0%25bf%25d0%25be%25d0%25bb%25d1%258c%25d0%25b7%25d0%25be%25d0%25b2%25d0%25b0%25d1%2582%25d1%258c%25d1%2581%25d1%258f-%25d1%2581%25d0%25bf%25d0%25b8%25d1%2581%25d0%25ba%25d0%25b0%25d0%25bc%25d0%25b8-%25d0%25ba%25d0%25be%25d0%25bd%25d1%2582%25d1%2580%25d0%25be%25d0%25bb%25d1%258f-%25d0%25b4 Wed, 10 Jun 2009 18:27:49 +0000 http://www.n-ix.com/ipesin/?p=67

Списки контроля доступа (Access Control Lists, ACL) предоставляют дополнительные к традиционным правам возможности разграничения доступа к файлам и каталогам. Для того, чтобы использовать ACL, файловая система должна быть смонтирована с параметром acl:

mount -o acl /home

Чтобы установить права доступа для для пользователя или группы, используйте команду setfacl -m.

Формат команды для установки пользовательского ACL:

setfacl -m u:[имя пользователя]:[права] /каталог/файл

Пример:
setfacl -m u:ray:rx /home/foo.txt

Указанная команда даст пользователю ray права на чтение и выполнение файла /home/foo.txt.

Чтобы задать ACL для группы, используйте:

setfacl -m g:[имя группы]:[права] /каталог/файл

Пример:
setfacl -m g:accounting:rwx /finance/foo.txt

Команда в примере даёт группе accounting права на чтение, запись и выполнение файла /finance/foo.txt.

ACL по-умолчанию для каталога (этот ACL будет автоматически наследоваться любым файлом и каталогом, созданными в данном каталоге) устанавливается командой:

setfacl -m d:[ug]:[имя пользователя или группы]:[права] /каталог

Пример:
setfacl -m d:u:marketing:rwx /brochures

Эта команда указывает, что любой файл или каталог, созданный в каталоге brochures, будет автоматически доступен пользователю marketing на чтение, запись и выполнение.

Для удаления ACL используется команда:

setfacl -x u:[имя пользователя]:[права] /каталог/файл

Пример:
setfacl -x u:ray:rx /home/foo.txt

Команда из примера убирает у пользователя ray права на чтение и выполнение файла /home/foo.txt.

Для того, чтобы узнать текущий ACL файла или каталога, используйте команду:

getfacl /каталог/файл

Пример:
getfacl /home/foo.txt

В результате выполнения этой команды выдаётся текущий ACL файла /home/foo.txt. Выглядит это приблизительно так:

# getfacl /home/foo.txt

getfacl: Removing leading '/' from absolute path names
# file: home/foo.txt
# owner: root
# group: root
user::rw-
user:ray:rx
group::r--
group:marketing:rwx
mask::rwx
other::r--

За подробной информацией о списках контроля доступа обращайтесь к страницам руководства по командам setfacl и getfacl.

]]>