数据同步服务实验

数据同步服务

AWS DataSync 是一项安全的在线服务,可自动化并加速本地存储和 AWS 存储服务之间的数据移动。DataSync 可以在网络文件系统(NFS)共享、服务器消息块(SMB)共享、Hadoop Distributed File System(HDFS)、自行管理的对象存储、AWS Snowcone、Amazon Simple Storage Service(Amazon S3)存储桶、Amazon Elastic File System(Amazon EFS)文件系统、Amazon FSx for Windows File Server 文件系统、Amazon FSx for Lustre 文件系统与 Amazon FSz for OpenZFS 文件系统之间复制数据。

AWS DataSync支持三种方式:

  • 在本地和AWS之间传输数据
  • 在AWS服务之间传输数据
  • 在AWS和其他公有云服务之间传输数据

DataSync服务同步的主要是文件对象,以文件为基本服务。下面进行三种方式的实验.

Aws DataSync可以实现下列功能:

  • 迁移数据:将文件和对象数据快速移动到 AWS。通过动态加密和端到端数据验证,您的数据是安全的。
  • 保护数据:将数据安全地复制到成本高效的 AWS 存储服务,包括任何 Amazon S3 存储类。
  • 将原始数据归档:通过将数据直接移动到 Amazon S3 Glacier 归档存储类来降低本地存储成本。
  • 管理混合数据工作流:在本地系统和 AWS 之间无缝移动数据,以加速关键混合工作流。

AWS DataSync原理:

通过task任务将指定位置的数据传输到AWS云端的存储位置(可以是S3、EFS或FSx)

在本地和AWS之间传输数据

架构

case.53c1297e16befdbb5fde775c586d47f5770221bb

选择服务

image-20220625101754589

使用服务

选择本地到AWS云端,因此需要在本地先创建一个代理。

image-20220625101913256

创建位置

位置是AWS DataSync服务中存储点的位置,既可以是源位置(原始数据的存储位置),也可以是目标位置。一个任务需要设定两个位置,一个是存储位置一个是目标位置。AWS DataSync提供下列位置:

在这次实验中,主要是测试两个同步任务:

  • 从本地的SMB服务位置同步数据到S3
  • 同S3同步数据到本地

创建本地代理

这里,选择Vmware Workstation 安装本地代理,下载镜像

image-20220625102000302

下载压缩包之后,对压缩包进行解压获取一个OVA文件。

image-20220625102243241

将这个OVA文件导入到Vmware workstation中

image-20220625102703762

image-20220625104254482

开启虚拟机,进行下一步操作,登录,用户名:admin,密码:password。

image-20220625104606370

获取密钥

获取密钥,打开powershell,将下列代码输入到终端,并运行函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function Get-ActivationKey {
[CmdletBinding()]
Param(
[parameter(Mandatory=$true)][string]$IpAddress,
[parameter(Mandatory=$true)][string]$ActivationRegion
)
PROCESS {
$request = Invoke-WebRequest -UseBasicParsing -Uri "http://$IpAddress/?activationRegion=$ActivationRegion" -MaximumRedirection 0 -ErrorAction SilentlyContinue
if ($request) {
$activationKeyParam = $request.Headers.Location | Select-String -Pattern "activationKey=([A-Z0-9-]+)"
$activationKeyParam.Matches.Value.Split("=")[1]
}
}
}

获取到密钥

image-20220625103347288

将激活密钥填入创建网关的第二步

image-20220625103441121

代理创建成功

image-20220625104941453

从这一步本地代理就创建好了,后面就开始使用AWS DataSync这个服务

image-20220625104915071

创建同步任务——本地SMB到S3

本地有一个SMB服务,这个服务的信息

  • 用户名:shared
  • 密码:123456
  • 文件目录:/shared/source

image-20220625112243261

值得注意的是SMB服务需要与AWS DataSync代理能够通信。

选择任务

创建同步任务

image-20220625115826664

选择源位置

这里的源位置就是你需要同步的SMB服务。配置源位置

image-20220625140127073

用户设置

image-20220625120131532

选择目标位置

这里选择s3作为目标端

image-20220625141649389

配置设置

设置任务名称

image-20220625140405331

数据传输配置

image-20220625120553653

设置任务同步计划,这里设定每隔3分钟执行一次同步任务

image-20220625122038339

日志组设置

image-20220625120831471

创建同步任务成功

image-20220625121102821

使用服务

我们在之前的哪个smb服务文件夹中传入一些文件

image-20220625122222179

等待同步的时间

image-20220625122245431

到同步时间之后,就会有一个最新执行

image-20220625122704981

等待执行完毕

image-20220625122948087

查看S3存储桶,发现已经有了

image-20220625123040642

创建同步任务——S3到本地SMB

创建位置

这里的同步位置是从S3到本地的SMB服务,因此需要创建两个位置:

  • 本地SMB位置(目标位置)
  • S3存储痛位置(原始位置)

本地目标SMB位置创建

image-20220625140521128

创建本地位置

image-20220625140905505

创建成功

image-20220625140939234

创建源S3位置

image-20220625141041920

位置查看

通过上述两个步骤。已经将目标和源位置都创建完毕

image-20220625141949084

创建任务

image-20220625142226777

测试同步任务

向datasyncsrc20220625这个从存储桶传输文件

image-20220625142505862

等待同步任务完成

image-20220625143234902

查看本地目标位置已经获取到数据了

image-20220625143309516

小结

从这个实验可以得到,其实AWS DataSync使用方式就是创建任务,而一个任务需要有以下三个要素:

  • 存储源位置

    • 存储源位置如果直接支持公网访问,例如其他公有云的SMB服务,或者FSx这种公网可以访问的服务,那么就可以直接选择这个源位置;
    • 存储位置不支持公网直接访问,例如客户本地内网地址的SMB服务,NFS服务。那么我们就需要在这个本地存储服务可以访问的地方创建一个本地代理;在创建任务的时候直接选择这个代理即可。
  • 目标位置

    • 目标位置如果直接支持公网访问,例如其他公有云的SMB服务,或者FSx这种公网可以访问的服务,那么就可以直接选择这个目标位置;
    • 目标位置不支持公网直接访问,例如客户本地内网地址的SMB服务,NFS服务。那么我们就需要在这个本地存储服务可以访问的地方创建一个本地代理;在创建任务的时候直接选择这个代理即可。
  • 同步任务时间

    • AWS DataSync要求任务同步时间间隔需要1小时

从这个实验可以看出AWS DataSync支持以下同步:

  • AWS存储服务 => 本地存储服务
  • AWS存储服务 => 其他公有云服务
  • 本地存储服务 => AWS存储服务
  • 其他公有云服务=> AWS存储服务