首页 > 存储知识学习笔记

存储知识学习笔记

一、DAS/NAS/SAN

DAS、NAS、SAN是三种存储模式,NAS与SAN都是在DAS的基础上发展起来的,是新型数据存储模式中的两个主要发展方向。

DAS是大型服务器采用的主要存储方式,DAS(Direct Attached Storage,直接外挂存储)

NAS(Network Attached Storage,网络附加存储)

SAN(Storage Area Network,存储域网络)

直接连接存储(Direct Attached Storage,简称DAS),是通常放置在服务器机箱内部的驱动器,通常是SCSI连接。DAS驱动器也可以放置在外部机箱内,但是通过有限长度的SCSI电缆进行连接的。

网络连接存储(Network Attached Storage,简称NAS)是单独连接到局域网上的设备,但是仅仅提供基于文件的存储。简单地说,NAS机器是专用的文件服务器,但是它没有运行应用程序的能力,而是分配它们所有的资源,用来文件共享。有时也称为"Filers"。

存储区域网络(Storage Area Network ,简称SAN)通常用来指专用的硬盘存储阵列,通过光纤通道链路连接到不少主机上,这个光纤通道来自一个光纤通道交换机,该交换机可为所有的设备提供高速"Hub"功能。

对于企业存储设备而言,根据其实现方式主要划分为DASSANNAS三种,分别针对不同的应用环境,提供了不同解决方案。

以下,通过表格的方式对以上3种存储进行一个简单的比较。

存储系统架构

DAS

NAS

SAN

安装难易度

不一定

简单

困难

数据传输协议

SCSI/FC/ATA

TCP/IP

FC/IP

传输对象

数据块

文件

数据块

使用标准文件共享协议

