Чем объект отличается от файла?
Как Walrus, S3 или какая-либо облачная система хранения берет файл и преобразует его в объект программным способом?
2 ответа
Если вы спрашиваете, как S3 размещает свои объекты на диске на своих внутренних серверах, мы не знаем (подробности реализации не являются общедоступными).
Скорее всего, они берут ключ вашего объекта (bucket + path) и обращаются к согласованному хешу, который отображает ваш объект на набор серверов. Загрузка направлена на один из этих серверов (в основном на случайной основе), который хранит его и ставит в очередь будущую работу для распространения нового объекта на другие серверы, отвечающие за его репликацию.
Эта задержка репликации является основной потребностью в возможной согласованности. Я также однажды где-то слышал, что Amazon использует кодировку с исправлением ошибок на уровне хранилища для дальнейшего предотвращения плохого чтения.
Чтобы получить общее представление о том, как системы хранения объектов в облаке хранят объекты (двоичные файлы), вы можете прочитать документацию Swift Object Storage-Openstack.
Swift похож на Amazon S3 и, следовательно, на Моржа.
Swift связывается через прокси-сервер с клиентами (вне кластера), и клиент может хранить, удалять объекты через HTTP-API RESTful. Сервер поддерживает файл Ring-Configuration, который поддерживает сопоставление между файлами и их физическим местоположением.
Когда есть запрос на загрузку файла, MD5-хеш рассчитывается по пути к файлу.
Пожалуйста, найдите детали по адресу: