Бездискові станції і термінали
У цій статті мова піде про бездискових станціях і терміналах.
Коротка відповідь на це питання - бездискова станція це комп'ютер без жорсткого диска. Такий комп'ютер є частиною розподіленої обчислювальної системи (комп'ютерної мережі). Файлова система цього комп'ютера розташовується на інших вузлах комп'ютерної мережі.
Бездискова станція може бути самостійним обчислювальним вузлом мережі, простим терміналом або тим і іншим одночасно. Термінал відрізняється від повнофункціонального комп'ютера тим, що він не виконує призначених для користувача програм, він лише відображає результати роботи цих програм, запущених на інших вузлах мережі.
Дійсно - а навіщо? Чи не краще видати кожному користувачеві окремий комп'ютер в особисте (монопольне) користування, де той буде сам собі адміністратор і програміст? Таке рішення має ряд недоліків:
- На користувача комп'ютера крім його безпосередніх професійних обов'язків покладається тягар системного адміністрування.
Це встановлення та налаштування програмного забезпечення, захист від вірусів і хакерських атак, періодичне технічне обслуговування системи (дефрагментація файлових систем, оновлення програмного забезпечення), обслуговування апаратної частини системи і т.п.
Далеко не кожен користувач комп'ютера має кваліфікації системного програміста і здатний ефективно виконувати вище перераховані операції.
До того ж необхідність виконувати ці додаткові обов'язки буде відволікати користувача комп'ютера від безпосередніх професійних обов'язків і негативно позначатися на продуктивності праці в цілому.
Зазвичай завдання системного адміністрування доручають спеціально найнятому фахівця. Але в даній конфігурації йому доводиться обслуговувати кожен комп'ютер окремо, що при великій їхній кількості важко.
Тому як користувачі системи можуть володіти широкими правами всередині її і можливостями копіювання системних даних через свої пристрої введення / виводу (CD / DVD, FDD і ін). Причому мова може йти навіть не про злий намір, а про випадково занесених шкідливі програми.
Технологія бездискових станцій і терміналів дозволяє успішно вирішувати більшість проблем, описаних вище.
- Централізоване адміністрування системи. Все програмне забезпечення, системні і призначені для користувача настройки можуть зберігається в одному місці. Що істотно спрощує і прискорює обслуговування системи.
У найпростішому випадку система складається з сервера завантаження, однієї або декількох бездискових станцій і комутатора (рис.1).
Рис.1: схема простої системи
Ініціалізація бездискових станцій відбувається наступним чином:
- При включенні харчування бездискова станція виконує свій код BIOS і код записаний в ПЗП своєї мережевої карти (BOOTROM).
- Бездискова станція по мережі звертається до сервера завантаження за допомогою широкомовного запиту.
- Сервер завантаження дає бездисковой станції інформацію про її мережевих налаштуваннях і вказує місце в мережі де розташовані файли операційної системи для неї.
- Бездискова станція виконує завантаження операційної системи згідно з відповідними файлів конфігурації.
- Шлюз в internet. що включає в себе сервер електронної пошти. міжмережевий екран для забезпечення безпеки, proxy сервер для доступу до WWW.
- Файл-сервер для зберігання великих обсягів даних користувача.
- Сервер друку для спільного використання принтерів.
- Термінальний сервер для спільного використання спеціального програмного забезпечення і включення в систему застарілих комп'ютерів.
- Додаткові робочі місця, підключення ще одного бездисковой станції вимагає мінімум налаштувань, в найпростішому випадку її треба просто підключити до комп'ютерної мережі і включити харчування.
Рис.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.
UNIX та X Window можуть бути включені в цю систему від Microsoft за допомогою програми Rdesktop [6], яка реалізує протокол RDP і може успішно працювати з термінальним сервером для Microsoft Windows (рис.4).
Рис.4: схема роботи Rdesktop
Далі ми розповімо про практичну реалізацію, описаних вище технологій, на програмній основі OS FreeBSD.
Всі експерименти проводилися на мережі з наступних комп'ютерів.- сервер завантаження
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
Налаштування бездискові станції полягає в установці в машину мережевої карти з підтримкою функції мережевого завантаження.
Якщо такого інтегрованого пристрою немає то можна використовувати '' навісну '' мережеву карту, яка повинна мати сокет для мікросхеми ПЗУ (BOOTROM). У цей ПЗУ (аналогічно BIOS) записується відповідна програма мережевий завантаження.
В даному випадку використовувалася машина з "навісний" мережевою картою RealTek8139. Ця карта має сокет для BOOTROM, який не був використаний, програма мережевий завантаження була успішно дописана '' в хвіст '' BIOS за методом описаного в статті [1]
Послідовність операцій при завантаженні бездисковой станції в даному випадку така:
На сервері завантаження встановимо і налаштуємо наступні програми:
- ОС 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]
- / Diskless / rootfs
- спільне коріння файлової системи для бездискових станцій, розмір - 128MB
- персональні дані бездискових станцій: swap та ін.
розмір залежить від кількості станцій
кожної бездисковой станцій можна виділити особистий swap-файл розміром приблизно рівний розміру оперативної пам'яті даної станції
- загальний home де будуть каталоги користувачів бездискових станцій
розмір залежить від кількості і '' апетитів '' користувачів
ці дані можна винести на окремий файл сервер
Ці окремі розділи потрібні для коректної роботи NFS-сервера додаткову інформацію з цього питання можна отримати в статті [3].
- збираємо встановлюємо DHCP сервер
Для передачі бездисковой станції програми початкового завантаження pxeboot скористаємося спрощеним FTP сервером tftpd. Він присутній в системі за замовчуванням і працює в рамках inetd (internet '' super-server '')
Для запуску tftpd необхідно виконати наступні дії:
- створити корінь файлової системи для tftp сервера
і створимо tftpd.log
На завершення налаштувань tftpd скопіюємо в корінь tftp сервера програму-завантажувач pxeboot звідки його будуть '' брати '' бездискові станції при завантаженні.
Для того що б бездискова станція успішно працювала їй потрібна файлова система складається з наступного набору:
В / 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 повинен вийти наступний набір
точка монтування каталогу тимчасових і службових файлів
Далі в / diskless / nodes створюємо для кожної бездисковой станції каталог персональних даних.
тут же створюємо створюємо файл підкачки (для вузла 192.168.21.4 розміром 64MB)
Для бездискових станцій необхідно зібрати спеціальне ядро. З нього можна видалити все зайве (наприклад, підтримку ATA вінчестера). В ядро треба додати опції підтримки мережевої завантаження.
і копіюємо вийшло ядро в відповідний каталог
Альтернативний варіант - скористатися системними скриптом /etc/rc.initdiskless. Для початкової ініціалізації бездисковой станцій необхідно щоб в каталозі / diskless / rootfs / etc був наступний набір файлів, скопійованих з / etc.
Працює це таким чином: скрипт rc запускає rc.initdiskless. який перевіряє як змонтований корінь файлової системи. Якщо з'ясовується що корінь це NFS то запускаються сценарії запуску бездисковой станції, що містяться в каталозі / conf.
В / diskless / rootfs / conf створимо такі підкаталоги [4]:
задає початкову структуру каталогів
настройки за замовчуванням
персональні настройки вузлів
- В каталозі base створимо підкаталог etc. в якому створимо текстовий файл з ім'ям md_size. Вміст цього файлу - число 6144.
Це означає, що при запуску в пам'яті бездисковой станції буде створено віртуальний диск розміром 6144 блоку (3MB), точка його монтування - / etc.
При запуску бездисковой станції 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-клієнта, котрий виводить графіку на локальний X-сервер, необхідно виконати такі дії.- Переконатися, що локальний X-сервер працює в мережевому режимі і приймає підключення з інших машин. Можна перевірити за допомогою утиліти netstat відкритий чи порт X11.
- Дозволити віддаленій машині з'єднання з нашим X-сервером за допомогою xhost.
- Підключитися до віддаленої машині за допомогою ssh (або подібного до цього засобу), встановити на віддаленій машині змінну оточення DISPLAY.
- Запустити клієнтську програму на віддаленій машині.
Можна також використовувати допоміжну програму, яка автоматично буде робити все описане вище.
Говорячи про графічному терміналі на базі X.Org, можна ще згадати клієнта для Microsoft Terminal Services. Це програма rdesktop (A Remote Desktop Protocol client) [6], вона дозволяє відображати віддалений '' робочий стіл '' Microsoft Windows у вікні локального X-сервера. Для побудови та встановлення цієї програми у FreeBSD треба виконати наступні дії.
Для підключення до віддаленого '' робочому столу '' Microsoft Windows досить виконати команду
Крім відображення вікна Microsoft Windows, програма rdesktop може надавати різні додаткові можливості, наприклад, передача крім картинки ще й звукового каналу з віддаленої машини.
Приклади файлів настройки можна знайти [тут]