LXF117:DrBrown3

Материал из Linuxformat.

Перейти к: навигация, поиск

Содержание

Linux Terminal Server Project

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

Для поддержания жизни бездискового терминала Linux используется масса технологий. На практике их все может предоставить один сервер.

Я набираю этот текст на компьютере без жесткого диска, CD-привода и вообще без всего, кроме мыши, подключенной к USB-порту. Единственная память, которая на нем есть – оперативная. Это тонкий клиент. На нем – ядро Linux, X-сервер и мало что сверх этого. Редактор, в котором я это набираю, мой web-браузер и даже оконный менеджер и апплеты рабочего стола работают на достаточно скромном сервере на другом конце комнаты. Он также предоставляет мне корневую файловую систему и домашний каталог. Добро пожаловать в волшебный мир Linux Terminal Server Project!

Этот проект не нов – Джим МакКиллан [Jim McQuillan] и Рон Колсернян [Ron Colcernian] начали работать над ним еще в 1999 году. Относительно нова разве что его полная интеграция в популярные дистрибутивы Linux. Теперь он работает прямо «из коробки». (Об истории проекта говорится в интервью LXF, см. LXF95).

Проект с энтузиазмом приняли во многих школах и колледжах. Терминал-серверы Linux чрезвычайно привлекательны для создания классных комнат – по меньшей мере, по трем причинам. Во-первых, все используемое ПО распространяется по GPL, а значит, не требует лицензионных отчислений. Во-вторых, скромные аппаратные требования к клиенту LTSP позволяют купить машины подешевле, а старые компьютеры (что, наверное, на ближайший срок даже практичнее), не способные потянуть последнюю версию Windows, получают новую жизнь как терминалы Linux (см. «Тонкости тонких клиентов»). А в-третьих, простота, присущая LTSP-клиенту, облегчает администрирование. На терминалах (по определению) настраивать нечего – все сосредоточено на сервере. Для добавления нового терминала достаточно подсоединить и включить его. Выигрывает и окружающая среда: компьютеры без дисков потребляют меньше электроэнергии и меньше шумят, и старые машины не загромождают свалку, а полноценно работают.

За кулисами

Работу терминал-сервера Linux обеспечивает целый сонм технологий. Во-первых, это PXE (pre-execution environment) – она служит для загрузки клиентом операционной системы, образ которой передает ему сервер. Для скачивания образа ядра и исходного RAM-диска используется TFTP. В моей установке Ubuntu эти файлы хранятся в каталоге /var/lib/tftpboot/ltsp/i386. Для более старых компьютеров, на которых невозможен запуск с PXE, стадию начальной загрузки можно проделать при помощи дискеты или CD. Особенно интересна реализация корневой файловой системы для клиентов. (Под корневой файловой системой здесь имеется в виду все, кроме файлов пользователя в каталоге /home.) Корневая файловая система предоставляется сервером в виде свернутого [squashed] образа. В моей установке этофайл /opt/ltsp/images. Доступ к нему осуществляется через Linux Network Block Device (сетевое блочное устройство Linux) – сервис, позволяющий использовать экспортированный с сервера файл как блочное устройство на компьютере клиента. Этот файл совместно используется всеми клиентами, точнее говоря, всеми клиентами данной архитектуры. (Например, если вдруг в вашем классе окажутся компьютеры PowerPC, для них потребуется отдельный образ файловой системы.)

Союз файловых систем

Свернутый образ корневой файловой системы монтируется клиентами в режиме только для чтения на каталог /rofs. Теперь, чтобы предоставить возможность записи в нее, на клиенте создается отдельная файловая система «в памяти», которая затем монтируется в режиме чтения и записи на каталог /cow. (‘cow’ – сокращение от «Copy On Write»; о том, что это такое, мы говорили в LXF116.) Содержимое каталогов /rofs и /cow комбинируется (технический термин – «объединение» или ‘union’) с помощью файловой системы Aufs. Aufs – наращиваемая унифицирующая файловая система, которая объединяет несколько каталогов в один. Наконец, Aufs монтируется на корень файловой системы /. Таким образом, большая часть клиентской корневой файловой системы формируется из свернутого образа файловой системы, который хранится на сервере, и идентична для всех клиентов. В каталоге /cow вы увидите только файлы, отличающиеся от сетевой копии корневой файловой системы, которая хранится на сервере. Клиенту предоставляется небольшой уголок корневой файловой системы, который он может считать своим собственным. Обратите внимание, что /cow – файловая система «в памяти», поэтому она не выживет после перезагрузки.

