公有云存储网关架构分析

概述

定义

一种混合云解决方案,连接私有云/内部IT设施和公有云的Gateway,旨在帮助企业或个人实现本地存储与公有云存储的无缝衔接。
提供本地数据远端存储到OSS上,即可以保持本地盘的性能,又可以拥有云上的大容量。

友商

提供服务的友商有: AWS,阿里云,腾讯云,百度云

产品架构

存储网关的大致架构如下:
storage gateway

产品功能

  1. 本地/云端部署
  2. 数据加密
  3. 数据压缩
  4. 缓存算法,优化本地访问性能
  5. 支持NFS/CIFS文件协议
  6. 支持ISCSI协议
  7. 带宽管理功能
  8. 日志功能
  9. 提供包含存储网关服务的虚拟机镜像

友商实现

AWS

介绍

AWS Storage Gateway 是一种混合存储服务,您的内部应用程序可以借助它来无缝地使用 AWS 云中的存储。您可以使用该服务进行备份、存档、灾难恢复、云突增、存储分层和迁移。您的应用程序可以使用 NFS、iSCSI 等标准存储协议通过网关设备连接到该服务。网关会连接到 Amazon S3、Amazon Glacier、Amazon EBS 等 AWS 存储服务,这些服务为 AWS 中的文件、卷和虚拟磁带提供存储。该服务包含高度优化的数据传输机制,能够进行带宽管理、自动实现网络弹性、高效传输数据,并为活动数据的低延迟内部访问提供本地缓存。

链接:https://amazonaws-china.com/cn/storagegateway/

使用场景

  1. 作为文件存储连接

    File Gateway 配置通过 NFS 连接为本地服务器和应用程序提供网络文件共享。文件数据将缓存在 File Gateway 上以实现本地性能,并转换为对象存储在 Amazon S3 中。您可以通过本机 AWS 工具 (比如生命周期策略、版本控制和跨区域复制) 保护和归档对象。
    aws gw file

  2. 作为块设备连接

    Volume Gateway 配置将使用 iSCSI 作为本地磁盘连接到本地服务器和应用程序。这些卷中的数据可以传输到 Amazon S3 云存储中,并通过 Volume Gateway 进行访问。将数据存储在本地以获得最高性能 (同时将快照备份到云中),或者通过将常用数据存储在本地并将不常用的数据存储在云中 (同时创建快照和克隆以实现保护),平衡延迟和规模。

  3. 作为虚拟磁带库连接

    Tape Gateway 已配置为用本地磁盘和云存储取代备份磁带和磁带自动化设备。现有的备份和恢复软件可将原生备份任务写入存储在 Tape Gateway 上的虚拟磁带中。虚拟磁带可迁移到 Amazon S3 中,最终存档到 Amazon Glacier 中,以便实现最低成本。数据通过您的备份应用程序进行访问,而且备份目录中仍然可以看到所有备份任务和磁带。
    aws gw volume

  4. 将数据传入传出AWS云

    Storage Gateway 会自动缓存本地数据,并将其高效移入 (和移出) 云存储服务。这可以降低在您的办公地点和 AWS 云之间转移数据所需的时间和成本。分段管理、增量传输、带宽限制和带宽计划等优化功能是所有接口的标准功能。

特性

  1. 支持多个客户端类型:file、volume、虚拟磁带库等
  2. 虚拟设备既可以运行于本地,也能运行在 AWS 中
  3. 内置压缩、加密和带宽管理功能
  4. 支持数据存档到AWS Glacier中

使用步骤

  1. 从 AWS 管理控制台下载 AWS Storage Gateway 虚拟机 (VM) 映像
  2. 在所选的虚拟机监控程序下安装虚拟机:VMware ESXi 或 Microsoft Hyper-V
  3. 配置网关,从以下三种配置中进行选择:网关缓存卷、网关存储卷或网关虚拟磁带库 (VTL)
  4. 从直连式存储 (DAS)、网络附加存储 (NAS) 或网络区域存储 (SAN) 向已安装的本地网关分配本地存储。在网关缓存配置中,本地存储用于存储您经常访问的数据。在网关存储配置中,它将用于存储您的原始数据。在网关-VTL 配置中,此本地存储用于持久缓存上传到 AWS 的数据以及缓存最近读取的虚拟磁带数据
  5. 使用 AWS 管理控制台激活本地网关,方法是将网关的 IP 地址与 AWS 账户关联起来,并为网关选择 AWS 地区用于存储上传数据
  6. 对于网关缓存和网关存储配置,将会创建卷,并将这些卷作为 iSCSI 设备连接到您的本地应用程序服务器。对于网关-VTL,将虚拟磁带驱动器和虚拟介质更换器安装到备份服务器上,并让备份软件能够发现虚拟磁带库和虚拟磁带

阿里云

介绍

云存储网关是一款可在线下和云上部署的软网关,以阿里云上的OSS作为后端存储,可在企业的内部IT环境和基于云的存储基础设施之间提供无缝、安全的集成。支持行业标准的文件存储协议,并通过在本地缓存经常访问的数据来提供低延迟性能, 您可以安全地将数据存储在阿里云OSS中。

链接:https://www.aliyun.com/product/hcs

产品架构

aliyun arch

特性

  1. 支持本地数据中心/云端ECS部署
  2. 基于OSS对象存储,提供NFS/CIFS文件协议
  3. 缓存算法支持缓存模式和写透模式
  4. 异步多线程上传,自动MD5校验
  5. 提供存储网关端的操作日志和云端OSS的访问日志

使用步骤

本地数据中心部署步骤

1, 本地安装网关VM

不同的Hypervisor支持的安装方式和使用的安装文件都不相同,安装文件如下表所示:

Hypervisor 支持的安装方式 安装文件格式
KVM 使用VM Manager的方式通过qcow2安装存储网关 qcow2
VMware 使用VM创建向导通过vmdk安装存储网关 vmdk
VMware 使用OVF导入方式安装存储网关 ovf
Xen 使用Xen的安装命令进行安装 raw

2, 登录网关VM并配置网络
3, 配置远端OSS
4, 激活存储网关
4, 配置NFS/CIFS服务
5, 开启缓存服务,设置缓存参数

云上部署步骤

  1. 用云存储网关镜像启动一ECS实例

    ECS实例的最低要求是:

    • 2核2GB内存
    • 40GB系统盘
    • 一个公网IP
    • 安全组设置需要允许控制台连接
    • 任意Linux操作系统
  2. 配置安全组

  3. 配置OSS
  4. 激活存储网关

腾讯云

介绍

存储网关(Cloud Storage Gateway)是一种混合云存储方案,旨在帮助企业或个人实现本地存储与公有云存储的无缝衔接。您无需关心多协议本地存储设备与云存储的兼容性,只需要在本地安装云存储网关即可实现混合云部署,并拥有媲美本地性能的海量云端存储。

链接:https://www.qcloud.com/product/csg

产品架构

  1. 缓存卷网关(iscsi)

    把腾讯云上volume通过存储网关映射到本地使用呢,提升本地访问腾讯云上volume的性能。
    qcloud cache volume

  2. 存储卷网关(iscsi)

    把本地volume的备份通过存储网关备份到腾讯云上。
    qcloud storage volume

  3. 文件网关(NFS)

    把本地NFS存储通过存储网关扩展到腾讯云上。
    qcloud file gw

特性

  1. 支持在本地安装存储网关
  2. 支持volume的映射扩展
  3. 仅支持本地NFS文件协议
  4. 本地缓存机制实现冷热数据分离
  5. 数据在本地加密压缩后传到云端

使用步骤

  1. 控制台创建存储网关,选择地区
  2. 选择存储网关类型:卷网关/文件网关
  3. 选择网关运行的平台:本地VMware VM上/腾讯云CVM上
    • VMware上部署:下载镜像文件到本地,部署到VMware虚拟机
    • CVM上部署:选择CVM地域和机型,选择存储网关镜像部署
  4. 连接到存储网关
  5. 激活存储网关
  6. 配置本地缓存磁盘

百度云

介绍

存储网关是一种混合云存储方案,可以无缝衔接本地和云端存储。存储网关基于对象存储BOS提供NFS和CIFS协议的文件存储服务,您从此无需担心本地应用与云存储间的协议兼容性。此外,存储网关也可以部署在云端,实现云主机间的文件共享。

链接:https://cloud.baidu.com/product/bsg.html

产品架构

  1. 混合云下存储扩展

    本地IDC的存储空间往往是有限,通过使用存储网关,您可以像读写本地磁盘一样无缝使用云端的海量存储资源。存储网关可以部署在本地或者云端的虚拟机、物理机上。
    baiduyun hybrid

  2. 云主机间文件共享

    多台云主机间通常有文件共享的需求,例如应用服务器将日志存放在共享文件存储上以方便后续的日志集中处理和分析,负载均衡的后端云主机也可以将应用数据放在共享存储上从而实现云主机自身的无状态,方便搭建高可用业务架构。
    baiduyun share

特性

  1. 支持部署在本地或云端的虚拟机、物理机上
  2. 部署在云端,提供云主机间文件共享功能
  3. 内置本地高速缓存
  4. 提供NFS和CIFS协议的文件存储服务,数据持久化存储在BOS

使用步骤

  1. 创建存储网关:可以通过API/bgs.py脚本创建

    当前存储网关还只能创建在默认VPC内,后续会支持指定VPC进行创建
    也既是只能在云主机上部署存储网关,还不支持本地部署

  2. 创建共享目标

    一个存储网关上可以创建多个共享目标。一个共享目标对应一个BOS bucket

  3. 设置访问权限
  4. 使用存储网关:NFS/Samba挂载

总结

作为本地存储到公有云的一种扩展,存储网关是混合云中很重要的一部分,在各大公有云厂商中都有提供。
在提供存储网关的基本功能外,各个公有云厂商的存储网关功能会有些差异,详细参考下一节的功能对比。

功能对比

对比友商的存储网关功能,列表如下:

对比项 AWS 阿里云 腾讯云 百度云
NFS
CIFS x x
ISCSI x x
虚拟磁带库 x x
缓存算法 缓存 缓存/写透 缓存 缓存
本地部署
云端部署 x
后端存储 OSS/Glacier OSS OSS OSS
数据加密 x(OSS传输加密) x(OSS传输加密)
数据压缩 x x
操作日志 x x x
带宽管理 x x
自研 x(数梦工场)

存储网关基本功能

参考存储网关的定义和上一节中的各个厂商存储网关的功能对比,我们可以总结出存储网关的基本功能如下,可作为我们实现存储网关的参考。

  1. 制作存储网关VM镜像
  2. 支持部署在本地
  3. 支持NFS文件协议
  4. 缓存算法
  5. 后端使用OSS存储

难点

  • NFS文件协议
    支持完善的NFS文件协议,是个比较繁琐和困难的功能

  • 缓存算法
    如何实现效率高、缓存效果好的缓存算法是上述功能的难点
    但实现第一版基础的缓存算法,还是有很多现成的算法可以参考的

考虑不完善,需要继续细化

存储网关附加功能

在存储网关基本功能之上,可以考虑添加的附加功能有:

  1. 部署在云端虚拟机上
  2. 支持CIFS文件协议
  3. 支持数据加密、数据压缩
  4. 支持ISCSI
  5. 带宽管理
  6. 数据预取算法

难点

  • CIFS文件协议
    支持完善的CIFS文件协议,是个比较繁琐和困难的功能

  • ISCSI卷映射
    ISCSI卷的映射管理,快照功能都需要很多开发量

  • 数据预取算法
    实现高效、准确的数据预取算法对存储网关也是个难点,做好了也会是一个亮点

支持原创