存档备份主要是为保证一些网站文件安全,下载到本地容易丢失,平时这些文件又用的很少。经过多家对比,最后使用阿里云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)
OSS的计费方式很多,我针对我的需求,主要是对数据盘文档进行存档备份,这个费用更低,尤其重要的是“地域”的选择,否则上传OSS时候的速度无法达到 10 MiB/s. 购买后获得一个资源包,这个叫法不传统,其实就是一块500G的网盘空间。
二、创建访问OSS的用户
OSS存储空间有了,如果上传数据,需要有一个账户,比如以前用ftp上传文件,需要有一个账户才能登录ftp。
现在打开:ram.console.aliyun.com/users ,点击创建用户,记得勾选 **“使用永久 AccessKey 访问” **
创建完成后,一定把类似账户名和密码的信息复制下来(关闭页面后无法复制了):
用户登录名称 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实例。
创建的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 # 从创建Bucketd的Endpoint :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