Differences between revisions 1 and 3 (spanning 2 versions)
Revision 1 as of 2008-10-16 11:26:24
Size: 3213
Editor: FrBrGeorge
Comment:
Revision 3 as of 2008-10-16 14:42:19
Size: 13880
Editor: FrBrGeorge
Comment:
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
И в качестве рабочих станция, и в качестве сервера может выступать любой компьютер, совместимый по требованиям с [[http://linux.armd.ru/ru/distros/#02|"Линукс Юниор"]]. Быстродействие '''сервера''' зависит только от производительности дисковой подсистемы. Быстродействие '''клиента''' зависит от производительности сетевой подсистемы клиента и сервера, а также от качества самой локальной сети и совокупной нагрузки на неё.

/!\ '''Клиент''' не использует область подкачки (swap), поэтому его ресурсы оперативной памяти строго ограничены аппаратной составляющей. Не рекомендуется запускать на клиенте более пяти крупных приложений (!OpenOffice.org, Mozilla Firefox и т. п.) одновременно. Компьютер, совместимый по требованиям с [[http://linux.armd.ru/ru/distros/#03|"Линукс Мастер"]], позволяет работать более или менее без оглядки.

{{attachment:ThickClass.png}}

На сервере требуется установить и настроить три службы: сервер автоматической настройки клиентов DHCP, низкоуровневый файловый сервер TFTP и сервер удалённых сетевых дисков NFS. Клиент должен поддерживать загрузку по сети по протоколу PXE (её требуется включить).

[[Books/LinuxIntro/10ChapterBoot|Загрузка]] рабочей станции происходит так:
  1. сетевая аппаратура клиента получает по DHCP настройки и загружает по TFTP начальный сетевой загрузчик;
  1. начальный сетевой загрузчик загружает по TFTP ядро Linux и стартовый виртуальный диск;
  1. сценарий на стартовом виртуальном диске подключает по NFS сетевой диск со всеми файлами операционной системы
  1. происходит загрузка операционной системы в варианте, похожем на LiveCD
Line 9: Line 23:
Для развёртывания класса потребуется дистрибутив "Линукс Мастер" двух видов: [[ftp://ftp.linux.armd.ru/master/school-latest-linux-master-i586-install-dvd5.iso|Установочный]] (для сервера) и [[ftp://ftp.linux.armd.ru/master/school-latest-linux-master-i586-live-dvd5.iso|LiveDVD]] (для клиента). Для маломощных клиентов можно использовать [[ftp://ftp.linux.armd.ru/lite/school-latest-linux-lite-i586-live-cd.iso|LiveCD]] версию [[http://linux.armd.ru/ru/distros/#01|Лёгкого Линукс]]а.

  {i} Ниже приведён список команд и результаты их выполнения. Команды начинаются с "подсказки" командной оболочки -- ` [root@server ~]# `.

  {i} Приведённые ниже команды редактирования конфигурационных файлов вида `sed -i 's/что_заменить/на_что_заменить/' файл` предназначены для потокового текстового редактора `sed`. Их можно воспроизвести и с помощью обычного текстового редактора (например, `mcedit`): открыть `файл` для редактирования (`mcedit файл`) и заменив там все строчки вида `что_заменить` на строчки `на_что_заменить`.
Line 10: Line 30:

отдельный /srv > 8G
Здесь описывается организация сервера на основе [[http://linux.armd.ru/ru/distros/#03|"Линукс Мастер"]]. НИчего специфичного для этого дистрибутива не требуется, поэтому аналогичную структуру можно развернуть на базе любого другого дистрибутива или любой POSIX-совместимой операционной системы.

В нашем примере сервер имеет две сетевые карты: одну -- для выхода в интернет (настраивается как обычно), другую -- для работы с классом (настраивается вручную на адрес `10.3.2.1`).

При установке "Линукс Мастер" на сервер (этап "Подготовка диска") необходимо вручную создать ''отдельную'' файловую систему в точке монтирования `/srv` ( /!\ ''не'' `/home`) размером, достаточным для размещения всех файлов рабочей станции (в нашем случае -- '''8Gb+''') при этом параметр "опции монтирования" необходимо исправить на "defaults":
{{attachment:SrvDefaults.png}}
==== Установка ПО и файлов ====
  1. Установить следующие пакеты (необходим установочный DVD):
  {{{
[root@server ~]# apt-get install tftp-server dhcp-server nfs-server syslinux
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  dhcp-common
The following NEW packages will be installed:
  dhcp-common dhcp-server nfs-server syslinux tftp-server
0 upgraded, 5 newly installed, 0 removed and 0 not upgraded.
Need to get 0B/1527kB of archives.
After unpacking 4295kB of additional disk space will be used.
Do you want to continue? [Y/n]
Media Change: Please insert the disc labeled
 'ALT Linux 4.0 Junior DVD (HeyTeacher)'
in the drive '/media/cdrom/' and press enter

Committing changes...
Preparing... ################################################### [100%]
1: syslinux ################################################### [ 20%]
2: dhcp-common ################################################### [ 40%]
3: dhcp-server ################################################### [ 60%]
4: nfs-server ################################################### [ 80%]
5: tftp-server ################################################### [100%]
Done.
}}}
  1. Развернуть загрузочный образ рабочей станции. Файловая система рабочей станции упакована в файл `live` на диске LiveCD или LiveDVD. Её следует переложить в каталог `/srv/boot` на сервере в распакованном виде:
  {{{
[root@server ~]# df
Filesystem Size Used Avail Use% Mounted on
/dev/hda2 7.9G 4.5G 3.0G 60% /
udevfs 5.0M 68K 5.0M 2% /dev
shmfs 157M 0 157M 0% /dev/shm
tmpfs 157M 0 157M 0% /tmp
/dev/hda5 23G 173M 22G 1% /srv
/dev/hdc 1.7G 1.7G 0 100% /media/cdrom
[root@server ~]# ls /media/cdrom/
RPM-GPG-KEY index.html live rescue syslinux
[root@server ~]# mount -t squashfs -o loop /media/cdrom/live /mnt/cdrom/
[root@server ~]# ls /mnt/cdrom/
bin dev home lib mnt proc sbin sys usr
boot etc image media opt root srv tmp var
[root@server ~]# mkdir /srv/boot
[root@server ~]# cp -a /mnt/cdrom /srv/boot/livefs
[root@server ~]# umount /mnt/cdrom
}}}
  /!\ Операция копирования LiveDVD занимает довольно много времени: в распакованном виде `/srv/boot/livefs` "весит" больше 4 Gb.
  1. Скопировать первичный загрузчик, ядро и стартовый виртуальный диск для скачивания по TFTP:
  {{{
[root@server ~]# cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot
[root@server ~]# cp -a /media/cdrom/syslinux/alt0 /var/lib/tftpboot
[root@server ~]# find /var/lib/tftpboot
/var/lib/tftpboot
/var/lib/tftpboot/pxelinux.0
/var/lib/tftpboot/alt0
/var/lib/tftpboot/alt0/vmlinuz
/var/lib/tftpboot/alt0/full.cz
}}}
==== Настройка сервера ====
  1. Каталог `/srv/boot` должен быть доступен по NFS на чтение, при этом обращение с правами суперпользователя (`root`) не должно превращаться в обращение с правами пользователя `nobody`:
  {{{
[root@server ~]# echo "/srv/boot *(ro,no_root_squash,no_subtree_check)" > /etc/exports
[root@server ~]# cat /etc/exports
/srv/boot *(ro,no_root_squash,no_subtree_check)
[root@server ~]# service nfs start
Exporting NFS file systems: [ DONE ]
Starting NFS daemon: [ DONE ]
Starting NFS mount service: [ DONE ]
[root@server ~]# showmount -e
Export list for server.class.altlinux.ru:
/srv/boot *
}}}
  1. Служба `tftp` должна быть активна, а метадемон `xinetd` должен принимать запросы из всей сети, а не только с адреса `128.0.0.1`
  {{{
[root@server ~]# chkconfig tftp on
[root@server ~]# sed -i 's/only_from/#only_from/' /etc/xinetd.conf
[root@server ~]# cat /etc/xinetd.conf
defaults
{
        log_type = SYSLOG authpriv info
        log_on_success = PID HOST DURATION
        log_on_failure = HOST
        instances = 100
        per_source = 5
        #only_from = 127.0.0.1
}

includedir /etc/xinetd.d
[root@server ~]# service xinetd restart
Service xinetd is not running.[PASSED]
Starting xinetd service: [ DONE ]
}}}
Line 13: Line 131:
apt-get install tftp-server dhcp-server nfs-server isolinux
Line 83: Line 200:

как загрузиться, если нет PXE -- ALTSP
Line 84: Line 203:

 * swap на клиенте
 * интернет
 * пользователи и NFS Home
 * установка пакетов
 * обратно в squash: быстрее и на винде

Сервер "толстых" терминальных клиентов на ПСПО

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

Структура класса

И в качестве рабочих станция, и в качестве сервера может выступать любой компьютер, совместимый по требованиям с "Линукс Юниор". Быстродействие сервера зависит только от производительности дисковой подсистемы. Быстродействие клиента зависит от производительности сетевой подсистемы клиента и сервера, а также от качества самой локальной сети и совокупной нагрузки на неё.

/!\ Клиент не использует область подкачки (swap), поэтому его ресурсы оперативной памяти строго ограничены аппаратной составляющей. Не рекомендуется запускать на клиенте более пяти крупных приложений (OpenOffice.org, Mozilla Firefox и т. п.) одновременно. Компьютер, совместимый по требованиям с "Линукс Мастер", позволяет работать более или менее без оглядки.

ThickClass.png

На сервере требуется установить и настроить три службы: сервер автоматической настройки клиентов DHCP, низкоуровневый файловый сервер TFTP и сервер удалённых сетевых дисков NFS. Клиент должен поддерживать загрузку по сети по протоколу PXE (её требуется включить).

Загрузка рабочей станции происходит так:

  1. сетевая аппаратура клиента получает по DHCP настройки и загружает по TFTP начальный сетевой загрузчик;
  2. начальный сетевой загрузчик загружает по TFTP ядро Linux и стартовый виртуальный диск;
  3. сценарий на стартовом виртуальном диске подключает по NFS сетевой диск со всеми файлами операционной системы
  4. происходит загрузка операционной системы в варианте, похожем на LiveCD

Развёртывание класса

Для развёртывания класса потребуется дистрибутив "Линукс Мастер" двух видов: Установочный (для сервера) и LiveDVD (для клиента). Для маломощных клиентов можно использовать LiveCD версию Лёгкого Линукса.

  • {i} Ниже приведён список команд и результаты их выполнения. Команды начинаются с "подсказки" командной оболочки --  [root@server ~]# .

    {i} Приведённые ниже команды редактирования конфигурационных файлов вида sed -i 's/что_заменить/на_что_заменить/' файл предназначены для потокового текстового редактора sed. Их можно воспроизвести и с помощью обычного текстового редактора (например, mcedit): открыть файл для редактирования (mcedit файл) и заменив там все строчки вида что_заменить на строчки на_что_заменить.

Действия на сервере

Здесь описывается организация сервера на основе "Линукс Мастер". НИчего специфичного для этого дистрибутива не требуется, поэтому аналогичную структуру можно развернуть на базе любого другого дистрибутива или любой POSIX-совместимой операционной системы.

В нашем примере сервер имеет две сетевые карты: одну -- для выхода в интернет (настраивается как обычно), другую -- для работы с классом (настраивается вручную на адрес 10.3.2.1).

При установке "Линукс Мастер" на сервер (этап "Подготовка диска") необходимо вручную создать отдельную файловую систему в точке монтирования /srv ( /!\ не /home) размером, достаточным для размещения всех файлов рабочей станции (в нашем случае -- 8Gb+) при этом параметр "опции монтирования" необходимо исправить на "defaults": SrvDefaults.png

Установка ПО и файлов

  1. Установить следующие пакеты (необходим установочный DVD):
    [root@server ~]# apt-get install tftp-server dhcp-server nfs-server syslinux
    Reading Package Lists... Done
    Building Dependency Tree... Done
    The following extra packages will be installed:
      dhcp-common
    The following NEW packages will be installed:
      dhcp-common dhcp-server nfs-server syslinux tftp-server
    0 upgraded, 5 newly installed, 0 removed and 0 not upgraded.
    Need to get 0B/1527kB of archives.
    After unpacking 4295kB of additional disk space will be used.
    Do you want to continue? [Y/n] 
    Media Change: Please insert the disc labeled
     'ALT Linux 4.0 Junior DVD (HeyTeacher)'
    in the drive '/media/cdrom/' and press enter
    
    Committing changes...
    Preparing...                 ################################################### [100%]
    1: syslinux                  ################################################### [ 20%]
    2: dhcp-common               ################################################### [ 40%]
    3: dhcp-server               ################################################### [ 60%]
    4: nfs-server                ################################################### [ 80%]
    5: tftp-server               ################################################### [100%]
    Done.
  2. Развернуть загрузочный образ рабочей станции. Файловая система рабочей станции упакована в файл live на диске LiveCD или LiveDVD. Её следует переложить в каталог /srv/boot на сервере в распакованном виде:

    [root@server ~]# df
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/hda2             7.9G  4.5G  3.0G  60% /
    udevfs                5.0M   68K  5.0M   2% /dev
    shmfs                 157M     0  157M   0% /dev/shm
    tmpfs                 157M     0  157M   0% /tmp
    /dev/hda5              23G  173M   22G   1% /srv
    /dev/hdc              1.7G  1.7G     0 100% /media/cdrom
    [root@server ~]# ls /media/cdrom/
    RPM-GPG-KEY  index.html  live  rescue  syslinux
    [root@server ~]# mount -t squashfs -o loop /media/cdrom/live /mnt/cdrom/
    [root@server ~]# ls /mnt/cdrom/
    bin   dev  home   lib    mnt  proc  sbin  sys  usr
    boot  etc  image  media  opt  root  srv   tmp  var
    [root@server ~]# mkdir /srv/boot
    [root@server ~]# cp -a /mnt/cdrom /srv/boot/livefs
    [root@server ~]# umount /mnt/cdrom

    /!\ Операция копирования LiveDVD занимает довольно много времени: в распакованном виде /srv/boot/livefs "весит" больше 4 Gb.

  3. Скопировать первичный загрузчик, ядро и стартовый виртуальный диск для скачивания по TFTP:
    [root@server ~]# cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot
    [root@server ~]# cp -a /media/cdrom/syslinux/alt0 /var/lib/tftpboot 
    [root@server ~]# find /var/lib/tftpboot
    /var/lib/tftpboot
    /var/lib/tftpboot/pxelinux.0
    /var/lib/tftpboot/alt0
    /var/lib/tftpboot/alt0/vmlinuz
    /var/lib/tftpboot/alt0/full.cz

Настройка сервера

  1. Каталог /srv/boot должен быть доступен по NFS на чтение, при этом обращение с правами суперпользователя (root) не должно превращаться в обращение с правами пользователя nobody:

    [root@server ~]# echo "/srv/boot *(ro,no_root_squash,no_subtree_check)" > /etc/exports 
    [root@server ~]# cat /etc/exports
    /srv/boot *(ro,no_root_squash,no_subtree_check)
    [root@server ~]# service nfs start
    Exporting NFS file systems: [ DONE ]
    Starting NFS daemon: [ DONE ]
    Starting NFS mount service: [ DONE ]
    [root@server ~]# showmount -e
    Export list for server.class.altlinux.ru:
    /srv/boot *
  2. Служба tftp должна быть активна, а метадемон xinetd должен принимать запросы из всей сети, а не только с адреса 128.0.0.1

    [root@server ~]# chkconfig tftp on
    [root@server ~]# sed -i 's/only_from/#only_from/' /etc/xinetd.conf
    [root@server ~]# cat /etc/xinetd.conf
    defaults
    {
            log_type = SYSLOG authpriv info
            log_on_success = PID HOST DURATION
            log_on_failure = HOST
            instances = 100
            per_source = 5
            #only_from = 127.0.0.1
    }
    
    includedir /etc/xinetd.d
    [root@server ~]# service xinetd restart
    Service xinetd is not running.[PASSED]
    Starting xinetd service: [ DONE ]

[root@server ~]# cat /etc/exports 
/srv/boot               *(ro,no_root_squash)
[root@server ~]# chkconfig tftp on
[root@server ~]# cat /etc/net/ifaces/eth1/options 
TYPE=eth
DISABLED=no
BOOTPROTO=static
[root@server ~]# cat /etc/net/ifaces/eth1/ipv4address 
10.1.1.1/24
[root@server ~]# chkconfig dhcpd on
[root@server ~]# cat /etc/dhcp/dhcpd.conf
# See dhcpd.conf(5) for further configuration

ddns-update-style none;

subnet 10.1.1.0 netmask 255.255.255.0 {
        option routers                  10.1.1.0;
        option subnet-mask              255.255.255.0;

        option nis-domain               "domain.org";
        option domain-name              "domain.org";
        option domain-name-servers      10.1.1.0;

        filename "pxelinux.0";
        next-server 10.1.1.1;

        range dynamic-bootp 10.1.1.10 10.1.1.63;
        default-lease-time 21600;
        max-lease-time 43200;
}

[root@server tftpboot]# cat /var/lib/tftpboot/pxelinux.cfg/default 
default live
prompt 1
timeout 30

label live
  kernel alt0/vmlinuz
  append initrd=alt0/full.cz fastboot live lang=ru_RU showopts automatic=method:nfs,network:dhcp stagename=livefs

label rescue
  kernel alt0/vmlinuz
  append initrd=alt0/full.cz live fastboot automatic=method:nfs,network:dhcp stagename=rescue


[root@server tftpboot]# sed -i 's/only_from/#only_from/' /etc/xinetd.conf 

[root@server tftpboot]# cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@server tftpboot]# mkdir /var/lib//tftpboot/pxelinux.cfg
[root@server tftpboot]# cp -a /media/cdrom/syslinux/alt0 /var/lib//tftpboot/

mount -t squashfs -o loop /srv/boot/live /mnt/cdrom/
cp  -a /mnt/cdrom/ /srv/boot/livefs

# THIS DOESN'T DO[ root@server tftpboot]# sed -i 's/ --retry-failed/ --subsystem-nomatch=net --retry-failed/' /srv/boot/livefs/etc/init.d/udevd-final 
[root@server tftpboot]# chroot /srv/boot/livefs/ /sbin/chkconfig udevd-final off

[root@server tftpboot]# sed -i 's/=ro/=nfsro/' /srv/boot/livefs/etc/init.d/remount_rw
[root@server tftpboot]# cat /srv/boot/livefs/etc/rc.d/rc.local
#!/bin/sh
dhcpcd -p -H eth0

[root@server tftpboot]# chmod +x /srv/boot/livefs/etc/rc.d/rc.local


reboot

Действия на клиенте

как загрузиться, если нет PXE -- ALTSP

Дальнейшая модификация класса

  • swap на клиенте
  • интернет
  • пользователи и NFS Home
  • установка пакетов
  • обратно в squash: быстрее и на винде

FrBrGeorge/PspoThickClient (last edited 2009-07-25 21:00:32 by FrBrGeorge)