DRBL

From Ilianko

Каво е Diskless Remote Boot in Linux сървър и за какво се използва?

DRBL е безплатно приложение с помощта на което е възможно да се управляват GNU/Linux или Winows базирани системи използвани за работа на повечето компютри. Технологията позволява системите (клиентите) да се инсталират и подържат много бързо и удобно, което улеснява и спестява много разходи на фирмите които се занимават с поддръжката на голям брой компютри. Приложението се поддържа от Debian, Ubuntu, Mandriva, Red Hat, Fedora, CentOS и SuSE операционни системи. DRBL използва споделените ресурси на системата на която е инсталирана, което позволява на клиентските компютри да работят с тях като собствени. Приложението може да се използва съвместно с Clonezilla и/или други програми за управление и поддръжката на твърдите дискове подобни на Symantec Ghost®.

Подготовка на сървъра за инсталация на DRBL средата

  • Инсталираме избраната дистрибуция (в случея Ubuntu) и конфигурираме мрежовите карти. Използваме “eth0” за връзка с интернет, а останалите мрежови карти като връзки с клиентите на DRBL сървъра ( за предпочитане е да се зададат частни IP адреси от типа: 192.168.101.254 за eth1, 192.168.102.254 за eth2, 192.168.103.254 за eth3 и така с всички мрежови карти ). Важно е да се спазва това правило, относно частните адреси тъй като те са в основата на DRBL. Ако мрежовия мениджър на вашата линукс дистрибуция се стартира автоматично препоръчително е или да се забрани или направо да се премахне. В случея за Ubuntu се препоръчва да се деинсталира мрежовият мениджър напълно, използвайки командата:
apt-get remove network-manager

Трябва да се пренастрои и защитната стена на операционната система при конфигурирането на DRBL сървъра. ВАЖНО е при тази стъпка, да се оставят активни NFS, NIS, tftp и dhcp услугите т.е. да не се ограничават или забраняват при конфигурацията на защитната стена.

  • Може да се повиши производителността на системата като направим следното ( стъпка не е задължителна):

Ако използвате Gnome като графична среда, може да изтрием някой от езиковите пакети (при Ubuntu те се намират в директория ”/var/lib/gconf/defaults/” ). Това ще спести доста дисково пространство (например, ако изпълнявате команда %gconf-tree.xml и %gconf-tree-zh_TW.xml това ще спести 40 MB пространство на сървъра за един клиент, но ако имаме 40 клиента това ще спести 1,6 GB дисково пространство), а и натоварването на NFS сървъра ще намалее. Друго което може да направим е да премахнем ненужните локални файлове като използваме командата „localepurge” .

  • Ако Linux дистрибуцията поддържа по-бързата ReiserFS файлова система е по-добре да се използва тя с цел повишаване на производителността в сравнение с ext2/ext3 файловите системи. За тест маже да използвате този benchmark.
  • След като се инсталира Linux дистрибуцията на сървъра, проверяваме дали DMA режима е включен. Това ще доведе до ускоряване на времето за достъп до файловете на твърдия диск. Използваме команда "hdparm /dev/hdx" за да проверим дали DMA режима е включен или изключен. Ако е изключен с "hdparm -d1 -c3 -k1 /dev/hdx" го включимаме. Заместваме /dev/hdx във /dev/hda ако IDE HD за използвания Linux е в режим "Primary IDE" .

Забележка: с изключение на Selinux дистрибуцията, при ядрото на Fedora Core 3 и по късните версии – Освен ако не сте администратор който е наясно със Selinux , е по-добре да го изключим, или рискуваме да се сблъскаме с проблеми от типа „Достапът отказан” . За да изключим Selinux , настройваме:

SELINUX=disabled в директорията /etc/sysconfig/selinux  или /etc/selinux/config

след което рестартираме машината.

  • Ако разполагаме само с една мрежова карта, може да настроите само два IP адреса единият eth0 и eth0:1- който ще се използва за DRBL сървъра, а с eth0 се осъществяваме връзка с интернет.

Забележка: възможно е да IP адреса на виртуалния интерфейс (eth0:1) да предизвиква проблеми ако не зададем статични адреси на клиентските системи, посредством техния MAC адрес. Препоръчва се използването на повече от една мрежова карта за улеснение на начинаещите, тъй като в противен случай трябва да се запишат MAC адресите в DHCP сървъра което за начинаещите представлява трудност. Затова се препоръчва използването на 2 или повече мрежови адаптера.

Настойка на потребителските компютри

Тази стъпка се изпълнява при настройката на сървъра с цел използване от клиентите. Важно е да се завърши напълно първа стъпка преди да се продължи.

  • В зависимост от избраната дистрибуция, инсталацията и настройката на DRBL сървъра протича по – различни начини
  • Debian и Ubuntu дистрибуции

Ако дистрибуцията поддържа apt (aptitude) опцията може да добавим следния ключ: (ID: 1024D/D7E8DF3A, Key fingerprint = F532 A131 65AF 2168 1634 DB1B 4000 9511 D7E8 DF3A) . Това може да стане по два начина показани тук. "wget -q http://drbl.org/GPG-KEY-DRBL -O- | sudo apt-key add -" , при втория обаче трябва да свалите ключа от сървъра, който за DRBL приложението е D7E8DF3A, това се прави с команда:

"gpg --keyserver subkeys.pgp.net --recv-key D7E8DF3A" 

след това "gpg -a --export D7E8DF3A | apt-key add -" което се добавя към „apt” опцията.

  • Редактира се сорслист файла който се намира в /etc/apt/sources.list
deb http://ftp.us.debian.org/debian/ lenny main
deb http://drbl.sourceforge.net/drbl-core drbl stable

Ако използвате Ubuntu Maverick (10.10):

deb http://archive.ubuntu.com/ubuntu maverick main restricted universe multiverse 
deb http://drbl.sourceforge.net/drbl-core drbl stable

Ако използвате Ubuntu Lucid (10.04):

deb http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse 
deb http://drbl.sourceforge.net/drbl-core drbl stable
  • Първия ред с команди може да се замени с друга опция за Debian или Ubuntu. Вторият ред, обаче се отнася до копията на допълнителните програми и приложения, които може да откриете тук!

Ако искате да използвате тестова установка, заменете вторият ред с:

deb http://drbl.sourceforge.net/drbl-core drbl stable testing

По желание може да се инсталира някоя от нестабилните версии, като заменим втория ред с:

deb http://drbl.sourceforge.net/drbl-core drbl stable testing unstable
  • Изпълняваме командата
"apt-get update" 
  • Изпълняваме командата
"apt-get install drbl" за да инсталираме DRBL програмата.

Забележка! Има два основни сайта от който може да се свали ядрото на DRBL приложението.

 http://ftp.twaren.net/local-distfiles/drbl-core/   (1)
 http://free.nchc.org.tw/drbl-core                  (2)

Вариант едно: Ако имате бърза връзка с интернет и дистрибуцията подържа apt опцията. Изпълнете "/opt/drbl/sbin/drblsrv -i".

• Бележка: Има интервал преди "-i" опцията. Ето пример. Ако не сте сигурни за настройките просто оставете тези по подразбиране.

Вариант две : Ако нямате връзка с интернет или връзката ви е бавна и не искате автоматично да се инсталира ядрото, а дистрибуцията не подържа „apt” опцията. Може да инсталирате ядрото сами, като необходимите пакети може да видите като напишете:

"/opt/drbl/sbin/drblsrv-offline -r"

След като инсталираме необходимите пакети и сме сигурни в настройките на сървъра може да изпълним командата

"/opt/drbl/sbin/drblsrv-offline -r"

или може да свалим по-подходящо ядро за сървърна платформа, ако възникне проблем със съвместимостта на клиентите. При смяна на ядрото изпълняваме командата

"/opt/drbl/sbin/drblsrv-offline -k $KERNEL_PKG" 

(като заменим $KERNEL_PKG с името на rpm или deb файла на новото ядро). Ако не сме сигурни просто натискаме Enter за да приемем стойността зададена по подразбиране.

  • За по – нетърпеливите: ако имате бърза връзка с интернет и дистрибуцията подържа „apt” опцията. Въведете
"/opt/drbl/sbin/drbl4imp"

