宝塔面板备份网站到腾讯云cos(深度归档模式)

发布于:2021-07-09 最后编辑:2021-07-09 所属分类:运维 阅读次数:1819

应用场景

  1. 服务器使用腾讯云服务器,带宽5M,数据盘200G。
  2. 七八个站点,每周自动备份一次,保留最近的三个备份。

设计需求

因为是保留最近的三份备份,全部站点的备份文件加起来约有150GB,占用了过多的服务器磁盘。而要扩容磁盘的话,看了一下,扩容到500GB,服务器还剩两年半,价格三千多,感觉不值当。而且现在200GB的磁盘,实际使用的才50GB多点。只要把备份弄到别的地方,剩下磁盘空间足够用好几年了。

那怎么解决呢?我们先来看看能想到的办法。PS:免费手段暂不考虑,主要是免费的没几个靠谱的。

  1. 不备份,肯定是不行的,不怕一万就怕万一嘛。
  2. 下载到本地保存。太繁琐了,能自动还是尽量自动,而且带宽只有5MB,150GB得下载多久?
  3. 使用腾讯云官方的快照功能,按量使用的价格是:0.0009元/GB/小时,这样算下来,一年得一千多,也不划算。官方文档说免费50GB额度预计会在2021年10月份取消。
  4. 使用宝塔面板官方提供的cos备份工具,直接备份到cos中。标准存储费用是0.118元/GB/月。150GB,一年下来大约两三百块钱。这个就比较容易接受了。而且创建cos的时候,可以选择跟服务器相同的地域,这样一来,会自动使用内网传输,备份速度比本地差不了多少。

暂时没想到其他备份方式了。综上所述,最合适的方式当然是备份到cos。其实备份到cos也有多种收费模式。正常的是标准存储,备份文件毕竟只是以防万一的,平时基本用不到,所以可以考虑低频存储、归档存储、深度归档存储等模式。还是以150GB的数据量为例,计算一下各自的价格。

  1. 标准存储 0.118元/GB/月,一年是:0.118 x 150 x 12 = 212.4元
  2. 低频存储 0.08元/GB/月,一年是:0.08 x 150 x 12 = 144元
  3. 归档存储 0.033元/GB/月,一年是:0.033 x 150 x 12 = 59.4元
  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: 创建存储桶的时候,要选择默认的私有读写,不要开发公共读写!另外就是存储桶地域,要选择与服务器相同的地域,不然没法使用内网传输。

参考资料