是(NFS/CIFS…

异种操作系统文件共享

需要转换设备

集中式管理

不一定

需要管理工具

管理难易度

不一定

以网络为基础,容易

不一定,但通常很难

提高服务器效率

灾难忍受度

高,专有方案

适合对象

中小企业服务器

捆绑磁盘(JBOD

中小企业

SOHU

企业部门

大型企业

数据中心

应用环境

局域网

文档共享程度低

独立操作平台

服务器数量少

局域网

文档共享程度高

异质格式存储需求高

光纤通道储域网

网络环境复杂

文档共享程度高

异质操作系统平台

服务器数量多

业务模式

一般服务器

WEB服务器

多媒体资料存储

文件资料共享

大型资料库

数据库等

档案格式复杂度

容量扩充能力

表格 1 三种技术的比较

录像存储

录像存储是指将监控图像录制下来,并以文件形式存储在存储设备中,并可在以后随时被读出回放。

存储的实现有多种模式,包括DAS(直连存储)、SAN(存储区域网)和NAS(网络存储)等。DAS就是普通计算机系统最常用的存储方式,即将存储介质(硬盘)直接挂接在CPU的直接访问总线上,优点是访问效率高,缺点是占用系统总线资源、挂接数量有限,一般适用于低端PC系统。SAN是将存储和传统的计算机系统分开,系统对存储的访问通过专用的存储网络来访问,对存储的管理可交付与存储网络来管理,优点是高效的存储管理、存储升级容易,而缺点则是系统较大,成本过高,适用于高端设备。NAS则充分利用系统原有的网络接口,对存储的访问是通过通用网络接口,访问通过高层接口实现,同时设备可专注与存储的管理,优点是系统简单、兼容现有系统、扩容方便,缺点则是效率相对比较低。

典型的传统数字硬盘录像机设备一般都采用DAS方式,即自身包含若干硬盘,录像数据进行压缩编码后直接存储在本地硬盘中,回放也从本地硬盘中读出。网络功能只是个附加的功能,主要面向远程终端实时监控本地图像和回放本地录像。在系统比较大时,这种方式必然是分布式存储的,给系统管理带来了麻烦。数字硬盘录像机的发展将使网络成为中心,而规模的增大使得分布式存储的缺点更加显著。采用NAS作为录像的存储设备,解决了传统数字硬盘录像机所限制的这些问题,作为下一代数字录像系统,其优势表现在:

    优良的设备环境:由于硬盘的不稳定性,需要一个更好的工作环境来延长硬盘的寿命和减少存储的不可用时间。NAS作为专业的存储设备,针对多硬盘环境作了优化设计,让硬盘工作的更稳定、更可靠。

    专业的存储管理:有效的存储管理在数据量上升时更加显得重要,数据的安全性与冗余性将更受关注。NAS通过专业软件对大容量存储进行管理,增加安全机制及冗余管理,使得存放的数据更便捷、更放心。

    轻松的容量扩张:对容量的需求日益增加的今日,更加看重存储容量的可扩张性。NAS的容量扩张基本上是Plug&Play的模式,方便用户升级。另外,NAS还可实现系统升级与存储升级的分离,更适合一个逐渐发展的系统。

本系统采用NAS作为录像的存储设备,但从网络可靠性方面考虑,采用二级存储机制,即录像时直接录制在DVR中,在其中保存一定时间,定期再将DVR中的录像转存至NAS中。采用二级存储机制,虽然比直接网络存储复杂,但可以将网络的不可靠因素对系统的影响降到最低,以确保录像数据的完整性。

二、磁盘阵列RAID技术

RAID将普通硬盘组成一个磁盘阵列,在主机写入数据,RAID控制器把主机要写入的数据分解为多个数据块,然后并行写入磁盘阵列;主机读取数据时,RAID控制器并行读取分散在磁盘阵列中各个硬盘上的数据,把它们重新组合后提供给主机。由于采用并行读写操作,从而提高了存储系统的存取系统的存取速度。 RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。根据磁盘陈列的不同组合方式,可以将RAID分为不同的级别。磁盘阵列中针对不同的应用使用的不同技术,称为RAID level,而每一level都代表着不同技术,目前业界公认的标准是RAID 0~RAID 5。

  主要包含RAID 0~RAID 7等数个规范,它们的侧重点各不相同,常见的规范有如下几种:

  RAID 0:无差错控制的带区组

  RAID 1:镜象结构

  RAID2:带海明码校验

  RAID3:带奇偶校验码的并行传送

  RAID4:带奇偶校验码的独立磁盘结构

  RAID5:分布式奇偶校验的独立磁盘结构

RAID0是具有提速和扩容的目的

在RAID0模式中,数据被分割为一定数量的数据块(Chunk)交叉写在多个硬盘上,一般的来说在RAID0系统中数据被分割的数量同RAID阵列所使用的硬盘的数量是有关的,比如RAID0中采用了3块硬盘,那么数据将会被分为三份依次的写入三个硬盘,通俗的说这种模式其实就是利用RAID技术让系统认为三块硬盘组成一个容量更大的硬盘,因为这个过程没有数据校验所以这种RAID模式是读写速度最快的一种。

RAID0并没有从安全性角度考虑,实际上,如果RAID0当中的一块硬盘坏了,所有数据都会损坏,并且没有办法恢复。这使得RAID0的安全性能非常差,所以很多用户出于安全考虑没有使用RAID0模式。虽然如此,RAID0毕竟是所有RAID方式当中速度最快的一种模式,如果RAID0模式当中有两块硬盘的话,那么RAID0的存储读取数据的速度会是单个硬盘双倍。,如果使用6块硬盘的话,那么理论速率就是单个硬盘的6倍。如果在RAID0模式当中使用不同的硬盘会造成两方面的问题,首先,RAID0的有效硬盘容量会是最小的硬盘的容量乘上硬盘的个数,这是因为如果容量的最小的硬盘存满了之后,RAID0依然会将文件平均分配到各个硬盘当中,此时便不能完成存储任务了;其次,如果RAID0当中的硬盘速度不同,那么整体的速度会是速度最慢的硬盘的速度乘上硬盘的个数,这是因为RAID0模式是需要将上一部的存储任务完成之后才能进行下一步的进程,这样,其它的速度快的硬盘会停下来等待速度慢的硬盘完成存储或者读取任务,使得整体性能有所下降。所以,在这里建议使用RAID0模式的用户最好选择容量和速度相同的硬盘,最好是同一品牌的同种产品。

因此RAID0在严格意义上说不是"冗余独立磁盘阵列"。RAID0模式一般用于需要快速处理数据但是对于数据的安全性要求不高的场合。这种RAID模式的特点是简单,而且并不需要复杂和昂贵的控制器。采用RAID0模式至少需要2块硬盘,最终得到的存储容量也是这两块硬盘的和。

RAID0的随机读取性能:很好

RAID0的随机写入性能:很好

RAID0的持续读取性能:很好

RAID0的持续写入性能:很好

RAID0的优点:最快的读写性能,如果每块硬盘拥有独立的控制器性能将会更好。

RAID0的缺点:任何一块硬盘出现故障所有的数据都会丢失,大部分的控制器都是通过软件实现的,所以效能并不好。)

RAID 0是无数据冗余的存储空间条带化,将数据以条纹化的方式存储在阵列之中,实现性能的增强,但没有数据冗余。具有低成本、极高读写性能、高存储空间利用率的RAID级别,适用于Video / Audio信号存储、临时文件的转储等对速度要求极其严格的特殊应用。但由于没有数据冗余,其安全性大大降低,构成阵列的任何一块硬盘损坏都将带来数据灾难性的损失。

RAID 1是两块硬盘数据完全镜像,数据条纹化的头一半是原始数据,后一半是数据镜像,但被写往RAID 1阵列中的第二个磁盘,RAID 1最少需要2个磁盘。,安全性好,技术简单,管理方便,读写性能均好,但其无法扩展(单块硬盘容量),数据空间浪费大。专门针对性能要求高的应用。

RAID 0+1综合了RAID 0和RAID 1的特点,独立磁盘配置成RAID 0,两套完整的RAID 0互相镜像。它的读写性能出色,安全性高,但构建阵列的成本投入大,数据空间利用率低,不能称之为经济高效的方案。

RAID 3使用一个"奇偶"磁盘来存储冗余信息。奇偶磁盘物理上与数据磁盘相隔离。

RAID 5使用一个"奇偶"磁盘来存储冗余信息。实际上,包括奇偶信息在内的所有数据都以条纹化的形式存储到阵列中的所有磁盘上(没有物理上隔离的奇偶磁盘)。当对一个阵列执行RAID 5保护时,阵列要减去一个磁盘驱动器的容量(用于存储奇偶数据)。最少要求3个磁盘。RAID 5是目前应用最广泛的RAID技术。各块独立硬盘进行条带化分割,相同的条带区进行奇偶校验(异或运算),校验数据平均分布在每块硬盘上。以n块硬盘构建的RAID 5阵列可以有n-1块硬盘的容量,存储空间利用率非常高(见图1)。任何一块硬盘上数据丢失,均可以通过校验数据推算出来。RAID 5具有数据安全、读写速度快,空间利用率高等优点,应用非常广泛,但不足之处是1块硬盘出现故障以后,整个系统的性能大大降低。

2 RAID 5实现方式

从技术实现方式上说,RAID技术可以通过软件和硬件两种方式实现,随着硬件系统能力不断提升,软件RAID实现方式越来越成为主流的选择。

标准的RAID写操作,如RAID5中所必需的校验计算,需包括以下几个步骤:

1)以校验盘中读取数据

