Назад | Перейти на главную страницу

Лучший способ поделиться хранилищем между несколькими компьютерами

Мне нужно предоставить общее хранилище для нескольких узлов сервера приложений в кластере в среде Linux. Другими словами, каждый из узлов в моем кластере должен иметь возможность читать / записывать файлы в одно централизованное место (устройство NAS) в том же сегменте сети. Обратите внимание, что файлы являются двоичными, не нуждаются в управлении версиями (cvs было бы излишним) и не предназначены для хранения в базе данных - только в файловой системе.

Я сузил свои варианты до следующих:

  1. Перенесите файлы в / из NAS с помощью ftp / ftps / ftpfs. Каждый узел будет иметь доступ к ftp-клиенту, и ftp-сервер должен быть настроен.
  2. Совместное использование каталога в NAS, установка ссылки на него в каждом узле и использование протокола, такого как NFS / SMB, для выполнения фактической передачи файлов

Что лучше всего подходит для такой ситуации? Какой вариант самый быстрый? Какие-либо предостережения или проблемы (относительно доступности, параллелизма, безопасности, производительности, требуемой конфигурации и т. Д.) Вы можете придумать? Будем очень признательны за любой совет, который вы можете дать.

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

Вы должны настроить сервер для хранения файлов, а затем поделиться ими.

Если вы используете Linux на файловом сервере, вы можете использовать NFS или настроить SAMBA, а также создать и смонтировать на нем общий файловый ресурс.

Или вы можете настроить sshfs и использовать FUSE для монтирования удаленного каталога.

Для этого нет лучшей практики, кроме как выбрать вариант подключения к хранилищу, который подходит для вашей среды; если это все Linux, то NFS будет работать нормально. Или запустить NFS и SAMBA. Ничто не говорит о том, что нельзя запускать оба. И вы должны учитывать, как вы выполняете аутентификацию и какая безопасность вам нужна для файлов.

проблемы с параллелизмом? Ну как ты файлы ИСПОЛЬЗУешься? Будет ли приложение пытаться читать и писать одновременно с приложением с другого сервера? Это проблема не столько в протоколе обмена файлами, сколько в архитектуре вашего программного обеспечения.

Безопасность? Какая безопасность вам нужна? ACL с функцией поиска NTFS? Сквозное шифрование на проводе? Стандартный POSIX? Вы не говорите того, что вам нужно.

Производительность? Все они должны работать достаточно хорошо для ... ну, вы не говорите. Какая производительность вам нужна? Какую дисковую подсистему вы будете использовать? Гигабитный Ethernet? Выделенный RAID-контроллер с большим кешем? Вы объединяете сетевые карты? Какие сетевые карты? Даже дрянная дисковая подсистема будет работать, если вы ее не нажимаете, а быстрая дисковая подсистема может задохнуться при одновременной доставке данных на 25 серверов, работающих на полном газу.

А что вы имеете в виду под доступностью? Это снова проблема архитектуры, и она зависит от вашего приложения. Если вы можете кластеризовать свое хранилище, у вас будет больше доступности. Если вы просто думаете о RAID, все в порядке, пока не разрядится ваш блок питания. Если у вас нет двойных поставок. Затем он умирает, потому что они находятся на одном ИБП. Или материнская плата выходит из строя. Или ваш один RAID-контроллер умирает. Насколько у вас избыточность необходимость? И на какой бюджет?

Чтобы ответить на заданный вопрос, настройте SAMBA и NFS и посмотрите, какой из них проще всего установить на ваши рабочие станции, и приступайте к этому.

я хотел бы использовать сервер openssh с участием sshfs. Вы можете настроить его с помощью одной команды на всех ваших серверах, автоматически смонтировать и использовать ключи для аутентификации. Однако вы столкнетесь с проблемами управления версиями, если люди редактируют одни и те же файлы.

Я думаю, что наиболее распространенная практика - просто создать простой файловый ресурс. Windows 2003 и 2008 очень распространены для малого бизнеса. Если вы знакомы с Linux, вы можете попробовать что-то вроде Zentyal или Clearos с графическим интерфейсом для обмена через SMB / NFS. Вы также можете просто установить любой дистрибутив Linux и следовать документации дистрибутива для настройки любого из различных поддерживаемых методов совместного использования файлов.