Три типа шлюзов хранения данных, объясненные примерами кода

В компьютерных системах обычно используются три типа шлюзов хранения:

  1. Файловый шлюз. Файловый шлюз позволяет хранить и извлекать файлы как объекты в Amazon S3 (Simple Storage Service), получая при этом доступ к ним с использованием стандартных файловых протоколов, таких как NFS (сетевая файловая система) и SMB (серверные сообщения). Блокировать). Вот пример использования AWS SDK для Python (Boto3) для создания файлового шлюза:
import boto3
client = boto3.client('storagegateway')
response = client.create_gateway(
    GatewayType='FILE_S3',
    GatewayName='MyFileGateway',
    S3Region='us-west-2',
    ...
    # Additional configuration parameters
)
print(response)
  1. Шлюз томов. Шлюз томов предоставляет вашим приложениям блочные тома хранения с использованием протокола iSCSI (Internet Small Computer System Interface). Существует два типа шлюзов томов:

    а. Сохраненные тома. В этой конфигурации весь набор данных хранится локально, а резервные копии данных асинхронно сохраняются в Amazon S3. Вот пример использования AWS SDK для Java для создания шлюза хранимых томов:

    import com.amazonaws.services.storagegateway.AWSStorageGatewayClient;
    import com.amazonaws.services.storagegateway.model.*;
    AWSStorageGatewayClient client = new AWSStorageGatewayClient();
    CreateStorediSCSIVolumeRequest request = new CreateStorediSCSIVolumeRequest()
       .withGatewayARN("arn:aws:storagegateway:us-west-2:123456789012:gateway/sgw-12A3456B")
       .withDiskSizeInBytes(32212254720L) // 30 GiB
       ...
       // Additional configuration parameters
    CreateStorediSCSIVolumeResult result = client.createStorediSCSIVolume(request);
    System.out.println(result);

    б. Кэшированные тома. В этой конфигурации часто используемые данные хранятся локально, а остальные данные хранятся в Amazon S3. Вот пример использования AWS SDK для.NET для создания шлюза кэшированных томов:

    using Amazon.StorageGateway;
    using Amazon.StorageGateway.Model;
    var client = new AmazonStorageGatewayClient();
    var request = new CreateCachediSCSIVolumeRequest
    {
       GatewayARN = "arn:aws:storagegateway:us-west-2:123456789012:gateway/sgw-12A3456B",
       VolumeSizeInBytes = 32212254720, // 30 GiB
       ...
       // Additional configuration parameters
    };
    var response = client.CreateCachediSCSIVolume(request);
    Console.WriteLine(response);
  2. Ленточный шлюз. Ленточный шлюз предоставляет интерфейс виртуальной ленточной библиотеки (VTL) для архивирования данных в Amazon S3 и Glacier. Он предоставляет вашему приложению резервного копирования интерфейс виртуальной ленточной библиотеки iSCSI, который позволяет хранить виртуальные ленты на Amazon S3. Вот пример использования AWS CLI для создания ленточного шлюза:

aws storagegateway create-gateway \
    --gateway-name MyTapeGateway \
    --gateway-type VTL \
    --tape-drive-type IBM-ULT3580-TD5 \
    ...
    # Additional configuration parameters