2)以目标数据盘中读取数据

3)以旧校验数据,新数据及已存在数据,生成新的校验数据

4)将新校验数据写入校验盘

5)将新数据写入目标数据盘

当主机将一个待写入阵列RAID组中的数据发送到阵列时,阵列将该数据保存在缓存中并立即报告主机该数据的写入工作已完成。该数据写入到阵列硬盘的工作由阵列控制完成,该数据可继续存放在Cache中直到Cache满,而且要为新数据腾出空间而必须刷新时或阵列需停机时,控制器会及时将该数据从Cache写入阵列硬盘中。这种缓存回写技术使得主机不必等待RAID校验计算过程的完成,即可处理下一个读写任务,这样,主机的读写效率大为增加。当主机命令将一个数据写入硬盘,则阵列控制器将该数据写入缓存最上面的位置,只有新数据才会被控制器按Write-Back Cache的方式最后写入硬盘。

三、SATA/SCSI/SAS/IDE

  IDE/ATA 是Integrated Device Electronics/Advanced Technology Attachment (IDE/ATA)的缩写。这是一种十分流行的计算机外设接口,它不但能用于连接硬盘,也广泛地用于连接CD-ROM,软盘驱动器等设备。其中IDE是指一种协议,它规定了主板上的控制器如何与连接的硬盘通信。ATA是指连接主板和外设的借口类型。这种类型的接口的优点是廉价,兼容性好。缺点是速度相对较慢,比如Ultra DMA/133标准支持的带宽是133MB/s。而且缆线长度很短,一般只能用于机箱内的设备连接。

  SATA其实就是Serail ATA,串行的ATA。SATA设计的目的就是取代并行的ATA,第三版的SATA最高传输速度可以达到6Gb/s(大概等于715MB/s)。SATA是可热插拔的,它使用7针脚的窄连接线。

  SCSI是Small Computer System Interface的缩写。是一种历史比较悠久但仍广泛使用的的外设连接标准。它除了被用于连接硬盘和磁带机以外还可以连接其它外设,如扫描仪和打印机之类的。SCSI包括了一系列标准,其使用的物理接口类型也都不尽相同。其中Ultra-640 SCSI支持640MB/s的带宽。

  对于IDE设备,SCSI设备一般比较贵一点,SCSI硬盘以往常常用于服务器级别的主机上。Serial Attached SCSI。串行版本的SCSI,是SCSI的进化版本。而且SAS对SATA是兼容的,3 Gbit/s的SATA盘可以连接到SAS的接口,不过SAS的硬盘不能连接到SATA的接口上。目前SAS硬盘被广泛地应用于服务器级别的主机上。

