Подробное руководство по настройке тонких клиентов на основе дистрибутива Thinstation и протокола NX. Часть 2::Журнал СА 1.2007
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6144
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6857
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4140
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2978
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3781
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3789
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6283
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3134
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3434
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7246
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10616
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12336
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13969
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9100
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7053
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5362
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4594
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3402
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3129
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3379
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3000
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Подробное руководство по настройке тонких клиентов на основе дистрибутива Thinstation и протокола NX. Часть 2

Архив номеров / 2007 / Выпуск №1 (50) / Подробное руководство по настройке тонких клиентов на основе дистрибутива Thinstation и протокола NX. Часть 2

Рубрика: Администрирование /  Продукты и решения

Евгений Бушков

Подробное руководство по настройке тонких клиентов на основе дистрибутива Thinstation и протокола NX

Часть 2

В №12 за 2006 г. вы прочтёте о том, как собрать серверную часть NX и настроить дистрибутив Thinstation для работы с ней. Сегодня разберёмся каковы особенности эксплуатации, дополнительные настройки NX и Thinstation и как решать встречающиеся проблемы.

Доработка функционального окна VNC

При использовании VNC управление сеансом по умолчанию осуществляется клавишей <F8>. В нашей компании пользователи используют dosemu c Dos Navigator, в нем активно используется эта клавиша. Чтоб избежать конфликта, я подправил в исходниках файл /nx_build_dir/nxviewer/nxviewer/argsresources.c. Укажу, какие строчки я отредактировал:

#<Key>F8: ShowPopup()\\n\

<Key>F12: ShowPopup()\\n\

#"*popupButtonCount: 6",

"*popupButtonCount: 2",

#"*popup*button1.label: Dismiss popup",

"*popup*button1.label: Close",

#"*popup*button2.label: Quit viewer",

"*popup*button2.label: Send F12",

#<Btn1Down>,<Btn1Up>: Quit()",

<Btn1Down>,<Btn1Up>: SendRFBEvent(key,F12) HidePopup()",

Таким образом, функция вызова меню VNC переназначается c <F8> на <F12>, вместо 6 доступных в меню строк осталось только 2: закрыть меню при случайном нажатии «Close» и послать код <F12>, если вдруг встретилась такая функциональная клавиша. Если вы не используете VNC-агента nxviewer, то вам это не пригодится.

Проблема связки NX, Thinstation, Firefox

Почему я стал использовать nxviewer? Сам по себе NX работает замечательно и в режиме приложений, и в режиме работы с удаленным рабочим столом. Но вот что выяснилось: при работе в Firefox на внутреннем сайте нашей компании встречаются страницы, необходимые для работы, размером от 400 Кб и больше. Во время вывода таких страничек на экран изображение останавливается, и тонкий клиент перестает отвечать на запросы («вешается»).

Что я только не делал: менял сочетания версий Firefox, Thinstation, NX, менял настройки Firefox в строке «about:config», задавал вопросы в форумах. Ничего не помогло, большие странички от 400 Кб вызывают проблему. Причем эти же страницы нормально отображаются в Opera, но это противоречит нашей ориентации на открытый Firefox. Создалось ощущение, что это связано с особенностями движка данного браузера.

Тогда пришлось перейти к использованию RVB/VNC-сессий в NX: на NX-сервере в настройках сервиса xinetd включается VNC-сервер. В первой части статьи (см. №12 за 2006 г.) на рисунке 3 показаны файлы настроек сессий NX и TUX1C. В итоге там, где нужен Firefox, я использую VNC-сессии в NX, во всех остальных случаях – обычный режим NX.

Основным недостатком использования VNC является необходимость дважды вводить пароль: в окошке приглашения NX-клиента, а потом при авторизации с помощью оконного менеджера, например KDE, при соединении с VNC-сервером. Но на скорости работы это почти не отражается, так что все сказанное об NX справедливо и для сессий VNC под NX.

Настройки VNC-сессии NX-клиента вы можете посмотреть на  рис. 1.

Рисунок 1. Настройки VNC-сессии NX-клиента

Рисунок 1. Настройки VNC-сессии NX-клиента

