NanoBSD: создаем собственные устройства

Экстренное сообщение: «Компьютеры слишком дороги!»

Многие приобретают компьютер с единственной целью, например создать брандмауэр с функцией трансляции сетевых адресов. Это правда, что высокопроизводительный компьютер на процессоре i486, работающий под управлением FreeBSD, прекрасно справляется с обслуживанием сети небольшого офиса, но стоимость компьютеров превышает стоимость минимально необходимых аппаратных средств. Такие системы громоздки, требуют для работы много электроэнергии, а их жесткие диски еле дышат. Если вы работаете в коммерческой организации, ваш менеджер вряд ли захочет услышать: «Помните старый компьютер, который так тормозил, что даже секретарша от него отказалась? Я сделал из него веб-сервер». Операционная система FreeBSD легко устанавливается на устаревшие компьютеры, но по определенным причинам RAIC (Redundant Array of Inexpensive Crap – избыточный массив недорогого барахла)1 никогда не упоминается в публикациях. Конечно, вы всегда можете, выцарапав бюджет, приобрести новую машину с полной гарантией, но каждый из нас предпочел бы купить что-то другое, а не компьютер, который будет простаивать 99 процентов времени. Все это составляет понятие «дороговизны». Этого достаточно, чтобы побудить самого ярого сторонника движения за программное обеспечение с открытым исходным кодом рассмотреть возможность приобретения недорогого аппаратного брандмауэра, обменяв гибкость и уверенность на низкое энергопотребление и недорогую тишину.

Вы можете взять все самое лучшее из двух миров, собрав собственное устройство на недорогой аппаратуре с низким энергопотреблением. Операционная система FreeBSD широко используется на рынке встраиваемых устройств. Компании, такие как NetApp и Juniper, собирают высокопроизводительные устройства, работающие под управлением FreeBSD. Инструменты сборки образов FreeBSD для встраиваемых устройств интегрированы непосредственно в дерево исходных текстов FreeBSD. Вам встретится множество способов, но наиболее широко используется метод, получивший название NanoBSD (/usr/ src/ tools / tools / nanobsd).