更多相关:

  • 01、通过MHDD硬盘检测工具检测 可以通过使用Windows装机工具内自带的工具进行检测,我使用的是大白菜装机工具,其中一项就是用来检测硬盘和内存的。 运行MHDD硬盘检测 按照提示,一步步进行检测 使用mhdd快捷键F4执行运行SCAN命令 按两次F4执行检测,下图就是扫描片段,如果出现红叉的话,那么就是有坏道了,可能在使用硬盘的...

  • 1) 通过df -h命令查看磁盘情况Filesystem            Size  Used Avail Use% Mounted on/dev/sda4             289G   61G  214G  23% /tmpfs                 7.8G     0  7.8G   0% /dev/s...

  • from:http://www.eygle.com/archives/2004/12/aeeaoaooieuuei.html     1957年IBM公司研制成功的IBM 350(RAMAC)是第一台真正意义上的硬盘存储器。它由许多片直径为61厘米的盘片组成,盘片由一台电动机带动,只有一个磁头,磁头上下前后运动起来 寻找要读写的磁道,...

  • 一早去公司,电脑蓝屏。哎想想电脑运行也越来越慢了。系统从做下算了,反证用GHOST也就10多分中的事情。数据备份好,开始GHOST.....本以为很容易的事情可是出现了以下问题。 机器自带光驱坏了,外接一个,主板只有一个跳线。连硬盘和光驱。插上光驱提示找不到硬盘。在BIOS里面看的确也是这样。能看到光驱看不到硬盘。跳线重插了也换过了...

  • 本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:【公众号dotNet工控上位机:thinger_swj】基于Socket访问西门子PLC系列教程(一)在完成上述步骤后,接下来就是编写上位机软件与PLC之间进行通信。上位机UI界面设计如下图所示:从上图可以看出...

  • 我有一个大型数据集,列出了在全国不同地区销售的竞争对手产品。我希望通过使用这些新数据帧名称中的列值的迭代过程,根据区域将该数据帧分成几个其他区域,以便我可以分别处理每个数据帧-例如根据价格对每个地区的信息进行排序,以了解每个地区的市场情况。我给出了以下数据的简化版本:Competitor Region ProductA Product...

  • 作为一名IT从业者,我来回答一下这个问题。首先,对于具有Java编程基础的人来说,学习Python的初期并不会遇到太大的障碍,但是要结合自己的发展规划来制定学习规划,尤其要重视学习方向的选择。Java与Python都是比较典型的全场景编程语言,相比于Java语言来说,当前Python语言在大数据、人工智能领域的应用更为广泛一些,而且大...

  • 这段时间通过学习相关的知识,最大的变化就是看待事物更加喜欢去了解事物后面的本质,碰到问题后解决问题思路也发生了改变。举个具体的例子,我在学习数据分析,将来会考虑从事这方面的工作,需要掌握的相关专业知识这个问题暂且按下不表,那哪些具体的问题是我需要了解的呢,以下简单罗列:1、了解数据分析师这个岗位在各个地区的需求情况?2、数据分析师的薪...

  • 这一节将开始学习python的一个核心数据分析支持库---pandas,它是python数据分析实践与实战的必备高级工具。对于使用 Python 进行数据分析来说,pandas 几乎是无人不知,无人不晓的。今天,我们就来认识认识数据分析界鼎鼎大名的 pandas。目录一. pandas主要数据结构 SeriesDataFrame二...

  • Bigtable 可以说是log-structed以及page-oriented 两种存储引擎的整合体,我们性能优越的单机存储引擎leveldb和rocksdb就是基于google的bigtable存储系统实现的。 论文地址Bigtable: A Distributed Storage System for Structured Da...

  • 一下为个人结合其他人对分布式存储 所需的技能进行总结,绘制成如下图谱,方便针对性学习。 这里对分布式存储系统接触较多的是ceph,所以在分布式存储系统分支上偏向ceph的学习。 如有分类有问题或者分支不合理,欢迎大家批评指正,目的是为了大家共同提升 文章目录分布式存储技能树Linux操作系统文件系统I/O系统I/O追踪内存管理Pag...

  • 存储过程存储过程分为系统存储过程和自定义存储过程存储过程通过将处理数据的程序从客户端应用程序移动到服务器,存储过程是放在服务器上的,通过客户端下达指令调用存储过程的时候,这个过程是在服务器上发生的,自然就不会占用网络的带宽就会降低网络流量。存储过程就是一组为了完成特定功能的T-SQL语句...

  • 原文地址:https://github.com/jaywcjlove/handbook/blob/master/MySQL/MySQL%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B.md MySQL数据类型 数字类型 整数: tinyint、smallint、mediumint、int、bigint浮点数:...

  • 为什么要用存储过程   几个去 IBM 面试的兄弟回来抱怨:去了好几个不同的 IBM 项目组,几乎每个面试官问到数据库的时候都要问用没用过存储过程,烦人不?大家去面的程序员,又不是 DBA,以前的项目都没有用到存储,不照样运行的好好的? 存储过程真的那么重要吗,它到底有什么好处呢? 笔者认为,存储过程说白了就是一堆 SQL 的合并。...