0

Бездисковые рабочие станции windows

Рабочее место сотрудника (в офисе)

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

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

  • Терминальный сервер Microsoft — существует давно, хорошо себя зарекомендовал, при правильной настройке вполне может заменить локальный компьютер. Есть ограничения, речь о которых пойдет позже.
  • Терминальный сервер Microsoft c надстройкой в виде Citrix XenApp (теперь XenDesktop) — Enterprise решение для работы сотрудников в удаленной сессии, по сравнению с чистым терминальным сервером Microsoft добавлены удобные средства управления и мониторинга для администратора, различные украшательства интерфейса. Citirx протокол — ICA — позволяет пользователям работать комфортно не только в локальной сети, но и из филиалов по плохим каналам. Вообщем много плюсов для большой инфраструктуры, но есть и ограничения.
  • VDI — виртуальные рабочие станции — каждому пользователю по виртуальной машине, к которой он подключается с рабочего места. Это может быть статическая ВМ или самоочищающаяся после выхода пользователя из сеанса. Делают программные продукты для организации VDI таие компании, как Citrix, VMware, Microsoft, Dell, Parallels…

Нужно отметить, что основные цели у перечисленных выше технологий преследуются одинаковые: централизация данных пользователей в центре обработки данных, разделение данных пользователя и операционной системы, отделение операционной системы от оборудования («железа»), инструмент для удобного обновления ОС, инструмент для управления софтом, который доступен пользователям.
По принципу — разделяй и властвуй. К самой концепции нет никаких вопросов, она абсолютна правильная.

Проблемы Terminal Server и VDI

Цена оборудования — как один заказчик мне сказал про VDI — это п***ец. Есть еще мнение что у данной технологии нет будущего из-за цены, которую нужно заплатить за «одно рабочее место». Если считать, получается, что стоимость и TS и VDI около 1000$ на одного сотрудника. В эту сумму входит: серверы, системы хранения данных, сетевые коммутаторы, лицензии Microsoft + Citrix или VMware. А можно вместо этой мороки, по-старинке, закупить компьютеров, так и делают.

Тонкие клиенты — помимо того, что он стоит дорого 300+$ (если не китайский и не самосбор), так еще и установлен на нем часто Linux или урезанный Linux (ThinOS у Wyse или ThinPRO у HP), а подключаться скорее всего с тонкого клиента придется к Windows, отсюда масса проблем. Если брать тонкий клиент на Windows Embedded, то получаем маломощный мини-компьютер на рабочем месте. Причем, сам тонкий клиент небольшой, но проводов меньше не становится.

Поддержка программ — тесты показывают, что у многих заказчиков есть корпоративные программы, которые не совместимы с технологиями TS и VDI. Это могут быть самописные клиент-серверные приложения, это может быть софт, привязывающийся к железу, это могут быть программы, которые требуют локального подключения к ОС сканера, веб камеры, принтера, IP телефона и т.п. Хотите распространенный пример, пожалуйста, Microsoft Lync 2013 или Skype, будут у вас недостаточно хорошо работать как в терминальном режиме, так и в VDI сценарии. А это необходимы средства коммуникации, основная тенденция сегодняшнего времени.
Я не говорю, категорическое НЕТ, просто перед покупкой нужно хорошенько протестировать в реальных условиях.

Поддержка периферии — печатать, сканировать, использовать вебкамеру в конференц звонках и видеть собеседников в хорошем качестве без лагов и тормозов — эти и другие задачи открыты. Сейчас как-то что-то работает у кого-то работает. стандартная ситуация — подключаешь к тонкому клиенту принтер, он его определяет как совершенно другой принтер и печатает кракозябры. Подключаешь сканер и сканирование происходит 10 минут. Подключаешь веб камеру и наслаждаешься разрешением 320х240, хотя камера HD.

Поддержка новых версий ОС — многие заказчики хотят убить сразу двух зайцев и перейти с XP на Win7 (или 8) и с персональных компьютеров на тонкие клиенты. И при более плотном знакомстве с инфраструктурой оказывается, что проще нанять пару студентов для этой задачи и докупить новые модели компьютеров.

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

Бездисковая рабочая станция

Долгое получилось вступление… а хотел я рассказать, как можно реализовать проект который сможет решить те же проблемы, что и Терминальный сервер и VDI, еще раз их повторю:

  • централизация данных пользователей в центре обработки данных
  • разделение данных пользователя и операционной системы
  • отделение операционной системы от оборудования («железа»)
  • инструмент для удобного обновления ОС
  • инструмент для управления софтом

Меня натолкнули на данную схему следующие тезисы:

  • для повседневных офисных задач заказчики стали покупать вот такие компьютеры, состоящие из Mini-ITX корпуса с выносным блоком питания, материнской платы со встроенным процессором Atom или Celeron (охлаждение пассивное), сюда же жесткий диск и планка памяти. Система простая, как лом и справляется с офисными задачами, могут в дальнейшем (когда мощности перестанет хватать) использоваться как тонкие клиенты для VDI или TS. Устанавливается на такие системы ОС Windows 7 и используется как обычный компьютер. Нельзя не согласиться, что этот неттоп уже сам по себе решение — недорогое примерно (5-6 тысяч рублей), энергосберегающее (потребляет 8Вт), без движущихся деталей (отказоустойчивость), компактное.
  • следующий тезис, лучше всего программы работают не в терминальном режиме, а на локальном компьютере. Это относится и к Lync, Skype+ вебкамера, и к сканирующему, печатающему ПО, обычный серфинг в интернет браузере на локальном компьютере лучше выглядит. В локальную ОС Windows можно установить драйверы от любого оборудования и оно будет работать.
  • Если пользователь работает локально, использует ресурсы своего неттопа или компьютера, то покупать дорогостоящее серверное оборудование не нужно. У нас нагрузка размазана по локальным устройствам.

Citrix + бездиковая станция + технологии Microsoft

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

Со стороны администратора. Типичные задачи администратора или специалиста технической поддержки упрощаются. Новое рабочее место сотрудника, установка драйверов или стандартного программного обеспечения — легко. Данные пользователя в перемещаемом профиле (roaming profile) и перенаправленных папках хранятся централизованно, а значит, резервное копирование данных тоже централизованное.

Все очень похоже на VDI, только нет сумасшедшей нагрузки на серверную инфраструктуру. Похоже на локальные компьютеры, но данные хранятся централизованно.

Итак, посмотрим на архитектуру самого решения.

1 шаг. У администратора есть системный блок, где он развернул операционную систему, установил стандартные программы, драйверы. Далее, с помощью Citrix Provisioning server client снимается образ системы и импортируется на Citrix Provisioning server.

2 шаг. Минимально достаточно двух виртуальных (или не виртуальных машин). Одна с установленной ролью Active Directory, DHCP, DNS, вторая сервер Citrix Provisioning. Искренне советую использовать SSD диск для хранения золотого образа из шага 1. Именно этот образ будет доступен на чтение всем (или группе) бездисковых системных блоков пользователей.

Возможно я буду советовать использовать Microsoft vApp 5.0 после того, как проведу тесты. Тогда можно будет образ операционной системы не нагружать программами, а запускать их из контейнеров. Каждый сотрудник сможет использовать те программы, которые ему нужны.

3 шаг. Загрузка рабочих станций происходит по PXE, для этого нужно в DHCP прописать два параметра и активировать LAN Boot в BIOS мини-компьютера

4 шаг. Компьютер получает виртуальный диск на чтение. Это похоже на технологию презентации LUN-а по iSCSI. Сеть нагружена незначительно, это я потом покажу в статьях по настройке. Естественно, во время работы образуются временные файлы (КЭШ) он может храниться в RAM оперативной памяти или на сервере.
Если происходит перезагрузка, то вся информация удаляется, профиль перед выходом из сессии синхронизируется. Чтобы не потерять файлы при внезапном выключении питания или потере связи с сервером, нужно приучить пользователей хранить их в перенаправленных папках.

Можно создать персональную машину для пользователя, презентовав ему в единоличное пользование на чтение-запись отдельный диск.

(выступление на конференции в казанском авиационном университете – “Туполевские чтения 2005”)

Решение использовать сервер терминалов пришло не сразу. Работая в фирме, в которой каждый день что-нибудь происходит с компьютерами под управлением Windows, я задумался об использовании бездисковых станций. Конечно, на таких (конфигурация будет приведена чуть позже) компьютерах не поиграешь в игры, однако прослушивание музыки, распечатка документов на принтере, работа в Интернет, работа с офисными Word, бухгалтерскими 1C и подобными программами полноценно возможна. В терминальной системе можно запустить и 3D-приложения – но все же не рекомендуется этого делать, так как такие программы тяжелы даже для Pentium IV.

Читайте также:  Защита от электромагнитного излучения телефона