Файловые системы пользователей монтируются на каталог /home посредством sshfs, что мы могли наблюдать в статье о пользовательских файловых системах. (В качестве альтернативы можно использовать NFS.)

В LTSP есть еще одна хитрость, о которой стоит сказать. Если я вставлю USB-флэшку в свой тонкий клиент, она смонтируется автоматически и появится на рабочем столе. Тут нет ничего особенного, пока вы не поймете, что на самом деле она монтируется в файловую систему на сервере. По замечанию Артура Кларка «любая достаточно продвинутая технология неотличима от магии», это магия.

Вы, видимо, пришли к выводу, что настройка всех этих сервисов достаточно сложна; если делать все вручную, так оно и есть. Но в Ubuntu благодаря мастеру установки LTSP это элементарно. Самый простой путь к работающему серверу LTSP – установить его с «альтернативного» CD. На первом экране установки просто нажмите F4 и выберите Установить LTSP-сервер [Install a LTSP Server] из меню Режимы [Modes], затем продолжите установку обычным образом. Инсталлятор создаст окружение корневой файловой системы, необходимой для клиентов LTSP, и настроит остальные сервисы. На самом деле, если установить на сервер два сетевых интерфейса (как сделал я), то все будет работать сразу, и после окончания установки вы сможете загрузить своего первого бездискового клиента. Проще пареной репы. (При мысли об этой метафоре мне видятся крестьяне, парящие репу денно и нощно; сам я не то что ее не парил, но и не пробовал ни разу. Быть может, это и впрямь просто.)

Ubuntu – не единственный дистрибутив, предоставляющий готовый LTSP-сервер. В качестве альтернативы попробуйте K12LTSP, основанный на CentOS 5, который в свою очередь основан на Red Hat. LXF

Кто пользуется LTSP?

На сайте LTSP довольно много ссылок на сайты организаций, использующих терминал-серверы Linux. Например, публичные школы Атланты (Atlanta Public Schools) развернули на несколько школ 31 сервер, суммарно обслуживающий 2200 клиентов в 233 классных комнатах. LTSP используется в Tameer Microfinance Bank («первый банк в Пакистане, применяющий только открытое ПО»), интернет-кафе в Индонезии и Котд’Ивуар и гимназии в Финляндии. Список можно продолжить.

Ничто не ново под луной

Концепция, лежащая в основе бездисковых рабочих станций, не нова. Еще в начале 1980-х Sun Microsystems предложила идею драйвера блочного устройства, который бы обращался к своему хранилищу данных на сервере по простому протоколу, который Sun назвала «сетевым диском». Это позволяло компьютеру получать свою корневую файловую систему с удаленного источника. В загрузочные ПЗУ таких компьютеров включался клиентский код, который загружал образ ядра SunOS на клиент по протоколу TFTP (Trivial File Transfer Protocol – простой протокол передачи файлов).

Вместе с NFS (Network File System – сетевая файловая система) эти технологии позволили Sun разработать бездисковых клиентов, которых немало было на моем факультете в Шеффилдском университете (Sheffield University). Диски тогда стоили дорого, и бездисковые клиенты позволяли существенно сэкономить.

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

Тонкости тонких клиентов

В руководстве администратора LTSP приведены некоторые рекомендации касательно аппаратной части тонкого клиента, которые включают процессор с частотой 533 Мгц и как минимум 128 МБ оперативной памяти, или 256 МБ оперативной памяти, «если сможете выделить» (кавычки мои… я думаю, фраза «если сможете выделить» ухватывает настоящую суть этого экономного подхода к вычислениям). По современным стандартам такой компьютер не просто тонкий, а сущий дистрофик.

Для сервера руководство советует не менее 256 + (число пользователей × 192) МБ оперативной памяти. Формула дает 4 ГБ для 20 тонких клиентов. Сначала я скептически к ней отнесся, но потом вспомнил, что если, скажем, на десяти клиентах запущен OpenOffice.org, в памяти сервера будет только один экземпляр приложения.

LTSP требует хорошей пропускной способности сети. Если у вас больше 20 пользователей, которые будут запускать множество графических программ, рекомендуется Gigabit Ethernet. Хотя при обычном использовании загрузка сети составляет от 0,5 до 2 Мбит/с, возможны кратковременные пики (до 70 Мбит/с), особенно при просмотре мультимедиа. Для офиса или бизнес-вычислений с ограниченным использованием графики сети со скоростью 100 Мбит/с будет вполне достаточно.

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию