百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

小白nas课堂篇一:不要随便组raid阵列小心数据灰飞烟灭

nanshan 2024-11-22 18:25 27 浏览 0 评论

很多博主在写关于nas的文章中总会说上raid阵列,并在其中带出了一个错误观点就是上了有冗余的raid时数据就可以万无一失了!似乎将raid等同于数据备份一样。

这个观点是错误!盲目使用raid会让你的数据灰飞烟灭的几率大大提升。

raid是全称是Redundant Array of Independent Disks,即独立磁盘冗余阵列。人家打一出生就是硬件冗余和数据备份没有任何关系。基于硬件冗余产生了数据冗余,让部分人就有了raid是数据备份,保护数据安全做好手段的错觉。

什么是硬件冗余?假设你有一台服务器,上面运行一个程序并对外提供服务,该程序数据存储在磁盘阵列中。磁盘阵列中有两块硬盘a和b组成raid1阵列,突然有一天a盘掉线,由于raid1是镜像阵列的关系该阵列依旧能提供服务,使用该阵列的程序就能继续提供服务而不掉线。

什么是数据备份,你在a存储池存储的一个文件通过同步软件或者其他手段同步备份到另一个硬盘或者另外一个设备,这才是数据备份。

想要保护重要数据的安全光靠raid是不行的,得靠多备份勤备份

raid类型,优点缺点

现在来介绍一下raid,目前常用的raid类型有raid0/1/5/6。除raid0以外,其他的raid的三种raid都是带有冗余的

在ssd如此廉价速度如此快,网络接口传输速度跟不上的年代,raid0这种数据火葬场的阵列类型就不介绍了。

raid1,镜像模式的磁盘阵列。两份完全相同数据保存在两块硬盘中,是可靠性最好的阵列也是最奢侈的阵列。允许掉线n/2的硬盘,容量为n/2。

raid5,基于奇偶检验的存储阵列,通过将数据分块并添加检验数据存储在n块硬盘中(n>=3),读取数据是从n块硬盘中读取并计算检验数据得到原始数据。当其中一块硬盘掉线时,剩余的n-1块盘的数据可以计算出掉线的那块盘的数据。也就是说raid5允许掉线一块盘。

raid5,原理同raid5并在此基础上增加了一组检验因此可以掉线两块硬盘。

raid阵列存储数据的原理,简单来说就是将数据分成一块一块的数据块根据raid类型存储在阵列中所有硬盘中。也就是说将nas的硬盘直接挂载到Windows或者ubuntu电脑上是无法直接读取的,需要附加一些raid参数或者使用专业磁盘修复软件才能正确识别出raid阵列并修复文件和导出文件。

以raid5,他的raid参数主要包括阵列中的磁盘顺序,偏移量,阵列类型,同步方式,块大小等等。如果不知道这些参数想读取阵列内的文件会变得非常麻烦。

另外有一点很重的事情,如果阵列中出现硬盘掉线这就意味着同一时间加入该阵列的其他硬盘寿命可能也差不多了。如果此时加入一个新的硬盘重建阵列很可能会出问题。所以raid不等于数据备份,阵列提供一个有限的硬件冗余,而有限的硬件冗余产生了有限的数据冗余。

关于如何修复阵列可以到我主页看我写的关于raid的微头条


对于我们这种家用nas玩家来说,raid的优点很显而易见,raid在本身的硬件冗余带来的数据冗余。这种数据冗余给了nas玩家一定的容错空间,不至于硬盘一出问题该硬盘的数据团灭

缺点嘛!阵列的使用过程复杂,就像我在上面说的其他设备想读取nas的阵列就需要一些技巧或者一些钱。

家庭用户到底需不需要raid?

需不需要raid,首先得对数据进行分级对需求进行评估。虽然说数据无价,但是家庭用户的大部分数据都是低价值数据!不会真的有人用昂贵的NAS专用盘给小姐姐盖大别墅吧!

以我的数据分级标准为例子,简单地讲一下数据分级。

1.非常重要的热数据,需要经常读写,用户自己创造的数据,比如照片和视频。

2.非常重要的数据,用户创造的数据比如照片,视频,文件等等或者其他难以获得的重要文件等等。

3.难以再次获得的数据,主要是互联网上下载的难以再次获得文件。

4.低价值数据,主要是高清电影电视剧动漫之类的东西。

对于1,因为经常读写而且占用空间不大,所以两块240G的SSD组了raid1。并通同步软件同步数据到2所在的硬盘和其他硬盘。

对于2,因为不经常访问占用空间也不大。我配置了两块2T红盘,两块公盘相互独立未组raid。通过数据同步软件同步两块磁盘的文件,同时还把里面的数据同到除1所在硬盘以外的其他硬盘。

对于3,占用空间也不大但要存储1和2同步过来的数据所以,使用了一块4T的硬盘。3自身的数据会同步到4所在的硬盘。

对于4,高清视频或者游戏占用空间很大,不组阵列硬盘互相独立目前总共有3块矿盘,总容量38T,不做备份没了就没了。

