NFS и установка мира

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
GiftWind
рядовой
Сообщения: 39
Зарегистрирован: 2018-05-21 16:10:17

NFS и установка мира

Непрочитанное сообщение GiftWind » 2018-05-21 17:01:53

Всем привет!

Мой вопрос про NFS.

Есть несколько машин в сети под управлением FreeBSD 11. Для обновления организована схема:
одна машина выступает в роли NFS-сервера. На ней всегда свежие версии исходников, собирается мир и ядро.
На остальных машинах /usr/obj/ /usr/src/ /usr/ports/ монтируются по NFS.

После установки мира на одном nfs-клиенте необходимо пересобирать мир на nfs-сервере,
чтобы успешно повторить установку мира на следующем nfs-клиенте и так каждый раз.

Проверили, что меняется.

До установки мира на nfs-клиенте выполняем:

Код: Выделить всё

# find /usr/obj -exec md5 {} \; > /tmp/obj_before.txt
После установки:

Код: Выделить всё

# find /usr/obj -exec md5 {} \; > /tmp/obj_after.txt
Далее сравниваем результат

Код: Выделить всё

diff /tmp/obj_before.txt /tmp/obj_after.txt
В результате получаем длинный список файлов, дайджесты которых отличаются.

Что в данном случае можно предпринять,чтобы не пересобирать мир каждый раз?

С установкой ядра таких проблем не наблюдается.
Пробовали экспортировать файловые системы по nfs с параметром только для чтения, в таком случае установка мира оказывается невозможной.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

guest
проходил мимо

NFS и установка мира

Непрочитанное сообщение guest » 2018-05-21 22:09:59

Давно уже не использую Master NFS сервер для сборок, однако не сталкивался
с тем о чем Вы пишите:

1) https://www.freebsd.org/doc/handbook/up ... ading.html
и далее про master nfs сервер:
https://www.freebsd.org/doc/handbook/small-lan.html

или лучше

2) # man development

соответственно nfs настраивается RO и на nfs клиентах, выполняется
только: make installkernel & install world (что-то помню колдовал с mergemaster)

в принципе, при сборке на одном и том же сервере, бинарники могут быть одинаковыми,
но совсем, не обязательно:
https://wiki.freebsd.org/ReproducibleBuilds

GiftWind
рядовой
Сообщения: 39
Зарегистрирован: 2018-05-21 16:10:17

NFS и установка мира

Непрочитанное сообщение GiftWind » 2018-05-22 11:48:21

Вопрос удалось решить, спасибо.
На случай, если кому-то интересно в чём было дело и/или окажется полезным решение этой проблемы, пишу, что было неправильно сконфигурировано.

На nfs-сервере экспортировалась файловая система /usr/BSD, которая содержала /usr/BSD/obj/, /usr/BSD/src/, /usr/BSD/ports/
Выглядело так в /etc/exports/:

Код: Выделить всё

/usr/BSD/                          -alldirs        -maproot=root   -network 10.0.8.0/24
на клиентских машинах в /etc/fstab/:

Код: Выделить всё

10.0.9.10:/usr/BSD/src          /usr/BSD/src    nfs     rw      0       0
10.0.9.10:/usr/BSD/obj          /usr/BSD/obj    nfs     rw      0       0
10.0.9.10:/usr/BSD/ports        /usr/BSD/ports  nfs     rw      0       0
После прочтения статей, настройки скорректировали:

на сервере в /etc/exports/:

Код: Выделить всё

/usr/BSD/ports                          -alldirs        -maproot=root   -network 10.0.8.0/24
/usr/BSD/obj    -ro                     -allsirs        -maproot=root   -network 10.0.8.0/24
/usr/BSD/src    -ro                     -allsirs        -maproot=root   -network 10.0.8.0/24
на клиентских машинах в /etc/fstab/:

Код: Выделить всё

10.0.9.10:/usr/BSD/src          /usr/BSD/src    nfs     ro,bg      0       0
10.0.9.10:/usr/BSD/obj          /usr/BSD/obj    nfs     ro,bg      0       0
10.0.9.10:/usr/BSD/ports        /usr/BSD/ports  nfs     rw,bg      0       0
Настройки в /etc/rc.conf и на клиентах и на сервере были указаны верно, согласно handbook.