Ржевский Дмитрий Rzhevskiy Dmitry
загрузочная сеть
У нас на работе понадобилось установить 12 бездисковых станций (тонкие клиенты) с линуксом. Загрузка операционной системы предполагалась по сети:
В локальной сети стоит сервер с расшаренынми по NFS директориями:
/diskless/client1
/diskless/client2
...
/diskless/client12
C этих директорий и грузятся тонкие клиенты. Директории одинаковые - в них копии установленных дистрибутивов Gentoo Linux.
Загружаясь тонкий клиент запускает только браузер - всю работу рабочие делают через браузер и данные ф файлах нигде не сохраняют.
Задача: хорошо бы сделать чтобы на сервере была расшарена только одна директория в режиме только для чтения (RO), с ней грузились бы все клиенты.
Зачем: система с одной директорией в режиме RO намого легче в поддержке. чтобы загрузить компьютер по сети достаточно просто выбрать загрузку в биосе - и компьютер грузится.
Сложности: расшаренную NFS директорию монтировать как RO корневую директорию / нельзя т.к. в процессе загрузки создаются временные файлы, логи, pid запущенных сервисов и т.д.
На запись обязательно должны быть доступны файлы внутри директорий /etc /var а также желательно для работы программ /tmp и домашняя директория.
Гугление на эту тему дало мало результатов - нашлось больше вопросов чем ответов. В месте с тем была уверенность что такая загрузка возможна: грузится же линукс с liveCD.
liveCD использует для записи нужных данных файловые системы unionfs, aufs2.
Наибольшую помощь оказал документ http://mozart.informatik.fh-kl.de/download/Software/GentooDiskless/diskless2_en.pdf
оттуда я стырил некоторые идеи.
Что я сделал:
1) установил систему в режиме чтение/запись по документу http://www.gentoo.org/doc/en/altinstall.xml#doc_chap4
2) установил ядро с поддержкой aufs (sys-kernel/zen-sources)
3) создал файл /diskless/pxelinux.cfg/default :
DEFAULT /bzImage
APPEND ip=dhcp root=/dev/nfs nfsroot=192.168.0.240:/diskless/defaultfs init=/sbin/stateless.sh
4)Создал файл в директории тонкого клиента
/sbin/stateless.sh:
mkdir -p /mnt/tmp
mount -t tmpfs /dev/shm /mnt/tmp
mkdir -p /mnt/tmp/etc
mkdir -p /mnt/tmp/var
mkdir -p /mnt/tmp/tmp
mkdir -p /mnt/tmp/home
mkdir -p /mnt/tmp/root
echo "stateless.sh finished"
exec /sbin/init
5) добавил в /etc/fstab тонкого клиента:
none /etc aufs br:/mnt/tmp/etc=rw:/etc=ro,noxino 0 0
none /var aufs br:/mnt/tmp/var=rw:/var=ro,noxino 0 0
none /home aufs br:/mnt/tmp/home=rw:/home=ro,noxino 0 0
none /root aufs br:/mnt/tmp/root=rw:/root=ro,noxino 0 0
tmpfs /tmp tmpfs defaults,noatime,mode=1777
теперь можно экспортировать NFS в режим RO и загружаться/
Поздравляю, теперь у вас загрузочная сеть - достаточно включить любой компьютер в сеть, выставить в биосе загрузку по сети и ура - система готова к работе.
Кроме работы на заводе для контроля станков, как используется загрузочная сеть у нас, можно использовать для:
-установки в интернет кафе
-частого восстановления данных на дисках при ремонте компьютеров
-в кластерном окружении. Много одинаковых компьютеров выполняют какую нибудь задачу - операционная система намного легче в поддержке.
Posted at 05:18PM фев 22, 2011 by Дима in computer | Комментарии[0]

