Глава 32 Бездисковые компьютеры

We use cookies. Read the Privacy and Cookie Policy

Глава 32 Бездисковые компьютеры

В этой главе мы рассмотрим организацию загрузки бездисковых машин:

• сервер – Linux, клиент – DOS/Windows 3.x;

• сервер – Linux, клиент – Linux.

Немного истории

Если проследить за компьютерной периодикой, можно заметить, что несколько лет назад много надежд возлагалось на так называемые «сетевые клиенты». Поясним – это компьютер без винчестера и без прочих дисководов (CD-ROM, ZIP-drive и т. п.), который в общем случае все программное обеспечение, в том числе и операционную систему, загружает из локальной сети (в более общем случае – из Интернета) и результаты работы записывает туда же. Преподносилось это как революция в информационной индустрии, которая позволит резко сократить денежные расходы и высвободит обслуживающий персонал. Постепенно энтузиазм по этому поводу сошел на нет. Давайте посмотрим, почему.

• Во-первых, эта идея была реализована еще в шестидесятых (если не раньше) годах, когда появилась возможность к одному компьютеру подключить несколько терминалов. Чем не сетевой компьютер? Работают несколько человек, информация передается по сети, терминалы стоят недорого, решена проблема с обслуживанием и унификацией программного обеспечения. После появления персональных компьютеров эту идею лишь возродили на новом уровне – есть сервер удаленной загрузки, есть локальная сеть, есть компьютеры, которые не имеют жесткого диска и загружаются с помощью дискеты или напрямую через сеть. Такая система реализовывалась различными программами применениями, в том числе UNIX, Novell, Lantastic и множеством игроков компьютерного мира. Волна "сетевой компьютеризации" периодически возникала, пару лет устойчиво держалась и сходила на нет. И на то есть причины как объективные, так и субъективные.

• Во-вторых, сетевой компьютер не получился дешевым. Правда странно? Но, тем не менее, это так. Сетевой компьютер от фирмы SUN (без монитора) сегодня стоит для конечного пользователя порядка 350–400 долларов. Это без жесткого диска и всяких сменных накопителей. Приблизительно столько, ну, может, дороже долларов на 50–70 стоит «комплектный» персональный компьютер. В результате теряется смысл покупать функционально ограниченное устройство.

• В-третьих, обычное человеческое чувство: "Мне спокойнее, когда мое находится при мне". Как результат – пользователь все равно требует жесткий диск, а если поставят на его компьютер привод CD-RW – тоже не возражает.

• и четвертое – физические ограничения сети. Те времена, когда пользователь работал в текстовой консоли, безвозвратно прошли. Теперь ему требуется только графический интерфейс, причем в разрешении 1024x1280, мультизадачность и чтобы все очень быстро работало. Как результат – операционные системы и приложения занимают десятки, а то и сотни мегабайт дискового пространства. Даже в благополучной Америке в массовых масштабах достичь такой пропускной способности Интернета в ближайшее время не удастся. Конечно, определенным вариантом может стать использование твердотельного Flash-диска, на котором находится операционная система, а все остальное (папки и приложения пользователя) – на серверах в сети. Однако стоимость самого маленького твердотельного диска (32 мегабайта) составляет порядка 50 долларов, поэтому пока не имеет смысла в массовых масштабах использовать такие устройства.

Вот по этим причинам шумиху вокруг сетевого компьютера тихо спустили на тормозах.

Почему мы об этом здесь говорим? Нет, не ради исторического курьеза. Здравые зерна в этой идее имеются. Гранды компьютерного бизнеса пытались протолкнуть сетевой компьютер в массы, "для дома, для семьи". Попытка, заранее обреченная на провал. Но у бездискового или «сетевого» компьютера есть своя законная ниша, в которой он прочно обосновался и вряд ли в ближайшее время ее покинет.

Корпоративный мир. Зачем оператору банка мощный компьютер, если он только вводит цифры и получает информацию (ему и графический интерфейс по большому счету не нужен)? Тем более, что этих операторов в банке сотни. Или кассир в супермаркете, или операторы бюро ремонта в телефонных компаниях. Можно придумать достаточно много работ (те же терминалы в библиотеках), для которых не нужен полноценный компьютер. Что дает использование бездисковых компьютеров для фирм? Первое и самое очевидное – экономия денег. Стоимость даже самого дешевого винчестера порядка 70 долларов, еще десять стоит флоппи-дисковод, тридцать – привод CD-ROM. Итого, экономим около сотни долларов на каждом компьютере. Для средней руки банка прямая экономия составит 5—10 тыс. долларов. Но это еще не все! Поскольку от бездисковых компьютеров много не требуется – на нем выполняются одно-два приложения, то вполне возможно использовать старые компьютеры – 486, Pentium. Работать будут до последнего.

