利用对象存储实现数据备份的实践
-
需求分析
-
前几天电脑由于端口常开和弱密码原因,中了勒索病毒,电脑全盘被加密,所幸没有很重要的数据以及开了百度云盘的文件夹备份损失不大
-
及时没有外部因素的影响,硬盘的数据安全性并非100%,机械硬盘的安全性会随着工作时长的增加而降低,固态硬盘又会随着读写的增加而降低
-
使用
raid
磁盘阵列方式存储,现在来说保存数据量不大,成本不划算
-
-
初步设想
-
利用腾讯云的对象存储,在云端备份存储一份数据副本;
-
使用官方提供的OSCLI工具,每天定时同步备份;
COSCLI 是腾讯云对象存储(Cloud Object Storage,COS)提供的客户端命令行工具。通过 COSCLI 工具,您可以通过简单的命令行指令对您 COS 中的对象(Object)实现批量上传、下载、删除等操作。
COSCLI 使用 Go 编写,基于 Cobra 框架,支持配置多个存储桶和跨桶操作。您可以通过
./coscli [command] --help
来查看 COSCLI 的使用方法。 -
考虑的标准存储的价格相对较贵,通过数据仅做备份,并不经常读取,可以将存储类型调整为归档存储或者深度归档存储;
-
-
开始上手
-
基础准备
-
尝试备份
以备份
cloudreve
网盘从机uploads
目录为例-
同步命令
#cloudreve 网盘备份 coscli sync /hdd/cloudreve_uploads/ cos://global-backup/home_backup/hdd/cloudreve_uploads/ -r --snapshot-path /etc/coscli/cos-snapshot --thread-num 10
-
截图
-
利用
crontab
设置定时任务# 安装crontab yum install vixie-cron yum install crontabs # 检查是否安装成功 crontab -l
-
输入
crontab -e
每天凌晨3点启动定时任务0 3 * * * root coscli sync /hdd/cloudreve_uploads/ cos://global-backup/home_backup/hdd/cloudreve_uploads/ -r --snapshot-path /etc/coscli/cos-snapshot --thread-num 10
-
-
进阶与尝试
目前有一个疑问,如果文件类型转为归档存储了,那么对数据同步是否会造成影响,是否会产生数据取回费?
-
设置生命周期规则,文件修改时间的1天后沉降至深度归档存储,节省备份储备
注意点
-
对象前缀设置说明
如您希望对某个前缀下的文件执行生命周期管理操作,请在此处设置相应的前缀。COS 没有目录概念,字母和符号均属于前缀,且此处为从左至右严格匹配,即,如果想让生命周期对以 AA 为前缀和 AA/,AAA/ 为虚拟目录前缀的对象均生效,此处可以配置为 AA,如果只想针对以 AA/ 为虚拟目录前缀的对象生效,则需要配置为 AA/。
-
归档存储、深度归档存储
归档存储、深度归档存储属于冷数据类型,适用于极少访问、需要长期保存数据的业务场景。详情请查看文档存储类型说明
归档存储、深度归档存储类型的数据有最低存储时间限制,提前删除将按照最低存储时长收费。归档存储数据最低存储90天、深度归档存储数据最低存储180天。详情请查看文档归档存储容量费用说明
归档存储、深度归档存储类型的数据在访问前需要先把数据取回。即把数据恢复(解冻)成标准存储类型的副本后,再进行读取操作。按照不同的恢复模式,会产生相应的数据取回费用以及取回请求费用。详情请查看文档数据取回费用、深度归档取回请求费用
通过生命周期沉降会产生后端请求次数,按不同存储类型计费。详情请查看文档请求费用
-
-
-
全部备份命令
#cloudreve 网盘备份 #冷备 coscli sync /hdd/cloudreve_uploads/ cos://global-backup/home_backup/hdd/cloudreve_uploads/ -r --snapshot-path /etc/coscli/cos-snapshot/cloudreve_uploads --thread-num 10 #samba home 备份 #无需备份 coscli sync /hdd/home/ cos://global-backup/home_backup/hdd/home/ -r --snapshot-path /etc/coscli/cos-snapshot/rdb_home --thread-num 10 #cdn-static-resource 备份 #冷备 coscli sync /ssd/file-satic/ cos://global-backup/home_backup/ssd/file-satic/ -r --snapshot-path /etc/coscli/cos-snapshot/file-satic --thread-num 10 #docker config 备份 #热备 coscli sync /ssd/app/ cos://global-backup/hot_home_backup/ssd/app/ -r --thread-num 10
挂载与
/mnt
下对于同步命令#cloudreve 网盘备份 #冷备 coscli sync /mnt/rdb/cloudreve_uploads/ cos://global-backup/home_backup/hdd/cloudreve_uploads/ -r --snapshot-path /etc/coscli/cos-snapshot/cloudreve_uploads --thread-num 10 #samba home 备份 coscli sync /mnt/rdb/home/ cos://global-backup/home_backup/hdd/home/ -r --snapshot-path /etc/coscli/cos-snapshot/rdb_home --thread-num 10 #cdn-static-resource 备份 #冷备 coscli sync /mnt/rda/file-satic/ cos://global-backup/home_backup/ssd/file-satic/ -r --snapshot-path /etc/coscli/cos-snapshot/file-satic --thread-num 10 #docker config 备份 #热备 coscli sync /mnt/rda/app/ cos://global-backup/hot_home_backup/ssd/app/ -r --snapshot-path /etc/coscli/cos-snapshot/rda_app --thread-num 10
-
-
总结
对象存储对于数据备份是一个很好的存储通道,但是要做好隐私保护以及避免流量被刷,同时不要忘记不要上传违规内容。
-
参考链接
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
66666!