用阿里云的OSS对象存储,做存档备份很合适

331 阅读6分钟

存档备份主要是为保证一些网站文件安全,下载到本地容易丢失,平时这些文件又用的很少。经过多家对比,最后使用阿里云OSS对象存储中这个产品。

通过转存数据盘测试后,具体费用如下:阿里云OSS对象存储500G一年需要135元左右,如果想下载这些存档文件,需要先解冻、解冻需要1分钟,然后再取回,这个过程需要另外收费。

通过阿里云客服电话咨询到,解冻取回500G的数据需要费用在30~50元之间。

下边记录如何把阿里云ECS服务器(CentOS7)的数据盘,通过ossutil工具,上传到OSS存储的Bucket桶(其实就是磁盘)中。

特别声明:我上传OSS存储时候的传输速度可以到 10 MiB/s,是因为我的ECS服务器和新购买的OSS都是阿里云的,并且他们处在相同的地区,比如都是华北1(青岛) ,这点尤其重要,此时才可以使用阿里云内网的endpoint。否则只能使用公网的慢速传输,公网测试的速度是500k~600k/s左右.

阿里云服务器通过快照也可以对数据盘进行备份,但是快照不方便查看单个文档,通过多方比较,选择了OSS对象存储方案。

一、购买OSS对象存储和设置

以下网址可以购买OSS存储 对象存储 OSS_云存储服务_-阿里云

[对象存储 OSS_云存储服务_-阿里云](https://www.aliyun.com/product/oss)

image.png

OSS的计费方式很多,我针对我的需求,主要是对数据盘文档进行存档备份,这个费用更低,尤其重要的是“地域”的选择,否则上传OSS时候的速度无法达到 10 MiB/s. 购买后获得一个资源包,这个叫法不传统,其实就是一块500G的网盘空间。

二、创建访问OSS的用户

OSS存储空间有了,如果上传数据,需要有一个账户,比如以前用ftp上传文件,需要有一个账户才能登录ftp。

现在打开:ram.console.aliyun.com/users ,点击创建用户,记得勾选 **“使用永久 AccessKey 访问” **

image.png

创建完成后,一定把类似账户名和密码的信息复制下来(关闭页面后无法复制了):

用户登录名称 xxxxxx@111111.onaliyun.com
AccessKey ID ***************************
AccessKey Secret ***************************

然后在这个页面 ram.console.aliyun.com/users 可以看到账户列表,给刚创建的这个账户,添加 AliyunOSSFullAccess 权限。

三、添加桶Bucket

OSS资源包已经购买,但是需要在后台创建一个Bucket(桶),类似一个文件夹,这个文件夹做为存储盘的根目录,这样的设计,可以让你在500G的空间中,创建多个网盘的根目录。 首先访问:oss.console.aliyun.com/overview 免费开通对象存储oss服务,然后访问oss的bucket列表:oss.console.aliyun.com/bucket 创建bucket实例。

image.png

创建的bucket名称中,不要带个人隐私的信息,名称信息外部能看到的。比如叫:bucket-a2000

这里选择“同城冗余存储”。

记下 Endpoint :oss-cn-qingdao.aliyuncs.com

这里的Endpoint是公网的,不是速度很快的内网,这里暂时记下。

创建完成后,打开刚创建的Bucket,点击左侧菜单“Bucket 授权策略”新增授权, 然后勾选子账户,这里可以选择到在第二步创建的 xxxxxxx用户, 权限“读/写” ,在访问方式中,可以指定你的ESC服务器的ip,只有这个ip的数据可以上传到OSS存储。

一切准备就绪,下边登录ESC服务器,安装阿里给准备ossutil工具。

四、安装Ossutil工具

下载ossutil(根据系统选择对应版本,这里以64位Linux为例)

# 这里有官方准备的下载地址
https://help.aliyun.com/zh/oss/developer-reference/install-ossutil2

我的linux服务器使用的是CentOS7,运行了如下代码:

cd /opt

wget "https://gosspublic.alicdn.com/ossutil/v2/2.1.0/ossutil-2.1.0-linux-amd64.zip?spm=a2c4g.11186623.0.0.7c886936ZXWVRz&file=ossutil-2.1.0-linux-amd64.zip" -O ossutil-2.1.0-linux-amd64.zip

unzip ossutil-2.1.0-linux-amd64.zip

cd ossutil-2.1.0-linux-amd64

# 赋予执行权限
chmod +x ossutil

# 移动文件到系统PATH路径(可选,方便全局调用,我暂时没有设置这个步骤)
sudo mv ossutil /usr/local/bin/ossutil

# 验证安装是否成功
./ossutil --version

五、配置Ossutil访问凭证

把刚才设置的账户信息和地域信息,写入到Ossutil配置中。

cd /opt/ossutil-2.1.0-linux-amd64
# 运行配置命令(按提示输入信息)
./ossutil config

按回车键后,提示输入一系列的配置信息:

1.
..................
.....
Please enter the config file name [直接回车,无需输入任何内容]   回车后,默认会生成一个配置文件,文件路径是 /root/.ossutilconfig

2.接着输入 AccessKey ID

3.输入     AccessKey Secret

4.Please enter Region [None]: cn-qingdao     # 从创建BucketdEndpoint :oss-cn-qingdao.aliyuncs.com   中截取的  ,不同的地域输入的也不同

5.请输入Endpoint:  
#此时不能输入oss-cn-qingdao.aliyuncs.com,这是公网的,应该输入内网的,这是从客服哪里获得的。
  
请输入Endpoint: oss-cn-qingdao-internal.aliyuncs.com

注意:不同的地域输入的也不同。

输入完毕,这些信息就存储到/root/.ossutilconfig文件中了,如果写错了,可以改。


下边是修改/root/.ossutilconfig 的操作 ,如果上边正确设置了,就不用再去修改。

vim /root/.ossutilconfig
按i开始编辑 ,修改完毕后按 Esc ,然后输入 :wq 

保存退出。

六、上传数据盘文件到OSS

信息设置完成后,下边用一条ossutil命令,备份数据盘的文件到OSS对象存储。

在操作之前,如果不放心,可以把ECS服务器系统盘和数据盘分别做快照,同时暂时关闭服务器网站的使用,防止数据备份的不完整。

测试上传

#测试把/opt/www/内的所有文件,递归复制到OSS存储中。

#进入工具所在目录
cd /opt/ossutil-2.1.0-linux-amd64

#bucket-a2000 是上边创建的 桶(Bucket)名称
./ossutil cp -r /opt/www/  oss://bucket-a2000/www/  -j 50 --parallel 10 --update

-r : 递归上传目录内所有文件
-j 50 : 使用50个并发线程加速上传 ,要根据自己服务器的配置来设置,如果设置过多容易在上传过程中OVER
--parallel 10 是上传大文件时候的切片分片数目

--update : 仅上传新增或变化的文件(增量备份)

测试成功后,可以验证下OSS中的文件:

查看OSS文件列表
./ossutil ls oss://bucket-500/guanwang_hpzs/

#大文件断点续传 (没测试过,请参考最新的命令写法)
ossutil cp -r /data/large_file.iso oss://bucket-a2000/backup/ --enable-checkpoint

七、服务器配置、承压和上传速度

我的阿里云ECS服务器配置如下:

**2**核(vCPU)
内存**8** GiB
公网带宽 4 Mbps

使用上边命令运行后,服务器当前状态: cpu 4.6% ~9.6%

内存16.6%

瞬时上传速度 10.075Mid/s、带宽完全不受影响。

如果调整并发线程,应该可以加速上传。

八、批量解冻下载

如果需要取回文件,可以批量解冻,尚未测试过,仅供参考。

bucket-a2000 这个bucket 存储了大量的归档文件,下载之前,需要先批量解冻 .

#这个可以安装ossutil命令行 
安装教程: https://help.aliyun.com/zh/oss/developer-reference/install-ossutil2?spm=a2c4g.11186623.0.0.47b069365p2Xfu

如需要解冻某个bucket所有的归档存储,且维持解冻期效7天,且使用高优先级解冻。

命令是:ossutil restore oss://bucket-a2000 -r -days 7 --tier Expedited 

解冻命令文档:https://help.aliyun.com/zh/oss/developer-reference/restore-unfrozen-file?spm=a2c4g.11186623.0.0.26b148a2ZF98gW