Использовать OBS Advanced в ML Space
Перед началом работы создайте Access Key
и Security Key
в OBS Advanced.
Для подключения бакета OBS Advanced доступно два способа:
Рассмотрим способы подробнее.
Важно
В настоящее время для подключения доступны бакеты Advanced.
При работе с бакетом миграции есть следующие ограничения:
Возможно подключить только один бакет миграции.
Нельзя отключить уже подключенный бакет.
Нельзя загружать новые файлы и удалять уже имеющиеся через интерфейс платформы. Для загрузки и удаления файлов используйте консольные утилиты. Подробнее см. в документации объектного хранилища S3.
Подключение бакета OBS Advanced, используя Обзор хранилища
Для подключения бакета OBS Advanced с помощью Подключить бакет:
Войдите на Главную страницу.
Перейдите Data Catalog –> Обзор хранилища –> Подключить бакет.
Заполните требуемые поля и нажмите Подключить.
Подключенный бакет отразится в списке доступных для работы бакетов. Пример приведен на рисунке ниже.

Подключение бакета OBS Advanced, используя коннектор
Для подключения бакета OBS Advanced через коннектор:
Войдите на Главную страницу.
Перейдите Data Catalog –> Data Transfer Service –> Коннекторы.
Выберите Custom S3 в качестве источника данных.
Заполните требуемые поля и нажмите Создать коннектор.
В открывшемся диалоговом окне введите необходимые данные, где
Access Key
иSecurity Key
— ключи доступа. В качестве S3 Endpoint укажитеhttps://obs.ru-moscow-1.hc.sbercloud.ru
Подключенный коннектор отразится в списке доступных для работы. Пример приведен на рисунке ниже.

См.также
Перенос данных из OBS Advanced в ML Space
Для переноса данных используйте:
Правило переноса и для источника укажите коннектор, созданный в предыдущем пункте.
Вызовы API:
Активируйте коннектор с помощью вызова.
Подсказка
Системные коннекторы создавать и активировать не нужно.
Скрипт
boto3
, в котором укажите требуемые параметры подключения:s3 = boto3.client( service_name="s3", aws_access_key_id="S3 access key ID", # Access Key of OBS bucket aws_secret_access_key="S3 security key", # Secret Key of OBS bucket endpoint_url=endpoint_url # Endpoint_url of OBS bucket ) s3.download_file( "bucket_name", # Name of OBS Adnvanced bucket "object_name", # File to download "/home/jovyan/test.py" # Path to upload file to NFS )
Перенос данных из OBS Advanced на NFS требуемого региона
Для переноса данных во время обучения задачи, используйте boto3 скрипт, указав требуемые параметры подключения и добавив его в начало скрипта обучения:
Import boto3
BUCKET_NAME = 'advanced-mlspace' # Name of OBS bucket
KEY = 'data/' # The path to the data to be transferred
s3 = boto3.resource(
service_name="s3",
aws_access_key_id=access_key_id # Access Key of OBS bucket
aws_secret_access_key=secret_access_key # Secret Key of OBS bucket
endpoint_url=endpoint_url # Endpoint_url of OBS bucket
)
try:
s3.Bucket(BUCKET_NAME).download_file(KEY, 'test.py')
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == "404":
print("The object does not exist.")
else:
raise
При создании задачи обучения в качестве параметра script укажите путь до вашего скрипта на NFS.
job = client_lib.Job(
base_image='cr.msk.sbercloud.ru/aicloud-base-images/horovod-cuda11.0-tf2.4.0-pt1.7.1-a100',
script='/home/jovyan/script.file', # Path to the script
n_workers=1,
instance_type='a100.1gpu.80vG.12C.96G',
region='SR002-MT' # Without specifying the region, the training task will be sent to Christofari.V100 by default
)
job.submit()
Перенос данных из OBS Advanced на S3 ML Space с помощью скрипта загрузки данных
Для переноса данных можно воспользоваться утилитой Rclone. Чтобы установить утилиту, выполните в командной строке:
sudo -v ; curl https://rclone.org/install.sh | sudo bash
Данные будут перенесены с помощью скрипта data_loader.sh:
# !/usr/bin/env bash
source_acc_key_id="$1" # Access key ID of bucket in Advanced OBS
source_secret_key="$2" # Secret access key of bucket in Advanced OBS
obs_bucket_name="$3" # Bucket name in OBS
dest_acc_key_id="$4" # Access key ID of bucket in MLSpace S3
dest_secret_key="$5" # Secret access key of bucket in MLSpace S3
s3_bucket_name="$6" # Bucket name in MLSpace S3
rclone config create obsadvanced s3 access_key_id=$source_acc_key_id acl=private endpoint=obs.ru-moscow-1.hc.sbercloud.ru provider=HuaweiOBS region=ru-northwest-2 secret_access_key=$source_secret_key
rclone config create mlspaces3 s3 access_key_id=$dest_acc_key_id acl=private endpoint=n-ws-lmcne.s3pd02.sbercloud.ru provider=Other secret_access_key=$dest_secret_key
rclone copyto obsadvanced:$obs_bucket_name mlspaces3:$s3_bucket_name
Чтобы запустить скрипт, замените соответствующие аргументы на требуемые свойства бакета S3.
./data_loader.sh obs_access_key_id obs_secret_key obs_bucket_name mlspaces3_access_key mlspaces3_secret_key mlspaces3_bucket_name
После выполнения начнется перенос данных из бакета OBS Advanced в бакет S3 ML Space.
Важно
Скрипт не переносит одинаковые файлы из OBS Advanced в S3 платформы.