刚入坑nas的小白都是怎么自组nas的?
看别人写的教程!
曾经互联网是个好东西,现在天下文章都是抄!小白所能看到教程都是千篇一律的东西。安装命令是什么作用什么原理,写教程的博主也不知道。一提数据保护就阵列,从不谈阵列到底是做什么用的,原理是什么,优缺点。
本篇文章是nas扫盲的第一篇文章,nas扫盲将是一个很大的系列后续将会持续更新相关内容。本篇文章主要内容为以下以下四点
1.raid磁盘阵列科普和扫盲
2.自动备份操作(群晖)
3.raid阵列数据修复和导出
4.家庭应该如何正确使用raid
一,raid磁盘阵列到底是什么?Redundant Array of Independent Disks简称raid,译为独立磁盘冗余阵列。其实就是用多个独立的物理磁盘组成在一起形成一个逻辑磁盘系统,根据阵列类型的不同,可以实现比单块磁盘更好的存储性能和更高的可靠性,少部分磁盘的损坏不会使阵列停止工作,依旧就继续提供服务,坚持到维护人员的到来。本质是硬件冗余,在硬件冗余的前提下提供数据冗余,也就是说raid他自诞生起就不是备份。
我们设想一个例子来更好的理解raid,这里主要举例家庭常用类型,RAID1,RAID5,RAID6
raid1是将数据同时存储到多块硬盘中,安全性比较高。只要阵列中还有一块好的硬盘就可以继续提供读写服务,并且数据不会丢失。raid5和raid6则通过生成奇偶校验数据和数据本体平均存储在每一块磁盘中,因此raid5和raid6阵列在损坏一块和两块磁盘的情况下,依旧可以继续提供读写服务,并且数据不会丢失。
有些阵列可以做到部分磁盘损坏而不丢失数据的特性,让部分nas用户以为是保护数据的最好手段,有的甚至将阵列认为是数据备份手段。这是很天真且危险的想法。
阵列本身不是一种数据备份手段,它真正作用是少部分硬盘暴毙的情况下能够继续提供读写服务,给维护人员争取反应时间。无论是软阵列还是硬阵列,阵列都只能避免硬盘硬件故障带来的问题,软件上的故障阵列是无法解决的。对于操作系统而言,它读写的是阵列生成的逻辑磁盘,它对这个逻辑磁盘读写,阵列在根据算法对阵列内的每块硬盘读写。
举几个简单的例子
有一个raid1阵列,坏了一块盘但是还有一个好盘,服务还在继续数据也还在。然后插上一块好盘重建了阵列,raid1阵列恢复正常。这体现了raid有硬件容错性。
某一次操作中一不小心把raid1阵列给格式化了,或者中了勒索病毒全部文件被加密。raid1阵列会对每块硬盘执行同样的操作,两个盘的数据都会同时更改。比如彻底删除一个文件,那么这个文件在ab两个盘都会被彻底删除。这时候无论怎么重建都恢复不了数据的。
raid只有硬件容错,软件上的错误它无能为力。不是只有硬盘损坏数据才会丢失。软件层面上的,文件系统崩溃,误操作,勒索病毒等等都会让数据灰飞烟灭。
为什么我一直给nas小白用户强调重要数据一定要备份,误操作不可能同时删除放在几个独立的磁盘上的文件,勒索病毒也不可能加密的了你的只读冷备份。
二,自动备份篇2.1使用cloud sync实现自动本地同步
群辉上没有什么好用的本地同步软件,需要配合webdav server来实现本地多个存储池的数据同步。
安装好webdav server后,打开控制面板-用户于群组,选中你现在使用共享账户或者管理员账户。选择编辑-应用程序选项卡,找到webdav server,勾选允许。


然后找到webdav server套件,勾选启用HTTP,启用HTTPS,应用。端口根据自己的实际情况更改。这样web dav就可以访问了!

打开cloud sync套件,由于没有建立同步会弹出一个选框让你选择网盘服务商,我们在这里选择最后面webdav。
填入地址127.0.0.1:5005,5005是启动webda是设置的http端口号。本地同步没必要使用https增加加解密负担。
输入群辉管理员或者共享账户的账户密码,下一步。这个设置一个同步名,下面设置同步源地址和目的地址。比如我这个mos是源地址,主存储1是目的地址。选择双向同步,意味两边的操作会同步,比如mos处删除文件1 主存储的文件1也会删除,反之亦然。


