Можно ли использовать autofs для вычислительного кластера? [закрыто]

Я бы предпочел perl для этого:

$ cat ip.txt 
He drove his car to the cinema. He then went inside the cinema to purchase tickets, and afterwards discovered that it was more then two years since he last visited the cinema.

$ # forward counting is easy
$ perl -pe 's/\bcinema\b/$&.++$i/ge' ip.txt 
He drove his car to the cinema1. He then went inside the cinema2 to purchase tickets, and afterwards discovered that it was more then two years since he last visited the cinema3.
  • \bcinema\b слово для поиска, используя границы слов, чтобы оно не совпадало как часть другого слова. Например, \bpar\b не будет соответствовать apart или park или spar
  • ge и g для глобальной замены. e позволяет использовать код Perl в разделе замены
  • $&.++$i представляет собой конкатенацию совпадающего слова и предварительно увеличенного значения $i, которое имеет значение по умолчанию значение 0


Для реверса нам нужно сначала получить счетчик...

$ c=$(grep -ow 'cinema' ip.txt | wc -l) perl -pe 's/\bcinema\b/$&.$ENV{c}--/ge' ip.txt 
He drove his car to the cinema3. He then went inside the cinema2 to purchase tickets, and afterwards discovered that it was more then two years since he last visited the cinema1.
  • c становится переменной окружения, доступной через хэш %ENV

или с помощью perl в одиночку, проглотив весь файл

perl -0777 -pe '$c=()=/\bcinema\b/g; s//$&.$c--/ge' ip.txt 
1
18.10.2018, 07:20
1 ответ

Да, autofs (, также известная как «automount» ), подходит для этого сценария, когда вы хотите совместно использовать каталоги, такие как /usr/local и /opt, между несколькими вычислительными узлами.

Вам также нужен протокол для удаленного доступа к файловой системе с сервера или распределенной системы, из которых NFS, возможно, является более простым выбором, но есть и многие другие. Autofs может помочь вам установить эти общие ресурсы на ваших узлах.

Если вы используете дистрибутив Linux, использующий systemd (, что, скорее всего, так и есть ),вы можете использовать systemd automount unit для настройки automount (= autofs )для монтирования /usr/local и /opt, которые вы можете настроить напрямую из /etc/fstab.

Например, если у вас есть сервер NFS "fserv1" и вы используете эти два монтирования только для чтения -с него:

# entries in /etc/fstab for shared directories:
fserv1:/export/usr_local  /usr/local  nfs  ro  0 0
fserv1:/export/opt        /opt        nfs  ro  0 0

Затем вы можете настроить systemd для их автоматического монтирования, добавив noauto,x-systemd.automountв параметры монтирования, например:

# entries in /etc/fstab for shared directories:
fserv1:/export/usr_local  /usr/local  nfs  ro,noauto,x-systemd.automount  0 0
fserv1:/export/opt        /opt        nfs  ro,noauto,x-systemd.automount  0 0

См. эту статью в вики Arch Linux для получения более подробной информации о настройке systemd для автоматического монтирования каталогов. (Ничего из этого не относится конкретно к Arch Linux, их вики — просто очень хороший источник документации по Linux в целом.)

Что касается вашего вопроса о том, что использование общих библиотек считается доступом для запуска автоматического монтирования, да, это сработает, как и ожидалось. Система autofs реализована внутри ядра Linux, поэтому любой доступ к любому файлу в этом каталоге вызовет монтирование и продолжит доступ к файлу только после завершения монтирования. Запуск двоичного файла или загрузка разделяемой библиотеки — это обычный доступ к файлам, который, как и ожидалось, вызовет автоматическое монтирование.

Как уже упоминалось, вам по-прежнему необходимо использовать протокол удаленной файловой системы, такой как NFS, поэтому просто монтировать их при загрузке напрямую (вообще пропуская autofs )определенно является вариантом... Основные преимущества использования autofs/automount заключаются в том, что загрузка машины не будет блокироваться до тех пор, пока монтирование не будет готово, или произойдет сбой, если монтирование недоступно (, например, если сервер не работает или в сети произошел сбой ), а также autofs/automount может повторить попытку монтирование файловой системы, которая ранее была недоступна, потенциально повышая надежность системы.

0
28.01.2020, 00:24

Теги

Похожие вопросы