高效NAS数据备份之路

简介

我们在在自建NAS的时候,通常最需要关注的除了品牌、功能、性能、扩展性、还有最重要的就是数据安全性。在我们正常使用nas的过程中,为了保护数据安全通常有以下几种方式:

RAID备份:RAID(冗余独立磁盘阵列)是一种常见的NAS数据备份方式,常见的有RAID 0、RAID 1、RAID 5、RAID6、RAID10、RAID60等。

外部硬盘备份:你可以定期将NAS上的重要数据复制到外部硬盘上,如果NAS出现问题,你还可以从外部硬盘恢复数据。

网络备份:如果你有两台NAS,可以设置一台为主NAS,另一台为备份NAS,主NAS定期将数据备份到备份NAS上。

云备份:许多NAS支持与云存储服务(如Google Drive、Dropbox等)同步,你可以将重要数据定期备份到云端,以防止本地灾难性故障。

快照备份:某些高级NAS设备支持快照功能,可以在数据发生变化时自动保存数据状态,如果误删除或修改文件,可以通过快照恢复数据。

通常用的最多的方式就是使用raid或者使用单独的硬盘进行数据备份。不同raid方式的对比如下:

RAID 0:

数据分布方式:数据被分割成多个块,并在多个磁盘上交替存储(条带化)。
数据保护:不提供冗余性,如果任何一个磁盘故障,整个阵列的数据都会丢失。
性能:提供了最高的性能,因为数据可以同时从多个磁盘读取或写入。
存储效率:不提供冗余,所以存储效率是最低的。
RAID 1:

数据分布方式:数据被完全镜像到多个磁盘上。
数据保护:提供了最高级别的冗余性,任何一个磁盘故障都不会导致数据丢失。
性能:读性能较高,写性能与单个磁盘相当。
存储效率:存储效率为50%,因为数据被完全复制到多个磁盘上。
RAID 5:

数据分布方式:数据和奇偶校验信息交错存储在多个磁盘上。
数据保护:提供了一定程度的冗余性,可以容忍单个磁盘的故障。
性能:读性能较高,写性能受到奇偶校验计算的影响。
存储效率:存储效率较高,其中一块磁盘的空间用于存储奇偶校验信息。
RAID 6:

数据分布方式:类似于RAID 5,但使用了两个奇偶校验信息,分别存储在不同的磁盘上。
数据保护:提供了更高级别的冗余性,可以容忍两个磁盘的故障。
性能:读性能较高,写性能相对于RAID 5更受影响。
存储效率:存储效率较高,但比RAID 5略低,因为需要额外的奇偶校验信息存储空间。
RAID 10(也称为RAID 1+0):

数据分布方式:数据首先被镜像到多组磁盘上,然后这些镜像组之间进行条带化。
数据保护:提供了较高级别的冗余性,可以容忍多个磁盘的故障。
性能:提供了很好的读/写性能,尤其适用于IO密集型工作负载。
存储效率:存储效率较低,只有RAID 1的一半,因为数据被完全复制到多个磁盘上。
RAID 50:

数据分布方式:类似于RAID 5,但在RAID 5的基础上使用了条带化来提高性能。
数据保护:提供了一定程度的冗余性,可以容忍单个磁盘的故障。
性能:提供了较高的读/写性能,尤其适用于需要高性能和容错的环境。
存储效率:存储效率较高,但比单独的RAID 5或RAID 10低。
RAID 60:

数据分布方式:类似于RAID 6,但在RAID 6的基础上使用了条带化来提高性能。
数据保护:提供了更高级别的冗余性,可以容忍多个磁盘的故障。
性能:提供了较高的读/写性能,尤其适用于需要高性能和高冗余性的环境。
存储效率:存储效率较高,但比单独的RAID 6低。

使用单独空间进行备份的特点

成本效益: 单独空间备份(存储池/单独硬盘/外置空间等)通常是成本效益最高的备份解决方案之一,价格相对较低。

