прозрачное управление нулями файловой системы на узле кластера
У меня есть кластер из 5 узлов, на узле 1 находится большая файловая система, экспортированная через NFS на другие узлы.
На других узлах для нуля используются быстрые диски nvme.
Я хотел бы призвать пользователей как можно больше работать с нуля, поэтому я хотел бы предложить процедуру, максимально прозрачную для ее использования, с минимальным влиянием на конвейер анализа.
Для простоты предположим, что пользователь работает, запрашивая у менеджера ресурсов (slurm) только интерактивные сеансы.
Лучший способ: когда вам нужен файл, который присутствует в NFS, просто прочитайте из NFS, но когда вы пишете, изменяете/создаете файл из узла (или читаете только что созданный файл), используйте nvme. Кажется, для этой цели можно использовать OverlayFS, наложив царапину на NFS.
Но как быть в следующей ситуации?
- пользователь завершает интерактивный сеанс
- пользователь запускает интерактивный сеанс на другом узле
На новом узле файлы, созданные (или измененные) на предыдущем узле, недоступны. Как правильно синхронизировать данные, созданные на рабочем диске, с точкой монтирования NFS, чтобы они были доступны другим узлам?
Такая ситуация не является частой (раз в день, более или менее), поэтому допустимы затраты времени, необходимые для завершения сеанса, а также необходимость запуска сценария (пользовательского пространства) в конце каждого интерактивного сеанса.
Я предполагаю, что использование luster или другой распределенной файловой системы может быть лучшим решением, но я не эксперт и боюсь использовать их в производстве, к тому же соединение между узлами не очень быстрое (всего лишь Ethernet 10 ГБ).