Table of Contents

Использование контроллера DRAC 5 в Linux

О чем заметка?

Для удаленного доступа на сервера Dell был установлен контроллер “Dell Remote Access Controller 5” (DRAC5). Это специализированное (его можно установить только на некоторые сервера Dell) аппаратное решение для удаленного доступа (KVM), мониторинга (используется IPMI контроллер) и удаленного управления питанием и монтирования CD/Floppy устройств по сети. В процессе работы с устройством я столкнулся с некоторыми сложностями, решив которые я и решил написать эту заметку.

Что представляет из себя DRAC5?

После того как контроллер установлен и настроен (из внутреннего BIOS) к нему можно подключиться по https или ssh. Большинство действий, такие как мониторинг, перезагрузка или управление питанием, настройки доступа и уведомлений не требуют какого либо специального ПО. Но 2 самые важные (на мой взгляд) функции - KVM и удаленное монтирование, сразу не заработали, так как требовали специального дополнения. О них и заметка.

KVM в линукс

Несмотря на то, что устройство было куплено совсем недавно в нем была устаревшая прошивка (0.36 при наличии 0.45 на момент написания). В этой прошивке доступ к KVM возможен только с помощью специального дополнения, который доступен для IE (ActiveX) и Firefox Linux. При этом последний работает только в Firefox 2 (используются функции, которые убраны из Firefox 3), установка дополнения нормально не работает (мне пришлось копировать нужные файлы руками). Так как держать FF2 i386 только для kvm мне не хотелось я решил обновить прошивку. Обновление доступно на сайте Dell, в том числе и для Linux версии.

Прошивка обновляется без проблем, причем даже без перезагрузки сервера (CentOS 5.3 x86_64). Таже рекомендую обновить прошивку контроллера BMC - без этого у меня были недоступны некоторые пункты меню мониторинга после обновления прошивки DRAC.

После обновления появится, во первых, плагин для Linux Firefox 3 i386, а во вторых - java клиент. Java клиент использует технологию Java Web Start (jnlp файлы) и прекрасно работает c SUN JRE в Ubuntu x86_64 (да и думаю в любой другой ОС с javaws). Если у вас не прописана ассоциация для запуска jnlp файла, то просто укажите путь к bin/javaws jre. Клиент по функционалу ничем не отличается от windows или native linux дополнения, так что данная проблема была успешна решена.

Удаленное подключение устройств

Контроллер позволяет подключать дисковые (CD или Floppy) устройства физически расположенные на машине клиента. Также плата умеет загружаться с созданных виртуальных устройств. Совместно с KVM это позволяет, например, установить операционную систему, или загрузится с Rescue CD для ремонта FS. К сожалению данная возможность также требует наличие плагина, который, в свою очередь, требует Linux Firefox i386. Поиск в интернете подсказал решение - оказывается у Dell есть CLI утилита для данной цели, racvmcli. Возможно она и распространяется на одном из многочисленных дисков, которые шли с сервером, но так как у меня не было к ним доступа - пришлось “выкусывать” с LiveCD. Для этого скачиваем образ omsa-54-040308.iso и извлекаем нужные файлы с него (используется sqashfs):

# mkdir -p /mnt/cd /mnt/opt $HOME/dell
# mount -o loop,ro omsa-54-040308.iso /mnt/cd/
# mount -o loop,ro /mnt/cd/base/opt.mo /mnt/opt
# cp /mnt/opt/opt/dell/srvadmin/rac5/bin/* $HOME/dell
# umount /mnt/opt && umount /mnt/cd

Все, нужные файлы в хомяке, подпапке Dell. Для подключения устройств используется утилита racvmcli

root@samm-laptop:~/dell# ./racvmcli 
racvmcli version 2.1.0
Copyright (c) 2007 Dell, Inc.
All Rights Reserved

usage: racvmcli
	-r RAC-IP-addr[:RAC-SSL-port]
	-u RAC-user
	-p RAC-user-password
	-f {floppy-dev | disk-image}
	-c {cdrom-dev | ISO-image}
	[-v]	# version
	[-h]	# help
	[-m]	# manual page
	[-e]	# use an SSL-encrypted channel

Попробуем подключить устройство:

root@samm-laptop:~/dell# ./racvmcli -r kvm.example.com -u user -p password -c systemrescuecd-x86-1.1.6.iso 
racvmcli: connecting(1)..
Failed to initialize SSL layer
racvmcli: unable to connect to 'kvm.example.com'

Первый облом. strace показал что racvmcli пытается через dl() подгружать openssl и не находя нужной версии обламывается. При этом в качестве аргумента к dl() передается поочередно libssl.so.0.9.7,libssl.so.2,libssl.so.4,libssl.so.6, тогда как в Ubuntu установлена libssl.so.0.9.8. Я просто поправил в бинарном редакторе 0.9.7 на 0.9.8 после чего программа успешно заработала.

root@samm-laptop:~/dell# ./racvmcli -r kvm.example.com -u user -p password -c systemrescuecd-x86-1.1.6.iso 
racvmcli: connecting(1)..
..connected to kvm.example.com

Что особенно ценно - данная утилита может быть запущена, например, с сервера по соседству для большей скорости передачи. Я загрузился с RescueCD подключенным в Европе (сам сервер был в Америке) и загрузка заняла примерно 10 минут, что тоже приемлемо.

Доступ к серверу через SSH

Если по каким-то причинам вам удобнее получать доступ к серверу через SSH, то для этого существуют все возможности. По умолчанию на контроллере включен SSH доступ, пользователь и пароль такой же как и на https. После подключения доступны 3 команды (или я только 3 нашел) racadm и smclp и connect. Первая служит для конфигурирования kvm, вторая не совсем понятно для чего, а третья - для подключения к com2 сервера. Настроив agetty и grub/lilo на работу с COM2 (ttyS1), а также прописав в BIOS redirect на Serial Port (указав портом Remote Access Device) мы получаем возможность полноценно управлять сервером с момента начальной загрузки, в том числе менять настройки BIOS и так далее. Для этого в ssh сессии пишем “connect com2” и если все настроено верно - то должно быть приглашение. Параметры порта по умолчанию - 57600 8N1, могут быть изменены через web интерфейс.

	KEY MAPPING FOR CONSOLE REDIRECTION:

	Use the <ESC><0> key sequence for <F10>
	Use the <ESC><!> key sequence for <F11>
	Use the <ESC><@> key sequence for <F12>

	Use the <ESC><Ctrl><M> key sequence for <Ctrl><M>
	Use the <ESC><Ctrl><H> key sequence for <Ctrl><H>
	Use the <ESC><Ctrl><I> key sequence for <Ctrl><I>
	Use the <ESC><Ctrl><J> key sequence for <Ctrl><J>

	Use the <ESC><X><X> key sequence for <Alt><x>, where x is any letter
	key, and X is the upper case of that key

	Use the <ESC><R><ESC><r><ESC><R> key sequence for <Ctrl><Alt><Del>

Удаленное управление настройками DRAC

Помимо racvmcli в папке Dell еще находится утилита racadm. Она также желает работать с libssl.so.0.9.7, так что я поступил с ней также как и с racvmcli, пропатчив бинарник. Я уже упоминал, что racadm можно вызывать из ssh, но локальная версия имеет больше возможностей (команды sslcertupload, sslcertdownload, sslkeyupload, usercertupload, krbkeytabupload).

Для вызова справки существует команда help

./racadm -r kvm.example.com -u user -p password help

Для справке о какой либо команде - help <command>

./racadm -r kvm.example.com -u user -p password help ping

Из особенностей можно заметить, что программа позволяет выполнять часть настроек, которые я не нашел в web интерфейсе (например, sslkeyupload).

Заключение

Контроллер DRAC5 - несомненно крайне полезен для удаленного администрирования, особенно в случае сложных проблем. Приятно что разработчики начинают думать не только о Windows пользователях, и в итоге удалось достичь 100% работоспособности контроллера в Linux. Надеюсь, что ошибки будут учтены, и в следующих версиях сразу появятся нормальные Java CLI/GUI клиенты, а их “добыча” будет более тривиальной. Пропатченные для работы с openssl0.9.8 утилиты можно скачать у меня. Надеюсь заметка была полезной для владельцев Dell серверов, в случае вопросов - постараюсь ответить.

Alex Samorukov, samm@os2.kiev.ua