Облачная платформаAdvanced

Подключение файловой системы

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Сценарии

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

Notice

Перед монтированием файловых систем включите доступ через следующие порты:

  1. 111, 445, 2049, 2051, 2052, and 20048
  2. Еще три порта для Ubuntu. Чтобы получить номера портов, выполните следующую команду:
    rpcinfo -p|grep mountd|grep tcp

Для получения подробной информации см. What Resources Does SFS Occupy?

FunctionGraph поддерживает следующие типы файловых систем:

  • SFS

    Scalable File Service (SFS) — это сервис сетевого хранилища (NAS), предоставляющий масштабируемое высокопроизводительное файловое хранилище. С помощью SFS можно обеспечить общий доступ между несколькими ECSs, Bare Metal Servers (BMSs) и контейнерами Cloud Container Engine (CCE) и Cloud Container Instance (CCI). SFS масштабируется до петабайт и предоставляет полностью управляемое общее файловое хранилище. Он обладает высокой доступностью и надёжностью и бесшовно обрабатывает приложения с интенсивным использованием данных и пропускной способности. SFS подходит для высокопроизводительных вычислений (HPC), обработки медиа, совместного использования файлов, управления контентом и веб‑сервисов.

  • SFS Turbo

    SFS Turbo масштабируется до 320 ТБ и предоставляет полностью управляемое общее файловое хранилище. Он обладает высокой доступностью и надёжностью и поддерживает огромное количество небольших файлов и приложений, требующих низкой задержки и высокой пропускной способности ввода‑вывода (IOPS). SFS Turbo подходит для высокопроизводительных веб‑сайтов, хранения логов, сжатия и распаковки, DevOps, офисов предприятий и контейнеризованных приложений.

  • ECS

    Каталог на ECS указывается как общая файловая система (см. Creating an NFS Shared Directory on ECS) с помощью сервиса сетевой файловой системы (NFS). Затем каталог можно смонтировать к функции в том же VPC, что и ECS, чтобы функция могла читать и записывать данные в каталоге. Файловые системы ECS позволяют динамически расширять вычислительные ресурсы. Этот тип файловой системы подходит для сценариев с низким спросом на сервис.

Преимущества использования этих файловых систем:

  • Пространство выполнения каждой функции можно расширить помимо каталога /tmp (512 МБ).
  • Файловая система может использоваться несколькими функциями.
  • Вычислительные ресурсы ECS можно динамически расширять, а существующую ёмкость хранилища ECS использовать для повышения вычислительной производительности.
    Note

    Вы можете записывать временные файлы в каталог /tmp. Общий размер этих файлов не может превышать 10 240 МБ.

Создание агентства

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

Существует ограничение на максимальное количество создаваемых агентств, а агентства облачных сервисов изменить нельзя. Поэтому рекомендуется создать агентство с правами высокого уровня, например, Tenant Administrator, чтобы функция могла получать доступ ко всем ресурсам в выбранном регионе. Подробнее см. Creating an Agency.

Подключение файловой системы SFS

Настройка агентства

На странице вкладки Configuration выберите агентство, которому предоставлены права SFS Administrator или Tenant Administrator в выбранном регионе.

Если доступных агентств нет, создайте одно в IAM.

Подключение файловой системы

На странице сведений о функции выберите Configuration > Disk Mounting и нажмите Mount File System. При первом подключении файловой системы к целевой функции необходимо задать идентификатор пользователя и группы.

Идентификатор пользователя и группы (аналогично uid и gid в Linux) позволяют функции получать доступ к определённой файловой системе.

Note

User ID: введите –1 или целое число от 1 до 65 534, кроме 1000 и 1002. Значение по умолчанию –1 указывает, что бекенд FunctionGraph автоматически выделяет идентификатор.

Group ID: Введите –1 или целое число от 1 до 65 534, кроме 1000 и 1002. Значение по умолчанию –1 указывает, что backend FunctionGraph автоматически выделяет ID.

Например, ECS смонтирован с файловой системой SFS, и владельцем каталога в файловой системе является test-user. Затем вы можете выполнить команду id test-user, чтобы запросить uid и gid.

Выберите файловую систему SFS и задайте путь доступа.

Notice

Путь доступа функции может содержать не более двух уровней. /mnt и /home являются существующими путями. Рекомендуется задать путь доступа, начинающийся с /mnt или /home. Если задать путь /mnt или /home, будет отображено сообщение "failed to mount exist system path".

Монтирование файловой системы SFS Turbo

Настройка агентства

Перед монтированием файловой системы SFS Turbo к функции укажите агентство, которой предоставлены разрешения SFS Administrator и VPC Administrator для функции. Если доступных агентств нет, создайте её в IAM. Подробности см. в Creating an Agency.

Настройка доступа VPC

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

  1. В консоли SFS получите информацию о VPC и подсети, в которой файловая система будет смонтирована к вашей функции. Подробности см. в File System Management.
  2. Включите доступ VPC, обратившись к Configuring VPC Access, и введите VPC и подсеть, полученные в 1.

Монтирование файловой системы SFS Turbo

Файловые системы SFS Turbo можно монтировать так же, как файловые системы SFS. Выберите файловую систему и задайте путь доступа.

Монтирование общей директории ECS

Указание агентства

Перед монтированием общего каталога ECS в функцию укажите агентство, которому предоставлены Tenant Guest и VPC Administrator разрешения для функции. Если доступных агентств нет, создайте его в IAM. Подробности см. Creating an Agency.

Настройка доступа к VPC

Перед добавлением общего каталога ECS укажите VPC, в котором развернут ECS. Просмотрите информацию о VPC на странице сведений ECS. Нажмите VPC name, чтобы перейти на VPC details page, и просмотрите подсеть.

Установите полученные VPC и подсеть для функции.

Монтирование каталога ECS

Введите общий каталог и путь доступа функции.

Последующие операции

Функция может читать и записывать данные в пути доступа так же, как в смонтированной файловой системе.

Function logs могут сохраняться, настроив log path как подкаталог в пути доступа.

Ниже используется SFS Turbo и шаблон Web-Server-Access-Log-Statistics в качестве примера для описания того, как анализировать журналы серверов, работающих в облаке.

  1. Войдите в консоль FunctionGraph. В navigation pane выберите Templates.
  2. In the upper right corner of the Templates page, enter Web-Server-Access-Log-Statistics in the search box and press Enter.
  3. In the search result, click Configure. The configuration page is displayed, as shown in Figure 1. Set the parameters as follows:

    Figure 1 Function template


    • Region: Select the same region as the created VPC and file system. For details about how to create a VPC and file system, see Configuring VPC Access and Creating a File System.
    • Project: Используйте default.
    • Function Name: Введите пользовательское имя.
    • Agency: Выберите агентство с правами доступа к файловой системе, VPC и APIG. Для получения подробной информации о том, как создать агентство, см. Creating an Agency.
    • Enterprise Project: Выберите enterprise project по требованию.
    • Environment Variables: access_log_path указывает адрес файла журнала. Установите этот параметр в /home/test/access_log.log.
      Note

      Чтобы указать пути к файлам в файловой системе, используйте абсолютные пути, начинающиеся со слеша (/). Однако, если файловая система не смонтирована, можно опустить добавление слеша (/) и просто установить параметр в code/access_log.log.

    • Trigger Type: Значение по умолчанию — API Gateway (APIG). Для получения подробной информации о том, как настроить APIG, см. Using an APIG (Dedicated) Trigger.
    • API Name: Введите пользовательское имя.
    • API Group: Выберите группу в соответствии с реальной службой.
    • Environment: Выберите RELEASE.
    • Security Authentication: Выберите None.
    • Protocol и Timeout (ms): Сохраните значения по умолчанию.

  4. После завершения настройки параметров нажмите Create Function.
  5. На странице сведений о функции нажмите вкладку Code, добавьте следующий код в файл index.py и нажмите Deploy.

    import shutil
    shutil.copyfile('/opt/function/code/access_log.log', '/home/test/access_log.log')

    Figure 2 Добавление кода


    Кроме того, добавьте публичную зависимость Jinja2-2.10. Подробности см. How Do I Add a Dependency to a Function?

    Note

    Если файловая система не смонтирована, добавлять предыдущий код не требуется.

  6. На странице сведений о функции выберите Configuration > Network и включите VPC Access. Установите VPC и Subnet в созданные VPC и подсеть, затем нажмите Save.

    Рисунок 3 VPC access


  7. Выберите Disk Mounting, нажмите Mount File System и выберите SFS Turbo.

    • File System: Выберите существующую файловую систему SFS Turbo.
    • Access Path: Установите этот параметр в /home/test.
    • Shared Directory: путь к общей директории файловой системы. Если параметр оставлен пустым по умолчанию, функция получает доступ ко всем директориям файловой системы. При указании конкретного пути к директории функция получает доступ только к этому пути.

  8. Нажмите вкладку Code, выберите Configure Test Event, создайте Blank Template и нажмите Create.

    Рисунок 4 Настройка тестового события


  9. Выберите созданное тестовое событие и нажмите Test.

    Рисунок 5 Результат теста


  10. Выберите Configuration > Triggers, скопируйте URL триггера APIG и откройте URL в браузере.

    Рисунок 6 Копирование URL


    Рисунок 7 Отображение результатов