易于设置和使用: 单独空间备份通常只需要简单地连接到计算机或设备上,并通过备份软件或操作系统的内置功能进行配置。

移动性: 如果使用外部硬盘备份通常是便携式的,可以轻松携带到不同的地方。这使得备份数据和存储数据分离,从而提高了数据的安全性。

离线备份: 单独空间备份提供了离线备份的选项,这意味着备份数据不受网络攻击或网络连接问题的影响。这可以提供额外的安全性和保护。

缺点:

容量限制: 单独空间备份的容量通常根据使用的方式可能有所限制,存储池的可能大点,如果是单独外置硬盘或者u盘空间会较小,可能无法满足大量数据的备份需求。如果数据量增长很快,可能需要购买更大容量的硬盘或者多个硬盘进行备份。

人为错误风险: 外部硬盘备份需要手动进行,容易受到人为错误的影响。如果用户忘记定期备份或者不小心删除了备份数据,可能会导致数据丢失。

安全性: 外部硬盘备份的安全性取决于用户如何管理和存储备份硬盘。如果备份硬盘丢失或被盗,备份数据可能会遭受损失或泄露的风险。

单点故障: 单独硬盘备份存在单点故障的风险。如果备份硬盘发生故障,可能会导致备份数据无法访问或丢失。因此,建议定期检查备份硬盘的健康状态,并考虑使用多个备份硬盘轮换备份。

备份方式的选择        

上面我们介绍了常用的几种备份方式和其特点。如果是企业级nas或者数据存储,对于数据的可靠性要求较高,可以使用多种备份方式并存的方式。这里我们只展开家用nas的数据备份方式的理想选择。

在我们购买家用nas的时候,开销最大的就是两个,一个是nas机器的成本,还有一个就是硬盘的成本。所以在家用nas中,硬盘的成本会是一个非常重要的衡量nas效率的指标。那么如何选择家用nas的备份方式,就会对成本造成直接影响。

通常我们选择nas的备份方式的时候,都是一raid为主,因为这是所有成品nas都支持的备份方式,自建nas如果主板支持硬件的raid或者有raid卡,也会配置raid进行数据的安全保护。如果自建nas主板不支持硬件raid那么需要raid的话,还需要使用软raid,例如使用truenas的时候,可以用zfs。最关键的是raid不是万能的,它只是一种冗余机制,尤其是家用环境下,使用大容量磁盘做raid后,当某块磁盘故障时,raid进行重建,其数据丢失风险非常高。因为使用大容量磁盘进行raid重建时,需要花费的时间将会随着硬盘的增大而变得非常漫长。在这个过程中,如果出现断电、其他硬盘故障等会对raid重建造成非常严重的影响,所以重要数据还是需要多种备份方式并存。

家用nas数据存储和备份的最佳选择

        为了最大化的利用磁盘空间降低成本保障数据的安全性,我目前使用的nas最高效最低成本的数据存储和备份方式如下:

        存储:使用多块磁盘组成一个存储池pool(不是raid),该存储池不做任何冗余机制,任何一块磁盘损坏,只影响该磁盘上的数据,不影响其他磁盘的数据,其他磁盘的数据依旧可以访问。但是所有磁盘对外呈现一个存储池,可以挂载在同一个目录下。该存储方式可以参考虚拟存储(Linux挂载点合并)

        备份:使用脚本周期性的进行增量备份,只对重要数据进行备份(如果自己的备份空间足够大可以进行全量备份),备份数据存储在单独的存储空间(根据自己的需求,可以存储在另一个单独的硬盘或者u盘)。

备份工具和测试

备份工具为我自己写的一个备份脚本,通过脚本来实现备份功能。

#!/bin/bash
SNAPSHOT=/backup/snap/backup-snap.file #备份是进行对比的镜像文件,我这里使用的是增量备份方式
SOURCE=/home/op/test1 #要备份的目录,可以根据自己的需求进行修改
DESTINATION=/backup/test1/backup-$(date +%Y%m%d%H%M%S).tar.gz #备份到的位置,我后面使用的是gz压缩方式,也可以根据自己的需求和设备性能修改压缩方式,可以修改为bz2或者xz。
LOGFILE=/backup/backuplog/logfile.log #备份结果的日志存储位置,这个自己可以结合其他的日志告警功能增加提示,可以知道备份成功的状态。需要自己根据自己的需求进行自定义。
if [ ! -f $SNAPSHOT ]; then
    tar -cpzf $DESTINATION -g $SNAPSHOT $SOURCE
else
    tar -cpzf $DESTINATION -G -g $SNAPSHOT $SOURCE
fi
if [ $? -eq 0 ]; then
    echo "$(date): Backup succeeded!" >> $LOGFILE
else
    echo "$(date): Backup failed!" >> $LOGFILE
fi

测试

        我在自己的家目录中创建一个test1目录,该目录是我需要备份的目录        

目录中有一些文件,是我需要备份的,一会我会在目录中新增文件进行备份,查看备份状态。
本分目录中有备份的日志存储目录,恢复目录(一会在恢复的脚本中有该目录),snap镜像对比目录,还有test1备份数据的目录

 备份 

备份脚本backup.sh,需要给其可执行权限chmod a+x backup.sh,然后通过./backup.sh执行,如果不需要在终端显示任何东西,需要通过sudo ./backup.sh > /dev/null 2>&1执行。后期可以通过crontab周期调用该脚本进行备份

 查看备份结果

已经备份了文件,并且已经有了快照文件和日志文件

日志显示已经备份成功

进行增量备份

在test1目录中新增文件

再次进行备份

此时日志已经提示备份成功,备份文件中多了一个备份文件,并且是677M,和第一个本分文件加在一起一共是1.6G
在没有新增任何文件的情况下执行本分,依旧产生了一个新的备份文件只不过内部没有任何数据

备份恢复

#!/bin/bash
RESTORE_DIR=/backup/restore2/
for file in $(ls /backup/test1/*.tar.gz | sort); do
    pv $file | tar -xzf - -C $RESTORE_DIR
done
#注意,因为是增量备份,所以恢复的时候需要从第一个备份文件逐次开始恢复
执行数据恢复,因为有3个文件,所以有三次恢复

查看数据

恢复后的数据与以前目录的数据完全一致

设置周期性备份

设置crontab,通过周期性执行脚本功能,对数据进行周期性备份。

周期性的执行改脚本,每三天执行一次,晚上2点执行

当你使用 crontab -e 命令编辑 crontab 时,你需要了解一些 crontab 的基本参数:

分钟(minute):表示小时中的分钟数,范围为 0 到 59。

小时(hour):表示一天中的小时数,范围为 0 到 23。

日期(day of month):表示一个月中的日期,范围为 1 到 31。

月份(month):表示一年中的月份,范围为 1 到 12。

星期几(day of week):表示一周中的某一天,范围为 0 到 7(0 和 7 都表示周日)。

除了上述的数字表示之外,还可以使用一些特殊字符来表示特定的时间点:

*:代表所有可能的值。例如,* 在分钟字段中表示每分钟都执行。

/:用于指定间隔值。例如,*/5 表示每隔 5 个单位执行一次。

,:用于列出多个值。例如,1,3,5 表示分别在第 1、3 和 5 分钟执行。

-:用于指定一个范围。例如,1-5 表示 1 到 5 分钟。

总结

以上我自己家用nas数据存储和备份方式的全部过程。整个过程没有使用raid,可以最大程度节约硬盘空间和磁盘利用率,保护重要数据不丢失。不需要其他额外的插件,可以将数据周期性备份至自己需要备份的位置,简单高效。

  • 30
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monster✺◟(∗❛ัᴗ❛ั∗)◞✺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值