Параллельные вычисления в ИММ УрО РАН
 
 

Коротко о синхронизации файлов в работе с удаленной суперЭВМ

Н.В. Гусева, А.В. Коновалов

Работа выполнялась при частичной поддержке гранта РФФИ 04-07-90138

Разработанная авторами система синхронизации файлов предназначена для автоматизации процесса копирования файлов в работе с удаленной машиной. Файл, измененный на одной машине, через какое-то время будет скопирован на другую.

Ниже в качестве примера локальной машины используется um16, а в качестве удаленной суперЭВМ - МВС-1000М в Межведомственном суперкомпьютерном центре (г. Москва), которая для краткости в дальнейшем называется beta.

Использование системы синхронизации файлов предполагает передачу пароля для удаленной суперЭВМ (запуск программы set-pw) и собственно запуск программы-синхронизатора scp-sh из каталога синхронизации. Пароль, переданный однажды, обеспечивает, как правило, многократную синхронизацию файлов. Синхронизация файлов может осуществляться как по запросу пользователя, так и автоматически, при этом первый запуск системы рекомендуется осуществить вручную. Взаимодействие системы с пользователем строится исключительно на служебных файлах. Ниже приводятся краткие сведения о системе, необходимые для ее использования. Подробное описание дано по адресу http://parallel.imm.uran.ru/freesoft/sync/sync.htm.

Подготовка к первому запуску системы

1. Переписать необходимые утилиты в каталог bin на um16 командой r-init:

um16:~$ r-init

Всего перепишется 3 утилиты:

  • r-pas для передачи пароля для beta (запуска программы set-pw),
  • r-syn для запуска синхронизации (вызова программы scp-sh),
  • r-crontab для включения автоматического режима синхронизации.

2. Отредактировать, при необходимости,

  • r-pas, r-syn, подставив свои параметры для set-pw и scp-sh;
  • r-crontab непосредственно перед включением автоматической синхронизации.

3. Рекомендуется в своем домашнем каталоге создать новый каталог (в наших примерах это- test1), в который поместить файлы, предназначенные для синхронизации.

Синхронизация файлов по запросу пользователя

1. Перейти в каталог синхронизации (test1), сделав его текущим командой cd:

um16:~$ cd test1

2. Передать пароль для удаленной машины, используя r-pas. Если пароль уже был передан, то пользователь получит сообщение 'Password was set already'.

um16:~/test1$ r-pas

3. Запустить синхронизацию файлов, используя r-syn:

um16:~/test1$ r-syn

Автоматическая синхронизация файлов

Для включения автоматической синхронизации файлов используется команда crontab, которой в качестве параметра передается файл с подготовленной пользователем информацией о том, когда, откуда (из какого каталога) и какую программу запускать (в наших примерах это файл r-crontab).

1. Передать пароль для удаленной машины, если он еще не был передан (см. Синхронизация файлов по запросу пользователя, пункты 1, 2).

2. Отредактировать файл r-crontab: время запуска, каталог синхронизации.

Каждая строка файла имеет 5 полей для описания времени запуска программы, а именно: минуты (0-59), часы (0-23), дни месяца (1-31), месяцы (1-12), дни недели (0-7, где 0 или 7 ? воскресенье). При этом звездочка (*) в поле означает весь допустимый диапазон; слэш (/) используется для задания шага.

Ниже приведен пример файла r-crontab, состоящий из 2-х строк. В 1-ой строке команда (~/bin/r-syn) запускается из каталога test1 каждые 20 минут по рабочим дням, при этом информация об аварийных остановах не сохраняется (>/dev/null 2>&1); во 2-ой строке ? из test2 в рабочие дни каждый час. Вторая строка закомментирована (#).

*/20 * * * 1-5 cd ~/test1; ~/bin/r-syn >/dev/null 2>&1

#0 */1 * * 1-5 cd ~/test2; ~/bin/r-syn >/dev/null 2>&1

3. Выполнить команду crontab, указав в качестве параметра файл r-crontab (у нас из каталога bin):

um16:~$ crontab ~/bin/r-crontab

Примечание. Если синхронизация файлов происходит автоматически и возникает необходимость внесения изменений в файл r-crontab, то проще:

1) сначала отключить синхронизацию

um16:~$ crontab -r

2) затем отредактировать r-crontab

3) снова включить автоматический режим синхронизации, т.е. выполнить

um16:~$ crontab ~/bin/r-crontab

P.S. Посмотреть содержимое r-crontab можно, выполнив:

um16:~$ crontab -l

Совет. На период отпуска автоматическую синхронизацию лучше отключить.

Служебные файлы

Имена всех служебных файлов, кроме connector, начинаются с точки (.), связаны с именем удаленной машины и имеют в зависимости от назначения соответствующее окончание (расширение), в частности:

log-файл содержит информацию о работе системы, прежде всего, о переписи файлов, а также при отсутствии пароля просьбу его передать ('Please, :'). Если представляющий интерес файл менялся и локально, и удалённо, то он не копируется ('Can't copy :'), а разрешение этой конфликтной ситуации возлагается на пользователя.

В log-файл записывается только новая информация.

saved.date-файл обновляется при каждом успешном завершении запуска синхронизатора, поэтому при отсутствии записи в log-файл, особенно в автоматическом режиме, обновление saved.date-файла может служить признаком нормальной работы синхронизатора (т.е. запуска по расписанию).

Служебные файлы, за исключением log-файла, пользователю лучше не трогать.