这里不要勾选加密,加密需要额外的设置,否则会没办法上传加密公钥。额外设置会在下节说明。
这个方法也可用于双nas间的互相同步,只要把webdav的目标地址改为另一台nas就行。另一台nas必须支持webdav!若此时另外一台nas在别的地方,那么就变成了异地备份。
2.2半自动冷备份
可以使用群晖自带的usb copy配置备份策略,在接入usb存储设备时自动备份需要备份的文件。usb copy对文件系统没有要求,常见ntfs,fta32,exfat,HFS+,ext3/4等等都可以使用,好处就是备份的文件在任何大部份的电脑都可以很轻松的读取出来。
usb copy有三种模式:1.增量模式,2.镜像模式 3.多版本模式
1.增量模式:很简单就是字面意思,源目录内发生的变化会同步到外置存储中,比如源目录新增了一个文件会同步到外置存储中,源目录内的文件发生了修改后会同步覆盖掉外置存储中的旧版本。但源目录中删除文件并不会删除外置存储中的文件。
2.镜像模式:相当于raid1,在增量模式的基础上,去掉了“源目录中删除的文件不会删除外置存储中的文件”,所以在镜像模式中,源目录中的文件被删除了外置存储中的对应的文件也会被删除。
3.多版本模式:相当于带版本控制的备份,每一次修改文件都不会覆盖旧版本,而是在外置硬盘新生产一个带日期的文件夹专门用于放修改后的新版本文件。
如果单纯作为文件备份的功能来用,那直接使用增量模式就好了。具体操作可以参考下列图组,不过需要注意外置硬盘的一个分区只能创建一个备份任务。

设置好任务,源目录,目的地目录,复制模式等等


这里勾选插入usb/sd存储设备时立即复制数据,当手动插入usb硬盘的时候就能够实现自动备份文件了。


2.3高性价比版异地备份——定时加密同步到百度盘和阿里云盘
在321原则中异地备份也是非常重要的一个环节,家庭用户为了异地备份在别的城市买个房子放服务器做异地备份就太扯淡了。
对于家庭用户来说网盘就是一个不错的异地存储,只不过这种网盘需要给文件加密后同步才安全。恰巧cloud sync提供了加密同步,勾选了加密以后文件都是先加密后同步到网盘中,当需要从网盘同步回本地的时候会自动解密会nas中。
2.3.1同步百度盘部分
下面图组演示的是Cloud sync同步百度盘的教程
设置好以后数据会备份到百度云的“/我的应用数据资料/Cloud sync”中。里面会出现和群晖nas源文件夹内一样的文件,但是这些是加密好的文件,所以公有云不会知道文件的具体内容。同样的你也得记住你的密码,否则你也没办法解密这些文件。









设置好密码以后,确认进入下一步。下一步的图我忘记截图了,选择“完成”选项就可以了。这样就设置好了网盘加密备份操作。
2.3.2同步阿里云盘部分
由于cloud sync现在还不支持阿里云盘同步,所以得使用些小工具将阿里云盘映射为webdav设备,然后cloud sync在通过webdav方式访问阿里云。
目前挂载阿里云盘的方式有两个,一个是使用第三方套件挂载阿里云盘为webav设备,另一个是通过容器挂载阿里云盘为webdav设备。
首先我们要获取阿里云盘的 token,首先浏览器登录阿里云然后打开浏览器的开发者工具按下图操作就能拿到token了


1),容器方式挂载阿里云盘为webdav。
在容器的注册表一栏搜索“aliyundrive-webdav”,版本选择“latest”就行了,等待下载完成。然后在映像选项卡找到“aliyundrive-webdav”启动映像后按照下图组操作





在环境里新建三个变量,这三个变量的意思为,webdav登录账户名,密码,token
对应的值就为账户名,密码,token。账户密码自己根据实际情况填写,token为刚才在阿里云盘网页端获取的token。
WEBDAV_AUTH_USER
WEBDAV_AUTH_PASSWORD
EFRESH_TOKEN

容器启动就可以登录了,看到这个界面说明挂载成功。

2), 第三方套件方式挂载阿里云盘为webdav。
想要使用第三方套件得新添加一个套件来源,这里使用的套件来源是矿神源。添加好源以后就能下载第三方阿里云盘webdav套件了。



这里需要配置刚才获得的token,登录端口账户密码可以根据自己实际情况设置


设置好以后登录看到这个界面就说明配置成功了

3). 同步阿里云盘
操作方式和使用webdav本地备份是差不多的,都是在cloud sync配置一个webdav同步。但是有一点不同,也就是前面说的特殊设置才能配置加密。看下图可以看到在地址后面还添加了一个路径“/dsbak”,加上这个以后cloud sync只能在阿里云盘的/dsbak目录下读写。因为像上图看到的那个真正的根目录,也就是包含“dsbak/”,“游戏/”的目录。在cloud sync下这个真正的根目录是不能写的,勾选加密以后cloud sync会在这个根目录生成公钥文件夹,但是因为不能新建目录所以就会出现加密密钥无法上传的错误。解决的办法就是在地址后面还添加一个路径“/dsbak”,这样cloud sync指向dsbak,并将它当成根目录。因为在dsbak目录可写,能上传加密密钥所以能成功设置加密。这个方法也适用于其他webdav加密备份!



设置好同步的源目录和目的地目录,因为是异地备份所以选择仅上传本地修改,并勾选源文件删除时不删除,目的地备份文件

加上/dsbak后,cloud sync就认为dsbak是根文件夹