Проблема с кириллицей

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

xterm -e setxkbmap -rules xorg -model pc105 -layout "us,ru" -variant ",winkeys" -option "grp:ctrl_shift_toggle,grp_led:scroll"

Например, у меня для запуска программы 1С под эмулятором WINE применяется sh-скрипт /usr/bin/1c, в котором используются некоторые проверки, подключается нужный шрифт, вносятся изменения в реестр с помощью reg-файла (для указания названий и путей баз 1С), и перед запуском самого 1С выполняется указанная выше строчка. При запуске сессии удаленного стола можно также выполнить эту строчку в стартовых скриптах домашнего каталога (~/.profile или ~/.bashrc) или системы (/etc/bash.bashrc.local).

Тогда всё должно наладиться.

Рисунок 2. Обычная работа на тонком клиенте

Рисунок 2. Обычная работа на тонком клиенте

Использование дисковых устройств тонких клиентов

Еще одна тонкость. Если пользователям необходимо обращаться к дискетам или локальному диску с разделом FAT16 (32) на своих тонких клиентах, то придется разобраться с Samba. Для этого добавляем в файл build.conf (см. №12 за 2006 г.) модули floppy, fvat, supermount и пакет samba-server.

В первой части статьи (см. №12 за 2006 г.) на рисунке 3 показано содержимое файла thinstation.conf.group-smb_hard, в нем два последних параметра указывают: нет поддержки жесткого диска, но есть поддержка флоппи-диска. Таких групп у меня несколько с различными сочетаниями значений параметров – в зависимости от необходимости в нужных устройствах. На этом же рисунке также показано содержимое файла thinstation.conf-MAC, в нем видно, что добавлена подгрузка пакетов samba-base и samba-server.

Теперь нужно создать ярлычки на рабочем столе пользователей в KDE. При этом если на тонком клиенте устройства нет, то и ярлычка этого устройства быть не должно. Проверка осуществляется командой smbclient, а IP-адрес клиента выясняется с помощью nxserver (я не настаиваю, что это единственный способ).

Для возможности запуска nxserver в файл /etc/sudoers добавляем строку:

ALL  ALL = NOPASSWD: /srv/NX/bin/nxserver --list*, !/srv/NX/bin/nxserver [!-]*

То есть пользователям разрешается только пролистать текущие NX-сессии. Далее пришлось написать на shell небольшой код, который нужно добавить в файл /etc/bash.bashrc.local:

# We test floppy and HD existing by requesting samba server on thin client

name=`whoami`

if [ "$name" != nx ] && [ "$name" != "root" ]

then

  ip=$(/usr/bin/sudo /srv/NX/bin/nxserver --list $name|grep 10\\.|tail -n 1|awk '{print $3}')

  if [ "$ip" != "" ]

  then

# testing for harddisk existence

    harddisk=`smbclient -NL $ip 2>/dev/null|grep harddisk`

    if [ "$harddisk" != "" ]

    then

      echo "[Desktop Entry]" > ~/Desktop/Harddisk.desktop

      echo "Encoding=UTF-8" >> ~/Desktop/Harddisk.desktop

      echo "Icon=HD" >> ~/Desktop/Harddisk.desktop

      echo "Name=Harddisk" >> ~/Desktop/Harddisk.desktop

      echo "Name[ru]=Harddisk" >> ~/Desktop/Harddisk.desktop

      echo "OnlyShowIn=KDE;" >> ~/Desktop/Harddisk.desktop

      echo "Open=false" >> ~/Desktop/Harddisk.desktop

      echo "Type=Link" >> ~/Desktop/Harddisk.desktop

      echo "URL=smb://$ip/harddisk" >> ~/Desktop/Harddisk.desktop

      echo "X-KDE-KonqSidebarModule=konqsidebar_tree" >> ~/Desktop/Harddisk.desktop

      echo "X-KDE-TreeModule=Directory" >> ~/Desktop/Harddisk.desktop

      echo "X-SuSE-translate=true" >> ~/Desktop/Harddisk.desktop

      else

         rm -f ~/Desktop/Harddisk.desktop

    fi

# testing for floppy existence

    floppy=`smbclient -NL $ip 2>/dev/null|grep floppy`

    if [ "$floppy" != "" ]

    then

      echo "[Desktop Entry]" > ~/Desktop/"Floppy Disk";

      echo "Encoding=UTF-8" >> ~/Desktop/"Floppy Disk";

      echo "Icon=3floppy_mount" >> ~/Desktop/"Floppy Disk";

      echo "Name=Floppy Disk" >> ~/Desktop/"Floppy Disk";

      echo "Name[ru]=Floppy Disk" >> ~/Desktop/"Floppy Disk";

      echo "OnlyShowIn=KDE;" >> ~/Desktop/"Floppy Disk";

      echo "Open=false" >> ~/Desktop/"Floppy Disk";

      echo "Type=Link" >> ~/Desktop/"Floppy Disk";

      echo "URL=smb://$ip/floppy" >> ~/Desktop/"Floppy Disk";

      echo "X-KDE-KonqSidebarModule=konqsidebar_tree" >> ~/Desktop/"Floppy Disk";

      echo "X-KDE-TreeModule=Directory" >> ~/Desktop/"Floppy Disk";

      echo "X-SuSE-translate=true" >> ~/Desktop/"Floppy Disk";

      else

        rm -f ~/Desktop/"Floppy Disk";

      fi

    fi

fi

Единственное, что вы захотите здесь поменять, – это в строчке с sudo изменить «grep 10\\.» в соответствии с настройками вашей сети. То есть если сеть 192.168.10.0/255, то это будет «grep 192\\.», у меня используется сеть 10/8. Я думаю, идея вам понятна. Теперь ярлычки на рабочем столе будут появляться только тогда, когда на тонком клиенте имеются соответствующие ярлыкам устройства.

И еще добавлю замечание по поводу памяти: 32 Мб на тонком клиенте хватает на то, чтобы кроме ядра Thinstation (в котором уже имеется NX-клиент) работали пакеты sshd и lprng, но не хватает на поддержку Samba, желательно ставить немного больше памяти, хотя бы 40 Мб, этого хватит на всё.

Примеры использования NX в режиме приложений

В нашей системе производится перевод системы 1С на терминальный сервер с Linux и эмулятором WINE. Одна база уже переведена, и с ней работают сотрудники нашей компании. Вот, что выяснилось. При работе на тонком клиенте у каждого пользователя имеется ярлычок на уже упомянутый скрипт /usr/bin/1c, его можно запускать столько раз, сколько нужно открыть копий приложения 1С (для работы с разными базами). Из Windows получается запустить только одну NX-сессию приложения 1С. При повторном запуске текущая сессия прерывается и восстанавливается в новом окне, то есть используется режим FreeNX «session resume» – возобновление прерванной сессии. Пришлось использовать запуск в режиме приложения NX удаленного рабочего стола Wmaker (он занимает гораздо меньше памяти, чем KDE), а в нем уже можно работать с 1С, как на тонких клиентах (можно открыть несколько копий 1С).

Еще один случай. Мы принимали попытку перевести другую базу 1С (ее используют более 200 сотрудников) на тот же терминальный сервер. Сервер Proliant DL-385 c двумя Opteron был полностью загружен: при пиковой нагрузке в системе насчитывалось 150 процессов 1CV7.exe, далее пользователи уже не могли зайти на сервер: на NX-клиенте при соединении с сервером секунд через 45 срабатывал тайм-аут, хотя спустя секунды пользовательские процессы на сервере нормально запускались. Я оставил сообщение на сайте Nomachine с предложением добавить возможность настройки тайм-аута на клиенте NX, там зарегистрировали Feature Request, но мне это уже было не нужно: пришлось придумывать другой вариант перехода, в рамках заданной темы об этом рассказывать не буду.

Еще один пример. На компьютере с памятью 64 Мб проблемно использовать OpenOffice 2.0: слишком много памяти он потребляет. На помощь приходит клиент NX, работающий в режиме приложений, при этом используется память сервера, которой, как правило, много больше, чем у клиента. Примеры можно продолжать.

