12. Файловая система Google

Бумага, которую мы сегодня будем изучать, важна во многих отношениях. В нем рассказывается о системах хранения и о том, чем эта конкретная система отличалась от тех, что существовали до нее. В то же время для Google эта система была важной частью Map Reduce, о которой я расскажу в следующей статье.

Бумага, которую мы сегодня будем изучать, важна во многих отношениях. В нем рассказывается о системах хранения и о том, чем эта конкретная система отличалась от тех, что существовали до нее. В то же время для Google эта система была важной частью Map Reduce, о которой я расскажу в следующей статье.

Введение

Из введения статьи мы имеем:

Мы разработали и внедрили файловую систему Google (GFS) для удовлетворения быстрорастущих потребностей Google в обработке данных. GFS разделяет многие из тех же целей, что и предыдущие распределенные файловые системы, такие как производительность, масштабируемость, надежность и доступность. Тем не менее, его дизайн был основан на ключевых наблюдениях за рабочими нагрузками наших приложений и технологической средой, как текущими, так и ожидаемыми, что отражает заметный отход от некоторых более ранних предположений о проектировании файловой системы.

Это одна из самых важных особенностей GFS. GFS была создана специально для удовлетворения растущих требований к обработке данных, с которыми столкнулся Google. Каков наилучший способ удовлетворить эти требования?
Изучить и предусмотреть их рабочие нагрузки и операции и построить систему, которая их поддерживает.

GFS отличается от других файловых систем. Основные различия между другими файловыми системами и GFS:

  1. Аппаратные сбои характерны для любой системы. Скорость, с которой происходят эти сбои, увеличивается с большей скоростью, когда файловая система такая же огромная, как в Google. Количество и качество компонентов практически гарантируют, что некоторые из них не работают постоянно. В связи с этим обнаружение ошибок и непрерывный мониторинг становятся важными. Цель состоит в том, чтобы создать программное обеспечение, помогающее уменьшить эти сбои.
  2. GPS в основном поддерживает большие файлы. Это естественно, учитывая объем данных, с которыми Google сталкивается и обрабатывает на регулярной основе.
  3. Большинство файлов изменяются путем добавления новых данных, а не перезаписи данных. Случайных записей в файле не существует. Это помогает в оптимизации, а также гарантирует атомарность.
  4. Гибкость системы повышается за счет совместной разработки приложений и API файловой системы.

Интерфейс

GFS поддерживает обычные операции с файлами, включая создание, удаление, чтение, запись, открытие и закрытие. Наряду с этим в GFS есть еще две дополнительные операции: снимок и добавление записи.

Традиционное добавление позволяет писателю добавлять или «добавлять» в конец файла. Однако это усложняется, когда два или более пользователей хотят добавить одновременно, то есть одновременно. Обычно, когда возникает такая ситуация, выбирается только одна из двух операций добавления. Однако для системы, подобной той, которую использует Google, это может занять много времени, так как одновременные добавления встречаются довольно часто. Давайте возьмем в качестве примера пользователя, который ищет слово «Вселенная». Над файлом, добавляющим ресурсы, будет работать вместе несколько поисковых роботов. Параллельные операции обязательно произойдут. В этом случае результаты от нескольких клиентов объединяются.

Snapshot делает копию файла или дерева каталогов почти сразу, сводя к минимуму любые перерывы в текущих мутациях. Это делается для быстрого создания копий огромного набора данных или проверки текущего состояния, чтобы можно было отменить будущие изменения. В документе также объясняется, как это работает.

Мы используем стандартные методы копирования при записи для реализации моментальных снимков. Когда мастер получает запрос на создание моментального снимка, он сначала аннулирует все незавершенные аренды фрагментов в файлах, которые он собирается сделать. Это гарантирует, что любые последующие записи в эти фрагменты потребуют взаимодействия с мастером для поиска арендатора. Это даст мастеру возможность сначала создать новую копию чанка.

Я объясню, что означают термины «мастер» и «чанки» через минуту.

Архитектура

Кластер GFS состоит из одного мастера и нескольких серверов фрагментов, и к нему обращаются несколько клиентов, как показано на рисунке 1.

Файлы в GFS разделены на куски. Серверы фрагментов хранят фрагменты на локальных дисках в виде файлов Linux и читают или записывают данные фрагментов, указанные дескриптором фрагмента и диапазоном байтов. Каждый фрагмент также реплицируется на несколько серверов фрагментов. Это позволяет избежать потери данных в случае отказа оборудования. Количество реплик по умолчанию равно трем. Мастер поддерживает все метаданные файловой системы, включая пространство имен, информацию об управлении доступом, сопоставление файлов с фрагментами и текущее расположение фрагментов. Клиенты взаимодействуют с мастером и серверами фрагментов. Клиенты не кэшируют данные файлов, так как файлы огромны. Это также позволяет избежать проблем с когерентностью кэша. Серверы фрагментов не кэшируют никаких данных, поскольку фрагменты хранятся в виде локальных файлов.

Одной из наиболее распространенных проблем, с которой сталкивается мастер в любой системе, является узкое место. Необходимо, чтобы нагрузка была сбалансирована между различными компонентами системы. В противном случае, если мастер выйдет из строя, это приведет к отказу в одной точке. GFS позволяет избежать этого. Это сводит к минимуму участие мастера в операциях чтения и записи, чтобы он не стал узким местом. Клиенты никогда не читают
и не записывают данные файла через мастер. Вместо этого клиент спрашивает мастера, с какими серверами фрагментов ему следует связаться. Он кэширует эту информацию в течение ограниченного времени и напрямую взаимодействует с серверами фрагментов для многих последующих операций. Следовательно, мастер перемещается с критического пути, чтобы избежать узкого места. Когда мастер выходит из строя, нужен новый мастер. Чтобы преодолеть эту проблему, используется журналирование. Журналы изменяют пространство имен и копируют мастер.

Далее в документе говорится о внедрении такой системы как для производства, так и для исследований. Файловая система Google демонстрирует качества, необходимые для поддержки крупномасштабных рабочих нагрузок по обработке данных на обычном оборудовании. Хотя некоторые из его функций могут быть связаны с работой, выполняемой в Google, большинство из них могут использоваться и другими организациями, особенно теми, которые ежедневно сталкиваются с крупномасштабными данными.