Небольшие, недорогие и компактные компьютеры производят множество компаний, но я отдаю предпочтение компании Soekris (http:// www.soekris.com). Компьютеры Soekris размерами напоминают книгу

Потому что тогда промышленность могла бы продавать вам избыточные массивы дорогого барахла (Redundant Array of Expensive Crap), но это уже другая история.

в мягкой обложке. У них нет вентиляторов, видеокарт, очень низкое энергопотребление, кроме того, они проектировались специально для работы под управлением открытого программного обеспечения. Процессор, память, последовательные порты и порты USB, а также сетевые интерфейсы впаяны непосредственно в материнскую плату. Вы можете купить одну материнскую плату или вместе с корпусом. С этими компьютерами можно использовать жесткий диск или карту mini- PCI, в качестве диска можно использовать flash-карты. Но самое замечательное, что они стоят всего пару сотен долларов – достаточно дешево, чтобы благополучно преодолеть сопротивление бухгалтерии без заполнения множества документов. При покупке вы не получите гарантию, но за стоимость одного маленького сервера в стойке вы сможете купить десять компьютеров Soekris. Если один выйдет из строя, его можно просто выкинуть, а на его место поставить другой. Замечу, что эти системы настолько просты, что мне пока не приходилось сталкиваться со случаями выхода из строя.1

В примерах далее мы будем использовать одну из таких систем, с flash-картой вместо жесткого диска. Все примеры в этом разделе были проверены на Soekris net4801 с микропроцессором на 266 МГц, ОЗУ 128 Мбайт и блоком питания AC/DC. Для среднего использования я рекомендую flash-карту объемом 128 или 256 Мбайт. Больший объем будет пустой тратой, если конечно, вы не собираетесь использовать во встраиваемой системе действительно большие программные продукты. Впрочем, и сейчас, когда я пишу эти строки, карты емкостью 128 Мбайт уже практически исчезли из продажи, поэтому вам, скорее всего, придется использовать самую маленькую flash-карту, какую только удастся отыскать. Есть аналогичные аппаратные средства других производителей, но для них вам придется немного изменить приведенные ниже инструкции. (Мы на переднем крае FreeBSD, помните?)

Для следующего примера я построил минимально возможный сервер DNS, включив в систему только программное обеспечение, необходимое для поддержки DNS.

Что такое NanoBSD?

NanoBSD – это сценарий командной оболочки, который собирает усеченную версию FreeBSD, пригодную для запуска на простейших устройствах. Термин простейшее устройство означает, что система собрана для решения одной или нескольких узкоспециализированных задач. Система NanoBSD превосходно справится с ролью сервера имен, брандмауэра или маршрутизатора. Однако из нее не получится хороший настольный компьютер, так как настольные системы предполагают возможность решения сложных задач, круг которых все шире.

Как оказалось, на один из моих тестов – когда я пролил «Слурпи»,- он не был рассчитан. Зато искры весьма впечатлили.

Точно так же большинство многоцелевых серверов плохо подходят для работы под управлением NanoBSD. Если вы хотите превратить свой брандмауэр NanoBSD в DNS-сервер NanoBSD, придется создать новый образ NanoBSD и переустановить его с самого начала. Это не сложно, но непривычно для сервера.

Создать образ NanoBSD непросто, и вам, вероятно, понадобится несколько попыток, прежде чем вы соберете свой первый диск с NanoBSD. Более того, процесс настройки тоже достаточно непрост, чтобы его можно было разбить на пошаговые инструкции. Вполне возможно, вам придется прочитать этот раздел дважды.

Процесс создания образа NanoBSD делится на два основных этапа: сборка операционной системы и образа диска и последующая настройка образа под ваши нужды. Мы рассмотрим каждый этап создания NanoBSD – сначала сконцентрируемся на создании образа NanoBSD, который будет загружаться на вашей аппаратуре, а затем выполним доводку этого образа.

Аппаратное окружение и flash-диск

NanoBSD – это версия FreeBSD, настроенная под ваши требования и установленная в образ диска, который можно скопировать прямо на flash- диск. Прежде чем приступать к созданию образа диска, нужно внимательно изучить геометрию flash-карты. На flash-дисках нет ни цилиндров, ни головок, хотя они сообщают компьютеру об их наличии. Хуже того, различные компьютеры могут видеть разные геометрии одной и той же flash-карты. Многие инструменты, такие как diskinfo(8), нормально работают с flash-картой, но в зависимости от конкретной модели карты они могут давать неверную информацию о ней. Единственный способ надежно идентифицировать геометрию карты состоит в том, чтобы смонтировать ее в целевой системе и посмотреть, что сообщит о себе flash-карта.

В устройствах компании Soekris в качестве консоли по умолчанию используется последовательный порт. Однако в отличие от многих других встраиваемых систем в устройствах Soekris скорость обмена по последовательному порту установлена равной 19200 бит/с, а не 9600 бит/с. Подсоедините нуль-модемный кабель к последовательному порту устройства, другой конец кабеля подключите к последовательному порту компьютера и откройте сеанс программы tip(l), выбрав скорость обмена 19 200 бит/с.

# tip -19200 sioO

Теперь включите устройство Soekris. После вывода начальных сообщений вы увидите на экране примерно вот что:

comBIOS ver. 1.28 20050529 Copyright (С) 2000-2005 Soekris Engineering.

net4801

0128 Mbyte Memory                            CPU Geode 266 Mhz

OPri Sla KODAK ATA_FLASH                     ©LBA 984-4-32 63 Mbyte

Slot Vend Dev ClassRev Cmd Stat CL LT HT Basel Base2 Int

0:00:0 1078 0001 06000000 0107 0280 00 00 00 00000000 00000000

На экране много интересной информации об аппаратном обеспечении, но сейчас нас больше всего интересуют сведения о диске. Данный flash- диск виден как подчиненное устройство, подключенное к первичному контроллеру (primary slave) О. Кроме того, машина видит эту flash- карту емкостью 63 Мбайт как диск, имеющий 984 цилиндра, 4 головки и 32 сектора ©. Теперь мы сможем подготовить образ диска Nano- BSD с учетом этой геометрии. Выключите устройство Soekris и извлеките flash-карту. В следующий раз, когда вы включите это устройство, оно загрузит FreeBSD с flash-карты.

NanoBSD и бездисковые системы

Если у вас есть бездисковая платформа, загрузите разок бездисковую систему NanoBSD. Это позволит вам заглянуть в файл dmesg.boot и поможет создать отличную конфигурацию ядра. Кроме того, вы сможете узнать, какое имя устройства ваша система использует для обозначения flash-карты, что позднее позволит вам сэкономить время на настройке.

Источник: ЛукасМ. FreeBSD. Подробное руководство, 2-е издание. – Пер. с англ. – СПб.: Символ- Плюс, 2009. – 864 е., ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий