通过公网上传下载数据到SMB文件系统

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 本文介绍如何通过公网将本地数据上传至SMB文件系统,或者将SMB文件系统内的数据下载到本地。

本文介绍如何通过公网将本地数据上传至SMB文件系统,或者将SMB文件系统内的数据下载到本地。

前提条件

  1. 已创建SMB文件系统
  2. 已创建挂载点

方案一:IIS FTP

配置ECS

从公网访问阿里云文件存储NAS,需要配置ECS作为中转节点。
上传下载数据需要占用ECS公网带宽,建议购买一台新的ECS实例专门负责这一功能,避免占用业务带宽。请参考新购ECS挂载NAS配置对SMB文件系统的挂载,推荐选择Windows 2019镜像,并在配置ECS的公网IP时勾选“分配公网 IPv4 地址”,选择“按使用流量”带宽计费模式,将带宽峰值设为最大的100Mbps。

分配公网IPv4地址.png

说明:弹性公网IP对入方向流量不收费,仅对出方向流量收费,也就是说,从公网上传数据到NAS不会收取流量费用,而从NAS下载数据则会收取流量费用。流量计费详情请参考文档

如果您要使用已有ECS挂载NAS作为中转节点,请参考Windows系统挂载SMB文件系统

在ECS上配置IIS FTP服务以及在本地系统配置FTP客户端

注:需在VPC安全组打开对应的FTP TCP端口
对于少量文件的上传和下载操作,可以通过IIS FTP服务来完成,这种方案的优点如下:

  1. 支持众多操作系统平台
  2. 提供图形化操作界面

具体配置方式请参考文档
您也可以配置其他FTP服务端和客户端进行公网上传下载数据。

方案二:rsync

配置ECS

类似方案一中的ECS配置方式,选择Linux镜像,推荐选择CentOS 8.0镜像。参考通过云服务器ECS(Linux)访问SMB文件系统进行挂载。

在ECS上配置rsync服务

对于大量文件或频繁需要的上传和下载,推荐在本地系统安装使用rsync命令行工具,这种方案的优点如下:

  1. 上传下载后的文件元数据不变(包括属主及权限信息)
  2. 支持数据增量同步
  3. 本地Linux或macOS系统可配置crontab向云上NAS自动备份数据

在本地系统配置rsync客户端

注:需在VPC安全组打开SSH(TCP 22)端口。

安装工具

1. Windows

Windows用户请下载安装Cygwin模拟环境,您可以在安装过程中搜索安装rsync工具,也可以手动下载编译安装rsync

2. Linux

如果您的本地系统是CentOS或Redhat,请执行以下命令,使用yum包管理器安装rsync。

sudo yum install rsync

如果您的本地系统是Ubuntu或Debian,请执行以下命令,使用apt包管理器安装rsync。

sudo apt-get install rsync

如果您使用了其他版本的Linux,请使用对应的包管理器安装rsync。

3. MacOS

macOS用户请下载安装homebrew包管理器,然后执行以下命令安装rsync。

brew install rsync

数据上传

执行以下命令,将本地目录以增量同步的方式,上传到阿里云NAS。

rsync -avP DirToSync/ root@1.2.3.4:/mnt/DirToSync/

说明:rsync命令中的源路径结尾必须带有/,否则同步后数据路径不能匹配。
命令中的参数请根据实际值修改:

  • DirToSync - 需要上传的本地目录名
  • root - 上传目标的NAS目录属主
  • 1.2.3.4 - 已挂载NFS文件系统的Linux ECS公网IP(上文配置得到)
  • /mnt - ECS中用来挂载NAS的路径

数据下载

从阿里云NAS下载数据到本地的方式与上传类似,执行以下命令即可。

rsync -avP root@1.2.3.4:/mnt/DirToSync/ DirToSync/

命令中的参数请根据实际值修改。

自动上传

本地Linux或macOS系统,可以基于rsync命令,通过crontab配置定时上传备份任务。

打通SSH

参考使用SSH密钥对连接Linux实例,打通从本地系统到ECS的无密码通道。执行以下命令确认打通成功。

ssh -i ~/.ssh/ecs.pem root@1.2.3.4

命令中的参数请根据实际值修改:

  • ~/.ssh/ecs.pem - 私钥文件在本地机上的存储路径
配置crontab

执行命令“crontab -e”打开编辑器,配置定时上传任务,输入以下内容:

0 23 * * * rsync -av -e "ssh -i ~/.ssh/ecs.pem" ~/Documents/ root@1.2.3.4:/mnt/Documents/

