Thursday, July 29. 2010svnsync - как средство зеркалирования вашего репозитория.
Согласитесь, статей описывающих настройку svnsync миллион с хвостиком. Плодить энтропию не цель этой статьи. Руководства по первоначальной настройке приведены в конце заметки.
Сконцентрируем внимание на подходах связанных с необходимостью регулярного запуска svnsync sync для поддержания нашего зеркала в актуальном состоянии. Здесь можно выделить два основных лагеря:
Минус большинства реализаций второго подхода синхронность запуска. post-commit hook выполняется в рамках svn commit(а). Другими словами svn commit вернет управление только по завершении выполнения всех операций в post-commit hook(e). Получается чем дольше будет работать post-commit hook, тем дольше разработчик будет ждать выполнения svn commit(a). Соответственно теряются драгоценные человеко-минуты. Асинхронность второго подхода - это очевидный ответ. Более того, все что потребуется для реализации есть в любом современном дистрибутиве: xinetd и nc. Подход предельно прост. В момент выполнения svn commit(a) разработчиком, вызывается post-commit hook, единственная задача которого отправить UDP пакет на заданный порт зеркала SVN. На зеркале SVN(a) указанный порт прослушивает демон xinetd с зарегистрированным обработчиком svnsync sync. Подход дает неоспоримый плюс - в момент commit(a) время отработки post-commit hook(a) минимальны. Реализуем теорию на бумаге. Условимся, для UDP пакетов использовать порт 8383, адрес мастер сервера 1.2.3.4, адрес зеркалирующего сервера 5.6.7.8. В мастер репозитории вашего хранилища необходимо создать скрипт hooks/post-commit следующего содержания:
#!/bin/sh
host=5.6.7.8 # Адрес зеркалирующего сервера
port=8383
echo '1' | nc -w 1 -u $host $port
И сделать его исполняемым
chmod +x hooks/post-commitНа зеркалирующем сервере создаем файл /etc/xinetd.d/svnsync следующего содержания:
service svnsync
{
type = UNLISTED
disable = no
socket_type = dgram
port = 8383
wait = yes
user = nobody
passenv = PATH
server = /usr/bin/svnsync
server_args = sync file:///srv/svn
only_from = 127.0.0.1 1.2.3.4 # Адреса, с которых дозволено получать UDP пакеты
}
Описание сервиса предполагает, что зеркало хранилища расположено в директории file:///srv/svn и владельцем файлов является пользователь nobody. Разумеется, не забываем перезапустить/запустить службу xinetd. Документация: 1. Краткое и емкое руководство о настройке зеркалирования с использованием svnsync; 2. Русскоязычное руководство. Thursday, July 22. 2010uptime
Небольшие жизненные зарисовки.
$ uptime 16:34:47 up 1039 days, 6:06, 1 user, load average: 1.48, 1.37, 1.29 $ uname -rs Linux 2.6.20-19.35.bbel4 $ Thursday, May 13. 2010Сравнение дисковой производительности: файловой системы в файле vs файловой системы на дисковом накопителе
Сравнение дисковой производительности файловой системы, расположенной в файле, изначально обречено на проигрыш по сравнению с производительностью файловой системы, расположенной на обычном накопителе. Вызвано это в первую очередь необходимостью двойного выделения блоков для размещения данных. Напомним, что файловый образ располагается на файловой системе. Соответственно рост файловой системы в файловом образе вызывает выделение блоков как в файле (дисковом образе), так и в файловой системе, на которой он расположен.
Однако такое сравнение имеет место быть, т.к. использование дисковых образов очень удобно для размещения разделов для виртуальных машин XEN или KVM. Выделение места на обычном диске в случае частых изменений, как правило, чревато сильной фрагментацией последнего. Рассмотрим на примере. Сначала нам потребовалось 3и виртуальные машины с объемами диска: 8GB, 16GB, 24GB. Ответственный инженер создал 3-и раздела на физическом диске в 100GB следующую таблицу /dev/sdx1 - 8GB /dev/sdx2 - 16GB /dev/sdx3 - 24GB free 52GbСпустя месяц у нас появилась еще одна виртуальная машина с разделом в 24 GB, а второй раздел был удален вместе с занимаемой виртуальной машиной /dev/sdx1 - 8GB /dev/sdx2 - free /dev/sdx3 - 24GB /dev/sdx4 - 24GB free 44GBТаким образом мы пришли к ситуации, что между разделами 1 и 3-и есть 16GB свободного пространства, которое отделено от основной свободной области. И в общем случае не может быть использовано. Вариантом решения может послужить создание LVM разделов поверх существующих физических. В этом случае спустя какое-то время мы приходим к ситуации, что у нас разрозненные по размеру физические разделы объединены в логические. Петрушка получается отменная. Однако и в этой ситуация есть красивое решение. Изначально диск разбить на равного размера разделы. Например, 16GB. Объединяя через LVM нужно количество разделов в виртуальной машине, получаем требуемую дисковую область. Более продвинутый вариант, комбинированная разбивка. Например, 8GB...8GB, 16GB...16GB, 32GB...32GB, 64GB... Теперь спускаемся на землю к нашим баранам. Альтернативным решением всех этих проблем кроется в создании образа файловой системы в файле, хранящемся на обычном разделе. Прежде чем использовать это решение давайте разберем какие минусы оно нам готовит по сравнение с очевидным большим плюсом (удобство использования). В сравнении будет принимать, полюбившаяся всем, платформа SuperMicro SYS-1025W: 2x 2.83 GHz Quad Core Xeon (E5440), 32GB ECC RAM, 3Ware/LSI 9690SA-8I (512MB Memory, BBU). Из 8ми накопителей SEAGATE ST9146802SS собран программный RAID10 c far размещением блоков: cat /proc/mdstat
...
md3 : active raid10 sdh3[7] sdg3[6] sdf3[5] sde3[4] sdd3[3] sdc3[2] sdb3[1] sda3[0]
3950592 blocks 256K chunks 2 far-copies [8/8] [UUUUUUUU]
Для /dev/md3 используется файловая система ext3 с stride равным 64. Дисковый образ создан командой dd if=/dev/zero of=128GB.img bs=1GB count=128Файловая система в нём создана обычным вызовом mkfs.ext3. Тестирование производится 5и кратным прогоном bonnie++ -x 5 -b. CSV файлы для обычной файловой системы и дискового образа. Сводная таблица +---------------------+-----------+---------+-----------+-------+ | | put_block | rewrite | get_block | seeks | +---------------------+-----------+---------+-----------+-------+ | дисковый накопитель | 209176 | 111778 | 389820 | 772 | +---------------------+-----------+---------+-----------+-------+ | дисковый образ | 124299 | 100490 | 391176 | 72 | +---------------------+-----------+---------+-----------+-------+ После серого повествования немного рассуждений и выводов. Файловая система в дисковом образе почти в половину уступила файловой системе на дисковом накопителе в блочной записи. В данном виде теста bonnie++ активно выделяет блоки, а данный вид активности удваивается для дискового образа. Что полностью доказывает наши предположения в начале статьи. В rewrite оба претендента держатся на равных. Выделение блоков не требуется, а операции read(2)/write(2)/lseek(2) проходят достаточно прозрачно. В тесте get_block дисковый образ немного превзошел оппонента, сложно предположить как это получилось. Возможно, погрешность тестирования. В тесте seeks безоговорочная победа файловой системы на накопителе. Она практически растоптала оппонента вырвавшись вперед более чем на порядок. Т.к. дисковый образ показал неплохую производительность на блочном чтении, его использование я бы порекомендовал для хранилищ больших файлов с превалирующим чтением и не критичным к времени записи операциям. Однозначно его использование противопоказано для баз данных и систем с активным доступом к случайным данным. Wednesday, May 12. 2010XEN: Debian Lenny в domU
При загрузке Debian Lenny в домене domU возникает ошибка
Loading, please wait... FATAL: Error inserting fan (/lib/modules/2.6.26-2-686-bigmem/kernel/drivers/acpi /fan.ko): No such device WARNING: Error inserting processor (/lib/modules/2.6.26-2-686-bigmem/kernel/driv ers/acpi/processor.ko): No such device FATAL: Error inserting thermal (/lib/modules/2.6.26-2-686-bigmem/kernel/drivers/acpi/thermal.ko): Unknown symbol in module, or unknown parameter (see dmesg) kinit: name_to_dev_t(/dev/xvda5) = xvda5(202,5) В виртуальном окружении управление охлаждением и датчиками температуры не требуется. Избавляемся от их инициализации выполнением набора команд: install -m 0755 /dev/null /etc/initramfs-tools/hooks/thermal install -m 0755 /dev/null /etc/initramfs-tools/scripts/init-premount/thermal update-initramfs -u В очередную загрузку ядро порадует нас приятным глазу набором информационных сообщений Loading, please wait... kinit: name_to_dev_t(/dev/xvda5) = xvda5(202,5) kinit: trying to resume from /dev/xvda5 kinit: No resume image, doing normal boot... INIT: version 2.86 booting Wednesday, May 5. 2010Zyxel AAM1212-53 и SNMP MIBS
Опрашивая модуль Zyxel AAM1212-53 snmpwalk(ом), можно получить много-много букв не говорящих ровным счетом ни о чем:
... SNMPv2-SMI::transmission.94.1.1.2.1.4.1 = INTEGER: 0 SNMPv2-SMI::transmission.94.1.1.2.1.4.2 = INTEGER: 0 SNMPv2-SMI::transmission.94.1.1.2.1.4.3 = INTEGER: 0 SNMPv2-SMI::transmission.94.1.1.2.1.4.4 = INTEGER: 0 SNMPv2-SMI::transmission.94.1.1.2.1.4.5 = INTEGER: 0 SNMPv2-SMI::transmission.94.1.1.2.1.4.6 = INTEGER: 0 SNMPv2-SMI::transmission.94.1.1.2.1.4.7 = INTEGER: 0 SNMPv2-SMI::transmission.94.1.1.2.1.4.8 = INTEGER: 298 SNMPv2-SMI::transmission.94.1.1.2.1.4.9 = INTEGER: 0 SNMPv2-SMI::transmission.94.1.1.2.1.4.10 = INTEGER: 310 SNMPv2-SMI::transmission.94.1.1.2.1.4.11 = INTEGER: 0 SNMPv2-SMI::transmission.94.1.1.2.1.4.12 = INTEGER: 0 SNMPv2-SMI::transmission.94.1.1.2.1.5.1 = Gauge32: 0 SNMPv2-SMI::transmission.94.1.1.2.1.5.2 = Gauge32: 0 SNMPv2-SMI::transmission.94.1.1.2.1.5.3 = Gauge32: 0 SNMPv2-SMI::transmission.94.1.1.2.1.5.4 = Gauge32: 0 SNMPv2-SMI::transmission.94.1.1.2.1.5.5 = Gauge32: 0 SNMPv2-SMI::transmission.94.1.1.2.1.5.6 = Gauge32: 0 SNMPv2-SMI::transmission.94.1.1.2.1.5.7 = Gauge32: 0 SNMPv2-SMI::transmission.94.1.1.2.1.5.8 = Gauge32: 180 SNMPv2-SMI::transmission.94.1.1.2.1.5.9 = Gauge32: 0 SNMPv2-SMI::transmission.94.1.1.2.1.5.10 = Gauge32: 161Разумеется, для расшифровки требуется набор MIB файлов:
После размещения MIB-файлов в $HOME/.snmp/mibs отклик от модуля Zyxel AAM1212-53 приобретает следующий вид: > snmpwalk -m +ADSL-LINE-MIB -c public -v 2c 192.168.0.57 .... ADSL-LINE-MIB::adslAturCurrOutputPwr.1 = INTEGER: 0 tenth dBm ADSL-LINE-MIB::adslAturCurrOutputPwr.2 = INTEGER: 0 tenth dBm ADSL-LINE-MIB::adslAturCurrOutputPwr.3 = INTEGER: 0 tenth dBm ADSL-LINE-MIB::adslAturCurrOutputPwr.4 = INTEGER: 0 tenth dBm ADSL-LINE-MIB::adslAturCurrOutputPwr.5 = INTEGER: 0 tenth dBm ADSL-LINE-MIB::adslAturCurrOutputPwr.6 = INTEGER: 0 tenth dBm ADSL-LINE-MIB::adslAturCurrOutputPwr.7 = INTEGER: 0 tenth dBm ADSL-LINE-MIB::adslAturCurrOutputPwr.8 = INTEGER: 122 tenth dBm ADSL-LINE-MIB::adslAturCurrOutputPwr.9 = INTEGER: 0 tenth dBm ADSL-LINE-MIB::adslAturCurrOutputPwr.10 = INTEGER: 123 tenth dBm ADSL-LINE-MIB::adslAturCurrOutputPwr.11 = INTEGER: 0 tenth dBm ADSL-LINE-MIB::adslAturCurrOutputPwr.12 = INTEGER: 0 tenth dBm ADSL-LINE-MIB::adslAturCurrAttainableRate.1 = Gauge32: 0 bps ADSL-LINE-MIB::adslAturCurrAttainableRate.2 = Gauge32: 0 bps ADSL-LINE-MIB::adslAturCurrAttainableRate.3 = Gauge32: 0 bps ADSL-LINE-MIB::adslAturCurrAttainableRate.4 = Gauge32: 0 bps ADSL-LINE-MIB::adslAturCurrAttainableRate.5 = Gauge32: 0 bps ADSL-LINE-MIB::adslAturCurrAttainableRate.6 = Gauge32: 0 bps ADSL-LINE-MIB::adslAturCurrAttainableRate.7 = Gauge32: 0 bps ADSL-LINE-MIB::adslAturCurrAttainableRate.8 = Gauge32: 1419000 bps ADSL-LINE-MIB::adslAturCurrAttainableRate.9 = Gauge32: 0 bps ADSL-LINE-MIB::adslAturCurrAttainableRate.10 = Gauge32: 1057000 bps ADSL-LINE-MIB::adslAturCurrAttainableRate.11 = Gauge32: 0 bps ADSL-LINE-MIB::adslAturCurrAttainableRate.12 = Gauge32: 0 bps ... > Wednesday, March 17. 2010Удаление perl модулей установленных из CPAN
Элегантное решение удаления модулей perl, установленных из CPAN в ручную.
Tuesday, March 2. 2010SEVERE: Error: This user does not have privilege to run this software
Установка Sun StorageTek Common Array Manager Software прервалась сообщением
SEVERE: Error: This user does not have privilege to run this software.Штудирование показало, что для корректной установки, необходимо установить пакет ksh yum install ksh Monday, February 1. 20101С:Предприятие 8.1 "Ошибка формата потока"
Всегда идивляли разработчики всеми силами пытающиеся зарыть системные сообщения в осмысленные пользовательские каламбуры. При этом средств для нормальной диагностики техническим персоналом практически не остается.
В частности 1C:Предприятие приятно удивляет своих владельцев сообщением "Ошибка формата потока". Напрашивается законный вопрос: какого потока? и какого формата? В ходе попыток найти объяснимый ответ на эти два вопроса рождаются шаманские рецепты. Мне остается пополнить капилку одним рецептом. Оказывается в клиент-серверном варианте сообщение "Ошибка формата потока" может возникнуть у клиента, когда одно из приложений из набора 1С:Предприятия, выполняющихся на сервере, не имеет достаточно дискового пространства в разделе /tmp для размещения временных файлов. Thursday, January 28. 2010Сервер 1C:Предприятие 8.1 и Linux-сервер CentOS
От одной мысли об этой гремучей связке пробегают по спине мурашки. Тем не менее она начинает встречаться и судя по форумам набирает потихоньку обороты. Периодически всплывают заказы на внедрение/оптимизацию работы 1C или сопряженной с ней базы данных PostgreSQL.
Описанию процесса внедрения 1C:Предприятия на Linux-сервере посвящена статья «Установка Сервера 1С:Предприятия 8.1 на Linux-сервер (со скриншотами)», которая достаточно полно раскрывает основные вехи установки. Мы позволим себе заострить внимание на внедрении 1C:Предприятия на базе CentOS 5.4 (32 bit). 32х битная операционная система выбрана из-за отсутствия поддержки 64 бит компанией Aladdin в драйверах HASP. Первый момент - установка службы samba. Четкого описания необходимости этой службы для работы 1C:Предприятия не удалось найти. Одно из предположений - задействование сервиса WINS для преобразования имен. Рекомендуем завести отдельный DNS сервер и в нем прописать соответствие или довольствоваться файлом hosts. Мы продолжим рассмотрение на примере имени сервера srv1c.local, который корректно преобразуется в IP-адрес сервера. Вторым этапом является установка приложений, обслуживающих защитный ключ. Для их установки необходимо скачать архивы HDD_RPM_RedHat_i386.tar.gz и hasplm_linux_8.30.tgz с сайта ftp.aladdin.com. Распакуем и установим пакеты: tar xf HDD_RPM_RedHat_i386.tar.gz tar xzf hasplm_linux_8.30.tgz rpm -ivh hasplm-redhat-8.30-1.i386.rpm HDD_RPM_RedHat_i386/aksusbd-redhat-1.8.1-2.i386.rpmХочу обратить внимание, что архив HDD_RPM_RedHat_i386.tar.gz является обычным архивом без gzip сжатия. Запустим службы service hasplm start service aksusbd start chkconfig hasplm on chkconfig aksusbd on Базовым костяком необходимых пакетов для 1C:Предприятия являются 1C_Enterprise-common и 1C_Enterprise-server. Официальная зона скачивания находится по адресу users.v8.1c.ru. Неофициальная - forum.ruboard.ru. Пакеты 1C_Enterprise-common и 1C_Enterprise-server включают в себя поддержку русского языка. Пакеты содержащие в своем имени nls (Native Language Support) предоставляют поддержку дополнительных языков Болгарского, Украинского, Польского и других. Мы ограничимся установкой базового набора rpm -ivh 1C_Enterprise-common-8.1.14-72.i386.rpm 1C_Enterprise-server-8.1.14-72.i386.rpm До момента установки 1C:Предприятия и базы данных PostgreSQL многие рекомендуют установить системную локаль в ru_RU.utf8. Мы этого делать не рекомендуем. Более красивым решением является установка локали для конкретных приложений без изменения системных настроек. Каждое из приложений: 1C:Предприятие и PostgreSQL,— запускаются с предварительным сбросом привилегий вызовом su, что позволяет прописать экспорт переменной через пользовательский .bash_profile. Для 1C:Предприятия при установке регистрируется отдельный пользователь usr1cv81 с домашней директорией /home/usr1cv81. В ней 1C:Предприятие хранит все настройки. Пропишем локаль для 1C:Предприятия cat <<'EOF' >> /home/usr1cv81/.bash_profile LANG="ru_RU.utf-8" export LANG EOF Если до этого 1C:Предприятие запускалось, то файлы конфигурации были созданы с использованием системной локали. Необходимо удалить старые файлы конфигурации и пересоздать их сызнова service srv1cv81 stop >/dev/null 2>&1 mv /home/usr1cv81/.1cv81 /home/usr1cv81/bkp.1cv81Запустим службы 1C:Предприятия service srv1cv81 start chkconfig srv1cv81 onИз пакетов для PostgreSQL потребуется установить postgresql-libs, postgresql, postgresql-server и postgresql-contrib. Сборку PostgreSQL необходимо брать исключительно от поставщика 1C. Мы использовали PostgreSQL 8.2.4 с модификациями из материалов для сборки версии СУБД PostgreSQL. Для желающих можем разместить собственную сборку и SRPM. Перед выполнением команды service postgresql initdb необходимо выполнить cat <<'EOF' >> /var/lib/pgsql/.bash_profile LANG="ru_RU.utf-8" export LANG EOFПосле этого выполняем service postgresql initdb. Вносим минимальные изменения в /var/lib/pgsql/data/postgresql.conf default_with_oids = on stats_row_level = offОписанных изменений достаточно для корректной работы связки 1C:Предприятие и сервера PostgreSQL. Для оптимальной работы требуется более тщательная настройка. Запускаем сервер PostgreSQL service postgresql start chkconfig postgresql onИзменяем пароль пользователю postgres
cat <<'EOF' | psql -U postgres
ALTER ROLE postgres PASSWORD 'ваш пароль';
EOF
В качестве альтернативного варианта последнему пункту можно предложить создать отдельного пользователя с правами суперпользователя
cat <<'EOF' | psql -U postgres CREATE ROLE 'usr1c' WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN PASSWORD 'ваш пароль'; EOFНа этом описание UNIX части закачивается и повествование переходит к настройке оснастки 1C. Этот этап в полном объеме изложен в параграфе "Создание сервера предприятия" статьи «Установка Сервера 1С:Предприятия 8.1 на Linux-сервер (со скриншотами)». Сегодня, 29 января, обнаружил еще одно руководство «Установка 1С:Предприятия 8.1 на Red Hat Enterprise Linux 5 (RHEL 5, CentOS 5)». Wednesday, January 27. 2010How iostat calculates utilization
Ответ на этот вопрос можно найти в статье iostat and disk utilization monitoring nirvana. Вычисление параметра %util iostat производит по формуле:
( (r/s + w/s) * svctm / 1000 ms ) * 100Говоря обывательским языком, суммарное количество записей и чтений инициированных за секунду (1000 ms) умноженное на среднее время обслуживания запроса. Именование колонок соответствует формату команды iostat -x. Wednesday, January 13. 2010Специфика получения core dump в CentOS
В обычной ситуации достаточно указать в /etc/sysctl.conf параметры
kernel.core_uses_pid = 1 kernel.core_pattern = /var/tmp/core.%p.%e.%s fs.suid_dumpable = 1Выполнить sysctl -p; ulimit -c unlimitedПерезапустить интересуйщий нас процесс командой service и убидиться в том, что параметры успешно применились командой
cat /proc/`pgrep process_name`/limits
Как показала практика описанного набора действий бывает не всегда достаточно. В частности, если SysV скрипт использует функцию daemon(), описанную в /etc/rc.d/init.d/functions, то заданный ранее явно лимит переопределяется следющей строкой
corelimit="ulimit -S -c ${DAEMON_COREFILE_LIMIT:-0}"
Полагаясь на ее описание, необходимо для сервисов, использующих для запуска функцию daemon(), дополнительно определять в их SysV конфигурационном файле, обычно расположенном в /etc/sysconfig, директивку
DAEMON_COREFILE_LIMIT=unlimitedНапример, одним из сервисов, использующий подход с daemon(), является httpd. Согласно его init-скрипту конфигурационный файл расположен в /etc/sysconfig/httpd. Результирующий набор команд будет выглядеть cat <<EOF >> /etc/sysconfig/httpd DAEMON_COREFILE_LIMIT=unlimited EOF service httpd restart Tuesday, January 12. 2010HOWTO PXE Setup
Исчерпывающее руководство о установке CentOS с использованием встроенного в сетевую карту PXE загрузчика.
Tuesday, December 29. 2009Восстановление даты модификации файла из rpmdb / rpm verify fix mtime differences
Восстановить дату последней модификации файла из базы rpmdb позволяет команда:
touch -m --date="`rpm -q --qf '%{FILEMTIMES:date}' -f <filename>`" <filename>
Например, рассмотрим ситуацию # rpm -V postgresql-server .......T c /var/lib/pgsql/.bash_profile #У файла поменялась дата модификации в связи с внесением в него временных изменений. Восстановим дату модификации на хранимую в rpmdb # touch -m --date="`rpm -q --qf '%{FILEMTIMES:date}' -f /var/lib/pgsql/.bash_profile`" /var/lib/pgsql/.bash_profile
Проверим, что изменения имели место быть
# rpm -V postgresql-server #Проверка прошла успешно. Monday, December 21. 2009Machine Check Exception (MCE)
Основная часть заметки была написана в 4ом часу утра 31 марта 2009 непосредственно в момент описываемых событий.
О том, что такое MCE и чем его закусывают мне довелось впервые столкнуться ночью 31 марта 2009. Знамение пришло в виде нескольких неисправимых ошибок на системной консоли следующего содержания (снимок экрана)
HARDWARE ERROR
CPU 5: Machine Check Exception: 5 Bank 0: b200004000000800
RIP !INEXACT! 10:<ffffffff8006ad64> {default_idle+0x29/0x50}
TSC 1d24d355f8839d
This is not a sotware problem!
Run through mcelog --acsii to decode and contact your hardare vendor
Полагаясь на диагностику операционной системы, а именно сообщение о том, что проблема связана с железом я погрузился в поиски. Как оказалось существуют 2а подмножества ошибок:
Привлек внимание факт, что сбой произошел в «Bank 0». Согласно презентации Bank с нулевого по третий соответствуют процессорам. Banks 0-3 CPU internal (DC, IC, BU, LS) 4 Northbridge: only really interesting oneС другой стороны аналогичные сообщения возникают из-за внутренней несовместимости оборудования. Например, материнская плата SuperMicro X7DB8+ и дисковый контроллер Adaptec не уживаются вместе. Днем 31 марта 2009 рассматриваемый сервер был выведен из эксплуатации и начались процедуры тестирования. Неоценимую помощь оказал дистрибутив breakin, который позволил нагрузить систему и воспроизвести сбой. Причина была в недостатке охлаждения. При продолжительной работе в пиковых нагрузках система не справлялась с отводом тепла, что вызывало перегрев процессоров. Проблема скрывалась в аппаратной платформе SuperMicro SYS-1025W, в которую необходимо устанавливать процессоры с меньшим тепловыделением и дополнительные вентиляторы для охлаждения. После этого случая вся используемая нами линейка SYS-1025W была модернизирована описанным способом. Sunday, December 20. 2009HP ProLiant Series / Установка компонентов ProLiant Support Pack
Заметка первоначально была начата 08 июля 2007 года, но, к сожалению, так и не получила завершения. Позволю себе опубликовать ее в незаконченном виде, возможно, кто-то подчерпнет для себя полезную информацию.
Исходные данные:
Для настройки массивов компания HP предлагает 4-е прикладных набора:
Доступ к ORCA возможен только на начальной стадии загрузки сервера (during POST). Разумеется, в production environments это не оправданный простой сервиса. К тому же сам интерфейс достаточно ограничен в возможностях (ряд возможностей в нём просто отсутствует). Соответственно его ниша сильно ограничена первоначальной настройкой системы. CPQONLIN существует для Novell NetWare. В связи с отсутствием в ближайшем окружении систем с NetWare можно судить лишь по описанию. По возможностям повторяет своих собратьев ACU и ACU CLI. Основное внимание будет сконцентрировано в эпсилон окрестности ACU и ACU CLI. Обе охватывают весь функционал дисковых контроллеров на заданной платформе Red Hat Enterprise Linux. HP ACU CLI распространяется как отдельно в виде RPM-пакета, так и в составе ProLiant Support Pack (архив, содержащий в себе актуальные на момент его выхода пакеты различных сетевых, локальных служб и описания к ним). Оба варианта доступны через раздел сайта HP Support & Drivers. Для рассмотрения был взял актуальный на момент написания RPM-пакет hpacucli-7.80-6.linux.rpm. Для его работы потребовался дополнительный пакет compat-libstdc++-296, входящий в репозиторий дистрибутива. Его установка была произведена командой: yum -y install compat-libstdc++-296 && rpm -Uvh /path/to/hpacucli-7.80-6.linux.rpmПервой командой, которую мы настоятельно рекомендуем выполнить hpacucli help и hpacucli shorthand. Последняя отобразит список принятых сокращений. А обе они поведают о всех своим возможностях. Легко заметить простоту синтаксиса: <target> <command> [parameter=value]Рассмотрим наиболее повседневные операции с ориентиром на последующее использование в командных скриптах. Первоначально потребуется определить расположение контроллера(ов), чтобы в последующих командах обращаться к вполне определенному устройству. Выполним команду: [root@savecore ~]# hpacucli ctrl all show status Smart Array 6i in Slot 0 Controller Status: OK Cache Status: OK Battery Status: OK [root@savecore ~]#Контроллер HP Smart Array 6i расположен в слоте с номером 0. Запрос информации непосредственно о данном контроллере производится явным заданием параметра slot=0:
[root@savecore ~]# hpacucli ctrl slot=0 show detail
Smart Array 6i in Slot 0
Bus Interface: PCI
Slot: 0
Cache Serial Number: P75B20C9SS017I
RAID 6 (ADG) Status: Disabled
Controller Status: OK
Chassis Slot:
Hardware Revision: Rev B
Firmware Version: 2.36
Rebuild Priority: Low
Expand Priority: Low
Surface Scan Delay: 15 sec
Cache Board Present: True
Cache Status: OK
Accelerator Ratio: 50% Read / 50% Write
Total Cache Size: 192 MB
Battery Pack Count: 1
Battery Status: OK
SATA NCQ Supported: False
[root@savecore ~]#
Поддерживаемые схемы адресации:
[controller all|slot=#|wwn=#|chassisname="AAA"|serialnumber=#|chassisserialnumber=#|ctrlpath=#:#
(Page 1 of 6, totaling 84 entries)
» next page
|
— ИТ аутсорсинг linux— Администрирование настройка серверов— системная интеграция — сетевое проектирование По вопросу сотрудничества: www.unixstyle.ru QuicksearchArchivesSyndicate This BlogBlog Administration |