应用场景
- 服务器使用腾讯云服务器,带宽5M,数据盘200G。
- 七八个站点,每周自动备份一次,保留最近的三个备份。
设计需求
因为是保留最近的三份备份,全部站点的备份文件加起来约有150GB,占用了过多的服务器磁盘。而要扩容磁盘的话,看了一下,扩容到500GB,服务器还剩两年半,价格三千多,感觉不值当。而且现在200GB的磁盘,实际使用的才50GB多点。只要把备份弄到别的地方,剩下磁盘空间足够用好几年了。
那怎么解决呢?我们先来看看能想到的办法。PS:免费手段暂不考虑,主要是免费的没几个靠谱的。
- 不备份,肯定是不行的,不怕一万就怕万一嘛。
- 下载到本地保存。太繁琐了,能自动还是尽量自动,而且带宽只有5MB,150GB得下载多久?
- 使用腾讯云官方的快照功能,按量使用的价格是:
0.0009元/GB/小时
,这样算下来,一年得一千多,也不划算。官方文档说免费50GB额度预计会在2021年10月份取消。 - 使用宝塔面板官方提供的cos备份工具,直接备份到cos中。标准存储费用是0.118元/GB/月。150GB,一年下来大约两三百块钱。这个就比较容易接受了。而且创建cos的时候,可以选择跟服务器相同的地域,这样一来,会自动使用内网传输,备份速度比本地差不了多少。
暂时没想到其他备份方式了。综上所述,最合适的方式当然是备份到cos。其实备份到cos也有多种收费模式。正常的是标准存储,备份文件毕竟只是以防万一的,平时基本用不到,所以可以考虑低频存储、归档存储、深度归档存储等模式。还是以150GB的数据量为例,计算一下各自的价格。
- 标准存储
0.118元/GB/月
,一年是:0.118 x 150 x 12 = 212.4元 - 低频存储
0.08元/GB/月
,一年是:0.08 x 150 x 12 = 144元 - 归档存储
0.033元/GB/月
,一年是:0.033 x 150 x 12 = 59.4元 - 深度归档存储
0.01元/GB/月
,一年是:0.01 x 150 x 12 = 18元
归档存储和深度归档存储虽然便宜,但是数据不是可以随时使用的,要使用的时候,得先取回。而且取回是需要费用和时间的。所以建议大家使用标准存储即可,而且还简单,直接在宝塔安装这个插件,设置好秘钥信息,再去计划任务里修改一下备份方式就可以了。
如果确实想用归档存储或深度归档存储,那么要修改一下腾讯云COS插件的代码。我当前使用的是4.8版本,找到插件文件:/www/server/panel/plugin/txcos/txcos_main.py
,在1275行左右,找到下面的代码:
response = client.upload_file(
Bucket=self.__bucket_name,
LocalFilePath=local_file_name,
Key=object_name,
MAXThread=max_threads,
PartSize=part_size,
)
在里面添加一个参数即可。归档存储:StorageClass='ARCHIVE'
,深度归档存储:StorageClass='DEEP_ARCHIVE'
,示例如下:
response = client.upload_file(
Bucket=self.__bucket_name,
LocalFilePath=local_file_name,
Key=object_name,
MAXThread=max_threads,
PartSize=part_size,
StorageClass='DEEP_ARCHIVE'#直传为深度归档存储
)
PS: 创建存储桶的时候,要选择默认的私有读写,不要开发公共读写!另外就是存储桶地域,要选择与服务器相同的地域,不然没法使用内网传输。