командата за да изпълните казаното дотук. "drbl4imp" използваме настройките по подразбиране за DRBL сървъра. ВАЖНО Е ДА СЕ ИМА В ПРЕДВИД , че е възможно да има несъответствие със средата (конфликти) , засягащи основно “обхвата” на dhcp опцията на сървъра (клиентите няма да получават един и същи ip адрес всеки път). Ако искаме настройката да е съгласувана с установка изпълняваме последната точка повторно, стъпка по стъпка.

Настройка на файловата система на клиентите, в сървъра

  • Познаване и подредба на работната установка в реална среда.
  • Да вземем за пример библиотечна компютърна зала в която има 40 компютърни системи, които ще бъдат наши клиенти. С цел DRBL сървъра да работи по-ефективно, разделяме клиентите в четири подмрежи например: 192.168.100.0, 192.168.101.0, 192.168.102.0 и 192.168.103.0 . За целта сървъра има 4 мрежови карти. Едната се използва като WAN порт, а останалите остават за локална мрежова връзка. IP адресите които използваме за тези мрежови карти са съответно: 192.168.100.254, 192.168.101.254, 192.168.102.254 и 192.168.3.254 , услугите като DHCP, TFTP, NFS и др. се обслужват съответно от eth0:1, eth1, eth2, и eth3 .



Принципна структурата на DRBL сървъра.


  • Има четири модула вградени в DRBL приложението, от версия 1.6.3 и нагоре. Пълна версия на DRBL, Clonezilla, DRBL SSI (Single System Image) и Clonezilla Box . Изискванията към размера на дисковото пространство и бързината на връзката са завишени за първите два модула, но всички настройки са запазени на сървъра така, че всеки клиент да може да запази индивидуалните си настройки. От друга страна модула DRBL SSI използва виртуално копие на една единствена операционна система използвана от всички клиенти, а необходимите им настройки се генерират със стартирането на клиента. Това намалява необходимостта от повече дисково пространство на сървъра, тъй като се използва само едно копие на операционната система. Недостатък обаче е това, че потребителите не могат да запазват локално настройки си. В DRBL SSI модула, ако се наложи да се увеличи броя на клиентите, е необходимо само да се модифицира конфигурационния файл „dhcpd.conf” , след което да изпълним
"/opt/drbl/sbin/dcs -> others -> gen_3N_conf" 

за да се добавят промените, а чрез командата

"/opt/drbl/sbin/drbl-3n-conf generate"

се създават необходимите файлове. Този режим на работа към DRBL сървъра могат да се включат до 253 клиентски компютъра. Четвъртия модул е базиран на DRBL SSI използван широко при клонираните системи. Ако искате да работите с DRBL SSI модула по добре е клиентските машини да имат минимум 512MB RAM памет, а останалите параметри ( видеокарти и т.н.) е желателно да бъдат еднакви. Ето някой помощни материали относно четирите модула.

  • Указания за използващите няколко мрежови карти и комутатор, когато се използват няколко мрежови карти
  • Когато се използват повече мрежови карти, с цел да се увеличи честотната лента, е препоръчително да зададем твърдо (статично) IP адресите на отделните „възли” така , че те да получават един и същ IP адрес всеки път. В стъпка <3а> , когато изпълним командата
"/opt/drbl/sbin/drblpush -i"

системата ще пита оператора ( искате ли да обвърже IP адреса с конкретен MAC адрес, в този случай потвърждаваме). Ако НЕ обвържете твърдо IP адресите с MAC адресите (от сега нататък ще наричаме това „обвързване”) и разполагаме само с един 48 портов комутатор (или много комутатори включени един към друг) и използвате 4 (или повече от 2) мрежови карти, възниква проблем (някой от клиентите може да не получи адрес от DRBL сървъра) и като последствие от това няма да може да стартира. От друга страна, ако DRBL сървъра има четири отделни мрежови карти с които да разширим честотната лента (тоест четирите карти всяка от който отговаря за отделна подмрежа като: 192.168.100.x, 192.168,101,x, 192.168.102.x, 192.168.103.x ) и разполагате с четири отделни комутатора, които не са вързани един към друг, тогава също може да се използва „обвързване” ( в този случай обаче не е необходимо да се обвързват IP адресите с MAC адресите на клиентите ). Да не забравяме, че ако използваме N броя мрежови карта за разширяване на честотната лента, в комбинация с метода на „обхвата” , трябва да имаме и N на брой комутатори, които НЕ трябва да бъдат свързани един към друг.

  • Модификации на конфигурационния файл преди стъпка <3а>