Имеется и косвенная экономия – раз нет жестких дисков, значит они не выйдут из строя, не потеряются данные, меньше надо персонала, чтобы обслуживать компьютеры. И администрирование сети становится проще – если надо поставить новую программу, то она устанавливается на одном компьютере и копируется на сервере по пользовательским папкам. Если завис компьютер – нажал кнопку Reset, и через две минуты все снова работает. Резервирование данных намного упрощается – не надо копировать их с каждого компьютера, достаточно сделать резервную копию сервера.

И, что немаловажно, – безопасность сети и данных. На бездисковом компьютере нет жесткого диска, дисководов, приводов CD-ROM – никто не занесет вирус, не перепишет секретные данные, не сможет установить программное обеспечение, идущее вразрез с политикой компании.

Есть еще один любопытный вариант – совмещение загрузки по сети с загрузкой с жесткого диска. Это позволяет использовать компьютер с разными операционными системами или попеременно в качестве персонального или сетевого компьютера.

Конечно, нет бочки меда без ложки дегтя. Бездисковые компьютеры неприменимы для работы с большими объемами данных – графикой, расчетами, требующими сотен мегабайт данных. Ограничение по пропускной способности сети резко сужает круг используемых операционных систем. Архитектура операционных систем так же может быть не приспособлена для использования при удаленной загрузке.

Автор этой книги с бездисковыми компьютерами работает с 1995 года. На Одесской городской телефонной сети большинство компьютеров бюро ремонта являются бездисковыми станциями. Сначала это были компьютеры, загружаемые с дискеты и работавшие в связке Lantastic 6 и Windows 3.11. Потом убрали дисководы, и загрузка компьютеров производилась по сети. Приблизительно через год мы перешли на Novell NetWare 4. Объемы данных росли, нагрузка на сеть увеличилась, сервер баз данных на Novell перестал справляться с нагрузкой, а на новый сервер не выделялось финансирование. На наше счастье, появился бесплатный сервер баз данных под Linux, и после экспериментов было решено перевести на Linux все наше хозяйство. Правда существовала проблема – клиентское программное обеспечение написано под Windows 3.11, и переписывание его заняло бы порядка десяти месяцев. Поэтому приняли решение – организовать загрузку бездисковых клиентов Windows с Linux-сервера. Конечно, можно было бы загружать бездисковых клиентов с помощью MARS, но это потянуло бы за собой установку на клиентах соответствующего программного обеспечения, а наши компьютеры – это, в основном, 486-е и младшие Pentium с 8 Мбайт оперативной памяти.

В качестве операционной системы на бездисковых компьютерах можно использовать Linux или UNIX. Вполне приемлема и MS-DOS. Достаточно просто заставить работать Windows 3.1x Для Windows 95 необходимо достаточно много оперативной памяти и стомегабитная локальная сеть, т. к. Windows вовсю использует свопинг. Что-то более серьезное, типа Windows 98 или Windows NT заставить работать на бездисковых компьютерах не представляется возможным.

Общие вопросы

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

Для успешной загрузки по сети бездисковый компьютер должен получить:

• идентификатор, однозначно определяющий этот компьютер;

• образ операционной системы;

• файловую систему, с которой этот компьютер будет работать.

Поскольку в локальной сети обычно несколько сетевых компьютеров, серверу как-то необходимо различать бездисковые компьютеры. Это достаточно просто. У каждой сетевой карты существует свой уникальный адрес (МАС-адрес), который является ее адресом в сети. Первое из требований выполнено.

Получить образ операционной системы позволяет программа, прошитая в ПЗУ, установленном в сетевой карте. Сначала эта программа посылает по сети МАС-адрес и запрос на получение необходимых данных для функционирования сетевого протокола (IP, IPX или NetBIOS – в зависимости от того, какая установлена операционная система и с каким сетевым протоколом она работает). Поскольку мы рассматриваем Linux и IP-протокол, то дальнейший материал касается только IP-протокола.

Протоколы, используемые для получения IP-адреса бездисковым компьютером, называются загрузочным протоколом (ВООТР) и протоколом динамической настройки компьютера (DHCP). Применение протокола DHCP шире, он используется и для динамической настройки обычных компьютеров.

Поскольку первоначально бездисковый компьютер посылает по сети широковещательный запрос, то первый сервер удаленной загрузки, который откликнулся на него, и выдаст бездисковому компьютеру IP-адрес и в дальнейшем произведет его загрузку.

После получения IP-адреса бездисковый компьютер получит образ операционной системы с сервера удаленной загрузки. Для этого используется протокол, имеющий название тривиального протокола передачи файлов (TFTP). Протокол TFTP можно назвать подмножеством протокола FTP, однако в нем нет подтверждения подлинности, и он использует протокол UDP, поскольку код протокола UDP легко разместить в микросхемах ПЗУ.

Передача данных происходит поблочно, после передачи каждого блока сервер удаленной загрузки ожидает подтверждения получения блока. Потерянные блоки после определенного времени ожидания передаются заново. Когда получены все блоки, микросхема ПЗУ сетевой загрузки обращается к образу операционной системы по адресу точки входа.

И последнее. Для нормального функционирования операционной системы компьютеру должна быть предоставлена корневая файловая система (для Linux и UNIX) или сетевые диски для других операционных систем. Linux и UNIX обычно используют сетевую файловую систему (NFS).

Предварительные действия

Что нам надо для того, чтобы создать сервер удаленной загрузки?

• скачать из Интернета пакет Etherboot и/или Netboot (после серии экспериментов рекомендуется Etherboot);

• получить список сетевых карт, установленных в ваших бездисковых компьютерах (тип карты и, желательно, тип микросхемы);

• найти программатор и микросхемы ПЗУ;

• внимательно изучить сопроводительную документацию;

• скачать и установить серверы TFTP и ВООТР, а для бездисковых компьютеров Linux еще и NFS.

Windows-клиенты

Начнем с Windows-клиентов, поскольку это более трудная задача. Помимо пакетов, упоминавшихся ранее, необходимо с сайта Microsoft скачать Microsoft Network Client version 3.0 for MS-DOS (ftp://ftp.microsoft.com/bussys/clients/msclient/). Так же необходимо иметь в своем распоряжении MS-DOS 5.0 или выше и дистрибутив Windows 3.1х.

План действий

План и порядок действий должны быть примерно такими:

1. Устанавливаем на сервере пакет удаленной загрузки и пакет Samba (файл-сервер для работы с Windows-клиентами, использует протокол NetBIOS поверх TCP/IP).

2. На клиентской машине с жестким диском создаем работоспособную DOS-систему (загружаемую с дискеты) с сетевым клиентом, поддерживающим протоколы NetBIOS и TCP/IP и, по желанию, устанавливаем на жесткий диск Windows и требуемые приложения.

3. Создаем ПЗУ удаленной загрузки (или загрузочную дискету), создаем на сервере Boot-o6pa3 дискеты.

4. Копируем на сервер в каталог пользователя нужные приложения.

5. Конфигурируем сетевую карту, устанавливаем ПЗУ удаленной загрузки.

6. Запускаем бездисковые станции.

Установка и настройка программного обеспечения на сервере

Установка пакета Etherboot не должна вызвать никаких сложностей. Предварительно рекомендуем прочитать файл Readme. Установка и настройка пакета Samba так же не представляют трудности, наиболее типичные настройки приведены в документации. Подробную информацию можно найти и в гл. 24, посвященной пакету Samba.

Далее следует установить следующие пакеты – сервер BOOTPD и сервер TFTP. После установки эти серверы полагается настроить. Для автоматического старта демона BOOTPD необходимо добавить следующую строчку в файл /etc/inetd.conf:

bootps dgram udp wait root /usr/sbin/tcpd bootpd

Затем надо создать ВООТР-базу, ставящую в соответствие МАС-адресам сетевых карт бездисковых компьютеров адреса IP и хранящую другую необходимую информацию (более подробную информацию следует смотреть в соответствующей тап-странице). Эта база находиться в файле /etc/bootptab и для нашего случая содержит следующие строки:

client1:hd=/tftpboot:vm=auto:ip=192.168.40.33:

:ht=ethernet: ha=008048e2eb9c:

:bf=bootnet

Рассмотрим подробнее поля базы:

• hd – домашний каталог, где находится загрузочный образ;

• ht – тип устройства;

• ha – аппаратный адрес хоста. Для Ethernet-карты это МАС-адрес;

• ip – адрес для бездискового клиента;

• bf – имя загрузочного образа для бездисковой станции.

Для автоматического запуска сервера TFTP необходимо проверить наличие следующей строки в файле /etc/inetd.conf:

tftp dgram udp wait root /usr/sbin/tcpd in.tftpd -s /tftpboot

Настройка аппаратуры клиентской машины

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

• процессор 386;

• 2 Мбайт оперативной памяти;

• винчестер 20 Мбайт;

• дисковод 3,5 дюйма;

• сетевая карта.

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

Будем считать, что сетевая карта уже настроена для работы в обычном компьютере – выставлено прерывание и адрес ввода/вывода. Теперь необходимо разрешить карте работать с ПЗУ. Для этого на карте, конфигурируемой перемычками, необходимо включить перемычку BOOTROM ENABLED и выставить перемычками адрес блока памяти, куда будет отображаться ПЗУ (как правило, это адрес D000, D400). Важно, чтобы этот адрес не был занят системой. Для сетевой карты без перемычек в комплекте с драйверами идет программа конфигурации и тестирования сетевой карты. Документация по программе конфигурации сетевой карты находится на прилагаемой к ней дискете. После успешной конфигурации сетевой карты вставьте микросхему ПЗУ в предназначенную для нее панель.

Данный текст является ознакомительным фрагментом.