Я использую платформу Windows для настройки системы обмена файлами через Интернет. Более подробно, отдельные пользователи могут загружать и обмениваться документами через веб-интерфейс (контент может быть большим документом, например, видеофайлами), аналогично Google Docs.
Моя текущая проблема - как сделать хранилище масштабируемым? Более подробно, у меня есть 4-5 интерфейсных веб-серверов (для создания фермы веб-серверов), и я хочу знать, как настроить систему хранения для хранения загруженных файлов.
Я хочу, чтобы объем хранилища увеличивался автоматически, т.е. каждый веб-сервер, похоже, использует неограниченное дисковое пространство (нет необходимости решать проблему переполнения диска); другая проблема заключается в том, что я не знаю, как хранить файлы эффективно и надежно (например, если каждый веб-сервер имеет свое отдельное хранилище, предположим, что abc.wmv хранится в хранилище веб-сервера A, тогда, если веб-сервер A упадет, никто не сможет получить доступ к abc .wmv). Еще одна проблема, о которой я могу подумать, заключается в том, что если я увеличу количество интерфейсных веб-серверов для нового веб-сервера, как решить, какие загруженные файлы следует сохранить (нужно ли мне перенести некоторые файлы с других веб-серверов на новый веб-сервер) ?
Я собираюсь использовать SAN, но не уверен, сможет ли SAN решить все проблемы. Я хочу узнать о некоторых передовых методах решения этой проблемы.
заранее спасибо, Джордж
Есть несколько способов сделать это, но я бы порекомендовал NAS, который управляет собственной файловой системой. Однако это действительно зависит от NAS. Мой опыт в основном связан с NetApp, и он может легко удовлетворить ваши запросы в дополнение к предоставлению дополнительных функций (таких как Disk De-dupe и расширенная система моментальных снимков). Аппаратное обеспечение NetApp чрезвычайно масштабируемо, позволяет легко наращивать объем и поддерживает множество различных сетевых протоколов. Однако, как и за любой профессиональный SAN / NAS, за это придется платить.
Что касается нижнего уровня, вы можете попробовать что-нибудь вроде дисковой станции Synology DJ509 +. Я разговаривал только с людьми, которые его использовали, но многие «корпоративные» ИТ-специалисты были впечатлены его гибкостью и низкой стоимостью.
http://www.synology.com/us/products/DS509+/index.php
Самый дешевый метод - это сделать что-то вроде OpenSolaris и ZFS. Вы можете собрать собственное оборудование и создать свой собственный том RAID. Я не знаю никого, кто бы использовал его в ситуации, подобной вашей, но я слышал, что многие люди были впечатлены его надежностью.
Вероятно, вам понадобится общее хранилище, такое как SAN, чтобы вы могли централизованно управлять данными и создавать резервные копии (и все это было бы синхронизировано). Вы не упоминаете, какую нагрузку вы ожидаете ... дюжину пользователей, сотни? ... так что ваши интерфейсные серверы могут быть немного излишними, если их четыре или пять.
Использование внутреннего массива хранения упростит вашу настройку и управление, а также позволит вам добавлять веб-серверы, если вы обнаружите, что они необходимы. Затем вам нужно сосредоточиться на настройке сверхмощного хранилища и резервного копирования. То есть RAID 10, а также схемы хранения резервных копий для их резервного копирования в случае сбоя RAID. Опять же, вы не упоминаете, насколько интенсивным будет ваше использование и какая нагрузка на него будет, поэтому я не знаю, хотите ли вы удвоить свое оборудование в качестве резервной копии на случай сбоя SAN и / или настройки репликация данных между узлами SAN (при необходимости по высокоскоростному каналу в разные географические районы).
Это может очень быстро стать очень дорогим, и вам даже может потребоваться обратиться за консультацией в компанию, которая специализируется на репликации больших объемов данных. Если вы небольшой стартап, вы можете подумать о настройке выделенного NAS для хранения и использования чего-то вроде DRBD для RAID через Ethernet в разных местах. Различные возможности для рассмотрения, но они сильно влияют на бюджет и зависят, опять же, от вашего бюджета, опыта и необходимых ожиданий по времени безотказной работы (домашние проекты - это одно, а удержание обычных пользователей в малом бизнесе - другое, а оборудование, необходимое для поддержания потока информации о кредитных картах клиентов и где час простоя может обойтись вашей компании в несколько тысяч долларов, а ваша шея будет очередной) ...
Вам нужен MogileFS: http://www.danga.com/mogilefs/ У нас много-много терабайт (петабайт еще? Не проверили) данных в MogileFS, и он продолжает довольно хорошо масштабироваться.
Я бы подумал о NetApp, они не самые дешевые, но они довольно гибкие и могут предложить вам общие ресурсы NFS с тонким выделением ресурсов, которые, кажется, соответствуют вашим требованиям и могут быть хорошо масштабированы (около 1,2 ПБ iirc).
В качестве альтернативы вы можете взглянуть на технологию HP «массового горизонтального масштабирования», не вся она есть на их сайте, но если вы поговорите с их продавцами хранилищ, у них есть вещи, которые увеличиваются до эксабайт.