Распределенное хранилище изображений
Не совсем понятно, почему «исходные картинки могут храниться на любом из серверов».
Логично было бы сделать такую архитектуру, при которой по имени изображения можно однозначно определить ее местоположение.
1. В момент загрузки картинки определять сервер, на котором она должна храниться.
2. Именовать картинку соответственно хранилищу.
3. При отдаче вы точно знаете, где ее искать.
Имхо будет совсем не быстро. Ну локально файл проверить не долго, а вот проверить на других N серверах будет уже и не быстро. И опять же узким местом может оказаться канал до балансировщика (точки входа).

Я бы посоветовал рассмотреть вариант, когда на этапе генерации html контента уже известно месторасположение картинок. Каждый сервер имеет своё поддомен, например: img1.domain.com, img2.domain.com и т.д. Здесь вы так же сможете легко накинуть dns балансировку.

Ну и соответственно, если нет готовой картинки, уже отдаёте путь до пхп скрипта.

Хранить id хранилища рядом с нужной версией картинки будет не сложно.