EFS#

Общая информация#

Важно

Сервис находится на стадии технологических испытаний и пока доступен только ограниченному кругу пользователей. Если вы готовы использовать сервис в экспериментальном режиме, то обратитесь к своему менеджеру или оставьте заявку на портале поддержки.

Сервис EFS (Elastic File System) предоставляет масштабируемое и отказоустойчивое файловое хранилище, которое может совместно использоваться множеством экземпляров, в том числе находящихся в разных VPC и даже в других сетях вне облака. Для этого не требуется выделять дисковое пространство на виртуальных машинах и поддерживать сложные конфигурации файловых систем.

Вы можете быстро создать файловую систему EFS в веб-интерфейсе, так что вам останется только смонтировать её на нужных экземплярах виртуальных машин. Доступ к файловой системе EFS осуществляется посредством протокола Network File System (NFS) версии 4.1. Таким образом, файловая система может быть смонтирована на любых экземплярах, где поддерживается данная версия протокола. А для работы с файловой системой можно использовать любые совместимые инструменты и приложения.

Высокая доступность обеспечивается на уровне архитектуры сервиса. При отказе одного из NFS-серверов он тут же будет перезапущен на другом узле. Файловая система реплицируется между несколькими ЦОД и способна пережить отказ любого компонента, вплоть до целого ЦОД, без прерывания сервиса. После восстановления отказавшего сервера NFS клиенты могут продолжать работать со смонтированной файловой системой — повторное монтирование или переключение на другой сервер не требуется.

Размер файловой системы может при необходимости быть увеличен до петабайтных значений (см. Ограничения на использование).

Основные понятия#

EFS оперирует двумя основными видами ресурсов:

  • Файловая система — Файловое хранилище, к которому может быть настроен доступ из различных экземпляров.

  • Точка монтирования — Сервер NFS, чьё DNS-имя и IP-адрес используются для монтирования файловой системы внутри экземпляра.

Файловая система изначально не привязана к VPC — привязка происходит при создании точки монтирования. При этом указывается подсеть, в которой создаётся сетевой интерфейс для точки монтирования. Из адресного пространства подсети выделяется один внутренний (private) IP-адрес и назначается сетевому интерфейсу. Кроме того, для доступа к точке монтирования создаётся специальная служебная зона DNS и DNS-имя в этой зоне. Для разрешения DNS-записи используется DNS-сервер внутри VPC.

После создания точки монтирования в конкретном VPC создать точку монтирования в подсети другого VPC для этой файловой системы невозможно. У конкретной файловой системы может быть только одна точка монтирования в одной зоне доступности. Например, если у вас есть три подсети из одного VPC в зоне доступности az1, точку монтирования можно создать только в одной из этих трёх подсетей. Доступ к точке монтирования из других подсетей в этой зоне доступности осуществляется путём маршрутизации внутри VPC.

У файловой системы в конкретном VPC может быть столько точек монтирования, сколько есть зон доступности. Для доступа всех экземпляров в одном VPC достаточно одной точки монтирования в любой из зон доступности. Однако для лучшей производительности и отказоустойчивости рекомендуем создать по одной точке монтирования в каждой зоне доступности и использовать точку монтирования, созданную в той же зоне, где находятся экземпляры.

Если требуется получить доступ к файловой системе в VPC1 из подсетей VPC2, то необходимо настроить маршрутизацию между подсетями этих VPC с помощью транзитного шлюза. На данный момент разрешение DNS-имени точки монтирования внутри VPC2 невозможно, поэтому при монтировании файловой системы в VPC2 следует использовать IP-адрес точки монтирования. В будущем это ограничение планируется устранить.

Типы файловых систем#

На текущий момент в облаке поддерживается только один тип файловой системы — Региональный. Данные в файловых системах такого типа реплицируются между тремя независимыми зонами доступности в облаке. Репликация выполняется синхронно: завершение синхронной записи внутри вашей ОС означает, что запись выполнена также во всех зонах доступности.

Внимание

Если запись выполняется не синхронно/буферизуется, т.е. изменённые или новые данные помещаются в кеш ОС, то реальная запись в файловую систему может быть отложена ОС.

Согласованность данных#

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

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

Сервер NFS не контролирует согласованность содержимого файлов и не регулирует последовательность доступа к файлам. Единственное, что он гарантирует — консистентность по принципу close-to-open. Это означает, что при закрытии файла клиентом все изменения фиксируются на диске.

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

Блокировка файлов#

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

Примечание

Механизм блокировки файлов работает в рекомендательном режиме (advisory locking). Это означает, что блокировка файла не мешает чтению или записи файла другими приложениями. Чтобы блокировка выполнялась корректно и обеспечивала надёжный совместный доступ к файлам, все приложения должны проверять блокировки и устанавливать их перед выполнением чтения или записи.

Ограничения на использование#

Примечание

Приведённые ограничения действуют только на время бета-тестирования.

Для сервиса выделяются следующие квоты:

  • 1 файловая система на проект;

  • 10 ТиБ хранимых данных.

При необходимости вы можете увеличить квоты — для этого обратитесь в службу поддержки.

Использование файловой системы#

В каждом проекте вы можете создать свою файловую систему, которую могут использовать экземпляры из VPC. Чтобы смонтировать файловую систему на экземпляре, необходимо создать точку монтирования в любой из подсетей VPC в той зоне доступности, где находится экземпляр. Точка монтирования должна находиться в том же VPC, что и экземпляр.

Доступ экземпляров к файловой системе регулируется с помощью групп безопасности. При создании точки монтирования ей назначается группа безопасности по умолчанию (при необходимости её можно затем изменить). В правилах группы должен быть разрешён входящий трафик TCP на порт 2049 для всех экземпляров, на которых вы хотите смонтировать файловую систему (по умолчанию доступ к точке монтирования получают все экземпляры, находящиеся в этой группе безопасности). Кроме того, группа безопасности, которая назначена конкретному экземпляру, должна разрешать исходящий TCP-трафик на порт NFS (2049) точки монтирования.

После создания и настройки файловой системы, точек монтирования и групп безопасности для доступа к файлам необходимо смонтировать файловую систему непосредственно на экземплярах (см. подробнее инструкцию). После монтирования файловой системы с ней можно работать точно так же, как с любой другой POSIX-совместимой файловой системой.

Примечание

Для управления файловой системой пользователю должна быть назначена политика EFSFullAccess, либо предоставлены соответствующие привилегии.

Создать файловую систему#

Чтобы создать файловую систему:

  1. Перейдите в раздел EFS Файловые системы.

  2. Нажмите Создать.

  3. В открывшемся окне задайте тег Name (опционально).

  4. Если необходимо задать другие теги, нажмите Добавить теги для перехода на следующий шаг и добавьте теги. Теги можно также назначить после создания файловой системы.

  5. Нажмите Создать для завершения создания файловой системы.

Создать точку монтирования#

  1. Перейдите в раздел EFS Файловые системы.

  2. Выберите в таблице ресурсов файловую систему и нажмите на её идентификатор для перехода на страницу файловой системы.

  3. Откройте вкладку Точки монтирования и нажмите Создать.

  4. В открывшемся окне выберите VPC и подсеть, где необходимо создать точку монтирования.

  5. Нажмите Создать.

  6. Повторите шаги 1-5, если необходимо создать дополнительные точки монтирования в подсетях других зон доступности.

Внимание

Созданной точке монтирования назначается группа безопасности по умолчанию из того же VPC. Если вы меняли правила по умолчанию, то убедитесь, что новые правила разрешают входящий TCP-трафик на порт 2049 для точки монтирования.

Изменить группу безопасности#

При необходимости вы можете заменить заданную по умолчанию группу безопасности на другую или добавить группу безопасности к уже назначенным.

  1. Перейдите в раздел EFS Файловые системы.

  2. Выберите в таблице ресурсов файловую систему и нажмите на её идентификатор для перехода на страницу файловой системы.

  3. Откройте вкладку Точки монтирования и нажмите Изменить группы безопасности.

  4. Чтобы добавить группу безопасности, выберите группу из раскрывающегося списка. Чтобы удалить группу безопасности, нажмите на иконку рядом с идентификатором группы.

    Примечание

    Для каждой точки монтирования должна быть задана по крайней мере одна группа безопасности.

  5. Нажмите Сохранить для применения изменений.

Задать теги для файловой системы#

Чтобы добавить, изменить или удалить теги для файловой системы:

  1. Перейдите в раздел EFS Файловые системы.

  2. Найдите в таблице ресурсов файловую систему, у которой необходимо отредактировать теги, и нажмите на имя файловой системы для перехода на её страницу.

  3. Откройте вкладку Теги.

  4. Для добавления тега нажмите Добавить тег и задайте поля Ключ и Значение.

    Для изменения тега отредактируйте требуемые поля (Значение и/или Ключ) у изменяемого тега.

    Для удаления тега нажмите на иконку рядом с ненужным тегом.

    Примечание

    Если ни один тег не был ранее задан, то вы можете добавить тег Name, нажав Добавить тег Name и задав его значение.

  5. Нажмите Применить для сохранения изменений.

Удалить точку монтирования#

Примечание

Перед удалением рекомендуем отмонтировать файловую систему на всех экземплярах, которые подключены к этой точке монтирования. В противном случае, некоторые операции с корневой файловой системой внутри экземпляров, например команды du и df, могут блокироваться.

Чтобы удалить точку монтирования:

  1. Перейдите в раздел EFS Файловые системы.

  2. Выберите в таблице ресурсов файловую систему и нажмите на её идентификатор для перехода на страницу файловой системы.

  3. Откройте вкладку Точки монтирования, выберите точку монтирования в таблице ресурсов и нажмите Удалить. Вы можете выбрать и удалить сразу несколько точек монтирования.

  4. Подтвердите действие в открывшемся окне.

Удалить файловую систему#

Внимание

После удаления файловой системы её данные невозможно восстановить.

Прежде чему удалить файловую систему, необходимо удалить все её точки монтирования.

  1. Перейдите в раздел EFS Файловые системы.

  2. Выберите файловую систему в таблице ресурсов.

  3. Нажмите Удалить.

  4. Подтвердите действие в открывшемся окне.