HOWTO portage & NFS

Материал из Gentoo Linux Wiki

Перейти к: навигация, поиск
Вернуться в раздел руководства

Содержание

[править] Постановка проблемы

Несколько компьютеров в локальной сети обновляют портеджи слишком долго. Тратится много трафику, занимается канал...

[править] Решение

Доступный всем NFS раздел с /usr/portage. Один компьютер синхронизирует портеджи каждый день, а остальные монтируют через NFS папку с ними.

[править] Вкратце

  1. Включить поддержку NFS в ядре.
  2. Установить nfs-utils.
  3. Отредактировать /etc/fstab для автомонтирования папки с портеджами.

[править] Преимущества

  • Только один компьютер должен синхронизировать портеджи.
  • Не нужно устанавливать никакие rsync-серверы.
  • Общая папка /usr/portage/distfiles/ избавляет от необходимости скачивать из интернета/локального фтп-сервера одни и теже файлы


[править] Предварительная настройка

  • Необходимо включить поддержку NFS в ядре на всех компьютерах, на которых будет использоваться NFS-раздел.
Code: Built-in Config
File systems ---> 
Network File Systems --->
<*> NFS file system support                                                                                                
[*]   Provide NFSv3 client support                                                                                         
[ ]   Provide NFSv4 client support (EXPERIMENTAL)                                                                          
[ ]   Allow direct I/O on NFS files (EXPERIMENTAL)                                                                         
<*> NFS server support                                                                                                     
[*]   Provide NFSv3 server support                                                                                         
[ ]     Provide NFSv4 server support (EXPERIMENTAL)                                                                        
[ ]   Provide NFS server over TCP support (EXPERIMENTAL)                                                                   
...
  • Также необходимо установить пакет nfs-utils
emerge nfs-utils

и добавить их в автозагрузку

 #rc-update add nfs default
 #rc-update add portmap default
 #rc-update add netmount

[править] Настройка NFS и cron'а

  • На компьютере, который будет выступать в качестве сервера, добавим экспортируемые папки:
Файл: /etc/exports
...
/usr/portage/           YOUR.LAN.IP.RANGE/MASK(sync,rw,no_root_squash)
...
  • На компьютерах, которые будут использовать NFS раздел с портеджами, добавим в /etc/fstab следующее:
Файл: /etc/fstab
...
SERVER_IP:/usr/portage		/usr/portage		nfs		bg,hard	0 0
...

После рестарта сервисов, компьютеры будут использовать 1 общий NFS раздел с /usr/portage/. Осталось добавить в cron автоматическую синхронизацию портеджей на главном компьютере, а на всех остальных - обновление метаданных.

На NFS сервере:

#crontab -e
0 0 * * * emerge --sync > /dev/null 2>&1 || true --nospinner

На клиентах:

#crontab -e
10 0 * * * emerge --metadata

Теперь каждую полночь на сервере будет выполняться синхронизация портеджей. А в 00-10 будут обновляться метаданные у клиентов.

[править] Дополнительная информация

Личные инструменты