这条crontab配置将会在每天23时0分把本机登录用户的Documents目录自动上传备份到阿里云NAS。请根据实际需求替换配置中的参数。

说明:macOS用户需要给/usr/sbin/cron配置硬盘访问授权。请进入系统设置,点击Security & Privacy > Privacy > Full Disk Access,点击解锁图标,点击“+”,选择Macintosh HD目录,按“cmd + shift + .”显示隐藏目录,最后选择/usr/sbin/cron。

方案三:将数据上传至OSS再迁移到NAS

如果您需要上传大量数据到NAS,而公网访问ECS的带宽无法满足您的需求,可以考虑先上传数据到OSS,然后将OSS数据迁移到NAS
说明:目前迁移服务仍在公测阶段,需要申请白名单。
说明:迁移服务无法保证文件元数据不变,迁移完成后可以再执行rsync修复元数据信息。

方案四:本地数据中心挂载NAS

注:需在VPC安全组打开SMB(TCP 445)端口。

以上三种方案相对简便,但如果需要从本地数据中心频繁读写NAS上的大量数据,则需要打通网络专线,从数据中心直接挂载NAS进行访问。

VPN网关方案

请参考通过VPN网关实现本地数据中心访问阿里云NAS以及MacOS客户端连接阿里云NAS SMB文件系统
打通之后,对于Windows客户端可以采用robocopy进行多线程数据传输,比如

robocopy c:\dirA z:\dirB /e /z /b /mt:32

NAT网关方案

请参考通过NAT网关实现本地客户端访问NAS SMB文件系统。可能需要转换SMB的TCP 445端口到其他端口,注意需要在安全组打开对应的端口。

访问上传数据

数据上传完成后,您就可以在负责业务的ECS或容器上挂载NAS,共享访问NAS上的数据了。
以ECS为例,您可以用Windows系统挂载SMB文件系统,然后就像访问本地数据一样访问NAS上的数据。
您也可以在云上搭建业务应用,在多台计算节点上通过程序大量读写NAS上的数据,例如通过Windows IIS服务访问阿里云NAS

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
IDE 编译器 开发工具
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
944 0
|
算法 Java 调度
mybatis-plus中的雪花算法
主要介绍mybatis-plus中用到的雪花算法,如有错误或未考虑完全的地方,望不吝赐教。这里默认大家对雪花算法有一定的了解哈
6930 1
mybatis-plus中的雪花算法
|
弹性计算 网络协议 安全
宝塔面板放行阿里云端口命令操作教程
布署宝塔面板阿里云服务器需要开放哪些端口?阿里云服务器“安全组设置”详解
2131 1
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
94_提示压缩:减少token消耗
在大语言模型(LLM)应用中,提示工程已成为提升模型性能和控制输出的关键技术。然而,随着模型能力的增强和应用场景的复杂化,提示文本往往变得冗长,导致token消耗急剧增加。这不仅直接影响到API调用成本,还可能超出模型的上下文窗口限制,特别是在使用GPT-4、Claude 3等大模型时,每1000个token的成本可能高达数美分。对于需要频繁交互或批量处理的应用场景,如客服系统、内容生成平台或自动化工作流,token消耗的优化就显得尤为重要。
|
机器学习/深度学习 编解码 计算机视觉
YOLOv11改进策略【Head】| ASFF 自适应空间特征融合模块,改进检测头Detect_ASFF
YOLOv11改进策略【Head】| ASFF 自适应空间特征融合模块,改进检测头Detect_ASFF
1895 13
YOLOv11改进策略【Head】| ASFF 自适应空间特征融合模块,改进检测头Detect_ASFF
|
网络协议 安全 文件存储
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问,即使IP地址变化,也能通过DDNS服务保持连接。适用于家庭网络远程访问设备及企业临时或移动设备管理,提供便捷性和灵活性。示例代码展示了如何使用Python实现基本的DDNS更新。尽管存在服务可靠性和安全性挑战,DDNS仍极大提升了网络资源的利用效率。
1982 6
【Qt 学习笔记】Qt常用控件 | 按钮类控件 | Radio Button的使用及说明
【Qt 学习笔记】Qt常用控件 | 按钮类控件 | Radio Button的使用及说明
2565 1
|
消息中间件 数据可视化 RocketMQ
【RocketMQ系列二】通过docker部署单机RocketMQ
【RocketMQ系列二】通过docker部署单机RocketMQ
3416 4
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。
713 3
|
XML 机器学习/深度学习 监控
性能监控之Telegraf+InfluxDB+Grafana NVIDIA GPU实时监控
【6月更文挑战12天】性能监控之Telegraf+InfluxDB+Grafana NVIDIA GPU实时监控
838 0