Преамбула
Нарисовалась у меня намедни проблема. У меня стоял баллансировочный nginx, а за ним 4 сервера на отдаче с зеркальными SAS-ми. Контента 80 гиг & counting… Контент мелкий и противный, отзеркалирован по каждому серверу на отдаче. Я наивно полагал что сию систему можно масштабировать по горизонтали.
Потом столкнулся с реальной Ж. При добавлении еще одного SAS-зеркала, отдача этого всего «кластера» увеличивается всего лишь на 80 мбит/с. SAS просто захлебывался в random seek’ах. Про то что это жутко тормозило все дело я молчу.
Возможно тормозила файловая система UFS2. При чем вполне возможно. И скорей всего так и было. Но переформатировать контентные серваки и поставить на них какой нить Линукс с ReiserFS и позже натолкнуться на те же грабли мне не улыбалось.
По сему я ринулся в поиски и запостил вот такую вот проблему в ru_highload
Решение было только одно: рассредоточить всю эту туеву хучу файлов по множеству винтов. Но кто и как этот хаос будет рассредотачивать? И что этими всеми винтами будет управлять?
Так я познакомился с кластерными файловыми системами
Должен сказать, я был разочарован в системе FreeBSD, ярым фанатом которой я являлся. На базе BSD на данный момент не было ни одного рабочего кластерного проекта, даже коммерческого. В то время как в линуксе уже активно штурмовали далекие горизонты кластерных систем.
Я попросил наспамить мне список каких либо проектов, чтобы рассмотреть их поближе. По ходу дела, было закуплено 4 тазика для экспериментов. Вот и сейчас пишу, а они все гудят в углу в 4 голоса…
Итак, вот список того, что я рассмотрел и поковырял.
Поверхностно изученные системы:
HyperTable (open source) – опенсорсный аналог Google BigTable. Замашки высокие. Но к сожалению, пока альфа. Дальше чтения описания не пошло )
Hadoop HDFS (open source) - Файловая система кластерного проекта Hadoop от Apache. Поверхностно напоминает IBM GPFS. Но, к сожалению, страдает отсутствием разнообразия API.
LustreFS (open source) - Кластерная файловая система от Sun Microsystems. Очень хотел ее потестировать. Но к сожалению, она настолько геморна в установке и требовательна к ядру, что мне не удалось ее поставить. Да и не сильно пытался, т.к. мне нужна система, которую можно быстро развернуть и расширить.
Kosmos FS – Еще один наворот от сочувствующих Apache. Имеет замашки HyperTable, имеет даже FUSE-модуль. Но… альфа.
ZFS – Очень неплохая разработка Sun. Мордой красна, да фичами полна. Но, насколько я понял, нормальная ее имплементация присутствует только в Solaris )) А Solaris пока трогать не будем….
Системы, к которым был проявлен непосредственный интерес и тестирование:
MogileFS – Весьма хитрая разработка от команды LiveJournal. Не знаю, кто придумал ей название, и знали ли они что это название значит в русском транслите, но «как лодку назовете…». К плюсам можно отнести: управление файлами по WebDav, распределенное реплицирование данных, мониторинг IO и FreeSpace хранилищ. К минусам можно отнести ее ДНК
Метаданные хранятся в MySQL. Т.е. на 1 запрос файла будет минимум 1 SQL запрос к базе. Туда же можно отнести изощренно-садистический способ извлечения файла из системы через десять тракеров и один веб-сервер. Нет такого понятия как «каталог» вообще. Т.е. файловая система – куча файлов. Туда же – не сохраняет вообще никакой информации о MIME. В общем, в топку.
GlusterFS – Какая то странная прослойка, которая стоит на обычных файловых системах и пытается их заставить работать как одно. Хмм.. хотя там и пишут что на этой хрени успешно работают продакшены, я ее как поставил и запустил siege… Винты затрещали, как будто никогда не слышали что такое кеширование. Ее конфигурация мне совсем не понравилась. Нет частичной репликации файлов – есть только либо полное зеркалирование по всем винтам, либо страйпинг. Кроме того, что сама на рейдах стоит… зачем? Redunancy is not our problem ) В топку.
RedHat GFS – Весьма серъезная кластерная разработка от RedHat. Очень хорошая документация. Судя по всему, матюрный статус кода. Компилируется как модуль ядра, а это значит ее можно без вопросов тупо монтировать. И не только в одном месте. Имеет distributed lock manager, что означает, что с файловой системой могут работать много станций в режиме R/W одновременно. К сожалению, Red Hat не побеспокоилась о том, как организовывать хранилище. Описано все кроме этого. Вы сможете сделать дохрена чего с этой файловой системой, но организация SAN – это ваша проблема. GFS строится на базе Linux Local Volume Management (LVM). Нужно патчить ядро. Частичной репликации данных я там не нашел. А по сему забросил.
IBM GPFS – Единственная платная файловая система из перечисленных. Очень серъезная и матюрная разработка IBM. Судя по википедии, топ 500 суперкомпьютеров работают на ней. Содержит все прелести GFS, плюс сама по себе частично или полностью реплицирует блоки данных, следит за их целостностью, производит миграцию данных внутри системы. Тестирование показало неплохую производительность даже с уровнем репликации 1. Возможно когда нибудь выложу результаты. В установке система несложная. Патчить ядро не нужно, но очень капризная к версии ядра и самого дистрибутива Linux, т.к. расчитана на RHEL или AIX. С небольшими трюками встала на CentOS.
На последней пока и остановились )
Посты
Подскажите, пожалуйста, а где можно почитать на доступном языке на счет настройки и вообще принципов работы участка
«nginx – рабочий сервер».
Поверхностно я понимаю какие на себя функции берет nginx и зачем он нужен, но хочется узнать чуть более подробно, как распределяется нагрузка с его помощью на рабочие сервера.
Спасибо.
Ок, чуть позже вкратце напишу. А вообще – http://www.opennet.ru в помощь.
Подскажите, пожалуйста, того, что тут написано:
http://server-tuning.info/nginx/apache-frontend.html
я так понимаю достаточно для базового разделения на frontend и backend?
достаточно, только в апаче еще нуна настроить mod_rpaf и в виртуалхостах поменять айпи
пасиб
Добрый день. Вы рассматривали AFS?
http://en.wikipedia.org/wiki/Andrew_File_System
Рассматривал, показалась слишком навернутой
ocfs?
http://oss.oracle.com/projects/ocfs2/
HAMMER clustering filesystem – входит в состав DragonFly BSD.
Что умеет и как работает, не интересовался. Столкнулся с ней на http://opennet.ru/
http://kerneltrap.org/HAMMER
Где ж ее взять-то, эту загадочную GPFS? Покупать у МежДелМаша?
Я купил на сайте IBM, прикинувшись американцем и скормив кредитку епасса.
«RedHat GFS – Весьма серъезная кластерная разработка от RedHat. ….. К сожалению, Red Hat не побеспокоилась о том, как организовывать хранилище. Описано все кроме этого.»
Не скажу за дату написания этого обзора, но лежащая сейчас документация содержит в себе ссылки на GNBD http://www.centos.org/docs/5/html/5.2/Global_File_System/s2-ov-economy-GFS.html.
Вообще, просто размазывать файлы по дискам одного тазика можно средствами LVM.
А random seek – это стоит купить для пробы SSD. Вопли про «там скорость считывания ВСЕГО ХХ Мб\сек» не слушать – на мелких файлах нужно IOPS, а не sustained throughtput.
Более бюджетный вариант – использовать только часть винтов для сокращения времени поиска. Тоже заметно поднимает IOPS.
SY, BAARF member #318
GNBD мне не подошел. Во-первых, там ограниченное количество GNDB серверов, во-вторых они работают по моему на уровне TCP (протокол не самого нижнего уровня) со всеми вытекающими.
SSD у меня слетели два винта в рейде пятом во второй месяц использования. Было не очень смешно, но был бекап конечно.
К тому же GFS не умеет размазывать IO равномерно по всем винтам
Попробуйте все-таки GlasterFS. У нас на продакшене она стоит уже год. 2 фронтэнда и 3 бэкэнда для нужд веб-сервера. По 40тыс. посетителей в день примерно. Контент самый различный. Это новостной ресурс большой с большой базой статей (25тыс. посещейний в день и больше. бывают пики по 200 запросов в секунду) и видео, сайт телекомпании (видео много) и еще около 50 проектов внешних заказчиков (не высокие нагрузки). GlasterFS поверх Ext3, которая в свою очередь на LVM’е. Визический ФС всех бэков и фронтов на одном СХД, подключенного по FC. Конфиги немного мудреные. С понятиями немного путаешься по первости. Но в целом не сложна. До этого использовали и OCFS2 и GFS. Из-за нестабильности пошли дальше в поисках надежного и производительного решения. Вот теперь на гластере. Посмотрите все-таки на нее подробней. Сейчас и коммерческая поддерка у них есть и менеджер хранилища с веб-клиентом, и обновление с официального репозитория проекта в горячем режиме. Денюжек за это дело не просят.