Рисунок 3. NX-сессия Wmaker в режиме приложения

Рисунок 3. NX-сессия Wmaker в режиме приложения

Несколько слов о производительности NX

Я упоминал о двух NX-серверах для описания отличий в работе двух версий NX, хотя на самом деле их в нашей сети три. В настоящий момент в нашей системе используется около 50 тонких клиентов Thinstation, число которых постоянно растет. Кроме того, часть работников запускают NX-клиент из Windows для работы с приложениями, в частности с 1С.

Хорошо проявил себя протокол NX. Например, при временном пропадании связи соединение не сбрасывается, а осуществляется попытка его восстановления. Когда на тонком клиенте возрастает нагрузка процессора, вывод на экран немного замедляется. Забавно наблюдать, как во время загрузки рабочего стола KDE анимированная эмблема системы SUSE временно «замирает», а спустя мгновения возобновляет его отображение с удвоенной скоростью.

Я писал ранее о корректной работе в NX компьютера c процессором P-120, но, конечно, чем больше частота процессора, тем более плавно происходит отображение информации (особенно графические эффекты KDE) на экране тонкого клиента.

При использовании тонких клиентов в локальной сети достаточно пропускной способности 10 Мбит, однако начальная загрузка образа Thinstation (у меня образ чуть меньше 9 Мб) ускорится, если использовать сеть 100 Мбит. Если тонкие клиенты в филиале связаны с терминальным сервером xDSL-модемами (или иными низкоскоростными соединениями), то лучше предусмотреть наличие tftp-сервера на территории самого филиала: это позволит не прокачивать каждый раз образ через узкий канал связи, а брать его с локального сервера.

Могу лишь добавить, что процессы NX на сервере занимают немного памяти и оказывают незначительную нагрузку на процессор(ы) относительно других приложений. Мне кажется, что протокол NX уже корректно сравнивать не с протоколом RFB, используемым VNC, а с протоколом ICA от Citrix (хотя они и используются в разных системах): протоколы примерно схожи по производительности и эффективности, вот только NX обойдется гораздо дешевле, если не бесплатно. Кроме того, если говорить о надежности, вспомните, что бывает, когда виснет один из основных сервисов Citrix на сервере Windows? Это сразу «ощутят» все пользователи Citrix. В Linux с NX для каждого пользователя запускаются отдельные процессы NX, и падение любого из них никак не отразится на работе других пользователей.

В заключение скажу, что в августе 2006 года на прошедшей в Сан-Франциско выставке «LinuxWorld» фирма Nomachine получила награду журнала «LinuxJournal» за свой продукт NX Server 2.0 «BEST INTEGRATION SOLUTION» (за лучшее интеграционное решение) [21].

В целом у NX видятся неплохие перспективы, сообщество Open Source тоже не дремлет. Так что если решитесь использовать его у себя, то не пожалеете.

И удачи!

P.S. Некоторые из описанных проблем, возможно, будут уже решены на момент выхода журнала, присоединяйтесь к обсуждению статьи на форуме журнала http://www.samag.ru/forum.

  1. Дистрибутив Thinstation – http://sourceforge.net/project/showfiles.php?group_id=80408&package_id=82039.
  2. Сайт Nomachine – http://www.nomachine.com.
  3. http://www.ssc.com/node/20.
  4. Бушков Е. Подробное руководство по настройке тонких клиентов на основе дистрибутива Thinstation и протокола NX. //Системный администратор, №12, 2006 г. – C. 16-23.

Комментарии
 
  07.10.2007 - 02:42 |  lockdoc

Доброе время суток!
Подскажите пожайлуста какую лучше (и какую Вы используете?) файловую систему использовать на NX-терминальном сервере при работе толстых клиентов в основном в 1С. Предприятие 7.7?
(здесь имеется ввиду надежность файловой системы и её быстроту в работе с большими базами *.DBF данных. На данный момент стоит jfs, но она очень медлительна при работе 20 клиентов)

  31.10.2008 - 05:06 |  Морская Сова

Медлительна именно файловая система jfs (то, как математически реализованы структуры и алгоритмы файловой системы)?

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

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

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru