Установка сервера afs
2023-08-28
·
5 мин. для прочтения
Установка сервера afs.
Содержание
1 Первоначальная установка
2 Предварительные замечания
2.1 Минимальная установка
- Для простой установки можно использовать один сервер для размещения Kerberos KDC, сервера базы данных OpenAFS и файлового сервера OpenAFS.
- Для производственной среды рекомендуется развернуть Kerberos KDC на выделенном безопасном сервере, серверы баз данных OpenAFS — на трех отдельных компьютерах, а при необходимости — несколько файловых серверов.
2.2 Дисковые разделы
- Понадобится хотя бы один раздел на файловом сервере для хранения томов для AFS.
- Его надо будет примонтировать в
/vicepa
. - Если необходимо несколько разделов, их можно смонтировать в
/vicepb
,/vicepc
и т. д. - Файловый сервер использует файловое хранилище (не блочное).
- Файловые системы: ext3, ext4, xfs.
- Лучше создать для этого отдельную партицию.
2.3 Сеть
- DNS должен работать правильно при прямом и обратном поиске имён.
- Серверам необходим хотя бы один интерфейс IPv4, доступный клиентам AFS. Интерфейсы IPv6 пока не поддерживаются.
2.4 Синхронизация времени
- Kerberos и, следовательно, OpenAFS требуют хорошей синхронизации часов между клиентами и серверами.
3 Брандмауэр
- Настройки брандмауэра по умолчанию в RHEL будут блокировать сетевые порты, используемые Kerberos и OpenAFS.
- Необходимо настроить правила брандмауэра на серверах, чтобы разрешить трафик через эти порты.
3.1 Сервер Kerberos
- На сервере Kerberos откройте порты udp 88 и 646:
firewall-cmd --zone=public --add-port=88/udp firewall-cmd --zone=public --add-port=646/udp firewall-cmd --runtime-to-permanent
3.2 Сервер баз данных OpenAFS
- На серверах баз данных OpenAFS откройте udp-порты 7002, 7003 и 7007:
firewall-cmd --zone=public --add-port=7002/udp firewall-cmd --zone=public --add-port=7003/udp firewall-cmd --zone=public --add-port=7007/udp firewall-cmd --runtime-to-permanent
3.3 Файловый сервер OpenAFS
- На файловых серверах OpenAFS откройте udp-порты 7000, 7005 и 7007:
firewall-cmd --zone=public --add-port=7000/udp firewall-cmd --zone=public --add-port=7005/udp firewall-cmd --zone=public --add-port=7007/udp firewall-cmd --runtime-to-permanent
3.4 Клиент OpenAFS
- Клиенты OpenAFS используют порт udp 7001. Откройте порт udp 7001 в любой системе, в которой установлен клиент OpenAFS:
firewall-cmd --zone=public --add-port=7001/udp firewall-cmd --runtime-to-permanent
4 Установка Kerberos
- Установите серверный и клиентский пакеты Kerberos:
dnf install -y krb5-server krb5-workstation krb5-libs
- Замените все примеры имени хоста
kerberos.example.com
фактическим именем вашего сервера Kerberos в файле/etc/krb5.conf
.
4.1 Сервер Kerberos
- На машине сервера Kerberos настройте замените каждый экземпляр
EXAMPLE.COM
именем своей области в следующих файлах конфигурации: /etc/krb5.conf
/var/kerberos/krb5kdc/kdc.conf
/var/kerberos/krb5kdc/kadm5.acl
- Замените все примеры имени хоста
kerberos.example.com
фактическим именем вашего сервера Kerberos в файле/etc/krb5.conf
. - Создайте базу данных Kerberos с помощью команды
krb5_util
(вам будет предложено ввести основной пароль):/usr/sbin/kdb5_util create -s
- Запустите серверы Kerberos:
systemctl start krb5kdc systemctl start kadmin systemctl enable krb5kdc systemctl enable kadmin
5 Компиляция программного обеспечения
5.1 Компиляция сервера
- Исходные архивы OpenAFS доступны на веб-сайте OpenAFS.
- Нужно будет собрать собрать RPM-пакеты с помощью команды
rpmbuild
. - Установите необходимое программное обеспечение:
dnf install rpm-build yum-utils make perl libtool bzip2 wget mock elfutils-libelf-devel libtirpc-devel -y
- Установите версия ядра для разработчиков:
dnf install -y "kernel-devel-uname-r == $(uname -r)" dnf install -y elfutils-devel dnf install -y dkms gcc kernel-devel kernel-headers
5.1.1 Готовый пакет srpm
- К сожалению, для более новых версий пакетов нет.
- Скачайте пакет исходных кодов для openafs:
wget https://www.openafs.org/dl/openafs/<version>/openafs-<version>-1-src.rpm
- Здесь
<version>
указывается версия OpenAFS, которую вы хотите установить, например1.8.10
:wget https://www.openafs.org/dl/openafs/1.8.10/openafs-1.8.10-1.src.rpm
5.1.2 Сделать собственный srpm
- Создайте структуру каталогов для сборки:
mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
- Скачайте исходники OpenAFS:
cd ~/rpmbuild/SOURCES wget https://www.openafs.org/dl/openafs/1.8.13.2/openafs-1.8.13.2-src.tar.bz2 wget https://www.openafs.org/dl/openafs/1.8.13.2/openafs-1.8.13.2-doc.tar.bz2
- Используйте стандартный шаблон из исходников:
tar xjvf openafs-1.8.13.2-src.tar.bz2 cd openafs-1.8.13.2/src/packaging/RedHat ./makesrpm.pl ~/rpmbuild/SOURCES/openafs-1.8.13.2-src.tar.bz2 /root/rpmbuild/SOURCES/openafs-1.8.13.2-doc.tar.bz2 mv openafs-1.8.13.2-1.src.rpm ~/rpmbuild/SRPMS
5.1.3 Компиляция пакета
- Установите необходимы зависимости:
cd ~/rpmbuild/SRPMS dnf builddep openafs-1.8.13.2-1.src.rpm
- Откомпилите исходные коды:
rpmbuild --rebuild --define "build_userspace 1" --define "build_modules 1" --define "kmod_kernel_versions $(uname -r)" openafs-1.8.13.2-1.src.rpm
- Опции:
build_userspace 1
: собирать пользовательские компоненты;build_modules 1
: собирать модули ядра;kmod_kernel_versions
: версия ядра для модулей.
- Можно не компилировать модули ядра, соответственно вы не сможете использовать сервер как клиента.
- Можно откомпилить всё с поддержкой моделей ядра (см. компиляцию для клиентов).
- Можно собрать и через mock (при желании, тогда ручной сборки не надо):
mock -r epel-9-x86_64 --rebuild ~/rpmbuild/SRPMS/openafs-*.src.rpm
- После успешной сборки пакеты будут в:
ls ~/rpmbuild/RPMS/x86_64/openafs-*.rpm
5.1.4 Установка пакетов
- Установите пакеты:
sudo dnf -y install ~/rpmbuild/RPMS/x86_64/openafs-1.8.13.2-*.rpm ~/rpmbuild/RPMS/x86_64/openafs-{client,server,krb5,authlibs,compat,docs}-1.8.13.2-*.rpm ~/rpmbuild/RPMS/x86_64/{dkms,kmod}-openafs-1.8.13.2-*.rpm
5.2 Компиляция клиента
Модуль ядра OpenAFS должен соответствовать вашей версии ядра.
Если вы не поддерживаете локальный репозиторий, который отслеживает каждый выпуск ядра и обновляет его сборки kmod, вам нужно будет использовать механизм DKMS для установки модуля ядра.
Установите необходимое программное обеспечение:
dnf install rpm-build yum-utils make perl libtool bzip2 wget -y
Скачайте пакет исходных кодов для openafs:
wget https://www.openafs.org/dl/openafs/<version>/openafs-<version>-1-src.rpm
Здесь
<version>
указывается версия OpenAFS, которую вы хотите установить, например1.8.10
:wget https://www.openafs.org/dl/openafs/1.8.10/openafs-1.8.10-1.src.rpm
Установите необходимы зависимости:
dnf builddep openafs-<version>-1.src.rpm
Установите версия ядра для разработчиков:
dnf install -y "kernel-devel-uname-r == $(uname -r)" dnf install -y elfutils-devel dnf install -y dkms gcc kernel-devel kernel-headers
Откомпилите исходные коды:
rpmbuild --rebuild openafs-<version>-1.src.rpm
6 Установка сервера OpenAFS
6.1 Установка сервера
- Установите серверные пакеты OpenAFS из каталога RPMS rpmbuild:
cd ~/rpmbuild/RPMS/x86_64 dnf install -y openafs-<version>-1.el9.x86_64.rpm openafs-server-<version>-1.el9.x86_64.rpm openafs-docs-<version>-1.el9.x86_64.rpm openafs-krb5-<version>-1.el9.x86_64.rpm
6.2 Установка клиента
- При установке менеджера кэша на сервере OpenAFS сначала удалите символические ссылки, созданные bosserver. Это будет мешать, если клиент установлен.
test -h /usr/vice/etc/ThisCell && rm /usr/vice/etc/ThisCell test -h /usr/vice/etc/CellServDB && rm /usr/vice/etc/CellServDB
- Обязательно перезагрузитесь перед установкой модуля ядра OpenAFS.
- Установите пакеты OpenAFS из каталога RPMS rpmbuild:
cd ~/rpmbuild/RPMS/x86_64 dnf install -y openafs-<version>-1.el9.x86_64.rpm openafs-client-<version>-1.el9.x86_64.rpm openafs-krb5-<version>-1.el9.x86_64.rpm dkms-openafs-<version>-1.el9.x86_64.rpm