И никогда не падают и не перезагружаются?
Не, ну если класть локально, а потом разгребать в очереди, с mount -o sync, и правильно обрабатывать всякие ESTALE - можно, каэш. Непонятно только, зачем такие сложности, если можно тупо webdav put, или что-то подобное stateless.
У меня управляющий сервер картинок, один. К нему в /var/www/images/{1,2,3,4} подмонтированы разделы по NFS хранилища с nginx на борту. Перед сохранением я прохожу по массиву имеющихся серверов и копирую изображения на два сервера через copy.
Управляющий сервер не хранит ничего, он просто обрабатывает запросы на UPLOAD, проверяя такую возможности.
Сервера подключены по гигабитной сети. В мемкеше лежат данные по серверам (занятому месту) , которые я получаю примерно так раз в минуту.
sprintf("%0.2f", disk_free_space("/var/www/images/3/") / (1024*1024));
Если по какой-то причине я сейчас не могу записать картинки через copy на один из серверов, то записываю на другой сервер по порядку. Если один из серверов упал, пользователь видит пустую картинку, пока сервак не поднимется. Хотя максимум у меня были ребуты, что бы навернулась ФС или массив - такого еще небыло. Есть скрипт который восстанавливает файлы с других серверов, но пока не возникала потребность.