Важным фактором является возможность закупки недорогих компьютеров во многие государственные и частные организации нашей страны. Стоит отметить, что при использовании терминальных решений повышается информационная безопасность. Терминальные решения хорошо проработаны в UNIX-системах (консольные терминалы, удаленный шелл), для Windows-систем же первой реализацией стал продукт Citrix Metaframe фирмы Citrix, предложившей свою технологию Independent Computing Architecture (ICA). В Windows 2000 Server и Windows 2003 Server был реализован терминальный сервис на основе протокола RDP (Remote Desktop Protocol). Наиболее полно терминальный сервис реализован в крайней версии линейки Windows Server – версии 2003, где обеспечивается работа клиентских рабочих станций с 24-битным цветом, в отличие от максимально возможного 8-битного в терминальной сессии Windows 2000 Server. Вопреки распространенному мнению, протокол RDP не является полностью самостоятельной (и закрытой) разработкой фирмы Microsoft , а представляет собой некое расширение “ITU-T T.128 (так же известное как T.SHARE) application sharing protocol”. Это обстоятельство позволило группе программистов создать приложение rdesktop, выполняющего задачу предоставления доступа к терминальной сессии MS Windows 2000/2003 Server из системы X Window на платформе UNIX. Приложение rdesktop развивается как Open Source проект и доступно в исходных текстах по адресу http://www.rdesktop.org. В свою очередь, rdesktop используется в проектах “тонких” клиентов, таких как PXES, ThinClient (это наш случай), WtWare для доступа к терминальной сессии сервера Windows. Сама идея далеко не нова, она применяется уже десятилетиями, при этом являясь удобным и безопасным решением. Тем, кто устанавливает операционные системы на десятки компьютеров (простое применение TFTP), это сэкономит массу времени. Банально, но время – деньги. Говоря коротко, в большинстве случаев использование сервера терминалов себя оправдывает. Все особенности терминальных систем происходят из сути их работы, выраженной названием. Терминал – это устройство, в общем случае не имеющее собственных вычислительных мощностей, служащее лишь для отображения информации, поставляемой центральным вычислительным устройством и для передачи этому устройству информации, вводимой на стороне терминала. Терминалы существуют очень давно, со времен первых вычислительных машин, в то время они были единственным способом ввода и вывода информации.
Знаю, что подобная задача много раз решалась на большом количестве предприятий, технически не так сложна, как может показаться сначала. Однако, когда я сам пытался найти такого рода информацию, найти ее не получилось. Материал я подготовил, собирая информацию по частям, порой даже по крупицам, методом своих проб и ошибок, спасибо за посильную помощь многим моим друзьям.

Проектирование

Итак, приступим. Начинают все всегда с проектирования, начнем и мы с него. Прежде всего – конфигурация и мягкая начинка самого сервера терминалов. В моем случае им был мой домашний компьютер – Пентиум 4 3200 ГГц на материнской плате Intel D 865 PERL X , 2 Гб ОЗУ, 160 Гб винчестер и сетевая плата Intel на базе чипа 8255 x (100 мбит/с). Идеальным, или близким к идеалу был бы компьютер с двумя процессорами Intel Xeon с тактовой частой выше, чем 2,6 ГГц, такая мощь даст заметную разницу при использовании большего количества терминальных клиентов и при работе программы 1C. Не забываем о существовании SCSI и UPS (первое дорого даже на фоне двухпроцессорного Xeon ‘а, а второе обязательно). В качестве операционной системы для сервера была выбрана Windows Server 2003 Enterprise Edition. На выбор можно установить MUI. MUI (Multilanguage User Interface, русский интерфейс, если коротко) понадобится при недостаточном знании английского языка, часто при особой настройке и администрировании сервера терминалов. Об остальном программном обеспечении я расскажу позже.
В качестве терминального клиента (в моем случае он был только один, хотя при установке двух процессоров и тех же 2 Гб ОЗУ успешно можно было бы подключить 30 клиентов) использовался Pentium I “S” – 200 МГц на материнской плате Acorp 5 TX 52 с 32 Мб памяти, 1 Мб видеокарта и собственно одна из ключевых деталей терминального клиента – сетевая плата с бутромом (перепрошиваемый загрузчик) Compaq NC 3161 (чип Intel 8255, PCI, eepro 100, Wake On LAN, 256 Kb, TP, 100 Mbit/s). Наиболее точные конфигурации сервера и клиента приведены в приложениях после статьи. Уточню, что винчестера не было в клиенте совсем (бездисковая станция).
Конечно, конфигурация всегда зависит от многих факторов, и указанная выше – не первая и не последняя в списке использованных терминальных клиентов. Хорошенько проработав технический материал, можно собрать клиентов и на 486-ом процессоре (40 МГц), с 10 Мбит сетевыми платами и 8 Мб ОЗУ, а вместо сервера мог бы быть какой-то Celeron 700 МГц. Но – весь этот материал дан как отправная точка, как для новичков, так и для более опытных системных администраторов.
При написании этой статьи было перекачано, пережевано очень большое количество технической информации, программного обеспечения, и было потревожено много-много человек 🙂
Все копирайты я указал в конце статьи.

Установка терминального сервера

Устанавливайте Windows Server 2003 как обычно, с единственным уточнением – при выборе режима лицензирования укажите – режим – “На сервер”, количество – укажите, сколько одновременных подключений вам необходимо.
Следующим шагом сразу после установки надо поднять (то есть установить и настроить) службу или роль Терминального сервера. Для этого переходим в Панель управления и запускаем утилиту Установка и удаление программ, в ней выбираем Установка компонентов Windows. Здесь ставим галочки напротив Сервер терминалов и Лицензирование сервера терминалов (чтобы терминальный сервер продолжал принимать соединения по истечении 120 дней, вы должны сконфигурировать Terminal Services Licensing. Кстати, серверы лицензий Windows 2000 не совместимы с Windows Server 2003. При использовании Windows 2003, сервер лицензий Windows 2000 надо обновить до Windows Server 2003 или активировать отдельный сервер лицензий Windows Server 2003) и жмем Далее. Операционная система попросит поместить в привод установочный диск, или указать местоположение установочных файлов Windows Server 2003. После копирования всех необходимых файлов, выполните перезагрузку.
Сервер терминальных лицензий необходимо активировать. Меню Пуск – Выполнить, введите licmgr, здесь можете видеть, что наш сервер не активирован. Для этого выделите его, и в меню Действие выберите пункт Активировать сервер (не забывайте, что все это при подключенном соединении с Интернетом). Метод активации – Автоподключение. Произойдет соединение с расчетной палатой корпорации Microsoft, заполните поля Имя, Фамилия, Организация и выберите страну. Успешно активировав сервер, мастер активации предложит запустить мастера клиентских лицензий (CAL). Здесь, если выберете программу соглашения Enterprise Agreement, то вы должны ввести номер соглашения (запрос поисковику “Enrollment Agreement Number” находит такие числа). Версия продукта – Windows Server 2003, тип продукта – на устройство, количество – вы указывали его при установке. Дождитесь сообщения “Новый ключевой пакет клиентской лицензии успешно установлен”. Переходим к настройке.

Настройка терминального сервера

Запускаем Пуск – Программы – Администрирование – Настройка служб терминалов – Параметры сервера. Убираем флажок Ограничить пользователя единственным сеансом. Перемещаемся в настройки подключений. Видим подключение RDP – TCP, здесь право кнопкой мыши, далее Свойства, вкладка Параметры клиента, снимаем галочку “Использовать параметры подключения пользователя”, а три остальные галочки чуть ниже – отмечаем, глубину цвета ставим 16-и битную и запретим сопоставлять порты, диски и звук (по желанию). Перемещаемся на вкладку “Разрешения” и добавляем пользователя, который будет работать на терминальном клиенте (права – Гость + Пользователь). На вкладке “Удаленное управление” выбираем переключатель “Использовать управление со следующими параметрами”, снимаем галочку “Запрашивать разрешение пользователя” и устанавливаем галочку “Взаимодействие с этим сеансом”. Здесь все. Нажмите ОК, сохранив все изменения и закройте mmc-оснастку.
Создайте пользователя и присвойте ему пароль – этот пользователь будет удаленно подключаться к терминальному серверу.
Теперь пару слов о способах загрузки по сети. Предложенный здесь мной способ загрузки с использованием прошивки PXE – не единственный. PXE Pre – boot Execution Environment (среда предзагрузочного выполнения) – стандарт, разработанный Intel. Такие и только такие прошивки используются производителями при изготовлении сетевых карт и BIOS материнских плат с интегрированными сетевыми картами. Прочитайте документацию к вашему оборудованию, чтобы узнать, поддерживает ли оно загрузку по методу PXE. Если ваша сетевая карта или материнская плата уже укомплектованы прошивкой PXE, то никаких дополнительных действий вам делать не придется. Такие сетевые карты и материнские платы сразу после покупки готовы для использования в качестве бездисковых терминалов. Для некоторых карт (в том числе, для всех моделей карт на чипе rtl8139C[D]) прошивку можно найти на сайте фирм-производителей чипсетов. Эту прошивку нужно самостоятельно прошивать в микросхему BootROM. Если для вашей сетевой карты производитель не сделал прошивку, то выходом из ситуации будет продолжение поисков сетевой платы с PXE либо остается использовать прошивки Etherboot.
Etherboot – оpensource проект, который выпускает прошивки практически для всех существующих сетевых карт. Прошивка Etherboot может быть записана в микросхему BootROM или flash-память сетевой карты, может быть запущена с дискеты или жесткого диска как загрузочный сектор или как программа из DOS. Прошивки Etherboot являются единственным способом загрузки по сети парка компьютеров с разными сетевыми картами, для которых производители не написали PXE-прошивки. Здесь загрузку с использованием Etherboot мы использовать не будем.
Загрузка терминального клиента может быть осуществлена не только по сети, но и с дискеты (требуется трехдюймовый дисковод, и стоит помнить, что дискеты слишком быстро умирают), с небольшого жесткого диска (использование винчестера оправдано, если требуется разгрузить сетевой трафик, кэшировать его и использовать подкачку). Также при наличии винчестера можно работать в операционной системе установленной на нем, при этом останется возможность загружаться по сети. С другой стороны, при отсутствии винчестера мы всегда будем уверены, что какой-нибудь вирус не разрушит разделы диска. Будем уверены в том, что терминальный клиент всегда будет загружаться одним и тем же образом. Однако сегодня мы все можем видеть, что современные производители поставляют свои компьютеры с возможностью загрузки по сети, используя прошивку PXE.

Читайте также:  Видеорегистратор со стеклянной оптикой

Подготовка (прошивка) сетевой платы

Как я уже рассказывал в начале статьи, остановил я свой выбор на Compaq, в составе конфигурации клиента. Собрал информацию о том, как прошиваются интеловские бутромы. Для каждого случая своя отдельная история. Для Intel все начинается с установки специального ПО (драйверов) Intel PROSet версии 8.4.2004 (в моем случае для Windows 2000, XP , 2003, размер

6 Мб). После установки появляется зеленая иконка в трее. При нажатии на кнопку Update Boot Agent на вкладке Boot Agent, программа спросит, создавать бэкап текущего бутрома или нет. Я, на всякий пожарный, сделал. Дальше программа предлагает указать местонахождение прошивки (форматы файлов прошивок – *.flb, *.nic). Естественно на моем компьютере не оказалось не одного файла с таким раширением, кроме моего собственного бэкапа. Зато файлы с таким расширением нашлись в Интернете в составе программы Intel Boot Agent. Прошивка BA4115M1.FLB успешно закачивается внутрь бутрома – вы поймете это, когда программа PROSet сообщит, что “Image has been updated successfully”. Остальные параметры вы можете изменить уже при загрузке терминального клиента, достаточно просто нажать комбинацию Ctrl+S во время ожидания сетевой картоый действий со стороны пользователя. Бутром готов к использованию.

Выбор и настройка TFTP и DHCP серверов

Следующим шагом настройки терминального сервера должна стать установка DHCP-сервера, который будет выдавать по запросу клиенту IP-адрес, IP-адрес TFTP-сервера, у которого можно получить файл-образ операционной системы для загрузки терминала и имя файла образа операционной системы для загрузки. Получив указанную информацию, загрузчик скачивает файл-образ с операционной системой и соответствующим способом передает ему управление. Какой выбрать из огромного количества TFTP и DHCP серверов? Я остановился на классическом примере – tftpd32 версии 2.80, самой свежей на сегодня версии. tftpd32 прост, функционален и ведет лог. Другой сервер, на свой вкус, вы сможете выбрать и протестировать позже. Главное окно tftpd32 настраиваем так:

Здесь Server Interfaces – IP-адрес сетевухи, от которой идет кабель на хаб. IP pool starting address укажите IP-адрес, с которого начать раздачу IP-адресов, Size of pool – размер этого блока, Boot File – pxelinux.0, Mask – маскау сети, в которой находятся сервер и терминальный клиент.
Окно настроек (Settings) настраиваем так:

Если при запуске tftpd32 вываливаются ошибки, скорее всего у вас установлен иной TFTP-сервер (например Intel MTFTP) или же запущен фаерволл. Остановите “чужой ” сервис и сконфигурируйте фаерволл, блокирующий tftpd32, который пытается встать в системе в качестве DHCP-сервера. В качестве рабочей папки я указал – “D:THST”.

суббота, 20 октября 2007 г.

В этой статье речь пойдет о бездисковых станциях и терминалах.

Короткий ответ на этот вопрос – бездисковая станция это компьютер без жесткого диска. Такой компьютер является частью распределенной вычислительной системы (компьютерной сети). Файловая система этого компьютера располагается на других узлах компьютерной сети.

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

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

    На пользователя компьютера кроме его непосредственных профессиональных обязанностей возлагается бремя системного администрирования.

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

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

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

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

Жесткая привязка пользователя к конкретному компьютеру. В такой конфигурации все файлы пользователя находятся на его персональном компьютере и он не может просто пересесть на другое место и продолжать работать если вдруг его компьютер поломается.

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

Низкий уровень безопасности. Такая конфигурация системы подвержена инсадерским атакам (взлому системы изнутри), что может привести к утечке информации, потере данных или поломке оборудования.

Потому как пользователи системы могут обладать широкими правами внутри её и возможностями копирования системных данных через свои устройства ввода/вывода (CD/DVD, FDD и др). Причем речь может идти даже не о злом умысле, а о случайно занесенных вредоносных программах.

Несбалансированная загрузка вычислительных мощностей. Все компьютеры в сети редко когда бывают загружены работой на все 100%. Иногда бывает ситуация когда часть компьютеров сети простаивает в то время когда работающим в данный момент пользователям недостаточно производительности их персональных компьютеров.

Цена одного рабочего места. Машины должны комплектоваться жесткими дисками, а также устройствами CD/DVD, дисководами и т.п. Сюда следует ещё добавить стоимость лицензий на программное обеспечение для каждого компьютера.

Технология бездисковых станций и терминалов позволяет успешно решать большинство проблем, описанных выше.

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

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

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

Улучшенная безопасность. Пользовательские станции можно не комплектовать устройствами ввода/вывода (CD/DVD, FDD и т.п.). Систему можно построить таким образом, что данные можно будет копировать только через определённый узел в сети.

Использование кластерных технологий параллельных вычислений позволяет улучшить балансировку загрузки вычислительных мощностей.

Цена одного рабочего места существенно снижается. Экономия на лицензиях – возможно совместное использование коммерческого программного обеспечения. Нет необходимости комплектовать узлы жесткими дисками, устройствами CD/DVD, дисководами и т.п. Бездисковая станция может быть исполнена в виде простого одноплатного компьютера.

В простейшем случае система состоит из сервера загрузки, одной или нескольких бездисковых станций и коммутатора(рис.1).

Рис.1: схема простой системы

Инициализация бездисковых станций происходит следующим образом:

  1. При включении питания бездисковая станция выполняет свой код BIOS и код записанный в ПЗУ своей сетевой карты (BOOTROM).
  2. Бездисковая станция по сети обращается к серверу загрузки посредством широковещательного запроса.
  3. Сервер загрузки дает бездисковой станции информацию о ее сетевых настройках и указывает место в сети где расположены файлы операционной системы для неё.
  4. Бездисковая станция выполняет загрузку операционной системы согласно соответствующим файлам конфигурации.

К представленной на (рис.1) системе легко можно подключать дополнительные функциональные возможности. Это могут быть самые разные модули(рис.2).

  1. Шлюз в internet, включающий в себя сервер электронной почты, межсетевой экран для обеспечения безопасности, proxy сервер для доступа к WWW.
  2. Файл-сервер для хранения больших объёмов пользовательских данных.
  3. Сервер печати для совместного использования принтеров.
  4. Терминальный сервер для совместного использования специального программного обеспечения и включения в систему устаревших компьютеров.
  5. Дополнительные рабочие места, подключение ещё одной бездисковой станции требует минимум настроек, в простейшем случае её надо просто подключить к компьютерной сети и включить питание.
Рис.2: схема сложной системы

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

Рис.3: схема работы X Window

Стандартом "де-факто" графической среды в unix-подобных системах есть X Window System[7]. Эта система обеспечивает базовые функции графической среды: отрисовку и перемещение окон на экране, взаимодействие с мышью и клавиатурой. Она имеет клиент-серверную архитектуру и реализует сетевую прозрачность, т.е. графические программы могут выполняться на другом узле компьютерной сети, при этом их интерфейс будет передаваться по сети и отображаться на машине пользователя (рис.3). Надо отметить, что эти узлы могут иметь различную архитектуру и работать на под управлением разных операционных систем.

X Window System чаще всего ассоциируется с UNIX, но X-серверы могут также существовать внутри других операционных сред. Например для OpenVMS от Hewlett-Packard существует реализация X Window под названием DECwindows, а в состав операционной системы Mac OS X от Apple входит система X11.app.

Microsoft Windows не включает в себя поддержку X, но существуют многочисленные сторонние реализации: как свободные (Cygwin/X, Xming,X-Deep/32, WeirdMind, WeirdX), так и коммерческие (Xmanager, WiredX, Exceed, X-Win32). Для Microsoft Windows существует система с похожей функциональностью – Remote Desktop Protocol (протокол удалённого рабочего стола). На основе этого протокола построен сервер терминалов Microsoft Windows Server 2003 Terminal Services.

UNIX и X Window могут быть включены в эту систему от Microsoft с помощью программы Rdesktop [6], которая реализует протокол RDP и может успешно работать с терминальным сервером для Microsoft Windows(рис.4).

Читайте также:  В соревнованиях по плаванию участвовали андрей
Рис.4: схема работы Rdesktop

Все эксперименты проводились на сети из следующих компьютеров.

  • сервер загрузки
    ASUS CUSI-M
    Celeron 700MHz/RAM 128MB/HDD 10GB/CD/LAN 100Mb SiS900
  • бездисковая станция
    PCPARTNER VIB861S
    Celeron 600MHz/RAM 64MB/LAN 100Mb RealTek8139/video ATI 8MB
    Samsung 551s 15”
  • терминальный сервер
    INTEL D815EEA2
    Pentium III 800MHz/RAM 512MB/HDD250GB/CD/LAN 100Mb RealTek8139

Бездисковая станция и сервер загрузки будут работать под управлением ОС FreeBSD, терминальный сервер – под управлением Windows 2003 Server. Настройка последнего выходит за рамки данной статьи.

Настройка бездисковые станции заключается в установке в машину сетевой карты с поддержкой функции сетевой загрузки.

Относительно новые машины (после 2001г.) с интегрированными сетевыми картами должны поддерживать разработанный Intel стандарт PXE (”пикси”) – Preboot Execution Environment, необходимо просто сделать соответствующие настройки в BIOS.

Если такого интегрированного устройства нет то можно использовать ”навесную” сетевую карту, которая должна иметь сокет для микросхемы ПЗУ (BOOTROM). В это ПЗУ (аналогично BIOS) записывается соответствующая программа сетевой загрузки.

В данном случае использовалась машина с "навесной" сетевой картой RealTek8139. Эта карта имеет сокет для BOOTROM, который не был использован, программа сетевой загрузки была успешно дописана ”в хвост” BIOS по методу описанному в статье[1]

Последовательность операций при загрузке бездисковой станции в данном случае такая:

  1. выполняется код BIOS и код PXE (дописанный "в хвост" BIOS)
  2. бездисковая станция по сети обращается к DHCP-серверу на сервере загрузки посредством широковещательного запроса
  3. DHCP сервер дает бездисковой станции следующую информацию:
    • её бездисковой станции ip-адрес
    • ip-адрес узла где лежит программа начальной загрузки
    • имя программы начальной загрузки, в данном случае pxeboot
    • ip-адрес шлюза (gateway)
    • NFS-путь к корню файловой системы для бездисковой станции
    • бездисковая станция используя полученную на предыдущем шаге информацию выполняет следующие действия:
      • выкачивает по протоколу TFTP программу начальной загрузки pxeboot из указанного DHCP места в сети
      • выполняет pxeboot , монтирует NFS-корень файловой системы и запускает загрузку ядра операционной системы
      • загружает операционную систему и другие программы согласно файлам конфигурации

      На сервере загрузки установим и настроим следующие программы:

      • ОС FreeBSD 6.2-RELEASE-p8
      • tftpd – Internet Trivial File Transfer Protocol server
      • nfsd – Network File System server
      • Internet Systems Consortium DHCP Server V3.0.5

      Для этого выполним такие действия:

        устанавливаем ОС FreeBSD [2]

      при разбивке диска кроме стандартных разделов (slice) для заводим дополнительные разделы где будут ”жить” бездисковые станции

        /diskless/rootfs
        – общий корень файловой системы для бездисковых станций, размер – 128MB

      /diskless/nodes
      – персональные данные бездисковых станций: swap и др.
      размер зависит от количества станций
      каждой бездисковой станций можно выделить личный swap-файл размером примерно равный размеру оперативной памяти данной станции

    • /diskless/home
      – общий home где будут каталоги пользователей бездисковых станций
      размер зависит от количества и ”аппетитов” пользователей
      эти данные можно вынести на отдельный файл сервер
    • Эти отдельные разделы нужны для корректной работы NFS-сервера дополнительную информацию по этому вопросу можно получить в статье[3].

      настройка DHCP сервера

        собираем устанавливаем DHCP сервер

      настройка TFTP сервера

      Для передачи бездисковой станции программы начальной загрузки pxeboot воспользуемся упрощенным FTP сервером tftpd . Он присутствует в системе по умолчанию и работает в рамках inetd (internet ”super-server”)

      Для запуска tftpd необходимо выполнить следующие действия:

        создать корень файловой системы для tftp сервера

      раскоментировать и поправить в файле /etc/inetd.conf соответствующую строку

      создать для tftpd журнал сообщений, для этого в /etc/syslog.conf добавим

      и создадим tftpd.log

      В завершении настроек tftpd скопируем в корень tftp сервера программу-загрузчик pxeboot откуда его будут ”брать” бездисковые станции при загрузке.

      Настройка NFS сервера.

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

      nfs-ресурс точка
      монтирования
      комментарий
      /diskless/rootfs / корневая файловая система для бездисковой станции
      /diskless/home /home каталоги пользователей бездисковой станции
      /usr /usr каталог c программным обеспечением
      /diskless/nodes/192.168.21.4/var /var персональный каталог для временных и служебных файлов бездисковой станции с адресом 192.168.21.4

      В /diskless/nodes для каждой бездисковой станции создается подкаталог по имени ее ip . Там будут содержаться её индивидуальные данные (swap-файл и др.) К этой теме мы вернемся позже когда будем задавать конфигурацию бездисковой станции.

      /diskless/rootfs и /usr ”отдаются” бездисковой станции в режиме ”только чтение”
      /home и /diskless/nodes/X.X.X.X – в режиме полного доступа.

      Помещаем соответствующие записи в файл настроек /etc/exports .

      Для запуска сервера NFS в файл /etc/rc.conf надо добавить: Здесь надо отдельно отметить параметр запуска -n5 , он показывает сколько клиентов одновременно смогут работать с данным сервером.

      Теперь перейдём к настройкам программной части бездисковых станций.

      В каталоге /diskless/rootfs создадим общую корневую файловую систему для бездисковых станций. Основные скрипты и файлы конфигурации будут располагаться в каталоге /diskless/rootfs/conf . (В каталоге /usr/share/examples/diskless можно найти дополнительную информацию)

      в /diskless/rootfs должен получиться следующий набор

      conf файлы настроек (вернемся сюда позже)
      etc
      bin основные утилиты системы
      sbin
      boot загрузчик и ядро
      dev точка монтирования devfs
      home точка монтирования пользовательских каталогов
      lib основные библиотеки системы
      libexec
      proc точка монтирования procfs
      tmp симлинк на /var/tmp
      usr точка монтирования каталога с основным программным обеспечением
      var точка монтирования каталога временных и служебных файлов

      Далее в /diskless/nodes создаем для каждой бездисковой станции каталог персональных данных.

      здесь же создаем создаем файл подкачки (для узла 192.168.21.4 размером 64MB)

      Собираем ядро для бездисковых станций.

      Для бездисковых станций необходимо собрать специальное ядро. Из него можно удалить всё лишнее (например, поддержку ATA винчестера). В ядро надо добавить опции поддержки сетевой загрузки.

      и копируем получившееся ядро в соответствующий каталог

      Переходим к собственно настройкам. После загрузки ядра запускается процесс init , который считывает и выполняет содержимое /etc/rc . Можно написать этот скрипт самому под свои задачи, этот вариант можно реализовать для простых терминалов.

      Альтернативный вариант – воспользоваться системными скриптом /etc/rc.initdiskless . Для начальной инициализация бездисковой станций необходимо чтобы в каталоге /diskless/rootfs/etc был следующий набор файлов, скопированных из /etc :

      Работает это следующим образом: скрипт rc запускает rc.initdiskless , который проверяет как смонтирован корень файловой системы. Если выясняется что корень это NFS то запускаются сценарии инициализации бездисковой станции, содержащиеся в каталоге /conf .

      В /diskless/rootfs/conf создадим следующие подкаталоги[4]:

      base задает начальную структуру каталогов
      defauts настройки по умолчанию
      ip персональные настройки узлов

        В каталоге base создадим подкаталог etc , в котором создадим текстовый файл с именем md_size . Содержимое этого файла – число 6144.

      Это значит, что при запуске в памяти бездисковой станции будет создан виртуальный диск размером 6144 блока (3MB), точка его монтирования – /etc .

      В каталог defauts положим копию /etc , это будут настройки системы по умолчанию. Там необходимо поправить файл fstab , заменив локальные диски на nfs, ну и всё прочее, что сочтёте для себя нужным изменить.

      В каталоге ip создадим подкаталог 192.168.21.4 и внутри него etc . Это будут персональные настройки бездисковой станции 192.168.21.4. Сюда можно положить файл X11/xorg.conf с настройками X-сервера, fstab с указанием персонального nfs-каталога /var , скрипт rc.d/swap2 , который будет подключать swap-файл и др.

      При запуске бездисковой станции 192.168.21.4 в её памяти будет создан виртуальный диск размером /conf/base/etc/md_size (3MB) и примонтирован в /etc . Туда копируется содержимое /conf/defauts/etc , а затем содержимое /conf/ip/192.168.21.4/etc , при копировании файлы с одинаковыми именами перезаписываются. После этого бездисковая станция инициализируется с использованием информации из этого виртуального /etc .

      В этой работе был использован X.Org X Server v.1.4 [5]. Для сборки и установки этой среды во FreeBSD надо выполнить следующие действия.

      Далее необходимо задать параметры для X-сервера, для этого надо отредактировать файл /etc/X11/xorg.conf или воспользоваться программой xorgconfig , есть ещё GUI-вариант этой утилиты xorgcfg . Для запуска X-сервера надо выполнить программу startx или xdm . Подробнее об этом читайте[1].

      Чтобы запустить удалённого X-клиента, выводящего графику на локальный X-сервер, необходимо выполнить такие действия.

      1. Убедиться, что локальный X-сервер работает в сетевом режиме и принимает подключения с других машин. Можно проверить с помощью утилиты netstat открыт ли порт X11 .
      2. Разрешить удалёной машине соединение с нашим X-сервером с помощью xhost .
      3. Подключиться к удалённой машине при помощи ssh (или подобного этому средства), установить на удалённой машине переменную окружения DISPLAY .
      4. Запустить клиентскую программу на удалённой машине.

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

      Говоря о графическом терминале на базе X.Org, можно ещё упомянуть клиента для Microsoft Terminal Services. Это программа rdesktop (A Remote Desktop Protocol client)[6], она позволяет отображать удалённый ”рабочий стол” Microsoft Windows в окне локального X-сервера. Для сборки и установки этой программы во FreeBSD надо выполнить следующие действия.

      Для подключения к удалённому ”рабочему столу” Microsoft Windows достаточно выполнить команду

      Кроме отображения окна Microsoft Windows, программа rdesktop может предоставлять разные дополнительные возможности, например, передача кроме картинки ещё и звукового канала с удалённой машины.

      Примеры файлов настройки можно найти [ здесь ]

      admin

      Добавить комментарий

      Ваш e-mail не будет опубликован. Обязательные поля помечены *

      0

      Бездисковые рабочие станции windows

      Рабочее место сотрудника (в офисе)

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

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

      • Терминальный сервер Microsoft — существует давно, хорошо себя зарекомендовал, при правильной настройке вполне может заменить локальный компьютер. Есть ограничения, речь о которых пойдет позже.
      • Терминальный сервер Microsoft c надстройкой в виде Citrix XenApp (теперь XenDesktop) — Enterprise решение для работы сотрудников в удаленной сессии, по сравнению с чистым терминальным сервером Microsoft добавлены удобные средства управления и мониторинга для администратора, различные украшательства интерфейса. Citirx протокол — ICA — позволяет пользователям работать комфортно не только в локальной сети, но и из филиалов по плохим каналам. Вообщем много плюсов для большой инфраструктуры, но есть и ограничения.
      • VDI — виртуальные рабочие станции — каждому пользователю по виртуальной машине, к которой он подключается с рабочего места. Это может быть статическая ВМ или самоочищающаяся после выхода пользователя из сеанса. Делают программные продукты для организации VDI таие компании, как Citrix, VMware, Microsoft, Dell, Parallels…

      Нужно отметить, что основные цели у перечисленных выше технологий преследуются одинаковые: централизация данных пользователей в центре обработки данных, разделение данных пользователя и операционной системы, отделение операционной системы от оборудования («железа»), инструмент для удобного обновления ОС, инструмент для управления софтом, который доступен пользователям.
      По принципу — разделяй и властвуй. К самой концепции нет никаких вопросов, она абсолютна правильная.

      Проблемы Terminal Server и VDI

      Цена оборудования — как один заказчик мне сказал про VDI — это п***ец. Есть еще мнение что у данной технологии нет будущего из-за цены, которую нужно заплатить за «одно рабочее место». Если считать, получается, что стоимость и TS и VDI около 1000$ на одного сотрудника. В эту сумму входит: серверы, системы хранения данных, сетевые коммутаторы, лицензии Microsoft + Citrix или VMware. А можно вместо этой мороки, по-старинке, закупить компьютеров, так и делают.

      Тонкие клиенты — помимо того, что он стоит дорого 300+$ (если не китайский и не самосбор), так еще и установлен на нем часто Linux или урезанный Linux (ThinOS у Wyse или ThinPRO у HP), а подключаться скорее всего с тонкого клиента придется к Windows, отсюда масса проблем. Если брать тонкий клиент на Windows Embedded, то получаем маломощный мини-компьютер на рабочем месте. Причем, сам тонкий клиент небольшой, но проводов меньше не становится.

      Поддержка программ — тесты показывают, что у многих заказчиков есть корпоративные программы, которые не совместимы с технологиями TS и VDI. Это могут быть самописные клиент-серверные приложения, это может быть софт, привязывающийся к железу, это могут быть программы, которые требуют локального подключения к ОС сканера, веб камеры, принтера, IP телефона и т.п. Хотите распространенный пример, пожалуйста, Microsoft Lync 2013 или Skype, будут у вас недостаточно хорошо работать как в терминальном режиме, так и в VDI сценарии. А это необходимы средства коммуникации, основная тенденция сегодняшнего времени.
      Я не говорю, категорическое НЕТ, просто перед покупкой нужно хорошенько протестировать в реальных условиях.

      Поддержка периферии — печатать, сканировать, использовать вебкамеру в конференц звонках и видеть собеседников в хорошем качестве без лагов и тормозов — эти и другие задачи открыты. Сейчас как-то что-то работает у кого-то работает. стандартная ситуация — подключаешь к тонкому клиенту принтер, он его определяет как совершенно другой принтер и печатает кракозябры. Подключаешь сканер и сканирование происходит 10 минут. Подключаешь веб камеру и наслаждаешься разрешением 320х240, хотя камера HD.

      Поддержка новых версий ОС — многие заказчики хотят убить сразу двух зайцев и перейти с XP на Win7 (или 8) и с персональных компьютеров на тонкие клиенты. И при более плотном знакомстве с инфраструктурой оказывается, что проще нанять пару студентов для этой задачи и докупить новые модели компьютеров.

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

      Бездисковая рабочая станция

      Долгое получилось вступление… а хотел я рассказать, как можно реализовать проект который сможет решить те же проблемы, что и Терминальный сервер и VDI, еще раз их повторю:

      • централизация данных пользователей в центре обработки данных
      • разделение данных пользователя и операционной системы
      • отделение операционной системы от оборудования («железа»)
      • инструмент для удобного обновления ОС
      • инструмент для управления софтом

      Меня натолкнули на данную схему следующие тезисы:

      • для повседневных офисных задач заказчики стали покупать вот такие компьютеры, состоящие из Mini-ITX корпуса с выносным блоком питания, материнской платы со встроенным процессором Atom или Celeron (охлаждение пассивное), сюда же жесткий диск и планка памяти. Система простая, как лом и справляется с офисными задачами, могут в дальнейшем (когда мощности перестанет хватать) использоваться как тонкие клиенты для VDI или TS. Устанавливается на такие системы ОС Windows 7 и используется как обычный компьютер. Нельзя не согласиться, что этот неттоп уже сам по себе решение — недорогое примерно (5-6 тысяч рублей), энергосберегающее (потребляет 8Вт), без движущихся деталей (отказоустойчивость), компактное.
      • следующий тезис, лучше всего программы работают не в терминальном режиме, а на локальном компьютере. Это относится и к Lync, Skype+ вебкамера, и к сканирующему, печатающему ПО, обычный серфинг в интернет браузере на локальном компьютере лучше выглядит. В локальную ОС Windows можно установить драйверы от любого оборудования и оно будет работать.
      • Если пользователь работает локально, использует ресурсы своего неттопа или компьютера, то покупать дорогостоящее серверное оборудование не нужно. У нас нагрузка размазана по локальным устройствам.

      Citrix + бездиковая станция + технологии Microsoft

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

      Со стороны администратора. Типичные задачи администратора или специалиста технической поддержки упрощаются. Новое рабочее место сотрудника, установка драйверов или стандартного программного обеспечения — легко. Данные пользователя в перемещаемом профиле (roaming profile) и перенаправленных папках хранятся централизованно, а значит, резервное копирование данных тоже централизованное.

      Все очень похоже на VDI, только нет сумасшедшей нагрузки на серверную инфраструктуру. Похоже на локальные компьютеры, но данные хранятся централизованно.

      Итак, посмотрим на архитектуру самого решения.

      1 шаг. У администратора есть системный блок, где он развернул операционную систему, установил стандартные программы, драйверы. Далее, с помощью Citrix Provisioning server client снимается образ системы и импортируется на Citrix Provisioning server.

      2 шаг. Минимально достаточно двух виртуальных (или не виртуальных машин). Одна с установленной ролью Active Directory, DHCP, DNS, вторая сервер Citrix Provisioning. Искренне советую использовать SSD диск для хранения золотого образа из шага 1. Именно этот образ будет доступен на чтение всем (или группе) бездисковых системных блоков пользователей.

      Возможно я буду советовать использовать Microsoft vApp 5.0 после того, как проведу тесты. Тогда можно будет образ операционной системы не нагружать программами, а запускать их из контейнеров. Каждый сотрудник сможет использовать те программы, которые ему нужны.

      3 шаг. Загрузка рабочих станций происходит по PXE, для этого нужно в DHCP прописать два параметра и активировать LAN Boot в BIOS мини-компьютера

      4 шаг. Компьютер получает виртуальный диск на чтение. Это похоже на технологию презентации LUN-а по iSCSI. Сеть нагружена незначительно, это я потом покажу в статьях по настройке. Естественно, во время работы образуются временные файлы (КЭШ) он может храниться в RAM оперативной памяти или на сервере.
      Если происходит перезагрузка, то вся информация удаляется, профиль перед выходом из сессии синхронизируется. Чтобы не потерять файлы при внезапном выключении питания или потере связи с сервером, нужно приучить пользователей хранить их в перенаправленных папках.

      Можно создать персональную машину для пользователя, презентовав ему в единоличное пользование на чтение-запись отдельный диск.

      (выступление на конференции в казанском авиационном университете – “Туполевские чтения 2005”)

      Решение использовать сервер терминалов пришло не сразу. Работая в фирме, в которой каждый день что-нибудь происходит с компьютерами под управлением Windows, я задумался об использовании бездисковых станций. Конечно, на таких (конфигурация будет приведена чуть позже) компьютерах не поиграешь в игры, однако прослушивание музыки, распечатка документов на принтере, работа в Интернет, работа с офисными Word, бухгалтерскими 1C и подобными программами полноценно возможна. В терминальной системе можно запустить и 3D-приложения – но все же не рекомендуется этого делать, так как такие программы тяжелы даже для Pentium IV.

      Читайте также:  Вход для флешки не работает

      Важным фактором является возможность закупки недорогих компьютеров во многие государственные и частные организации нашей страны. Стоит отметить, что при использовании терминальных решений повышается информационная безопасность. Терминальные решения хорошо проработаны в UNIX-системах (консольные терминалы, удаленный шелл), для Windows-систем же первой реализацией стал продукт Citrix Metaframe фирмы Citrix, предложившей свою технологию Independent Computing Architecture (ICA). В Windows 2000 Server и Windows 2003 Server был реализован терминальный сервис на основе протокола RDP (Remote Desktop Protocol). Наиболее полно терминальный сервис реализован в крайней версии линейки Windows Server – версии 2003, где обеспечивается работа клиентских рабочих станций с 24-битным цветом, в отличие от максимально возможного 8-битного в терминальной сессии Windows 2000 Server. Вопреки распространенному мнению, протокол RDP не является полностью самостоятельной (и закрытой) разработкой фирмы Microsoft , а представляет собой некое расширение “ITU-T T.128 (так же известное как T.SHARE) application sharing protocol”. Это обстоятельство позволило группе программистов создать приложение rdesktop, выполняющего задачу предоставления доступа к терминальной сессии MS Windows 2000/2003 Server из системы X Window на платформе UNIX. Приложение rdesktop развивается как Open Source проект и доступно в исходных текстах по адресу http://www.rdesktop.org. В свою очередь, rdesktop используется в проектах “тонких” клиентов, таких как PXES, ThinClient (это наш случай), WtWare для доступа к терминальной сессии сервера Windows. Сама идея далеко не нова, она применяется уже десятилетиями, при этом являясь удобным и безопасным решением. Тем, кто устанавливает операционные системы на десятки компьютеров (простое применение TFTP), это сэкономит массу времени. Банально, но время – деньги. Говоря коротко, в большинстве случаев использование сервера терминалов себя оправдывает. Все особенности терминальных систем происходят из сути их работы, выраженной названием. Терминал – это устройство, в общем случае не имеющее собственных вычислительных мощностей, служащее лишь для отображения информации, поставляемой центральным вычислительным устройством и для передачи этому устройству информации, вводимой на стороне терминала. Терминалы существуют очень давно, со времен первых вычислительных машин, в то время они были единственным способом ввода и вывода информации.
      Знаю, что подобная задача много раз решалась на большом количестве предприятий, технически не так сложна, как может показаться сначала. Однако, когда я сам пытался найти такого рода информацию, найти ее не получилось. Материал я подготовил, собирая информацию по частям, порой даже по крупицам, методом своих проб и ошибок, спасибо за посильную помощь многим моим друзьям.

      Проектирование

      Итак, приступим. Начинают все всегда с проектирования, начнем и мы с него. Прежде всего – конфигурация и мягкая начинка самого сервера терминалов. В моем случае им был мой домашний компьютер – Пентиум 4 3200 ГГц на материнской плате Intel D 865 PERL X , 2 Гб ОЗУ, 160 Гб винчестер и сетевая плата Intel на базе чипа 8255 x (100 мбит/с). Идеальным, или близким к идеалу был бы компьютер с двумя процессорами Intel Xeon с тактовой частой выше, чем 2,6 ГГц, такая мощь даст заметную разницу при использовании большего количества терминальных клиентов и при работе программы 1C. Не забываем о существовании SCSI и UPS (первое дорого даже на фоне двухпроцессорного Xeon ‘а, а второе обязательно). В качестве операционной системы для сервера была выбрана Windows Server 2003 Enterprise Edition. На выбор можно установить MUI. MUI (Multilanguage User Interface, русский интерфейс, если коротко) понадобится при недостаточном знании английского языка, часто при особой настройке и администрировании сервера терминалов. Об остальном программном обеспечении я расскажу позже.
      В качестве терминального клиента (в моем случае он был только один, хотя при установке двух процессоров и тех же 2 Гб ОЗУ успешно можно было бы подключить 30 клиентов) использовался Pentium I “S” – 200 МГц на материнской плате Acorp 5 TX 52 с 32 Мб памяти, 1 Мб видеокарта и собственно одна из ключевых деталей терминального клиента – сетевая плата с бутромом (перепрошиваемый загрузчик) Compaq NC 3161 (чип Intel 8255, PCI, eepro 100, Wake On LAN, 256 Kb, TP, 100 Mbit/s). Наиболее точные конфигурации сервера и клиента приведены в приложениях после статьи. Уточню, что винчестера не было в клиенте совсем (бездисковая станция).
      Конечно, конфигурация всегда зависит от многих факторов, и указанная выше – не первая и не последняя в списке использованных терминальных клиентов. Хорошенько проработав технический материал, можно собрать клиентов и на 486-ом процессоре (40 МГц), с 10 Мбит сетевыми платами и 8 Мб ОЗУ, а вместо сервера мог бы быть какой-то Celeron 700 МГц. Но – весь этот материал дан как отправная точка, как для новичков, так и для более опытных системных администраторов.
      При написании этой статьи было перекачано, пережевано очень большое количество технической информации, программного обеспечения, и было потревожено много-много человек 🙂
      Все копирайты я указал в конце статьи.

      Установка терминального сервера

      Устанавливайте Windows Server 2003 как обычно, с единственным уточнением – при выборе режима лицензирования укажите – режим – “На сервер”, количество – укажите, сколько одновременных подключений вам необходимо.
      Следующим шагом сразу после установки надо поднять (то есть установить и настроить) службу или роль Терминального сервера. Для этого переходим в Панель управления и запускаем утилиту Установка и удаление программ, в ней выбираем Установка компонентов Windows. Здесь ставим галочки напротив Сервер терминалов и Лицензирование сервера терминалов (чтобы терминальный сервер продолжал принимать соединения по истечении 120 дней, вы должны сконфигурировать Terminal Services Licensing. Кстати, серверы лицензий Windows 2000 не совместимы с Windows Server 2003. При использовании Windows 2003, сервер лицензий Windows 2000 надо обновить до Windows Server 2003 или активировать отдельный сервер лицензий Windows Server 2003) и жмем Далее. Операционная система попросит поместить в привод установочный диск, или указать местоположение установочных файлов Windows Server 2003. После копирования всех необходимых файлов, выполните перезагрузку.
      Сервер терминальных лицензий необходимо активировать. Меню Пуск – Выполнить, введите licmgr, здесь можете видеть, что наш сервер не активирован. Для этого выделите его, и в меню Действие выберите пункт Активировать сервер (не забывайте, что все это при подключенном соединении с Интернетом). Метод активации – Автоподключение. Произойдет соединение с расчетной палатой корпорации Microsoft, заполните поля Имя, Фамилия, Организация и выберите страну. Успешно активировав сервер, мастер активации предложит запустить мастера клиентских лицензий (CAL). Здесь, если выберете программу соглашения Enterprise Agreement, то вы должны ввести номер соглашения (запрос поисковику “Enrollment Agreement Number” находит такие числа). Версия продукта – Windows Server 2003, тип продукта – на устройство, количество – вы указывали его при установке. Дождитесь сообщения “Новый ключевой пакет клиентской лицензии успешно установлен”. Переходим к настройке.

      Настройка терминального сервера

      Запускаем Пуск – Программы – Администрирование – Настройка служб терминалов – Параметры сервера. Убираем флажок Ограничить пользователя единственным сеансом. Перемещаемся в настройки подключений. Видим подключение RDP – TCP, здесь право кнопкой мыши, далее Свойства, вкладка Параметры клиента, снимаем галочку “Использовать параметры подключения пользователя”, а три остальные галочки чуть ниже – отмечаем, глубину цвета ставим 16-и битную и запретим сопоставлять порты, диски и звук (по желанию). Перемещаемся на вкладку “Разрешения” и добавляем пользователя, который будет работать на терминальном клиенте (права – Гость + Пользователь). На вкладке “Удаленное управление” выбираем переключатель “Использовать управление со следующими параметрами”, снимаем галочку “Запрашивать разрешение пользователя” и устанавливаем галочку “Взаимодействие с этим сеансом”. Здесь все. Нажмите ОК, сохранив все изменения и закройте mmc-оснастку.
      Создайте пользователя и присвойте ему пароль – этот пользователь будет удаленно подключаться к терминальному серверу.
      Теперь пару слов о способах загрузки по сети. Предложенный здесь мной способ загрузки с использованием прошивки PXE – не единственный. PXE Pre – boot Execution Environment (среда предзагрузочного выполнения) – стандарт, разработанный Intel. Такие и только такие прошивки используются производителями при изготовлении сетевых карт и BIOS материнских плат с интегрированными сетевыми картами. Прочитайте документацию к вашему оборудованию, чтобы узнать, поддерживает ли оно загрузку по методу PXE. Если ваша сетевая карта или материнская плата уже укомплектованы прошивкой PXE, то никаких дополнительных действий вам делать не придется. Такие сетевые карты и материнские платы сразу после покупки готовы для использования в качестве бездисковых терминалов. Для некоторых карт (в том числе, для всех моделей карт на чипе rtl8139C[D]) прошивку можно найти на сайте фирм-производителей чипсетов. Эту прошивку нужно самостоятельно прошивать в микросхему BootROM. Если для вашей сетевой карты производитель не сделал прошивку, то выходом из ситуации будет продолжение поисков сетевой платы с PXE либо остается использовать прошивки Etherboot.
      Etherboot – оpensource проект, который выпускает прошивки практически для всех существующих сетевых карт. Прошивка Etherboot может быть записана в микросхему BootROM или flash-память сетевой карты, может быть запущена с дискеты или жесткого диска как загрузочный сектор или как программа из DOS. Прошивки Etherboot являются единственным способом загрузки по сети парка компьютеров с разными сетевыми картами, для которых производители не написали PXE-прошивки. Здесь загрузку с использованием Etherboot мы использовать не будем.
      Загрузка терминального клиента может быть осуществлена не только по сети, но и с дискеты (требуется трехдюймовый дисковод, и стоит помнить, что дискеты слишком быстро умирают), с небольшого жесткого диска (использование винчестера оправдано, если требуется разгрузить сетевой трафик, кэшировать его и использовать подкачку). Также при наличии винчестера можно работать в операционной системе установленной на нем, при этом останется возможность загружаться по сети. С другой стороны, при отсутствии винчестера мы всегда будем уверены, что какой-нибудь вирус не разрушит разделы диска. Будем уверены в том, что терминальный клиент всегда будет загружаться одним и тем же образом. Однако сегодня мы все можем видеть, что современные производители поставляют свои компьютеры с возможностью загрузки по сети, используя прошивку PXE.

      Читайте также:  Замена картриджа epson tx210

      Подготовка (прошивка) сетевой платы

      Как я уже рассказывал в начале статьи, остановил я свой выбор на Compaq, в составе конфигурации клиента. Собрал информацию о том, как прошиваются интеловские бутромы. Для каждого случая своя отдельная история. Для Intel все начинается с установки специального ПО (драйверов) Intel PROSet версии 8.4.2004 (в моем случае для Windows 2000, XP , 2003, размер

      6 Мб). После установки появляется зеленая иконка в трее. При нажатии на кнопку Update Boot Agent на вкладке Boot Agent, программа спросит, создавать бэкап текущего бутрома или нет. Я, на всякий пожарный, сделал. Дальше программа предлагает указать местонахождение прошивки (форматы файлов прошивок – *.flb, *.nic). Естественно на моем компьютере не оказалось не одного файла с таким раширением, кроме моего собственного бэкапа. Зато файлы с таким расширением нашлись в Интернете в составе программы Intel Boot Agent. Прошивка BA4115M1.FLB успешно закачивается внутрь бутрома – вы поймете это, когда программа PROSet сообщит, что “Image has been updated successfully”. Остальные параметры вы можете изменить уже при загрузке терминального клиента, достаточно просто нажать комбинацию Ctrl+S во время ожидания сетевой картоый действий со стороны пользователя. Бутром готов к использованию.

      Выбор и настройка TFTP и DHCP серверов

      Следующим шагом настройки терминального сервера должна стать установка DHCP-сервера, который будет выдавать по запросу клиенту IP-адрес, IP-адрес TFTP-сервера, у которого можно получить файл-образ операционной системы для загрузки терминала и имя файла образа операционной системы для загрузки. Получив указанную информацию, загрузчик скачивает файл-образ с операционной системой и соответствующим способом передает ему управление. Какой выбрать из огромного количества TFTP и DHCP серверов? Я остановился на классическом примере – tftpd32 версии 2.80, самой свежей на сегодня версии. tftpd32 прост, функционален и ведет лог. Другой сервер, на свой вкус, вы сможете выбрать и протестировать позже. Главное окно tftpd32 настраиваем так:

      Здесь Server Interfaces – IP-адрес сетевухи, от которой идет кабель на хаб. IP pool starting address укажите IP-адрес, с которого начать раздачу IP-адресов, Size of pool – размер этого блока, Boot File – pxelinux.0, Mask – маскау сети, в которой находятся сервер и терминальный клиент.
      Окно настроек (Settings) настраиваем так:

      Если при запуске tftpd32 вываливаются ошибки, скорее всего у вас установлен иной TFTP-сервер (например Intel MTFTP) или же запущен фаерволл. Остановите “чужой ” сервис и сконфигурируйте фаерволл, блокирующий tftpd32, который пытается встать в системе в качестве DHCP-сервера. В качестве рабочей папки я указал – “D:THST”.

      суббота, 20 октября 2007 г.

      В этой статье речь пойдет о бездисковых станциях и терминалах.

      Короткий ответ на этот вопрос – бездисковая станция это компьютер без жесткого диска. Такой компьютер является частью распределенной вычислительной системы (компьютерной сети). Файловая система этого компьютера располагается на других узлах компьютерной сети.

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

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

        На пользователя компьютера кроме его непосредственных профессиональных обязанностей возлагается бремя системного администрирования.

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

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

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

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

      Жесткая привязка пользователя к конкретному компьютеру. В такой конфигурации все файлы пользователя находятся на его персональном компьютере и он не может просто пересесть на другое место и продолжать работать если вдруг его компьютер поломается.

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

      Низкий уровень безопасности. Такая конфигурация системы подвержена инсадерским атакам (взлому системы изнутри), что может привести к утечке информации, потере данных или поломке оборудования.

      Потому как пользователи системы могут обладать широкими правами внутри её и возможностями копирования системных данных через свои устройства ввода/вывода (CD/DVD, FDD и др). Причем речь может идти даже не о злом умысле, а о случайно занесенных вредоносных программах.

      Несбалансированная загрузка вычислительных мощностей. Все компьютеры в сети редко когда бывают загружены работой на все 100%. Иногда бывает ситуация когда часть компьютеров сети простаивает в то время когда работающим в данный момент пользователям недостаточно производительности их персональных компьютеров.

      Цена одного рабочего места. Машины должны комплектоваться жесткими дисками, а также устройствами CD/DVD, дисководами и т.п. Сюда следует ещё добавить стоимость лицензий на программное обеспечение для каждого компьютера.

      Технология бездисковых станций и терминалов позволяет успешно решать большинство проблем, описанных выше.

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

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

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

      Улучшенная безопасность. Пользовательские станции можно не комплектовать устройствами ввода/вывода (CD/DVD, FDD и т.п.). Систему можно построить таким образом, что данные можно будет копировать только через определённый узел в сети.

      Использование кластерных технологий параллельных вычислений позволяет улучшить балансировку загрузки вычислительных мощностей.

      Цена одного рабочего места существенно снижается. Экономия на лицензиях – возможно совместное использование коммерческого программного обеспечения. Нет необходимости комплектовать узлы жесткими дисками, устройствами CD/DVD, дисководами и т.п. Бездисковая станция может быть исполнена в виде простого одноплатного компьютера.

      В простейшем случае система состоит из сервера загрузки, одной или нескольких бездисковых станций и коммутатора(рис.1).

      Рис.1: схема простой системы

      Инициализация бездисковых станций происходит следующим образом:

      1. При включении питания бездисковая станция выполняет свой код BIOS и код записанный в ПЗУ своей сетевой карты (BOOTROM).
      2. Бездисковая станция по сети обращается к серверу загрузки посредством широковещательного запроса.
      3. Сервер загрузки дает бездисковой станции информацию о ее сетевых настройках и указывает место в сети где расположены файлы операционной системы для неё.
      4. Бездисковая станция выполняет загрузку операционной системы согласно соответствующим файлам конфигурации.

      К представленной на (рис.1) системе легко можно подключать дополнительные функциональные возможности. Это могут быть самые разные модули(рис.2).

      1. Шлюз в internet, включающий в себя сервер электронной почты, межсетевой экран для обеспечения безопасности, proxy сервер для доступа к WWW.
      2. Файл-сервер для хранения больших объёмов пользовательских данных.
      3. Сервер печати для совместного использования принтеров.
      4. Терминальный сервер для совместного использования специального программного обеспечения и включения в систему устаревших компьютеров.
      5. Дополнительные рабочие места, подключение ещё одной бездисковой станции требует минимум настроек, в простейшем случае её надо просто подключить к компьютерной сети и включить питание.
      Рис.2: схема сложной системы

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

      Рис.3: схема работы X Window

      Стандартом "де-факто" графической среды в unix-подобных системах есть X Window System[7]. Эта система обеспечивает базовые функции графической среды: отрисовку и перемещение окон на экране, взаимодействие с мышью и клавиатурой. Она имеет клиент-серверную архитектуру и реализует сетевую прозрачность, т.е. графические программы могут выполняться на другом узле компьютерной сети, при этом их интерфейс будет передаваться по сети и отображаться на машине пользователя (рис.3). Надо отметить, что эти узлы могут иметь различную архитектуру и работать на под управлением разных операционных систем.

      X Window System чаще всего ассоциируется с UNIX, но X-серверы могут также существовать внутри других операционных сред. Например для OpenVMS от Hewlett-Packard существует реализация X Window под названием DECwindows, а в состав операционной системы Mac OS X от Apple входит система X11.app.

      Microsoft Windows не включает в себя поддержку X, но существуют многочисленные сторонние реализации: как свободные (Cygwin/X, Xming,X-Deep/32, WeirdMind, WeirdX), так и коммерческие (Xmanager, WiredX, Exceed, X-Win32). Для Microsoft Windows существует система с похожей функциональностью – Remote Desktop Protocol (протокол удалённого рабочего стола). На основе этого протокола построен сервер терминалов Microsoft Windows Server 2003 Terminal Services.

      UNIX и X Window могут быть включены в эту систему от Microsoft с помощью программы Rdesktop [6], которая реализует протокол RDP и может успешно работать с терминальным сервером для Microsoft Windows(рис.4).

      Читайте также:  Защита от электромагнитного излучения телефона
      Рис.4: схема работы Rdesktop

      Все эксперименты проводились на сети из следующих компьютеров.

      • сервер загрузки
        ASUS CUSI-M
        Celeron 700MHz/RAM 128MB/HDD 10GB/CD/LAN 100Mb SiS900
      • бездисковая станция
        PCPARTNER VIB861S
        Celeron 600MHz/RAM 64MB/LAN 100Mb RealTek8139/video ATI 8MB
        Samsung 551s 15”
      • терминальный сервер
        INTEL D815EEA2
        Pentium III 800MHz/RAM 512MB/HDD250GB/CD/LAN 100Mb RealTek8139

      Бездисковая станция и сервер загрузки будут работать под управлением ОС FreeBSD, терминальный сервер – под управлением Windows 2003 Server. Настройка последнего выходит за рамки данной статьи.

      Настройка бездисковые станции заключается в установке в машину сетевой карты с поддержкой функции сетевой загрузки.

      Относительно новые машины (после 2001г.) с интегрированными сетевыми картами должны поддерживать разработанный Intel стандарт PXE (”пикси”) – Preboot Execution Environment, необходимо просто сделать соответствующие настройки в BIOS.

      Если такого интегрированного устройства нет то можно использовать ”навесную” сетевую карту, которая должна иметь сокет для микросхемы ПЗУ (BOOTROM). В это ПЗУ (аналогично BIOS) записывается соответствующая программа сетевой загрузки.

      В данном случае использовалась машина с "навесной" сетевой картой RealTek8139. Эта карта имеет сокет для BOOTROM, который не был использован, программа сетевой загрузки была успешно дописана ”в хвост” BIOS по методу описанному в статье[1]

      Последовательность операций при загрузке бездисковой станции в данном случае такая:

      1. выполняется код BIOS и код PXE (дописанный "в хвост" BIOS)
      2. бездисковая станция по сети обращается к DHCP-серверу на сервере загрузки посредством широковещательного запроса
      3. DHCP сервер дает бездисковой станции следующую информацию:
        • её бездисковой станции ip-адрес
        • ip-адрес узла где лежит программа начальной загрузки
        • имя программы начальной загрузки, в данном случае pxeboot
        • ip-адрес шлюза (gateway)
        • NFS-путь к корню файловой системы для бездисковой станции
        • бездисковая станция используя полученную на предыдущем шаге информацию выполняет следующие действия:
          • выкачивает по протоколу TFTP программу начальной загрузки pxeboot из указанного DHCP места в сети
          • выполняет pxeboot , монтирует NFS-корень файловой системы и запускает загрузку ядра операционной системы
          • загружает операционную систему и другие программы согласно файлам конфигурации

          На сервере загрузки установим и настроим следующие программы:

          • ОС FreeBSD 6.2-RELEASE-p8
          • tftpd – Internet Trivial File Transfer Protocol server
          • nfsd – Network File System server
          • Internet Systems Consortium DHCP Server V3.0.5

          Для этого выполним такие действия:

            устанавливаем ОС FreeBSD [2]

          при разбивке диска кроме стандартных разделов (slice) для заводим дополнительные разделы где будут ”жить” бездисковые станции

            /diskless/rootfs
            – общий корень файловой системы для бездисковых станций, размер – 128MB

          /diskless/nodes
          – персональные данные бездисковых станций: swap и др.
          размер зависит от количества станций
          каждой бездисковой станций можно выделить личный swap-файл размером примерно равный размеру оперативной памяти данной станции

        • /diskless/home
          – общий home где будут каталоги пользователей бездисковых станций
          размер зависит от количества и ”аппетитов” пользователей
          эти данные можно вынести на отдельный файл сервер
        • Эти отдельные разделы нужны для корректной работы NFS-сервера дополнительную информацию по этому вопросу можно получить в статье[3].

          настройка DHCP сервера

            собираем устанавливаем DHCP сервер

          настройка TFTP сервера

          Для передачи бездисковой станции программы начальной загрузки pxeboot воспользуемся упрощенным FTP сервером tftpd . Он присутствует в системе по умолчанию и работает в рамках inetd (internet ”super-server”)

          Для запуска tftpd необходимо выполнить следующие действия:

            создать корень файловой системы для tftp сервера

          раскоментировать и поправить в файле /etc/inetd.conf соответствующую строку

          создать для tftpd журнал сообщений, для этого в /etc/syslog.conf добавим

          и создадим tftpd.log

          В завершении настроек tftpd скопируем в корень tftp сервера программу-загрузчик pxeboot откуда его будут ”брать” бездисковые станции при загрузке.

          Настройка NFS сервера.

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

          nfs-ресурс точка
          монтирования
          комментарий
          /diskless/rootfs / корневая файловая система для бездисковой станции
          /diskless/home /home каталоги пользователей бездисковой станции
          /usr /usr каталог c программным обеспечением
          /diskless/nodes/192.168.21.4/var /var персональный каталог для временных и служебных файлов бездисковой станции с адресом 192.168.21.4

          В /diskless/nodes для каждой бездисковой станции создается подкаталог по имени ее ip . Там будут содержаться её индивидуальные данные (swap-файл и др.) К этой теме мы вернемся позже когда будем задавать конфигурацию бездисковой станции.

          /diskless/rootfs и /usr ”отдаются” бездисковой станции в режиме ”только чтение”
          /home и /diskless/nodes/X.X.X.X – в режиме полного доступа.

          Помещаем соответствующие записи в файл настроек /etc/exports .

          Для запуска сервера NFS в файл /etc/rc.conf надо добавить: Здесь надо отдельно отметить параметр запуска -n5 , он показывает сколько клиентов одновременно смогут работать с данным сервером.

          Теперь перейдём к настройкам программной части бездисковых станций.

          В каталоге /diskless/rootfs создадим общую корневую файловую систему для бездисковых станций. Основные скрипты и файлы конфигурации будут располагаться в каталоге /diskless/rootfs/conf . (В каталоге /usr/share/examples/diskless можно найти дополнительную информацию)

          в /diskless/rootfs должен получиться следующий набор

          conf файлы настроек (вернемся сюда позже)
          etc
          bin основные утилиты системы
          sbin
          boot загрузчик и ядро
          dev точка монтирования devfs
          home точка монтирования пользовательских каталогов
          lib основные библиотеки системы
          libexec
          proc точка монтирования procfs
          tmp симлинк на /var/tmp
          usr точка монтирования каталога с основным программным обеспечением
          var точка монтирования каталога временных и служебных файлов

          Далее в /diskless/nodes создаем для каждой бездисковой станции каталог персональных данных.

          здесь же создаем создаем файл подкачки (для узла 192.168.21.4 размером 64MB)

          Собираем ядро для бездисковых станций.

          Для бездисковых станций необходимо собрать специальное ядро. Из него можно удалить всё лишнее (например, поддержку ATA винчестера). В ядро надо добавить опции поддержки сетевой загрузки.

          и копируем получившееся ядро в соответствующий каталог

          Переходим к собственно настройкам. После загрузки ядра запускается процесс init , который считывает и выполняет содержимое /etc/rc . Можно написать этот скрипт самому под свои задачи, этот вариант можно реализовать для простых терминалов.

          Альтернативный вариант – воспользоваться системными скриптом /etc/rc.initdiskless . Для начальной инициализация бездисковой станций необходимо чтобы в каталоге /diskless/rootfs/etc был следующий набор файлов, скопированных из /etc :

          Работает это следующим образом: скрипт rc запускает rc.initdiskless , который проверяет как смонтирован корень файловой системы. Если выясняется что корень это NFS то запускаются сценарии инициализации бездисковой станции, содержащиеся в каталоге /conf .

          В /diskless/rootfs/conf создадим следующие подкаталоги[4]:

          base задает начальную структуру каталогов
          defauts настройки по умолчанию
          ip персональные настройки узлов

            В каталоге base создадим подкаталог etc , в котором создадим текстовый файл с именем md_size . Содержимое этого файла – число 6144.

          Это значит, что при запуске в памяти бездисковой станции будет создан виртуальный диск размером 6144 блока (3MB), точка его монтирования – /etc .

          В каталог defauts положим копию /etc , это будут настройки системы по умолчанию. Там необходимо поправить файл fstab , заменив локальные диски на nfs, ну и всё прочее, что сочтёте для себя нужным изменить.

          В каталоге ip создадим подкаталог 192.168.21.4 и внутри него etc . Это будут персональные настройки бездисковой станции 192.168.21.4. Сюда можно положить файл X11/xorg.conf с настройками X-сервера, fstab с указанием персонального nfs-каталога /var , скрипт rc.d/swap2 , который будет подключать swap-файл и др.

          При запуске бездисковой станции 192.168.21.4 в её памяти будет создан виртуальный диск размером /conf/base/etc/md_size (3MB) и примонтирован в /etc . Туда копируется содержимое /conf/defauts/etc , а затем содержимое /conf/ip/192.168.21.4/etc , при копировании файлы с одинаковыми именами перезаписываются. После этого бездисковая станция инициализируется с использованием информации из этого виртуального /etc .

          В этой работе был использован X.Org X Server v.1.4 [5]. Для сборки и установки этой среды во FreeBSD надо выполнить следующие действия.

          Далее необходимо задать параметры для X-сервера, для этого надо отредактировать файл /etc/X11/xorg.conf или воспользоваться программой xorgconfig , есть ещё GUI-вариант этой утилиты xorgcfg . Для запуска X-сервера надо выполнить программу startx или xdm . Подробнее об этом читайте[1].

          Чтобы запустить удалённого X-клиента, выводящего графику на локальный X-сервер, необходимо выполнить такие действия.

          1. Убедиться, что локальный X-сервер работает в сетевом режиме и принимает подключения с других машин. Можно проверить с помощью утилиты netstat открыт ли порт X11 .
          2. Разрешить удалёной машине соединение с нашим X-сервером с помощью xhost .
          3. Подключиться к удалённой машине при помощи ssh (или подобного этому средства), установить на удалённой машине переменную окружения DISPLAY .
          4. Запустить клиентскую программу на удалённой машине.

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

          Говоря о графическом терминале на базе X.Org, можно ещё упомянуть клиента для Microsoft Terminal Services. Это программа rdesktop (A Remote Desktop Protocol client)[6], она позволяет отображать удалённый ”рабочий стол” Microsoft Windows в окне локального X-сервера. Для сборки и установки этой программы во FreeBSD надо выполнить следующие действия.

          Для подключения к удалённому ”рабочему столу” Microsoft Windows достаточно выполнить команду

          Кроме отображения окна Microsoft Windows, программа rdesktop может предоставлять разные дополнительные возможности, например, передача кроме картинки ещё и звукового канала с удалённой машины.

          Примеры файлов настройки можно найти [ здесь ]

          admin

          Добавить комментарий

          Ваш e-mail не будет опубликован. Обязательные поля помечены *