Я буду предоставлять услугу «Файловый хостинг», и мне нужно что-то, что будет работать со мной по линии и позволит проекту расширяться. Сначала я думал об одном большом сервере с RAID 5 в качестве стартапа, но потом я подумал, что было бы лучше использовать несколько серверов, так как в будущем его легче расширять и он должен быть дешевле, но я абсолютно не знаю, как эти серверы должны / могут быть связаны, и если несколько серверов будут действовать как единая система.
Можете ли вы помочь мне с идеями и ссылками на информацию о соединении нескольких серверов вместе, чтобы они работали как одна система, чтобы я мог использовать все процессоры и дисковое пространство, как если бы это был один сервер + если один сервер вышел из строя, какие варианты доступны для восстановления свои данные? и будут ли остальные серверы работать нормально?
У меня все еще есть вопросы о географически разном расположении серверов и о том, как передавать файлы из одного места в другое, но на данный момент это не является приоритетом.
Я читал об этой функции в Google, но они используют свою собственную файловую систему и другие вещи, недоступные для публики.
Начните с изучения общедоступных распределенных файловых систем, таких как GlusterFS. Подобные системы могут обеспечить резервирование и масштабирование.
Что касается распределения мощности процессора, вы можете выполнять запросы балансировки нагрузки между несколькими машинами в зависимости от того, как вы обслуживаете файлы. Такие инструменты, как HAProxy может помочь с этим.
В этой настройке вы связываете свою файловую систему с избыточными копиями файлов, чтобы при отключении узла вы не теряли доступность файлов. Точно так же HAProxy может отображать несколько разных серверов как одну машину для обслуживания запросов.
Вы можете захотеть исследовать DRDB что создает кластерное блочное устройство (поверх которого можно поставить любую файловую систему).
Эта статья о работах разработчиков IBM дает довольно хороший обзор системы. Ваш вопрос достаточно широк, чтобы вы могли написать книгу по этой теме, поэтому я думаю, что все, что мы можем сделать, - это начать.
Что-то вроде этого, любое использование для вас выглядит так, будто вы можете создать собственное облако хранения из нескольких серверов, чтобы было проще выполнять обновления и т. Д. Вы можете остановить один узел, пока работает другой, и поддерживать хранилище в рабочем состоянии.
Билл