On Tue, Dec 22, 2015 at 06:49:24PM +0200, Vasiliy P. Melnik wrote:
кстати, я тут подумал - а зачем огород вообще городить, решение должно
быть дубовым и тупым.
есть кучка серверов, есть куча файлов. нужна некая база, которая привяжет файл к одному или нескольким серверам. файл в таком случае может храниться на обычной файловой системе. скрипт отдачи файла выполнит простой запрос select node from nodefiletable where name=filename. запросит файл с ноды, сделает ресайз, отдаст клиенту. все тупо и надежно, как в танке, можно обеспечить какую угодно избыточность, просто раскладывая файл сразу на несколько нод.
да - это моя предложенная схема, я считаю ее самой лучшей, потому как она самая дубовая - чем проще решение, тем оно надежней. Но есть же не только мое мнение - другие ведь тоже должны учитываться
C обычной ФС вылезет потребность в костылях "файл не нашелся" и вообще непонятно как определять "файлы все есть?" и "а в них всё ок, картинка сломалась или такой залили?" Поэтому, учитывая "надо этим управлять" я бы подумал над запихиванием файлов в контейнеры "управляемого" размера - грубо говоря, зип-архивы по 500М - это и "раз плюнуть" вычитать-проверить-пропихнуть по сети, и 1ТБ - это 2000 файлов. Т.к. сомневаюсь, что файлы там "оч нужно" часто удалять - решение выглядит весьма удобным. Удаление - это будет просто отметка в БД, и по мере достижения "удалить Х% в контейнере" - нужно будет распаковать - грохнуть - упаковать. 500М - легко распаковываются на рамдиск и пакуются обратно. -- Best regards, Paul Arakelyan.