1. Възможно е да се разреши споделянето на някой от директориите на DRBL сървъра като например /work1 , за целта е необходимо. С помощта на текстов редактор да се отвори: /opt/drbl/conf/drbl.conf файла и да се промени директорията diskless_root_dir_ro_user_add="/work1" (ако искаме клиентите да могат единствено да четат от директорията), или diskless_root_dir_rw_user_add="/work1" (ако искаме клиентите да могат да четат и записват в директорията).

 Внимание!!! drbl.conf  е МНОГО ВАЖЕН файл, затова трябва да се ВНИМАВА когато се модифицира!!! 

2. Ако всички клиенти разполагат със собствен твърд диск с форматирани дялове (например: /dev/hda, форматирана в ext3) и искаме клиентите да зареждаме дял /dev/hda1 като /localwork по време на зареждането. Трябва да променим /opt/drbl/conf/client-append-fstab , синтаксиса му е подобен /etc/fstab . Като пример за редакция на /opt/drbl/conf/client-append-fstab е /dev/hda1 /localwork ext3 defaults 0 0 .

• Подсказка: не се налага да създаваме ръчно директория /tftpboot/node_root/localwork на DRBL сървъра, това ще стане автоматично).

3. Ако искаме да има допълнителни услуги (като apmd и bluetooth ) които да са включени когато клиента зареди, трябва да променим /opt/drbl/conf/client-extra-service , let service_extra_added="apmd bluetooth" .

4. По желание може да се променият някои или всички имена зададени автоматично на клиентите, включени в съответната работна група използвайки "drblpush -i" , след което се променя "/opt/drbl/conf/client-ip-hostname" директорията . Тук може да се провери и формата на файловата система. Ако новото името на някой от клиентите не присъства, приложението drblpush използва това което сървъра е назначил по подрезбиране.

  • Стъпка <3а> изпълняваме "/opt/drbl/sbin/drblpush -i" командата. Софтуерът сканира автоматично системата и ще разпознае необходимия аргумент. Ако той не е зададен предварително, ще се появи съобщение с искане за въвеждане му. Ето пример тук.

Забележка!!! Ако след изпълнението на тази стъпка се инсталират допълнителни пакети, трябва да изпълним "/opt/drbl/sbin/drblpush -i" или "/opt/drbl/sbin/drblpush -c /etc/drbl/drblpush.conf" (това ще зареди последните запазени настройки) за да могат новите пакети да се добавят на клиентите.

Забележка!!! не се препоръчва да се използва мениджъра за автоматично обновяване. Тъй като при инсталиране на нови пакети на сървъра, ако не се изпълни "/opt/drbl/sbin/drblpush -i" командата, клиента новата версия инсталирана на сървъра може да не е съвместима с тази на клиента. Ако искате да включите мениджъра за автоматично обновяване, не забравяйте да изпълнявате споменатата по горе процедура за да се обновяват и клиентските пакети автоматично.

Настройка на клиентите за използване на DRBL средата

  • Има няколко при които клиента може да зареди през мрежата: 1.клиента разполага с PXE мрежова карта, 2. клиента разполага с флопи, 3. клиента разполага със CD-ROM, 4. клиента разполага с локален твърд диск. В примери 2 и 4 използваме etherboot версия 5.4.3.

Забележа! С DRBL версия 1.3.9 или по късна е необходимо да се използва ethrboot версия 5.4.0 или по нова. o Вариант 1: Клиента разполага с PXE мрежова карта

Настройваме BIOS-а на клиента да зарежда от "LAN" или "network" опцията.За пример може да разгледаме ръководството на някой от моделите дънни платки, произведени от Asus.

1. Ако в BIOS –а на клиента опцията за зареждане през LAN е забранена първо трябва да я разрешим.

2. Обикновено се налага да рестартираме, за да може BIOS –а на клиента да приеме новите настройки.

