hw-remote

__аппаратные средства удаленного администрирования__\\ //неограниченные возможности по доступной цене//

крис касперски ака мыщъх, no-email

широко используемые в настоящее время программные средства удаленного администрирования годятся лишь для «подсобных» работ по хозяйству. ни залезть в настройки BIOS'а, ни переустановить операционную систему они не в состоянии! для этого нужен физический доступ к серверу, а до него еще добраться нужно! а вот если докупить немного железа, то никуда добираться не потребуется! систем аппаратного администрирования сегодня развелось как грязи, но мыщъх поможет в них сориентироваться!

Системы удаленного администрирования делятся на программные и аппаратные. Первые, как и следует из них названия, представляют собой простую программу, работающую «поверх» операционной системы и опирающуюся на предоставляемые ею ресурсы (выделение памяти, установка сетевых соединений и т. д. и т. п.). Если же при загрузке системы вспыхивает Голубой Экран Смерти (ядро Linux'а впадает в панику) или же система работает нестабильно, то… утилиты удаленного администрирования оказываются бесполезным балластом, не говоря уже о том, что все они представляют потенциальную брешь в безопасности. Но не будем критиковать то, на чем сидим…

Удаленные системы аппаратного администрирования достаточно разнообразны и образуют по меньшей мере две обособленные группы, функционирующие на разных физических принципах, среди которых с большим отрывом лидируют KVM'ы — устройства, подключаемые к VGA, PS/2 Keyboard, PS/2 Mouse разъемам и запихивающие сигнал либо в простой экранированный кабель протяженностью до нескольких сотен метров, либо в Ethernet-порт (доступный из любой точки локальной сети), либо же (в самом сложном случае) реализующих собственный TCP/IP стек, позволяющий администрировать сервер хоть из соседней комнаты, хоть с побережья Флориды.

Менее популярны ISA/PCI платы, встраиваемые непосредственно внутрь компьютера и перехватывающие клавиатурный ввод/вывод вместе с текстовыми (реже — графическими) видеорежимами. Главное их достоинство в том, что они способны работать даже при отказе одного или нескольких узлов компьютера, в частности, перешивать «слетевший» FLASH-BIOS, даже если материнская плата не реагирует ни на клавиатуру, ни на что другое. К тому же, если KVM'ы вынуждены передавать _аналоговый_ видеосигнал, требующий широких каналов, то передача содержимого видеопамяти в «нативном» режиме (точнее, даже не самой видеопамяти, а ее изменений) позволяет запихать даже 1280×1024 в хлипкий модемный канал на 19.200, сохраняя при этом до 13-16 fps, что вполне достаточно для комфортной работы. Плюс, ко всему, цифровой видеоряд очень нехило жмется по алгоритму MPEG4 с коэффициентом квантования равным единице, при котором он превращается в lose-less алгоритм.

Теперь, после краткого введения в курс дела, рассмотрим каждую из этих систем во всех подробностях.

Аббревиатура KVM расшифровывается как Keyboard, Video-monitor & Mouse и первоначально эти устройства предназначались для объединения нескольких компьютеров в одну консоль (что намного удобнее, чем держать несколько мониторов и клавиатур на одном столе). Они выпускаются многими компаниями и их довольно часто можно увидеть на витрине магазинов. Спрашивайте KVM-switcher'ы или, по-русски, свичи или переключали.

Самые простые свичи — механические — и состоят из простого переключателя, обвешанного такими же простыми фильтрами, призванными исключить помехи, возникающие при переключении, но, как показывает практика, помехи все-таки возникают и часто интерпретируются компьютером как «мусорный» клавиатурный или мышиный ввод, создающий вполне реальную угрозу потери данных (надеюсь, не нужно объяснять почему?).

Рисунок 1 схема подключения трех компьютеров к одной консоли через KVM-свич

Чуть более сложные (а, значит, и дорогие) свичи основаны на электронных ключах и помех уже не вызывают, однако, и электронным, и механическим свичам присущи серьезные недостатки, а именно — крайне ограниченная длина кабеля, в среднем составляющая пару десятков метров. При этом на мониторе наблюдается устойчивая рябь и 1280х1024 — это предельное разрешение. При увеличении длины кабеля до 100 метров помехи существенно возрастают и приходится переключатся в режим 800×600 или даже пониже того. CRT-мониторам — хорошо. Они работают на (практически) любом разрешении, а вот LCD изначально затачиваются под одно конкретное разрешение и под всеми остальными либо показывают экран размером с почтовую марку, либо занимаются экстраполяцией, что так же не добавляет качества.

Короче, для удаленного администрирования KVM-свичи непригодны, поскольку радиус их действия не выходит за стены конторы, в которой установлен сервер и хотя существует (теоретическая) возможность кинуть шматок кабеля в соседний корпус, сразу же возникают проблемы с безопасностью, поскольку никакой защиты от несанкционированного доступа тут нет и хакеру ничего не стоит захватить управление сервером.

Рисунок 2 KVM-свич подключаемый через Ethernet

Продвинутые KVM-свичи имеют встроенный Ethernet-контроллер, позволяющий передавать информацию по локальной сети в открытом или зашифрованном виде. Естественно, стоят они _намного_ дороже и, что самое неприятное, съедают львиную долю пропускной способности 100 Мегабитного Ethernet'а и даже если в локальной сети установлен сервер, обеспечивающий выход в Интернет, администратору (для управления из дома) потребуется по меньшей мере DSL-модем, т. к. обычный Dial-Up сразу же захлебнется и завалится.

Для жителей больших городов — высокоскоростной доступ уже давно перестал быть проблемой, однако, на периферии дела обстоят существенно хуже, да и в городах далеко не каждый сидит на оптоволокне. К тому же опять-таки возникает проблема безопасности. Какие бы системы защиты не применялись, они потенциально могут быть хакнуты и лучше всего рулить серверов по прямому модемному подключению. Но ладно, не будем предаваться мечтам, а вернемся к суровым реалиям.

На рынке соседствуют десятки, если не сотни, моделей KVM свичей с поддержкой Ethernet или даже встроенным TCP/IP стеком. Достаточно набрать в Гугле слово «KVM» и поискать в «SponsoredLinks» модель подешевле и посимпатичнее.

Рисунок 3 почем KVM для народа

Существует даже открытый проект «Opengear», бесплатно распространяющий референсную схему вместе с печатной платой и встраиваемой операционной системой, под которой все это хозяйство и работает: http://linuxdevices.com/news/NS8120924667.html. Между прочим, заказать мелкую партию Opengear'ов на заводе (или взять паяльник в лапы и заняться этим делом самостоятельно) выходит дешевле, чем покупать аналогичный свич на рынке, к тому же, собирая Opengear, вы получите именно то устройство, которое нужно вам! Но о вкусах как говорится не спорят. Кто-то предпочитает покупать колбасу в магазине, кто-то — коптит ее сам.

Рисунок 4 рефересная модель открытого KVM с поддержкой Ethernet'а в собранном виде

Как бы там ни было, KVM-свичи с поддержкой Ethernet'а реализуют удаленное администрирование в полном масштабе. Вставляем в CD-ROM диск с дистрибутивом своей любимой операционной системы, а в дисковод — дискету с образом FLASH-BIOS и… отключаем дисковод в BIOS'е (в самом деле, на фига дисковод серверу?!). Он не будет мешать нормальной работе сервера, но если вдруг что-то случится с BIOS (которую, кстати, можно перешивать удаленно с помощью KVM), система после перезагрузки «увидит» флоп и, после подтверждения администратора, переданного все через тот же KVM, совершит откат к правильному образу.

Некоторые модели матерей реализуют процедуру восстановления BIOS'а путем переключения перемычки на плате. Тут KVM отдыхают и единственное, что можно посоветовать администратору — не выбирать такую плату или использовать интегрированные устройства удаленного управления, о которых речь пойдет ниже.

Недостатки KVM-свичей особенно очевидны при администрировании UNIX-серверов, управляемых преимущественно из командой строки весь ввод/вывод которой свободно вмешается в 9600 Бод/сек или даже менее того. Однако, даже в текстовом видеорежиме аналоговый видеосигнал требует достаточно широкой полосы пропускания и высококачественных АЦП/ЦАП на свиче, видео-карте и мониторе, в противном случае текст будет невозможно читать. Бывает и так, что некоторые модели свичей несовместимы с определенными мониторами/видео-картами или страдают хронической термонестабильностью, т. е. меняют свои свойства в зависимости от температуры, вынуждая подстраивать LCD монитор по мере прогревания/охлаждения всех устройств. Кому это нужно?!

К тому же, при «тяжелых» зависаниях сервера спасает только «reset», а его через KVM-свич никак не нажмешь. Про прочие переключатели, расположенные на плате, мы уже говорили. Выход? Вставить внутрь компьютера специальную плату, имеющую физический доступ к видеопамяти и прочему оборудованию.

Таким платы не имеют устоявшегося названия и производятся сравнительно небольшим количеством фирм (преимущественно размещенных внутри гаража) обычно маркирующих их как «RemoteBoard». Но это ничего не говорящее название, может быть присвоено практически любому устройству, так что при заказе товара через Интернет следует соблюдать особую осторожность.

Рисунок 5 удаленное ковыряние в настройках BIOS'а

А что же гиганты? Почему же они до сих пор игнорируют этот сектор рынка?! Ответ — не хотят составлять конкуренцию своим же серверам. Ведь _настоящий_ сервер отличается от PC в первую очередь тем, что изначально поддерживает обширные возможности удаленного управления. Физический доступ требуется только в критических случаях (ну или при плановом техническом обслуживании).

Чтобы понять как устроена и работает RemoteBoard, необходимо хотя бы в общих чертах разобраться, что происходит в процессе загрузки машины и какую роль при этом играет BIOS. Материнские платы от EPOX хороши тем, что отображают ход загрузки в виде быстро сменяющих друг друга шестнадцатеричных цифр на двухразрядном восьми-сегментом индикаторе. Нет, следить за ходом загрузки с помощью индикатора мыщъх не предлагает (для этого потребовалось бы снимать его на высокоскоростную камеру). Намного проще открыть приложение к юзер гайду, где перечислены все цифры вместе с соответствующими им стадиями загрузки системы.

Первым получает управление загрузочный блок (boot-block), который, выполнив инициализацию критически важных узлов, приступает к сканированию ISA шины, отыскивая контроллеры устройств и проецируя ПЗУ каждого из них на адресное пространство процессора. На поздних стадиях загрузки подключается модуль, ответственный за поддержку шины PCI, инициализирующий PCI-устройства.

Ладно, забудем об ISA-шине и сосредоточим все внимание на PCI. Всякое PCI-устройство имеет полный доступ к адресному пространству ЦП, на которое _всегда_ отображается видеопамять текстового режима, причем отображается она заранее определенным образом. Тоже самое относится и к графическим VGA-режимам. А вот с появлением SVGA начинается полный разброд и чехарда. На адресное пространство отображается лишь часть внутренней памяти видео-карты и нет никакой возможности отобразить ее всю целиком. Единственный путь — воздействуя на PCI-регистры карты (с точки зрения процессора — порты ввода/вывода) переключать банки, но стратегия переключения банков не стандартизирована и варьируется от одной карты к другой.

Следовательно, мы вынуждены либо встраивать драйвера всех (ну или не всех, а хотя бы самых популярных видео-карт) в ПЗУ нашей Remote-Board (представляющей собой обыкновенную PCI-плату), либо довольствоваться только текстовыми и VGA-режимами. С некоторой натяжной можно замахнуться на работу в VESA, но тут свои проблемы. Хотя формально все современные видео-карты являются VESA-совместимыми, далеко не все из них поддерживают VESA-режимы _правильно_

Как вариант, можно встроить систему удаленного управления в ПЗУ видео-карты. Некоторые производители именно так и поступают. Но этот путь связан со многими патентными и лицензионными ограничениями, поэтому не очень-то популярен.

Кроме доступа к видеопамяти, нам необходимо перехватывать мышь и клавиатуру. В случае PS/2 шины это решается без проблем, поскольку порты PS/2 шины проецируется на адресное пространство ввода/вывода процессора, доступное остальным PCI-устройствам для чтения/записи. С USB клавиатурами и мышами ситуация намного более напряженная, поскольку они еще плохо стандартизированы к тому же «оседлать» USB в техническом плане намного сложнее, чем PS/2, однако, поскольку речь идет о _внутреннем_ перехвате управления, то плате удаленного управления совершенно все равно какие физические устройства подключены к компьютеры. Главное, чтобы BIOS (и/или драйвер операционной системы) был настроен на работу с PS/2, что _всегда_ можно сделать.

Остается только присобачить к плате удаленного управления COM-порт, провесить на него модем, запить их обоих от внешнего источника питания и… мы почти у цели. Для администрирования всего лишь потребуется модем плюс терминал. Модем, это, конечно, хорошо (тем более для прокладки модемного кабеля можно воспользоваться незадействованными проводами в витой паре, которые собственно говоря, для телефона и предназначены), однако, во многих случаях удобнее администрировать сервер через локальную сеть. Ну это не проблема! Достаточно встроить систему удаленного управления в сетевую карту, благо, большинство из них снабжено FLASH-BIOS'ом и свободное место в нем есть!

Таким образом, существующие модели RemoteBoard базируются либо на автономной PCI-плате, имеющей доступ к PCI-регистрам остальных устройств, либо на базе видео или сетевой карты с доработанным BIOS'ом. Наличие внешнего источника питания позволяет «нажимать» на Reset через реле или электронный ключ, аналогичным образом поступая с кнопкой Power и перемычками на плате.

Разобравшись с мат. частью обратим свой взор к витринам магазинов и посмотрим, что хорошего из готовых изделий нам предлагают (вообще-то, при наличии некоторого усердия и умения держать паяльник в руках, спаять RemoteBoard можно и самостоятельно, но далеко не всякий шеф позволит пихать в критический сервер не сертифицированный агрегат, да еще собранный в кустарных условиях).

hw-remote_image_5.jpg

Рисунок 6 внешний вид платы удаленного управления RemoteInsight от Hewlett-Packard

По соотношению функционала к цене бесспорным лидером является модель Remote Insight от Hewlett-Packard, вставляющаяся в PCI-слот и несущая на своем борту интегрированный 10/100 Мегабитный Ethernet-контроллер. Поддерживаются как текстовые, так и графические видеорежимы (причем графические — вплоть до 1280х1024 и 256 цветов в придачу, это конечно, не TrueColor, но мы же не «Шрека» собираемся смотреть!). Управление — мышь да клавиатура, плюс традиционная (для данного класса устройств) возможность удаленного нажатия на Power и Reset. В качестве приятного бонуса предлагается виртуальный дисковод и привод CD-ROM, образ которого можно заранее положить на жесткий диск или передать по Ethernet. Вроде бы мелочь, а приятно. Компьютер, оснащенный Remote Insight может вообще не иметь никаких съемных носителей, что существенно усиливает безопасность, а к безопасности в Hewlett-Packard подходят с головой, не забывая о шифровании. Как говориться, свинья не выдаст, а 128-битный SSL будет сниться хакерам в ночных кошмарах. Внешний источник питания так же входит в комплект и заботиться о его приобретении не нужно.

Удаленное администрирование осуществляется либо через telnet, либо через web-браузер. Список поддерживаемых операционных систем довольно велик и включает в себя: Windows 2000/2003 (AdvancedServer, DataCenter, TerminalServer, Standard или EnterpriseEdition), NovellNetWare 5.1, 6.0, RedHatAdvancedServer 2.1, RedHatLinux 7.3/8.0, SuSELinuxEnterpriseServerV7/V8 и многие другие клоны UNIX'а.

Карту можно приобрести в магазине или заказать по Интернету непосредственно в самой Hewlett-Packard. Все это удовольствие обойдется в $399 (цена указана на момент написания статьи и может варьироваться как в ту, так и в другую сторону).

Существуют и открытые варианты плат удаленного управления, например, PCWeasel 2000, поставляемой в ISA и PCI-вариантах вместе с принципиальной схемой и исходным кодом прошивки по цене в $250 и $350 соответственно, причем, вместо Ethernet-контроллера имеется только тормозной UART (т. е. контроллер COM-порта), а блок питания в комплект не входит, в свете чего становится непонятно — за что платить такие деньги?!

Впрочем, не будем навязывать читателю выбора. OpenSource имеет столько же прав на существование, сколько корпорация Hewlett-Packard со всеми своими патентами.

Устройств удаленного управления много, но у каждого из них есть свои сильные и слабые стороны и найти систему без недостатков как-то не получается. Но вот в совокупности, они предоставляют неплохой инструмент администрирования, решающий огромное количество проблем. Короче, как водится, побеждает дружба… Но вот _кого_ она побеждает — это вопрос на который у мыщъха нет ответа.

  1. KVM switch:
    1. описание устройства и принципов работы различных типов KVM-свичей на wikipedia (на английском языке): http:en.wikipedia.org/wiki/KVM/IP; - Remote Insight «Lights Out» boards: - обзор систем удаленного управления (на английском языке) http:www.paul.sladen.org/lights-out/riloe.html;
  2. Remote Insight Lights-Out Edition II:
    1. описание платы удаленного управления от Hewlett-Packard с возможностью заказа по Интернету (на английском языке): http:h18004.www1.hp.com/products/servers/management/riloe2/server-slot-matrix.html__; - PCWeasel 2000: - описание альтернативной платы удаленного управления, микрокод который распространяется по открытой лицензии (на английском языке): http://www.realweasel.com/intro.html; - http://www.kvms.com: - технические характеристики огромного количества систем удаленного управления (преимущественно KVM-коммутаторов, на английском языке); - Raritan IP-Reach TR364: - описание хорошо KVM-коммутатора TR364 (на английском языке): http://www.42u.com/telereach_bk.htm;