V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gdbeixi
V2EX  ›  NAS

一次 nas 数据安全讨论发现的知识

  •  
  •   gdbeixi · 159 天前 · 5944 次点击
    这是一个创建于 159 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前不久和同事讨论 nas 数据安全问题,他最近刚入 nas 坑,买了两个盘,由于曾经经历过多次多年数据损失,买了希捷企业盘( 8t )选择了保守的 raid1 ,我一听,觉得没必要太费空间了,况且这个盘也不便宜,而且他入的貌似四盘位 nas (没细问),于是就介绍我的处理方案:重要数据定时一个任务在两个盘内备份就好,不组阵列来容错,而且我也觉得软 raid 重建也是头大的问题。
    于是就有了他灵魂的一问:万一你原始数据盘中文件部分损坏,那复制过去不是都坏了?(他看中 raid 有数据校验功能,认为 raid 可以规避这个风险)
    听到愣了一下,想说这种事情概率极低吧?好像又不合适,确实有这个硬盘内比特翻转的风险,自己也经历过大量数据复制时发生数据部分损坏情况,于是没有立刻回答。
    后续自己觉得这个事情不对劲,不可能存在这么大个风险而专业厂家不解决,不然 IDC 也开不下去啊,因为我自己用的是群晖,就在群晖官网找答案,果然有:https://www.synology.cn/zh-cn/dsm/Btrfs,原来在文件系统层面就已经解决了这个问题,普通用户该咋用咋用。

    54 条回复    2024-01-13 09:52:50 +08:00
    busier
        1
    busier  
       159 天前 via Android
    Zfs. Btrfs 都有这个功能。

    我用 btrfs ,手动命令操作简单。为防止意外,有同步备份,既然有备份了,还要个鬼的 RAID1 ,我又没有不停机换硬盘需求,用 RAID1 就是自找麻烦。
    Soar360
        2
    Soar360  
       159 天前
    BTRFS 这个系统优点很多,但不适合用来装数据库。应该也很少有人会用 NAS 来装数据库……
    1018ji
        3
    1018ji  
       159 天前
    单盘 H 啊哈哈
    wheat0r
        4
    wheat0r  
       159 天前   ❤️ 2
    小知识,备份不是冗余,对数据安全有要求的场景备份和冗余都要做
    totoro625
        5
    totoro625  
       159 天前
    RAID1 保障硬盘故障还能正常运行,换一块硬盘就行

    备份保障硬盘故障/误删除还有一份数据,不止于一无所有,但是恢复原有配置麻烦点

    在优先级上二选一,肯定是选择备份,但是云备份也是一种备份,可能他已经云备份了

    在同一台机器内的两个盘拷贝一份资料,勉强算是备份吧,不算安全的备份,比单纯的 RAID1 强一点

    群晖的硬盘检测功能,基本上硬盘坏一点点就让你换硬盘了,个人觉得,这个时候丢失的数据在承受范围内
    i4t
        6
    i4t  
       158 天前
    数据丢了就是下一份帖子了,我感觉人家用 raid1 没毛病,IDC 都用 raid10 ,或者有单独的备份服务器
    cadmuxe
        7
    cadmuxe  
       158 天前   ❤️ 1
    我真正重要的数据都在 google drive 和 google photos 里,nas 也备了一份。
    nas 5*20T, 开了 SHR-2 (两个盘的冗余),基本就是一些电影啥的,两盘冗余也坏了丢数据那也就认了。。
    在搞冷备份,热备份啥的不值当。
    xdzhang
        8
    xdzhang  
       158 天前
    鸡蛋不放一个篮子,每天数据都分发到不同的存储中。
    ltkun
        9
    ltkun  
       158 天前 via Android
    zfs 省心省力
    xiaoz
        10
    xiaoz  
       158 天前
    NAS 我都没做 RAID ,浪费磁盘。重要数据我都是定时同步到其它盘额外保存一份,不重要的都不用存多份。
    ShinichiYao
        11
    ShinichiYao  
       158 天前
    你要考虑的是万一原文件由于误操作或者编辑坏了或者被勒索病毒加密了,备份会不会也同步
    bjfane
        12
    bjfane  
       158 天前
    @cadmuxe 电影也要冗余么
    chevalier
        13
    chevalier  
       158 天前   ❤️ 16
    靠 RAID 来做数据安全,总有一天会被教做人
    RAID 的设计目的是高可用,是盘有故障时换盘不停机,不是用来做安全备份的

    手抖误删了文件,RAID 有用吗?
    中了勒索病毒,RAID 有用吗?
    电涌把 NAS 炸了,RAID 有用吗?
    熊孩子把 NAS 浇水了,RAID 有用吗?
    StoneHuLu
        14
    StoneHuLu  
       158 天前
    我直接 snapraid+mergefs 没那么多花里胡哨的
    timeance
        15
    timeance  
       158 天前
    @busier #1 RAID1 可能是防止单盘整个损毁的极端情况吧,比如用二手盘就很需要 RAID1

    我是重要数据云备份,次重要数据备份到另外一块盘;数据无价
    ButcherHu
        16
    ButcherHu  
       158 天前
    感觉就是分布式考虑的那些问题嘛
    v2tudnew
        17
    v2tudnew  
       158 天前
    "重要数据定时一个任务在两个盘内备份就好,不组阵列来容错"
    你的观点是单盘靠复制来容错对吧?然后你发的链接,官方明确表示:
    ”Btrfs 文件系统就能通过镜像元数据自动检测到损毁的文件(静默数据损坏),并使用支持的 RAID 存储卷来还原受损的数据,包括 RAID 1 、RAID 5 、RAID 6 、RAID 10 、F1 和 SHR 。“

    前提条件不是租 RAID1 以上吗?所以我觉得,你可能、大概率还是坑了对方。🤣
    重要数据可以只多备份,但一定要有冗余文件,比如 PAR2 、RAR 恢复卷。
    MoonLin
        18
    MoonLin  
       158 天前   ❤️ 1
    snapraid 配置数据巡检,关于空间浪费,snapraid 做到了很好的均衡,[这是我的选型参考]( https://blog.io01.xyz/posts/6op1/#raid-%E9%80%89%E5%9E%8B)。元旦把我一块服役了 13 年的老硬盘换掉了,重建非常丝滑。
    mantouboji
        19
    mantouboji  
       158 天前
    RAID 解决的是高可用性,就是一个盘故障了数据还能访问。

    备份是一套策略,解决发生灾难后能恢复数据。

    两者不要混为一谈。
    yhm2046
        20
    yhm2046  
       158 天前
    @chevalier 那请问做安全备份需要什么方案?
    MoonLin
        21
    MoonLin  
       158 天前
    这超链识别有点奇怪啊,重新更正一次: https://blog.io01.xyz/posts/6op1/#raid-%E9%80%89%E5%9E%8B
    zololiu
        22
    zololiu  
       158 天前
    感谢这个帖子,涨知识了。
    mantouboji
        23
    mantouboji  
       158 天前
    @yhm2046 比如,你要分析自己的备份需求,看是需要在线近线还是离线,是手动操作还是全自动,有没有异地容灾的需求等等。

    备份可以使用各种存储设备和媒体,特点是都要跟你日常使用的存储设备分开。

    比如苹果的 TimeMachine 就可以算是自动化的在线备份。

    自己定时拷贝到网盘,也算是手动的在线备份。

    自己准备个大容量移动硬盘,隔段时间把数据拷贝进去,算是手动的离线备份。

    企业场合弄个磁带库,由软件控制定时存到磁带上,那就是自动化的离线备份。

    再把这些磁带或者磁盘有好事者车载以入拉到隔壁省,那就是异地容灾了。

    等等等等,不一而足,专家们可以补充。
    nlfiasel
        24
    nlfiasel  
       158 天前
    文件级别解决位反转可以考虑用 Parchive
    gdbeixi
        25
    gdbeixi  
    OP
       158 天前
    @v2tudnew 确实该补充,后续了解到,btrfs 在某些阵列时候才有修复,单盘只使用其读取时校验特性,报告文件损坏而不污染损坏文件到备份盘中,这样也就防止了错误扩大
    gdbeixi
        26
    gdbeixi  
    OP
       158 天前
    @ShinichiYao 这点倒是还好,做了快照以及备份不是那么频繁,文件还是能保住的🤣

    @i4t 定时备份是权衡利弊下的选择,毕竟个人真正不可或缺的数据量不是那么多,绝对重要数据也遵循 3-2-1 备份原则,即保存三份文件,存储在两个不同介质中,一个异地备份,个人唯一一次文件丢失损坏还是几年前拷多年收藏的电影到 nas 中时候,回想起来应该就是拷贝时出现错误导致
    lerry
        27
    lerry  
       158 天前   ❤️ 1


    文件真的会静默损坏,我从 17 年开始用群晖,以前就是用的楼主说的办法,定时 rsync 同步,无意发现有些照片不知道什么时候已经损坏了,从一年前开始老老实实用 raid1 。自建 nas 用 zfs raidz1 ,定期扫描。
    lerry
        28
    lerry  
       158 天前


    对了,Btrfs 和 zfs 都支持快照,我设置了每天快照,保存三个月的版本用于解决数据误删中毒问题
    gdbeixi
        29
    gdbeixi  
    OP
       158 天前
    @lerry 少许疑问,按我理解损坏不是直接打不开或者少许损坏自我纠错就过了那种吗?还有就是副本也同时损坏了吗?
    lerry
        30
    lerry  
       158 天前   ❤️ 1
    @gdbeixi #29
    损坏的表现要看具体的文件类型,损失的部分重不重要,程序如何解析数据。
    不知道你有没有试过播放没下载完的文件,迅雷时代经常遇到文件下载到 99%不动了,或者不到 99%,这时候用把文件拖到播放器大概率是能播的,但是无法拖动进度或者到播放到某个位置就卡住了。

    副本确实坏了,但是时间太久了,中间 Nas 坏过,文件拷来拷去,已经说不好是哪一次出的问题了。
    gdbeixi
        31
    gdbeixi  
    OP
       158 天前
    @lerry 视频损坏倒是了解其能继续播放,之前拷贝时损坏过,中间有几帧卡丢那种,图片( jpeg )我一直认为其用了压缩要是有损坏就拿不到完整 bitmap ,看来还是知识浅薄了🤣
    weidaizi
        32
    weidaizi  
       158 天前
    哈哈哈哈,正好昨天实现了一个冷备方案的小工具,OP 可以看这个帖子: https://v2ex.com/t/1007499
    dongtingyue
        33
    dongtingyue  
       158 天前
    RAID 是规避硬件故障, 始数据盘中文件部分损坏 硬盘坏道会引起。idc 服务器用的就是 raid 卡组,5 就够有坏换一个盘自动重建。
    zxz1007
        34
    zxz1007  
       158 天前
    实践才是检验问题的好办法,我自己 2007 开始用 RAID5 后转 RAIDZ ,前后 17 年,期间遇到过 2 次磁盘损毁,没有丢失一次数据。
    实际上大部分丢数据都是因为认为操作不当,只要你在灾害恢复时有清晰的思路 RAID 是完全没有问题的。况且现在主流的 NAS 系统都带 snap 功能,合适的配置后完全能抵御误删,病毒等问题。
    catamaran
        35
    catamaran  
       158 天前
    前单位遇到过一次事故,raid 硬盘同时全毁,你能信吗?
    wanguorui123
        36
    wanguorui123  
       158 天前
    等硬盘坏掉时候就知道 RAID 到底有没有必要了,还有就是 IDC 都是 RAID10 起步有条件会做异地容灾,其次就是硬件 RAID 卡一般都有静默纠错功能
    YsHaNg
        37
    YsHaNg  
       158 天前
    @gdbeixi 这个之前有讨论过 https://note.lishouzhong.com/article/wiki/%E7%BE%A4%E6%99%96%E7%9B%B8%E5%85%B3.html
    mdadm 有冗余的情况下 btrfs 才会 self healing 单盘只检查不修复 raid1 有可能因为 lvm load balance 不修复从盘 bit rot 主盘一定修复 raid5 以上一定都修复 但是群晖内核太老 btrfs raid5 还不在 stable 状态 有写入黑洞问题
    xzaf
        38
    xzaf  
       158 天前
    真的重要数据,应该是多套方案来保整尽量安全。

    我没什么重要数据,但我的小姐姐们都是 raid1 。
    dd102
        39
    dd102  
       158 天前
    原来我也是冷备,后天安装套件那个盘告警,迁移好累,我就搞了 2 个 18T 做 RAID1
    kujou
        40
    kujou  
       158 天前
    @lerry 你这个奇妙的问题我也遇到过,我甚至神经质的思考以后要不要每个文件名末尾都用 MD5 命名呢,同一个文件我甚至出现几分钟前后通过 wifi 传输完 sha1sum 就合不上的事情。虽然很多时候,视频和图片,即使几个字节被更改,一样可以正常使用,但想想就是很膈应人啊。所以我现在很多东西都放在压缩包里,拿出来用也是压缩包然后再解压,因为压缩包自带校验,损坏了至少自己会立刻知道。网盘也不保险,我以前也出现过从网盘下载的数据合不上。。。
    ZRS
        41
    ZRS  
       158 天前   ❤️ 1
    远离 btrfs ,目前真正可靠可用的只有 zfs
    cadmuxe
        42
    cadmuxe  
       158 天前
    @bjfane 不用的。
    而且像有些朋友提到的冗余不是备份,只是那些数据不重要,而且那么大的量搞备份很贵很麻烦。
    所以就简单开个冗余。
    ryd994
        43
    ryd994  
       158 天前 via Android
    @v2tudnew “前提条件不是租 RAID1 以上吗?”
    并不是。zfs 一直都有校验。但是没有冗余数据的话,就算知道数据错了又能怎么办呢?区别在于 zfs 能检测错误,而其他一些文件系统无法检测。

    不组 raid1 ,还想应对冷错误的话,也有办法,zfs 有个 copies 参数。因为是单盘,所以无法应对硬件损坏或是文件系统结构错误。只可以应对文件数据上的冷错误。
    KKbu
        44
    KKbu  
       158 天前 via Android
    @chevalier 现实是好多人没有异地备份的条件。
    手抖误删文件 btrfs 这类文件系统可以支持 snap ,空间占用很少,这个对 raid 来说不是问题
    同一台机器上的数据备份也无法解决炸 nas 的问题
    相比较而言 raid1 可以实时镜像数据而且数据读取写入冗余更高
    当然我认为最好的方式还是 raid+异地备份
    LeeReamond
        45
    LeeReamond  
       158 天前
    两个问题,一个是 raid1 里面文件只有一个备份,如果你有一个好的文件和一个坏的备份,系统怎么判断哪个是好的哪个是坏的?用哈希机制的话,多个坏点如何处理?第二个问题,raid1 普通 PC 没有阵列卡能直接读取硬盘吗
    cndenis
        46
    cndenis  
       157 天前
    楼主需要的是时间线/TimeMachine/版本管理的机制, 坏掉的可以回到上一版
    sayitagain
        47
    sayitagain  
       157 天前
    白裙,raid1+单盘,raid1 的数据全部同步到百度云,单盘上放不重要数据,丢了就丢了
    jingwl
        48
    jingwl  
       157 天前
    @LeeReamond
    " raid1 里面文件只有一个备份,如果你有一个好的文件和一个坏的备份,系统怎么判断哪个是好的哪个是坏的?"
    https://www.synology.cn/zh-cn/dsm/Btrfs 群晖官方介绍如下:
    Btrfs 文件自我修复
    传统储存系统可能遇到错误但完全被忽略掉,导致将损坏的数据提供给应用程序,而且不会有警告或错误消息。为了避免这类错误,Btrfs 会提供数据和元数据的校验和,生成两份元数据,然后在每个读取过程中验证校验和。一旦发现不匹配(静默数据损坏),Btrfs 文件系统就能通过镜像元数据自动检测到损毁的文件(静默数据损坏),并使用支持的 RAID 存储卷来还原受损的数据,包括 RAID 1 、RAID 5 、RAID 6 、RAID 10 、F1 和 SHR 。
    v2tudnew
        49
    v2tudnew  
       157 天前
    @kujou
    我已经神经质到给每个文件加 CRC32 了😂,压缩包也是采用的这个哈希值( RAR5.0 可手动更改另说),缺点不适合经常编辑以及程序类文件,后者我采用生成 SFV 或者 SHA1 文件来解决。
    说起下载 BT 协议还真是先进,除了文件碎片完全不用考虑坏了整个重下的问题,HTTP 的网盘就没见实现的,下载完了要么全对要么损坏重下。
    v2tudnew
        50
    v2tudnew  
       157 天前
    @ryd994
    在回复前起码把题主和我的观点看完吧😅,有种鸡同鸭讲的感觉。
    题主给的是 btrfs 链接,你说 ZFS......
    Rorysky
        51
    Rorysky  
       157 天前
    数据安全 和 数据可用性 是两个问题

    安全性用 321 原则
    Byzliu
        52
    Byzliu  
       157 天前 via Android
    没做 raid ,重要的数据直接 onedrive 同步,没多少,不怎么重要的就打包百度云盘备份了一份。
    libook
        53
    libook  
       156 天前
    给备份盘加快照即可。

    我是每天定时将重要数据增量备份到备份盘上,备份盘用 btrbk 脚本自动打快照,保留最近 7 天的快照,快照是只读的,正常的写入操作是无法覆盖的,只有手动删除快照或者格式化才有影响。
    LeeReamond
        54
    LeeReamond  
       155 天前
    @jingwl
    1 看起来对多坏点束手无策。
    2 也就是说选择这套方案以后除了必须依靠 RAID 板,还得额外依赖一个群辉特供版文件系统。我还是选择 NTFS 和软件校验吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5755 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:52 · PVG 09:52 · LAX 18:52 · JFK 21:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.