Описание настроек EOS
0. Добавить FST.
На самой машине FST , для примера,
её FQDN(A fully qualified domain name) — eos-fxxx.jinr.ru
— установить eos:
rsync -aH eos-f000:/etc/yum.repos.d/eos.repo /etc/yum.repos.d/eos.repo
yum -y -d 1 install eos-server eos-client eos-testkeytab eos-fuse jemalloc
— на каждой партиции (ZFS) создать файл .eosfsuuid:
for p in /e/p0? ; do
uuidgen > $p/.eosfsuuid
done
— скопировать конфиги:
rsync -aH eos-f000:/etc/sysconfig/eos* /etc/sysconfig/
rsync -aH eos-f000:/etc/profile.d/eos.* /etc/profile.d/
— разрешить запуск и запустить fst:
systemctl enable eos@fst
systemctl restart eos@fst
systemctl status eos@fst
На машине mgm — eos-m01.jinr.ru :
— подключить fst к eos :
eos -b node set eos-fxxx.jinr.ru on
eos -b node ls eos-fxxx.jinr.ru
— подключить файловые системы к eos :
nid — последний id + 1 в «eos -b fs ls», 3-я колонка
ngr — последний номер + 1 schedgroup в «eos -b fs ls», 5-я колонка
только число без «default.»
{{{
eos -b fs ls | tail -2
eos-f033.jinr.ru 1095 136 /e/p04 default.4 RU:JINR:LIT
}}}
nid=137
ngr=5
4-е партиции для fst, FSTHN=eos-f000.jinr.ru :
for p in 1 2 3 4 ; do
test $ngr -gt 4 && ngr=1
fsu=`ssh $FSTHN «cat /e/p0$p/.eosfsuuid»`
eos -b fs add -m $nid $fsu $FSTHN.jinr.ru:1095 /e/p0$p default.$ngr rw
ngr=`expr $ngr + 1`
nid=`expr $nid + 1`
done
— разрешить gateway
vid add gateway eos-fxxx.jinr.ru
Убрать FST из EOS.
— убрать fs’ы по id : в «eos -b fs ls eos-fxxx.jinr.ru»
eos -b fs config <nnn> configstatus=empty
eos -b fs rm <nnn>
— убрать машину из EOS
eos -b node set eos-fxxx.jinr.ru off
eos -b node rm eos-fxxx.jinr.ru:1095
PS: После сбоя EOS , проверить/восстановить некотрые параметры:
space set default on
space define default 50 4
space config default space.autorepair=on
space config default space.balancer=on
space config default space.autorepair=on
space config default space.converter=on
space config default space.geobalancer=on
space config default space.groupbalancer=on
space config default space.geobalancer=on
for name in `seq 1 4`; do eos -b group set default.$name on; done
nid=1
ngr=5
for i in `seq -w 9 33` ; do
FSTHN=eos-f0$i
for p in 1 2 3 4 ; do
test $ngr -gt 4 && ngr=1
fsu=`ssh $FSTHN «cat /e/p0$p/.eosfsuuid»`
eos -b fs add -m $nid $fsu $FSTHN.jinr.ru:1095 /e/p0$p default.$ngr rw
ngr=`expr $ngr + 1`
nid=`expr $nid + 1`
done
done
1. Квоты (quota).
man eos-quota
Квоты задаются на дерево директорий. Задание квоты для /eos/nica/mpd означает ограничение суммы всех файлов в дереве директорий, начинающихся с /eos/nica/mpd.
Квоты можно задавать в байтах, кило/мега/тера байтах.
Заданная квота делится на число stripes, указанное для этого дерева в attr, см. attr.
Квоту можно задавать для пользователя, группы, как для одного параметра, так и для обоих.
Примеры :
Задание квоты для пользователя:
eos -b quota set -u vmitsyn -v 52428800 /eos/user/v/vmitsyn/
Задание квоты для группы:
eos -b quota set -g mpd -v 100K /eos/nica/test
Смотреть квоту:
eos -b quota ls /eos/nica/test
2. Атрибуты (attr).
man eos-attr
Атрибуты задаются так же как и квоты на дерево директорий.
Несколько особо важных атрибутов:
- sys.acl — задание прав доступа к директории, или всему дереву директорий. Например :
eos -b attr -r set sys.acl=u:vmitsyn:rwqcmxi,g:mpd:rwqcmxi,u:vmi:rwqcmxi /eos/nica
подробное описание в: https://github.com/cern-eos/eos/blob/master/doc/configuration/permission.rst
- default=replica — хранение файлов с репликами
- sys.forced.replica — хранение файлов с репликами
- sys.forced.stripes — на сколько fst-серверов записывать файл, файл режется на указанное число кусков и каждый кусок пишется параллельно на свой fst .
Примеры:
eos -b attr -r set sys.forced.stripes=16 /eos/nica/mpd — файл режется на указанное число кусков(16)
eos -b attr -r set default=replicas /eos/nica — задаёт хранение с репликами для дерева по умолчанию
eos -b attr -r set sys.forced.replica /eos/nica/mpd — задаёт хранение с репликами для дерева даже если в верхней директории указан другой метод
смотреть атрибуты:
eos -b attr ls /eos/nica/bmn
3. Доступ и мэпинг удалённый пользователей, групп и машин (vid).
man eos-vid
Смотреть весь мэпинг:
eos -b vid ls
Для машин, на которых смонтировано дерево /eos:
eos -b vid add gateway lxmpd-ui.jinr.ru
eos -b vid add gateway 10.*.*.*
(уже сделано для всех в ЛИТ)
Для удалённого пользователя:
eos vid set membership vmi -gids mpd,lcta —
будет доступ к директории с правами группы mpd, даже если у
пользователя нет этой группы.
Географическая метка — geotag, определяет ближайшие клиенты и fst серверы. Для всех клиентов и серверов пока один geotag — RU:JINR:LIT.
У fst серверов geotag можно задать в его конфигурации, для клиентов:
eos -b vid set geotag 10.0.0.0/8 RU:JINR:LIT
EOS справочник : quota, attr, mapping
4. Машина для перевоначального копирования данных в /eos: eos-v04.jinr.ru
Будет использоваться для копирования накопленных данных bmn и mpd.
Для разрешения входа пользователя на машину, надо занести его username в /etc/users.allow
Рекомендуемая команда для копирования данных — rsync,
описана в /stp/EOS/client.txt
5. Создание нового пространства для групп и пользователей.
eos-m01.jinr.ru
По всем вопросам по командам, смотрите:
eos -b <команада>
Или:
man eos-<команда>
1. Группы/пользователи должны быть зарегистрированы
в центральных kerberos и ldap.
2. Вариант с регистрацией в виртуальной организации пока не реализован.
3. Доступ в пространству возможен на машинах ЦИВК/Тир2/Тир1, где
пространство EOS смонтировано, как локальная директироия в /eos/…
4. Второй метов доступа — с помощью команд, или API протокола xroot:
xrdfs, xrdcp и т,д,, и библиотек пакетов xrootd.
5.1. Создание директории для группового доступа.
Последовательность команд bash:
———————————————
GRPNAME=tstgrp # имя группы в ldap GRPSAVE=2 # число реплик каждого файла GRPQUOTA=100T # квота в /eos, если GRPSAVE=<n>, то реальная квота = GRPQUOTA/n # G-GB, T=TB GRPPATH=/eos/»$GRPNAME» # путь в /eos
eos -b mkdir -p «$GRPPATH»
eos -b chown :»$GRPNAME» «$GRPPATH»
eos -b quota set -g «$GRPNAME» -v «$GRPQUOTA» -p «$GRPPATH»
eos -b attr set sys.forced.space=default «$GRPPATH»
eos -b attr set sys.acl=g:»$GRPNAME»:rwcmx «$GRPPATH»
eos -b attr set sys.mask=775 «$GRPPATH»
eos -b attr set sys.forced.stripes=16 «$GRPPATH»
eos -b attr set sys.forced.blocksize=4k «$GRPPATH»
if test $GRPSAVE -gt 1 ; then
eos -b attr set forced.layout=replica «$GRPPATH»
eos -b attr set sys.forced.nstripes=$GRPSAVE «$GRPPATH»
else
eos -b attr set forced.layout=plain «$GRPPATH»
fi
eos -b attr set sys.owner.auth=\* «$GRPPATH»
eos -b quota ls «$GRPPATH»
eos -b attr ls «$GRPPATH»
—————————————————
5.2. Создание директории для пользователя.
Часть параметров наследуются из /eos/user.
Последовательность команд bash:
———————————————
USERNAME=tstuser
USERGRP=`id -g «$USERNAME»
USERQUOTA=100G
USERFL=`echo «$USERNAME» | cut -c 1-1`
USERPATH=»/eos/user/»»$USERFL»/»$USERNAME»
eos -b mkdir -p /eos/user/»$USERFL»/»$USERNAME»
eos -b chown «$USERNAME»:»$USERGRP» «$USERPATH»
eos -b chmod 755 «$USERPATH»
eos -b quota set -u «$USERNAME» -v «$USERQUOTA» «$USERPATH»
eos -b quota ls «$USERPATH»
eos -b attr ls «$USERPATH»
—————————————————
6. Авторизация в EOS
Авторизация по сертификату.
Работает для виртуальных организаций bmn.nica.jinr, mpd.nica.jinr.
1. Без kerberos.
{{{
klist
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_xxxx
}}}
voms-proxy-init —rfc —voms mpd.nica.jinr
voms-proxy-info -all
— след. команда нужна временно
export XrdSecGSISRVNAMES=eos-m01.jinr.ru
—
xrdcp -f -d 1 <file_src> root://eos-m01.jinr.ru//eos/….
2. С Kerberos
{{{
klist
Ticket cache: FILE:/tmp/krb5cc_xxxx
Default principal: <username>@JINR.RU
Valid starting Expires Service principal
06/10/19 13:57:16 06/11/19 14:57:16 krbtgt/JINR.RU@JINR.RU
renew until 06/20/19 13:57:16
06/10/19 13:58:12 06/11/19 13:58:12 host/eos-m01.jinr.ru@JINR.RU
renew until 06/17/19 13:57:16
}}}
voms-proxy-init —rfc —voms mpd.nica.jinr
voms-proxy-info -all
— след. команда нужна временно
export XrdSecGSISRVNAMES=eos-m01.jinr.ru
—
xrdcp -f -d 1 <file_src> ‘root://eos-m01.jinr.ru//eos/…..?xrd.wantprot=gsi,unix’
или
XrdSecPROTOCOL=gsi,unix
xrdcp -f -d 1 <file_src> root://eos-m01.jinr.ru//eos/….
}}}
P.S.: Основной метод авторизации в EOS для пользователей ОИЯИ — kerberos.
Для работы в МИВК все пользователи должны быть зарегистрированы в
kerberos ОИЯИ.
7. Установка клиента EOS и монтирование пространства в /eos
Все файлы, необходимые для установки клиента EOS и монтирования /eos, находятся на интерактивных машинах lxpub[01-05,11] в /stp/EOS/sl[67] Их можно установить на любую машину с ОС SL/CentOS/SLC/RHEL версий 6 и 7.
Зайдите на машину с правами пользователя root:
ssh root@localhost
или
sudo -i
или
su —
Скопируйте соответсвующий файл sl6.tgz, или sl7.tgz на
свою машину.
Разархивируйте в корневую директорию:
cd / && tar xvz sl<X>.tgz
Добавте переменные в окружении:
. /etc/profile.d/eos.sh
Установите нужные rpm’ы:
yum -y -d 1 install eos-fusex
Добавте сервис запуска и остановки eosxd, который монтирует и
размотирует /eos:
SL6:
chkconfig —add eosxd
chkconfig eosxd on
SL7:
systemctl enable eosxd.service
Стартуйте сервис, который смонтирует /eos:
SL6:
service eosxd start
SL7:
systemctl start eosxd.service
Для проверки:
eos whoami
/bin/ls -al /eos
На ubuntu 18.04.1 LTS можно установить eos client и монтировать
пространство /eos
Скачайте и установите ключ репозотория:
curl -sL http://storage-ci.web.cern.ch/storage-ci/storageci.key | \
sudo apt-key add —
Установите нужные пакеты:
apt-get install eos-client eos-fusex
8. Использование EOS для коллаборации NICA на ЦИВК и Тир1.
Директории для данных NICA:
/eos/nica/bmn/
/eos/nica/mpd/
Пользователь должен быть зарегистрирован в официальном
сервисе kerberos, можно проверить на любой машине ЦИВК:
klist 2>/dev/null | grep @JINR.RU
результат должен быть не пустой.
Чтение разрешено всем зарегистрированным пользователям.
Запись разрешена всем пользователям, входяшим в группу mpd,
или имеющим эту группу в списке вторичных групп:
Проверить можно командой «id»
id | grep «(mpd)»
Если результат пустой, то нет разрешения записи.
Если нет разрешения записи в /eos/nica/bmn/, /eos/nica/mpd/,
администраторы EOS могут сконфигурировать специальный mapping
в группу mpd для конкретного пользователя.
Если уже есть данные для bmn/mpd их можно переписать в
соответсвующую директорию /eos/nica.
Установлен клиент на машине, которая расположена в той же
подсети, что и EOS, и имеет интерфейс Ethernet 10Gbps:
eos-v04.jinr.ru
Для получения разрешения входа на эту машину, пишите:
vvm@jinr.ru
Копировать проще всего командой:
rsync -a —out-format=%f%L -v —progress -e «ssh -akx -l <remote_user>» \
<remote_host>:<remote_dir_tree>/ /eos/nica/mpd/<subdir>
<remote_user> может быть не зарегистрирован в Kerberos
<remote_host> может быть IP адресом
<subdir> необходимо создавать не совпадающей с имеющимися
Если процесс копирования занимает больше 24 часов, то
надо переодически продлять действия kerberos ticket.
1. После входа на машину (по ssh) выполнить:
kinit -l 24:00 -r 240:00
aklog
renew -K 60 -t &
Ваш kerberos ticket будет обновляться 240 часов = 10 суток.
Потом можно запускать команду rsync … на копирование.
9. Удалить директорию из EOS.
Удалить директорию из EOS через eos-b на сервере eos-m01.jinr.ru
1. Найти все атрибуты: eos -b attr ls <path>, path=/eos/dir
eos -b attr ls /eos/dir :
forced.layout=»replica»
sys.acl=»g:670:rwcmx»
sys.eos.btime=»1569502924.517752389″
sys.forced.blocksize=»4k»
sys.forced.checksum=»adler»
sys.forced.nstripes=»2″
sys.forced.space=»default»
sys.forced.stripes=»16″
sys.mask=»775″
sys.owner.auth=»*»
2. Удалить все атрибуты: eos -b attr rm <атрибут> <path>
eos -b attr rm forced.layout /eos/dir
eos -b attr rm sys.eos.btime /eos/dir
…
3. Проверить eos -b attr ls <path>
4. Найти все квоты: eos -b quota ls <path>, например: path=/eos/dstau/
┏━> Quota Node: /eos/dstau/
┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
│user │used bytes│logi bytes│used files│aval bytes│aval logib│aval files│ filled[%]│vol-status│ino-status│
└──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┘
nobody 0 B 0 B 0 0 B 0 B 0 100.00 % ignored ignored
root 0 B 0 B 0 0 B 0 B 0 100.00 % ignored ignored
┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
│group │used bytes│logi bytes│used files│aval bytes│aval logib│aval files│ filled[%]│vol-status│ino-status│
└──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┘
dstau 0 B 0 B 0 40.00 TB 40.00 TB 0 0.00 % ok ignored
nobody 0 B 0 B 0 0 B 0 B 0 100.00 % ignored ignored
dstau 0 B 0 B 0 40.00 TB 40.00 TB 0 0.00 % ok ignored
nobody 0 B 0 B 0 0 B 0 B 0 100.00 % ignored ignored
┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
│summary │used bytes│logi bytes│used files│aval bytes│aval logib│aval files│ filled[%]│vol-status│ino-status│
└──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┘
All users 0 B 0 B 0 0 B 0 B 0 100.00 % ignored ignored
All groups 0 B 0 B 0 40.00 TB 40.00 TB 0 0.00 % ok ignored
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
5. Удалить все квоты:
eos -b quota rm -u <user name or user id> -p <path>
eos -b quota rm -g < group name or id group > -p <path>
eos -b quota rmnode -p <path>
(указать тот ключ, что будет выведен)
6. Проверить:
mv /eos/dir /eos/tmp/dir
7. Удалить директорию:
rmdir <path>
Монтирование eos на Windows.
1. Монтированию EOS для Windows
FYI: Монтирование EOS для Windows в данный момент находится в тестовом режиме . Любые изменения, дополнения просьба присылать
Кашунину Ивану: miramir@jinr.ru
Громовой Наталье: grom@jinr.ru
2. Монтирование eos на Windows через samba.
Приведен ниже пример для \eos-samba.jinr.ru\eos-fobos
(Такую же схему доступа в /eos/… можно организовать
для других директорий. )
{{{
1. Открыть «проводник»
2. Правой кнопкой мышки нажать на «Сеть»
3. Выбрать «Подключить сетевой диск»
4. В поле «Папка» ввести: «\\eos-samba.jinr.ru\eos-fobos»
Отметить «Использовать другие учётные записи»
Можно на будущиее отметить «Восстанавливать при входе в систему»
5. Пользователь : «username»
(Пользователь должен быть зарегистрован на сервере samba За регистрацией обращаться к Громовой Наталье : grom@jinr.ru)
Ввести пароль.
Отметить «Запомнить учетные данные».
6. OK
}}}
Так как samba не работает со вторичными группами,
записывать в директорию может только владелец.