Инструкция по EOS. (вариант 2)

Описание настроек 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 серверы. Для всех клиентов и серверов пока один geotagRU: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 не работает со вторичными группами,
записывать в директорию может только владелец.