Это уже не CDN. CDN - это Content Delivery Network, а если один сервер, то это уже никакая не
Network
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
И будут ли файлы на одном сервере или каждый delivery сервер будет иметь собственное файловое хранилище - никак не связано микросервисы ли это или монолит, раскиданный по серверам.
Естественно, ко всему нужно подходить с умом.
Никто не собирается в базу пихать пользовательский файл.
Но есть, например preview, которые генерируются нашей системой, и эти превьюшки все по 100-200 kb и они отличные кандитаты для документо-ориентированной базы данных.
Нет конкретно под файлы заточенной базы, есть под документы. Далее включаем голову и решаем, что и где хранить будет более рационально.
По п.п. 3 - rsync - это последний шаг при синхронизации.
Есть еще логические моменты, предшествующие вызову rsync.
Приходит запрос на файл, Request-Server должен знать, где какая нода уже имеет данный файл, и какая нода имеет действительно актуальную версию файла, чтобы не получилось 404 или еще хуже - отдать старую версию файла, потому что rsync еще не успел обновить файл на данной ноде.
Это всё легко на пальцах и на диване
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
на практике же у нас бегает несколько демонов, которые сравнивают хеш-суммы файлов на всех нодах, и шлют матерные алерты, если вдруг произошла рассинхронизацая.
А рассинхронизации происходят. Не часто, но бывает. А так как мы берем деньги за свою CDN, то рассинхронизация - это прям вообще не хорошо, ну очень, я бы сказал плохо и дорого в настоящих деньгах
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
А почему рассинхронизации? А ХЗ, потому что кто-то выпустил новую фичу и где-то в модуле черт знает каком, никто не знает в каком, что-то пошло криво. А времени разбираться нет, рукожопа накажем завтра, а сегодня нужно доставлять контент и доставлять его правильно
_____________
[продано копирайтерам]