Содержание

Ключевые слова: Х-терминал, linux, LTSP, Linux Terminal Server Project, терминальный linux-сервер, бездисковая станция, ПК без жесткого диска, использование старых компьютеров, diskless workstation, thin client, asplinux, использование Linux в офисе, X-terminal

Глава 4. Аппаратная база Х-терминальной сети

Системные требования к серверу Х-терминалов

Выбор сервера Х-терминалов довольно ответственный шаг, так как это практически единственный случай в настройки Х-терминальной системы, когда вам придется купить новый компьютер, хотя вполне возможно, что у вас уже имеется подходящая техника. Как говорит один мой знакомый системный администратор, мощность компьютера измеряется не в мегагерцах, а в штуках процессоров на материнской плате, и по отношению к серверу Х-терминалов он безусловно прав. Посудите сами, сервер Х-терминалов предназначен для одновременной работы нескольких пользователей, а многопроцессорная система лучше справляется с параллельными вычислениями чем ее однопроцессорный аналог. Как обычно при выборе любого компьютера все упирается в экономическую целесообразность и те задачи, которыми пользователи будут нагружать ваш сервер. Например, вы планируете установить Х-терминал сервер в локальной сети с 10-клиентами. Если ваши пользователи будут пользоваться текстовым редактором, электронной почтой и файловым менеджером, то им вполне подойдет сервер с минимальными характеристиками (производительностью), а если они будут заниматься 3-х мерным моделированием, то скорее всего им и 2-х процессорного Xeon-а будет мало. Хорошей идеей будет приобретение компьютера с техническими характеристиками на класс выше, чем те что уже есть у вас в распоряжении, так как тем самым вы обеспечите себе запас производительности на несколько лет вперед (ну хотя бы на год, два). Несмотря на довольно размытые рамки требований к серверу Х-терминалов все же можно зафиксировать начальные условия:

  1. Оперативная память - самое критичное ограничение для сервера Х-терминалов. Если памяти будет мало, то операционная система Linux вынуждена будет постоянно использовать виртуальную память из swap-раздела, а это приведет к значительному снижению скорости работы сервера, а следовательно и клиентов. Я бы рекомендовал рассчитывать оперативную память сервера по такой простой формуле:
  2. Память сервера = 512 Мбайт + Память для одного клиента * Количество клиентов

    Память, дополнительно выделяемая одному клиенту, опять же зависит от тех задач, которые он выполняет. В системах, что мне довелось использовать она колебалась от 16 до 128 Мбайт, то есть, если ваш сервер Х-терминалов обслуживает 5 клиентов и дополнительная память каждому клиенту составляет 64 Мбайт, то минимальное значение оперативной памяти сервера должно равняться: 512 + 64 * 5 = 832 Мбайт. Хотя с возрастанием количества клиентов эта зависимость может и не так строго соблюдаться, но в любом случае 512 Мбайт – это базовый минимум для сервера, и устанавливать меньший объем памяти можно только в тестовых или учебных целях;

  3. Процессор – второй по важности компонент сервера Х-терминалов. Он должен быть быстрый и желательно чтобы их было много (шутка, с долей истины). Конечно, чем процессоров больше тем лучше, но как правило, решение о покупки нового компьютера принимает не системный администратор, а его непосредственный начальник (директор организации), поэтому если вам не дадут добро на покупку 4-х процессорного "монстра", не стоит отчаиваться, так как и с одним процессором может получится очень хороший сервер Х-терминалов. Из общих характеристик следует отдать предпочтение процессору который имеет: больше кеш памяти, большую скорость шины FSB и номинальную частоту. Сервер Х-терминалов будет работать круглосуточно (или весь рабочий день), а следовательно к температурному режиму процессора следует относится с большой осторожностью. Если выбирать между быстрым и надежным процессором, то предпочтение лучше отдать последнему. Для операционной системы Linux вполне подойдут даже 64-х битные процессоры, так как все программное обеспечение можно собрать (скомпилировать) самому, а 64-х битные вычисления в будущем будут очень кстати. Если вернуться к сегодняшним реалиям, то для однопроцессорного компьютера я посоветовал бы в качестве центрального процессора использовать Intel Pentium 4, а для многопроцессорных систем – Intel Xeon, хотя это дело вкуса. Я думаю понятно, что лучше если это будет x86-совместимый процессор, так как эти процессоры занимают господствующее положение на рынке и именно на них эксплуатируется большинство Линукс-систем. В случае возникновения проблемы, решить ее будет гораздо легче для Intel-совместимого процессора, нежели для Alpha или скажем PowerPC. Ни в коем случае не хочу обидеть почитателей продукции компании Advanced Micro Devices, Inc. (официальный сайт компании http://www.amd.com/), так как данной фирмой выпущено очень много достойных изделий. Вообще в последнее время компания AMD значительно улучшила качество выпускаемых ею чипов, а, например, ее подход в организации многопроцессорных систем вообще заслуживает всяческих похвал. Но лично мне ближе по идеологии продукция с логотипом "Intel Inside" (официальный сайт Intel Corp. - http://www.intel.com/), так как я на собственном опыте убедился в ее очень высокой надежности. Чтобы еще раз развеять миф о гипертрофированных требованиях к мощности центрального процессора сервера Х-терминалов хочу привести один реальный пример из жизни. Так, в моей практике был случай, когда сервер Х-терминалов работал на компьютере, где в качестве центрального процессора использовался Intel Celeron Tualatin 1ГГц. Причем так продолжалось в течении года и четыре его пользователя были вполне удовлетворены его работой.
  4. Когда основной материал данной книге был подготовлен, на компьютерном рынке массово начали появляться двухядерные процессоры (Intel и AMD практически одновременно объявили о начале поставок). С точки зрения особенностей эксплуатации сервера Х-терминалов двухядерные процессоры – это идеальный выбор в соотношении цена/производительность. В отличие от многопроцессорных систем они не так дороги, но при этом показывают очень хорошую производительность в многозадачных средах, а именно такой и является работа сервера Х-терминалов;

  5. Жесткий диск – также очень важный компонент сервера Х-терминалов, а в организациях, где информация стоит дорого – самый важный. Первый попавшийся под руку “винчестер” вряд ли будет подходящим выбором. Лучше если это будет накопитель SCSI, так как этот интерфейс лучше подходит для выполнения параллельных операций чтения/записи, но учитывая стоимость таких накопителей, можно ограничиться и жестким диском с интерфейсом IDE или SATA. Так как на жестком диске сервера Х-терминалов будет храниться информация всех пользователей, то внезапный его отказ поставит их, а следовательно и системного администратора, в трудное положение. Неплохой альтернативой одному “винчестеру” будет RAID-массив (в режиме зеркала), или на худой конец два жестких диска – один рабочий, а второй – для резервного копирования информации. Так как скорость работы винчестера тоже очень важна, а быстрые диски сильно греются, то дополнительный вентилятор никогда не будет лишним. Кэш памяти для упреждающего чтения тоже пусть будет как можно больше, так как работа в многопользовательской системе довольно значительно нагружает дисковую подсистему, а пользователи почему-то любят сохранять свои файлы одновременно и, как правило, в 16 часов 55 минут;
  6. Материнская плата – подойдет любая, но лучше серьезного, проверенного производителя, а не NoName Inc. Вообще к материнской плате сервера Х-терминалов, как и к другим его компонентам следует предъявлять несколько завышенные требования, так как выход одного из них из строя практически парализует работу всех Х-терминал клиентов. Подумайте, во что обойдутся восстановительные работы перед принятием окончательного решения о покупке дешевого комплектующего. При прочих равных, предпочтение следует отдавать той материнской плате, которая имеет много свободных слотов расширения (PCI, PCI-E), так как возможно в будущем к серверу Х-терминалов будут добавляться дополнительные сетевые интерфейсы для подключения новых “тонких” клиентов. Если материнская плата имеет интегрированную сетевую карту (практически норма на сегодняшний день), то это также стоит только приветствовать, так как в сервере Х-терминалов много сетевых карт не бывает;
  7. Источник бесперебойного питания – обязательный атрибут любого сервера, а сервер Х-терминалов тоже не исключение из этого правила. Без источника бесперебойного питания ваш сервер Х-терминалов автоматически переходит в группу риска. Хотя, если вам нравится восстанавливать операционную систему, проверять разделы жестких дисков, и отвечать на вопросы пользователей типа: “Куда пропал мой квартальный отчет?”, то можете попробовать работать без него. Источник бесперебойного питания должен обеспечивать работу сервера в течении времени, необходимого для нормального завершения его работы. Благо сейчас в комплекте с "бесперебойниками" идет программное обеспечения под операционную систему Linux, которое позволяет автоматизировать процесс выключения компьютера даже если рядом никого нет. После приобретения источника бесперебойного питания, следует обязательно проверить его работу в "полевых" условиях. Для этого достаточно подключить к нему сервер Х-терминалов и после полной разрядки батарей отключить питание. Время, в течении которого сервер проработает на автономном энергопотреблении и будет той критической отметкой надежности источника бесперебойного питания. Разделив это значение на 3 (запас прочности) мы получим время после которого необходимо осуществлять автоматическое завершение работы сервера Х-терминалов;
  8. Блок питания и корпус – подойдут тоже любые, но так как сервер будет работать круглосуточно, то лучше чтобы блок питания был хорошего качества. Лично я бы не гнался за Ваттами, а большее внимание обратил бы на стабильность подаваемого питания. Также всем пользователям персональных компьютеров известна ситуация, когда через полгода после покупки компьютера его блок питания начинает издавать жуткие звуки при включении, первопричиной которых является скопившаяся в нем пыль. В любом случае приготовьтесь регулярно чистить ваш сервер Х-терминалов, так как пыль является причиной не только неприятных звуков, но еще и выхода из строя аппаратного обеспечения. Желательно выбирать корпус по просторнее, так как в таком системном блоке легче обеспечить хорошую вентиляцию, а следовательно, продлить жизнь и повысить надежность работы сервера Х-терминалов. Наличие дополнительных вентиляторов также не повредит, главное знать меру, так как 1 или 2 – это хорошо, а вот уже больше 3-х - перебор;
  9. Сетевые карты. Лично я не сторонник покупки сетевых карт производства фирмы 3Com для использовании в сервере Х-терминалов. Эта компания выпускает отличную продукцию, но анализируя весь свой опыт работы в операционной системе Linux я не припомню случая неправильной работы сетевой карты. Да и за весь период моей работы с персональными компьютерами из строя выходили только те карты, которые соединялись коаксиальным кабелем. Поэтому вам подойдет практически любая сетевая карта, главное условие – наличие драйвера для этой карты (соответствующего модуля ядра в операционной системе Linux). Понятно, что скорость работы карты очень важна (чем больше тем лучше). Настоятельно не рекомендую использовать Ethernet карты рассчитанные на 10 Мбит/с. Их вы можете поставить на Х-терминал клиент, но для сервера нужны Fast Ethernet адаптеры со скоростью работы в 100 Мбит/с или даже 1000 Мбит/с;
  10. Флоппи-дисковод, привод CD-ROM, звуковая карта – для сервера практически бесполезны. Привод CD-ROM может понадобиться при установке операционной системы и программного обеспечения на сервер, а в дальнейшей эксплуатации в нем отпадет надобность (так что после настройки сервера смело вынимайте из него CD-ROM). Непосредственно работать на сервере не рекомендуется, так как я лично был свидетелем того, как пользователь сервера выключал его уходя на обеденный перерыв, под крики “У меня монитор погас!” остальных пользователей Х-терминалов. Хотя, с другой стороны, привод CD-ROM лично я все же оставил бы, так как он может понадобится для выполнения профилактических или восстановительных работ;
  11. Монитор, “мышка” и клавиатура также нужны серверу только для первичной установки и настройки программного обеспечения. Все остальные манипуляции с ним можно производить через средства удаленного доступа (например, ssh). Хотя клавиатуру я бы оставил, мало ли что, и к тому же некоторые компьютеры очень отрицательно относятся к отсутствию клавиатуры показывая на экране сообщения типа: “Клавиатура не найдена, для продолжения нажмите любую клавишу”. Очень помогает в работе системному администратору KVM-коммутатор, который позволяет подключить к одному монитору, клавиатуре и “мышке” сразу несколько персональных компьютеров. Управляя сервером Х-терминалов при помощи KVM-коммутатора, системный администратор всегда может оперативно выполнять административные задачи, при этом параллельно работая за другим компьютером.

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

Если вы не уверенны в том, что точно осознали требования к серверу Х-терминалов, то в тестовых целях для первого раза можете взять любой имеющийся в вашем распоряжении компьютер оснащенных, хотя бы, 256 Мбайтами оперативной памяти, и попробовать на нем настроить сервер Х-терминалов. После этого подключитесь к нему с Х-терминал клиента и попробуйте как все работает. Думаю это придаст вам уверенности в том, что требования к Х-терминал серверу могут быть весьма скромными. В моей практике был случай, когда я только начал разбираться с Х-терминалами и для экспериментов начальство выделило мне персональный компьютер менеджеров, на котором работало поочередно трое человек. Мне сказали, что когда никто за компьютером не работает, я могу с ним вволю экспериментировать. Системные требования этого компьютера были очень скромные: Intel Pentium II 350 MГц, 256 Мбайт ОЗУ, жесткий диск Samsung 20Gb 5400 об/мин и сетевая карта Ethernet c чипсетом RTL 8029 AS на 10 Мбит/с. Руководствуясь полученными директивами, я все потихоньку настроил и на Х-терминале, который стоял в другой комнате (на втором этаже), я начал тестировать работу сего нововведения. По-началу все было хорошо, но потом Х-терминал начал явно тормозить, а индикатор загрузки центрального процессора стал на отметку в 100%. Я решил выяснить, что же такое делают пользователи моего первого импровизированного “сервера”. После спуска на первый этаж я обнаружил их мирно играющими в “Return to castle Wolfenstein”.

В заключении рассказа о Х-терминал сервере приведу несколько замечаний по поводу требований к его аппаратному обеспечению. Все клиенты Х-терминалов работая на сервере одновременно используют его ресурсы. И если они не играют в 3-х мерные игры, то загрузка центрального процессора далека от 100%. Для офисной работы она находится на уровне 3% и возрастает только в моменты запуска программ и открытия/закрытия файлов. Подчиняясь теории вероятности люди иногда работают в разное время, а иногда одновременно, и в такие моменты нагрузка на сервер резко увеличивается. Помню в одной статье посвященной Х-терминалам был предложен “выход” из этого положения: пользователям достаточно договориться и асинхронно нажимать клавиши на клавиатуре, то есть нажали вы, затем ваш сосед и так далее. Конечно, это шутка, но она затрагивает одну очень важную проблему: возникновение пиков нагрузки сервера. Если вспомнить теорию массового обслуживания, то работа сервера Х-терминалов очень напоминает магазин с кассовыми аппаратами на выходе. Пользователи – это покупатели, а тележки с товаром это приложения которые они используют. Кассовые аппараты это центральные процессоры сервера, чем их больше тем и быстрее и качественнее происходит обслуживание покупателей (выполнение программ пользователей), но и дороже обходится их эксплуатация (каждому кассиру нужно платить зарплату). Если покупатель купил много товара, он как бы соответствует ресурсоемкому приложению, и обслуживание такого покупателя значительно замедлит обслуживание других, особенно в случае магазина с одном кассой (сервер с одним процессором).

Если посмотреть на эту проблему с точки зрения пользователей, то пик нагрузки на сервер выглядит следующим образом. Например, для открытия большого многостраничного документа электронной таблицы в табличном процессоре OpenOffice Calc требуется 20 секунд. При этом ресурсы вашего сервера задействованы на 100%. Если подобные документы открывают одновременно 2 пользователя, то сервер поделит свои ресурсы между ними и на открытие документов оба затратят по 40 секунд (а то и больше за счет накладных расходов многозадачности), если же одновременно работающих пользователей будет 3, то каждый из них свой документ будет открывать больше минуты. Увеличение количества процессоров сервера значительно сглаживает эти скачки интенсивной загрузки, но не избавляет от них. Иначе говоря, работая на Х-терминале следует быть готовым к колебательному характеру загрузки сервера и фактически работы Х-терминала. В один период времени ваш Х-терминал будет работать быстрее, а иногда его работа будет замедляться, но даже при значительной нагрузке на сервер все приложения получат равные порции процессорного времени, а следовательно будут правильно выполняться.

Кроме нагрузки на центральный процессор сервера, значительно замедляет работу Х-терминал сервера и механизм виртуальной памяти. Это еще раз подчеркивает необходимость использования в сервере Х-терминалов значительного объема оперативной памяти. Именно значительного, а не огромного. Никому не секрет, что работать в среде X-Windows на персональном компьютере с операционной системой Linux, у которого объем оперативной памяти меньший чем 256 Мбайт не очень комфортно. Но это вовсе не означает, что для работы 10 Х-терминалов сервер должен иметь оперативную память равную 2,5 Гбайт (256 Мбайт * 10). Дело в том, что все современное программное обеспечение в своей работе использует разделяемые библиотеки. А программный код этих библиотек загружается в оперативную память сервера только в единственном экземпляре для использования его всему работающими программами. Поэтому, если все ваши пользователи Х-терминалов запустят OpenOffice, то дополнительно потребуется памяти только на хранение их документов, а динамические библиотеки будут использоваться ими совместно. Благодаря такой структуре хранения информации программы на Х-терминалах запускаются значительно быстрее, чем аналогичные на традиционных персональных компьютерах. И связано это не только со скоростью сервера, но и с использованием уже загруженных в память разделяемых библиотек (прирост скорости наблюдается за счет отсутствия необходимости повторной загрузки кода разделяемых библиотек в оперативную память сервера Х-терминалов).

Есть еще один вид замедления работы на Х-терминале – возникновение сетевых “пробок”, но он связан с загрузкой канала локальной сети и про это пойдет в разделе "Аудит сети Х-терминалов" главы "Администрирование сети Х-терминалов".

Пока интересно, читаем дальше!

Авторское право © Сеник Николай, 2004-2006