Сравнение файловых систем Hadoop и Ceph

Завершено

Давайте подытожим1 основные различия между HDFS и Ceph.

  • Различия в архитектуре: HDFS следует модели сортировки вычислительных ресурсов и хранилища. HDFS DataNode обычно соседствуют с узлами MapReduce, а ключевая идея всей модели заключается в том, чтобы перенести вычисления к данным. Ceph разработана как автономная служба хранения, хотя OSD, хранящие данные в Ceph, потенциально могут размещаться вместе с узлами MapReduce.
  • Совместимость: клиенты HDFS должны быть реализованы с помощью одного из API. HDFS не разрабатывался как файловая система POSIX и не поддерживает некоторые семантики POSIX (например, открытие существующих файлов для записи). Существуют обходные пути, например драйвер FUSE, которые позволяют подключить HDFS. Однако большинство приложений придется повторно реализовать с помощью клиента HDFS, если они еще не поддерживают обходной путь. Ceph, с другой стороны, предоставляет несколько API, включая совместимый с POSIX драйвер Ceph FS, что значительно упрощает интеграцию с существующими приложениями по сравнению с HDFS.
  • Макет данных: HDFS NameNodes предоставляет физическое расположение блоков клиентским приложениям, которые могут использовать эту информацию для повышения локальности доступа к данным. В Ceph существует похожая структура: серверы метаданных всегда будут предоставлять клиенту расположение объекта данных при запросе данных.
  • Поддержка небольших файлов: HDFS не поддерживает небольшие файлы, так как он оптимизирован для больших размеров блоков (64 МБ по умолчанию). В Ceph ширина полосы обычно измеряется в килобайтах, что делает ее более универсальной по сравнению с HDFS.
  • Одновременная запись: HDFS — это модель однократной записи, которая позволяет одновременно записывать только один файл в файл. Ceph поддерживает несколько одновременных операций записи и, следовательно, является более гибким.
  • Модель согласованности: HDFS гарантирует согласованность, ограничивая запись в один клиент и не разрешая обновления файлов, а Ceph может гарантировать последовательную согласованность, за исключением редких ситуаций, связанных с сетевой секцией некоторых OSD.
  • Кэширование. HDFS поддерживает кэширование с упреждающим чтением на стороне клиента через модель потоковой передачи. Клиенты в Ceph могут обладать кэшами чтения и буферами записи, только если клиент получил арендованный ресурс от MDS (когда клиент имеет эксклюзивный доступ к файлу). Когда несколько клиентов обращаются к одному и тому же файлу в Ceph, эти арендованные ресурсы отзываются, что обеспечивает синхронное выполнение операций ввода-вывода для управления согласованностью.
  • Отказоустойчивость: HDFS создается для отказоустойчивости с встроенной поддержкой реплика tion на уровне блока и учитывает стойку, однако Namenode является одноточечным сбоем в HDFS. Ceph, с другой стороны, обладает достаточной надежностью, так как использует сложные одноранговые протоколы, чтобы гарантировать высокую отказоустойчивость. Восстановление после сбоя в Ceph также выполняется довольно быстро благодаря журналам записи, которые можно воспроизвести, чтобы быстро восстановить узел.

Ссылки

  1. Maltzahn, C., Molina-Estolano, E., Хурана, А., Нельсон, А. Джей, Брандт, S. A., & Weil, S. (2010). Ceph as a scalable alternative to the Hadoop Distributed File System The USENIX Magazine vol.35