В AWS-EC2 я настроил кластер виртуальных машин Linux, состоящий из файлового сервера NFS и множества клиентов. Если количество клиентов превышает ~ 20, при интенсивном вводе-выводе наблюдается потеря целостности файла: например, gzip-файлы, записанные клиентом на сервер, повреждены.
Мне интересно, какой набор параметров NFS лучше всего увеличить надежность передачи данных в этой среде.
На данный момент флаги монтирования:
Flags: rw,vers=3,rsize=262144,wsize=262144,hard,proto=tcp,timeo=600,retrans=2
Размер MTU - 1500, количество демонов NFS - 8.
Должен ли я уменьшить rsize & wsize ниже MTU и увеличить количество демонов NFS?
Есть ли что-нибудь еще, что можно улучшить?
Большое спасибо.
Для размера используемого кластера может быть хорошей идеей рассмотреть возможность перехода на параллельную файловую систему, например блеск. В качестве альтернативы, если кластер настроен правильно, каждый узел должен знать о каждом другом узле либо через DNS, либо путем поиска в /etc/hosts
и должны иметь соответствующие ключи ssh для доступа к ним без пароля.
В этом случае каждый узел может просто скопировать файлы по завершении вычислений / сжатия, что устранит необходимость в NFS. Хотя это решение, вероятно, не даст оптимальной производительности, в зависимости от характера виртуализации вычислительных узлов, сети и хранилища оно может быть хорошим вариантом.
Какую систему управления / инициализации кластера вы используете? Обычно во время настройки головного узла также настраивается соответствующее общее хранилище для вычислительных узлов. Используя такой инструмент, как Warewulf или ГОРНЫЕ ПОРОДЫ может помочь обеспечить правильную подготовку вычислительных узлов, а также множество руководств и справочных проектов по настройке кластеров с помощью этих инструментов, доступных в Интернете.