3. След като системата се рестартира, отново влизаме в BIOS–а намираме менюто което отговаря за реда на зареждане, след което поставяме на първо място опцията за зареждане през мрежовата карта.

И това е! рестартираме и оставяме клиента да получи настройки от DRBL сървъра.

  • Вариант 2: Клиента разполага с флопи.

o Стъпка <4а> Първо намираме имейдж файл.

o За целта използваме универсалния имейдж /opt/drbl-etherboot/etherboot-net.zdsk от DRBL сървъра. Той подържа повечето модели съвременни мрежови карти. Подсказка: ако този имейдж не проработи, опитайте да използвате конкретен имейдж в зависимост от модела на клиентската мрежова карта. Тези имейдж файлов се намират в /opt/drbl-etherboot/. Да вземем за пример мрежова карта модел Realtek 8139, за нея може да използваме имейдж: /opt/drbl-etherboot/rtl8139.zdsk.

o Стъпка <4b> поставете дискета във флопито на DRBL сървъра

o Изпълнява се "cat /opt/drbl-etherboot/etherboot-net.zdsk > /dev/fd0" на сървъра.

o Ако искаме да създадем имейдж дискетата под Windows ще ни трябва този файл за да се запише ROM имейдж – а на дискетата.

o Стъпка <4c> поставяме записаната дискета във флопито на клиента и го настройваме, така че да зарежда първо от флопито. Ако не сте получили съобщение за грешка при изплнението на някоя от стъпките, след няколко минути ще имате напълно готов за работа клиентски компютър. Профилите и паролите съответстват на тези които са зададени предварително на сървъра.

o Вариант 3: Клиента разполага със CD-ROM

„Универсалния” имейдж се намира в /opt/drbl-etherboot/etherboot-net.iso

1. Запишете ISO файла на CD: cdrecord -v speed=12 fs=16m dev=0,0,0 -data etherboot-net.iso (ако е необходимо променете "dev=0,0,0" като изпълнете "cdrecord -scanbus" за да намерите записвачката си ).

2. Проверете дали клиента е настроен да зарежда от CD-ROM, слага се записаното cd в четеца, рестартираме и готово!

  • Вариант 4: Клиента разполага с локален твърд диск.

Ако клиента разполага с локален твърд диск на който има инсталиран grub файл от GNU/Linux

1. Копираме файла "/opt/drbl-etherboot/etherboot-net.zlilo" в директория "/boot/" на клиента върху локалния диск.

2. Добавяме една опция към менюто на клиента /boot/grub/menu.lst или /boot/grub/grub.conf в зависимост от различните дистрибуции ето пример:


title Etherboot-PXE
kernel /boot/etherboot-net.zlilo


3. Следва да се настрои клиента да зарежда по подразбиране от добавеното преди малко, като запишем като "default 1" в menu.lst или grub.conf файла му.

  • Ако клиента използва Windows XP/2K:

Може да се инсталир WINGRUB. Сложете файла etherboot-net.zlilo в C:\, където се намират, C:\boot.ini и C:\GRUB\MENU.LST който изглеждат така: (този метод е подходящ единствено при инсталиране на Wingrub в BOOT.INI (Tool -> Install grub -> Boot from BOOT.INI). Ако е необходимо е възможно да се използват и други методи които Wingrub приложението предлага).

boot.ini:
[boot loader]
timeout=30
default=C:\GRLDR
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
C:\GRLDR="Etherboot"


MENU.LST:


timeout 7
title etherboot
root (hd0,0)
kernel /etherboot-net.zlilo
title Windows at (hd0,0)
root (hd0,0)
chainloader +1


 Ако клиента има инсталиран Windows 9Х на локалния си твърд диск:

1. Копираме файла "/opt/drbl-etherboot/etherboot-net.com" на твърдия диск

2. Преименуваме го за да е с по малко символи, на например "eb-net.com".

3. Записва се конфигурационен файл с няколко опции за зареждане на клиента (пример: добавете на нов ред когато промените "eb-net.com" файла за улеснение).

Настройка на боот през мрежатра

прогамата dcs задава услугата, която ще се предлага на отдалечените клиенти

/opt/drbl/sbin/dcs