2.4土豪玩法——cloud sync同步对象存储
当然你不信任网盘在票子够的情况下,那么使用付费的对象存储就是一个不错解决方案。毕竟是面向企业客户的存储服务,能很大程度上保证你的文件的安全。
目前对象存储价格还不是太贵,用于快速响应的标准存储才1毛钱多1G一个月,用于冷备份的归档存储才3分钱1g一个月。当然存储只是其中一个费用,还有读写请求次数费用,标准存储的话大概100万次就1块钱,取回本地的流量费是大概是5毛钱1g,不过需要注意对象存储是不设上限的,存的东西多了,读写请求多了,取回本地多了,费用会爆表,这个就看你们自己的钱包了。
以腾讯云为例子,演示同步标准对象存储
在腾讯云控制台中找到对象存储控制台,创建一个存储桶

选择一个离你比较近的存储桶,设置一个名字,并设置为私有读写。

可选高级配置按照需求选择,也可不更改

接下来创建一个api密钥用于cloud sync读写对象存储,找到访问管理——访问密钥——api密钥管理。这里我们新建立一个子用户,子用户可以配置权限更加安全




设置好用户名以后要对访问方式进行更改。选择访问方式更改为“编程访问”。



权限设置,取消勾选AdministratorAccess权限,子账号只是用来读写对象存储,给予对象存储权限就可以了。搜索对象存储,勾选下图的权限。我对这些权限理解有点模糊,我是直接把相关的权限都选上了,望大神不要嘲笑我




这时候对象子账户就建立完成了,记住api账户和密钥,等会用到。


创建好同步后,可以在对象存储的控制台看到已经同步的上去的文件和文件夹,以及一个存放加密密钥的文件夹。



2.5cloud sync加密数据解密和对象存储数据取回
异地备份的目的就是保证在本地存储设备被物理消灭之后,比如失火,地震,洪水等把你的存储设备彻底物理消灭的情况下依旧还有一个备份来恢复数据。
那么本地设备都被物理消灭了,还怎么把异地的数据取回来?作为一个有始有终的博主,既然教了你异地存储的就会教你如何在本地同步设备被物理消灭的情况下恢复数据。
百度盘和阿里云取回数据很简单直接到对应的目录将所需要的文件或者全部文件下载回来就行了。对象存储的数据取回的话,对于腾讯云对象存储来说需要使用到一个工具"COSBrowser"几乎支持所有主流操作系统,电脑手机都可以运行还有一个web版本的。不用担心这是图形化工具,不涉及命令行。在nas小白入门系列教程了,能图形化就图形化,不能才命令行。
2.5.1COSBrowser数据取回教程可以看下面的图组。
对象存储的控制台也可以下载文件,不过cosbrowser会更好用。这里使用的是web版本的cosbrowser。使用api密钥登录后就可以看到已经同步好的文件和文件夹,文件夹可以整体下载也可以单独下载里面的文件夹或者文件回本地。


2.5.2数据解密
因为同步到网盘或者对象存储的数据都被加密了,所以你从网盘取回来的数据还需要解密。这时候你需要一个工具“SynologyCloudSyncDecryptionTool”这是一个群晖官方开发的电脑端解密工具,本次使用的windows版本。
操作过程参考下面的图组
这个密钥你设置加密同步到网盘或者对象存储时设置的密码,这个密码一定要记住!没有密码是解密不了的

设置好要解密的文件夹和输出文件夹,然后解密。没有输出错误信息,就是解密成功了在输出文件夹可以看到解密好的文件



我只经历过一次群晖阵列故障,其实是群晖不认阵列数据还是在的。所以只能提供简单的阵列数据恢复。
对于群晖的数据数据恢复
首先需要下载一个usf数据恢复软件,这样就可以直接图形化操作了,不用用繁琐的命令行。
将群晖阵列内的硬盘要全部接入到电脑中,打开USF数据修复软件,软件会自动识别出建立的raid的硬盘并重建阵列。
这时候左边可以看到识别出来的阵列,其中有一个btrfs的分区就是存放文件的分区,双击就可以打开分区查看和导出里面的文件。具体的操作可以参考下图。
特别注意⚠️!!!!!!!!!!
对于raid5和raid6类型的阵列,一旦阵列内有硬盘坏了!!!!不要着急重建!不要着急重建!不要着急重建!
应该按照文件的重要程度,从重要到不重要依次备份出数据,备份好后在重建。
raid5和raid6有同步老化问题,一块盘出问题了其他盘出问题的概率会变大,尤其是同品牌同批次的硬盘这个概率变得更大。所以在重建过程中极有可能第二块盘也会出问题。
四,家庭应该如何正确使用raidraid不是备份!不是备份!不是备份!,把raid当作保护数据的唯一手段是非常愚蠢的行为
对于家庭用户非必要不要使用raid,直接单盘存,嫌弃盘符过多也可使用stablebit Drivepool(windows)和mergerfs(linux)这两个工具都能将不同大小的硬盘组成一个大号存储池。这种技术并不是riad,每个磁盘都有自己独立的文件系统。一个硬盘坏掉只会损失一个硬盘的数据,其他盘无影响。unraid就是使用这种类似技术,过多时间再来开坑这个话题。
什么时候需要raid了?对于频繁修改的数据就需要raid。备份对于这种频繁修改的数据是没有办法及时备份的。单独找两个硬盘组raid1就能满足这些频繁修改数据的存储要求,同时也要这些文件进行定时同步备份。
--------------end---------------