对于我来说能不raid就不raid,能不用昂贵的硬盘就不用昂贵的硬盘。毕竟不是所有数据都是无价的。对于经常读写的热数据还是得组阵列,同步软件对于热数据同步可能不及时,导致部分文件同步到的尴尬。虽然说阵列内硬盘的寿命基本差不多,但不会同时坏掉。中间多出的时间就是备份降级阵列内文件的关键。

非常重要的数据我就没使用阵列了,毕竟阵列的修复很复杂很复杂,UFS这个软件光授权费就要6000多。用同步软件同步两块盘的数据就行了,没必要用RAID来折磨自己。

想保护数据安全不要光靠RAID,也不能盲目使用RAID。对于家庭用户使用RAID后期的维护成本很高。毕竟阵列有时候用着用着就损坏无法读写了,虽然数据还在但是导不出来呀!得使用专业软件才行,这又是一个学习成本。

对于重要数据一定要做好备份,做好备份,做好备份!

下一篇NAS入门将介绍如何备份,如何同步数据!

相关推荐

爬虫基础之自动化工具 DrissionPage 的使用

概述前三期文章中已经介绍到了Selenium与Playwright、Pyppeteer的使用方法,它们的功能都非常强大。而本期要讲的DrissionPage更为独特,强大,而且使用更为方...

你不得不知的云计算与虚拟化基础知识(下)

1.4KVM日常管理[root@linux-node1opt]#virshstartCentOS-7-x86_64#启动刚才创建的CentOS7KVM虚拟机DomainCentOS-7-x86...

Linux 终端复用神器 Tmux 使用详解

Tmux是TerminalMultiplexer的简称,它是一款优秀的终端复用软件,类似GNUscreen,但比screen更出色。tmux来自于OpenBSD,采用BSD授权。使用它最直...

Java快速开发框架若依(RuoYi)centos7.6部署

RuoYi是一个JavaEE企业级快速开发平台,基于经典技术组合(SpringBoot、SpringSecurity、MyBatis、Jwt、Vue),内置模块如:部门管理、角色用户、菜单...

推荐一款Linux的进程管理利器——Supervisor

一、supervisor简介项目中需要将一些自己开发的服务放到系统进程中在后台运行。一开始使用的是screen工具配合写了一个shell脚本,基本实现了启动、重启、停止操作,但是对于进程守护方面不是太...

读红蓝攻防:技术与策略34日志分析

1.日志分析1.1.要调查安全问题,通常需要查看来自不同供应商和不同设备的多种日志1.2.一旦了解了如何读取日志,在多个供应商产品的日志之间切换就会变得更容1.3.许多工具可以自动执行日志聚合...

Dify存储告急别焦虑!6步迁移教程,系统无缝切换,流畅度暴涨!

小王最近愁坏了--用Dify搭建的公司知识库因频繁导入行业文档,旧服务器硬盘红灯频闪,每次跑模型训练都弹出"存储空间不足"报错,甚至有两次差点弄丢用户对话历史数据!而某初创...

解决CentOS 中显示乱码问题(centos编码)

解决CentOS中显示乱码问题vi/etc/sysconfig/i18nLANG="en_US.UTF-8"SUPPORTED="en_US.UTF-8:en_US:e...

Tmux——超越screen的终端工具(tmux操作)

我们都知道,远程会话如果连接中断了,当前的进程任务也会中断,虽然说可以把任务放在后台,但显示不是很直观。以前linux系统常带的终端工具screen,我们今天介绍比screen更强大的工具...

MySQL如何找到使用的是哪个配置文件?

一个正在运行的MySQL实例,如何查看对应的配置文件用的是哪一个?如果存在多个文件,生效的顺序是怎么样的?1.方法一首先可以先选择查看MySQL进程信息来判断使用了哪个配置文件,例如:ps-au...

MySQL合集-基于MHA搭建高可用架构

MHA架构介绍MHA是MasterHighAvailability的缩写,它是目前MySQL高可用方面的一个相对成熟的解决方案,其核心是使用perl语言编写的一组脚本,是一套优秀的作为MySQL高...

mysql8版本的卸载、安装、升级(mysql8卸载如何彻底删除)

mysql的卸载yumremovemysql-community-client-plugins-8.0.42-1.el7.x86_64yumremovemysql-community-comm...

如何用MySQL设计一个分布式锁?(mysql分布式数据库+分布式存储)

前言分布式锁想必大家都不陌生,可以用来解决在分布式环境下,多个用户在同一时间读取/更新相同的资源带来的问题。比如秒杀场景下的库存问题、rediskey失效情况下请求直接打到MySQL中造成MySQL...

QT 5.12.11 编译MySQL 8 驱动教程- 1.01版

安装编译环境:qt5.12.11mysql8.0.28修改mysql.pro工程文件,编译生成动态库mysql.pro文件位置:D:\Alantop_Dir\alantop_sde\Qt\Qt5....

MySQL中exists和in的区别(exists在sql中的用法)

在MySQL中,EXISTS和IN用于在查询中检查某个值是否存在于某个集合或表中。exists在MySQL中,EXISTS是一个布尔操作符,用于在SELECT查询中检查子查询是否返回任何行。如果子查询...

取消回复欢迎 发表评论: