原标题:一些存储的基本概念

存储技术

网络存储设备根据存储技术的不同,主要分为三类:DAS(Direct Attached Storage)、NAS(Network Attached Storage)和SAN(Storage Area Network)。

直接连接存储DAS是对SCSI总线的进一步发展。它对外利用SCSI总线通道和多个主机连接,解决了SCSI卡只能连接到一个主机上的缺陷。

NAS(附网存储系统)系统是用一个装有优化的文件系统和瘦操作系统的专用数据存储服务器,提供跨平台的文件共享功能。

SAN(存储区域网)是通过专用高速网将一个或多个网络存储设备(如磁盘阵列RAID)和服务器连接起来的专用存储系统。连接DAS存储一般应用在中小企业,与计算机采用直连方式,NAS存储则通过以太网添加到计算机上,SAN存储则使用FC接口,提供性能更加的存储。

NAS与NAS的主要区别体现在操作系统在什么位置。如下图所示:

NAS和SAN的区别:

NAS和SAN最本质的不同就是文件管理系统在哪里。SAN结构中,文件管理系统(FS)还是分别在每一个应用服务器上;而NAS则是每个应用服务器通过网络共享协议(如:NFS、CIFS)使用同一个文件管理系统。

SAN提供的存储单位是LUN,属于block级别的。经过NAS创建成文件系统后,就变成文件级别的了。

SAN 更好的支持RAID,因为它拥有更多硬盘和更强的控制器。当有一大块数据写到RAID Group上,它可以被分成数小块,同时写到几个磁盘上。

SAN有更大的cache,Cache对性能的提高也有明显的作用。 更稳定:多机头,热备盘,多路径等机制杜绝了单点故障。 更安全:统一的容灾,备份和远程复制保证了数据的安全性。

三种技术比较:

存储方式

对象存储基于文件系统,通过文件系统来存储访问数据。

块存储是以块为基本单元的存储方式,其传输不存在数据打包/解包的过程,可提供更高的传输性能

文件存储设备通过以太网与服务器连接。服务器通过NFS、CIFS、HTTP、FTP等协议进行数据访问。数据通过以太网传输,有打包/解包的过程 总结:

iSCSI协议

ISCSI与FC并列为两大标准的块级传输协议。成本昂贵,是部署光纤存储区域网络(FC SAN )的最大缺点。

iSCSI 协议定义了在TCP/IP网络发送、接收块级存储数据的规则与方法。发送端将SCSI指令与数据本体封装到TCP/IP封包中,然后通过以太网络发送。接 收端收到TCP/IP封包后,将它们还原为SCSI指令与数据,并依指令执行。完成指令后,再将响应的SCSI指令与数据封装到TCP/IP封包,发回发 送端。通过这种方式,存取远程存储设备时,就如同在本地端存取本机的SCSI硬盘一样。

iSCSI和FC比较:

光纤通道 (FC)与iSCSI各有自己的优缺点。

FC作为SAN的基础架构,它专门 为满足大容量存储需求和实现业务连续性而设计,利用光信号完成传送的过程,具备非常高的性能。

而iSCSI基于许多用户都已经熟悉的IP协议,传送的距离 更远,而且企业用户已经广泛应用的百兆或千兆局域网为iSCSI的广泛铺开打好了基础。

利用iSCSI,可以把FC的基础设施扩展到更远距离和更多 服务器,实现业务连续性和更出色的掉电保护,更加灵活。利用IP技术的低成本优势,可以把SAN扩展到更多服务器。scale up 和 scale out

什么是scale up 和 scale out?

常见的系统扩展方式有scale up和scale out两种:

Scale Up(纵向扩展) 主要是利用现有的存储系统,通过不断增加存储容量来满足数据增长的需求。 但是这种方式只增加了容量,而带宽和计算能力并没有相应的增加。

Scale-out(横向扩展)架构的升级通常是以节点为单位,每个节点往往将包含容量、处理能力和I / O带宽。一个节点被添加到存储系统,系统中的三种资源将同时升级。

一个比较形象的鱼缸比喻:

当你只有六七条鱼的时候, 一个小型鱼缸就够了;可是过一段时间新生了三十多条小鱼,这个小缸显然不够大了。

如果用Scale up解决方案,那么你就需要去买一个大缸,把所有沙、水草、布景、加热棒、温度计都从小缸里拿出来,重新布置到大缸。这个工程可不简单哦,不是十分钟八分钟能搞得定的,尤其水草,纠在一起很难分开(不过这跟迁移数据的工程复杂度比起来实在是毛毛雨啦,不值一提)。

那么现在换个思路,用Scale out方案,就相当于是你在这个小缸旁边接了一个同样的小缸,两个缸联通。鱼可以自动分散到两个缸,你也就省掉了上面提到的那一系列挪沙、水草、布景等的折腾了。write back和write through

这里引用smartcache的关于它两的定义:

Write-through Cache Policy: The goal of write-through caching is to accelerate the read operations. All write operations go toPrimary Source (HDDs); write operations may also go to the Cache (SSDs). Thus the write operations may be slower compared to aconfiguration without Write-through CacheWrite-back Cache Policy: The goal of write-back caching is to accelerate both read and write operations. Writes may be cached on the Cache (SSDs) and written to the Primary Storage (HDDs) at a later point of time.

翻译:

write-through(透写): 加速读操作,所有的写操作直接写往主存,同时也写在缓存cache中,因此写操作相对较慢。

write-back(回写):同时加速读写操作,写操作先缓存在cache中,稍后才会写到主存中去。

write-back的优缺点:

优点:回写操作先将数据写到cache缓冲之中便立刻返回,不等待磁盘等存储设备IO写指令执行完毕。因为免去了等待操作较慢的IO写操作的执行,这种方式具有较高的效率。

缺点:Cache中会保存上一次写之后的数据(通常叫做脏数据),而且如果写的过程中发生了掉电,则不能确保数据切实被写入到磁盘中。

RAID

RAID(Redundant Array of Inexpensive Disks)称为廉价磁盘冗余阵列。RAID 的基本原理是把多个便宜的小磁盘组合到一起,成为一个磁盘组,使性能达到或超过一个容量巨大、价格昂贵的磁盘。

RAID技术大致分为两种:基于硬件的RAID技术和基于软件的RAID技术。

在 Linux下通过自带的软件就能实现RAID功能,这样便可省去购买昂贵的硬件 RAID 控制器和附件就能极大地增强磁盘的 IO 性能和可靠性。由于是用软件去实现的RAID功能,所以它配置灵活、管理方便。同时使用软件RAID,还可以实现将几个物理磁盘合并成一个更大的虚拟设备,从而达到性能改进和数据冗余的目的。

基于硬件的RAID解决方案比基于软件RAID技术在使用性能和服务性能上稍胜一筹,具体表现在检测和修复多 位错误的能力、错误磁盘自动检测和阵列重建等方面。

RAID级别对比:

其他还有RAID 6、7、5E、5EE、DP、ADG之类的就不一一介绍了。每种RAID的详细介绍网上一搜一堆,之一。

RAID 5 和 RAID 10 对比

RAID 0、10、5、ADG对比表格:

上表在可用磁盘空间计算,假设以下条件成立:

1)阵列中所有的物理磁盘容量一致;

2)没有使用热备硬盘;

3)RAID 5中不超过14块硬盘;

4)RADI ADG中不超过56块硬盘。

一般raid5会多配一块热备盘,因为raid5本身只允许有1块磁盘损坏,而raid10,每组允许损坏1块,2组就是各1块,4组就是各4块,但是同组内不允许有2块损坏。

读方面:磁盘阵列读操作的关键更多的体现在cache的命中率上。所以,RAID5和RAID10在读数据上面,他们基本是没有差别的。

连续写:在连续写操作过程,如果有写cache存在,并且算法没有问题的话,RAID5比RAID10甚至会更好一些,差别不大,因为这个时候的RAID校验是在cache中完成,如4块盘的RAID5,可以先在内存中计算好校验,同时写入3个数据+1个校验。而RAID10只能同时写入2个数据+2个镜相。如果没有写缓存存在,RAID5写性能不如10。

随机写:假定要把一个数字2变成数字4,那么对于RAID5,实际发生了4次io:

先读出2与校验6,可能发生读命中

然后在cache中计算新的校验

写入新的数字4与新的校验8

对于RAID10,同样的单个操作,最终RAID10只需要2个io,而RAID5需要4个io。这里考虑的是没有缓存的情况。

总结:小io的数据库类型操作,建议采用RAID10,而大型文件存储,数据仓库,则从空间利用的角度,可以采用RAID5。

LUN的概念

lun的全称是logical unit number,也就是逻辑单元号。

scsi总线上可挂接的设备数量是有限的,一般为6个或者15个,我们可以用target ID(也有称为scsi id的)来描述这些设备,设备只要一加入系统,就有一个代号,我们在区别设备的时候,只要说几号几号就ok了。

实际上我们需要用来描述的对象,是远远超过该数字的,于是我们引进了lun的概念,也就是说lun id的作用就是扩充了target id。每个target下都可以有多个lun device,我们通常简称lun device为lun,这样就可以说每个设备的描述就有原来的target x变成target x lun y了,那么显而易见的,我们描述设备的能力增强了

lun id不等于某个设备,只是个号码而已,不代表任何实体属性,在我们的实际环境里,我们碰到的lun可能是磁盘空间,可能是磁带机,或者是media changer等等.

块设备

系统能够随机访问固定大小数据片(chuncks)的硬件设备称作块设备。这些固定大小的数据片称作块。它们都是以安装文件系统的方式使用的,这也是块设备一般的访问方式。

块设备中最小的可寻址单元是扇区。扇区大小一般为2的整数倍,最常见的是512字节。扇区是所有块设备的基本单元。

软件都会用到自己的最小逻辑可寻址单元“块”。块是文件系统的一种抽象,只能基于块来访问文件系统。

虽然物理磁盘寻址是按照扇区级进行的,但是内核执行的所有磁盘操作都是按照块进行的。块数是扇区大小的2的整数倍,并且小于页面大小。所以通常块大小是512字节,1KB, 4KB。

扇区:设备的最小寻址单元,亦称”硬扇区”或”设备块”

块:文件系统的最小寻址单元,亦称”文件块”或”I/O块”buffer_head

当一个块被调入内存时,它要存储在一个缓冲区中,每个缓冲区与一个块对应,它相当于是磁盘块在内存中的表示。

内核在处理数据时需要一些相关的控制信息,每一个缓冲区都有一个对应的描述符,用buffer_head结构体表示,称作缓冲区头。在文件 中定义。

缓冲区头的目的在于描述磁盘块和物理内存缓冲区之间的映射关系。这个结构体在内核中只扮演一个描述符的角色,说明从缓冲区到块的映射关系。也说明其所描述块的状态(脏,干净,过期等)。它并不与底层的块驱动程序打交道。

弊端:

一、缓冲区头是一个很大且不易控制的数据结构体,对数据的操作不方便也不清晰。

二、仅能描述单个缓冲区。

bio

目前内核中块I/O操作的基本容器由bio结构体表示,定义在 中。该结构代表了正在现场(活动)的以片段(segment)链表形式组织的块I/O操作。一个片段是一小块连续的内存缓冲区。通过片段来描述缓冲区,即使一个缓冲区分散在内存的多个位置上,bio结构体也能对内核保障I/O操作的执行。像这样的向量I/O就是所谓的聚散I/O。

bio结构体中最重要的几个域是bi_io_vec、bi_vec、和bi_index,如下图所示:

每一个块I/O请求都是通过一个bio结构体表示。每个请求包含一个或多个块,这些块储存在bio_vec结构体数组中。

buffer_head是用来管理buffer,而bio是用来传输buffer的。bio为通用层的主要数据结构,既描述了磁盘的位置,又描述了内存的位置,是上层内核vfs与下层驱动的连接纽带。

sync 和 fsync

sync只是将所有修改过的块的缓存排入写队列,然后就返回,它并不等待实际I/O操作结束。相当于是异步的。

fsync只引用单个文件,它等待I/O结束,然后返回。相当于同步操作。

当将数据写到文件上时,通常该数据先由内核复制到缓存中,如果该缓存尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓存以便存放其他磁盘块数据时,再将该缓存排入输出队列,然后待其到达队首时,才进行实际的I/O操作。这种输出方式被称之为延迟写(delayed write)。

作者:Summer_ZJU

来源:CSDN

原文:https://blog.csdn.net/xiaqunfeng123/article/details/52456190

运维人的精彩,尽在GOPS 2019 · 深圳站

4.12-13,名企运维专家

相聚GOPS

与您畅聊运维管理、转型

GOPS 2019 · 深圳站(4月12日-13日)更多精彩返回搜狐,查看更多

责任编辑:

计算机数据存储概念,一些存储的基本概念相关推荐

  1. Kubernetes(K8s)基本概念:Volume(存储卷)、Persistent Volume

    Kubernetes(K8s)基本概念:Volume(存储卷) 一.Volume(存储卷) Volume是Pod中能够被多个容器访问的共享目录. K8s中的Volume定义在Pod上,然后被一个Pod ...

  2. 存储技术(一)-基本概念和技术发展

    存储技术(一)-基本概念和技术发展 原创 大胖随笔5566 大胖随笔5566 7月12日(本人微信号文章) 一.发展的几个重要阶段 IT资源的三大基石:计算.存储和网络.存储主要负责的是数据存取. 存 ...

  3. 二叉树介绍 ~ 概念、存储结构、性质

    二叉树介绍 ~ 概念.存储结构.性质 1.二叉树的概念 2.特殊二叉树 3.二叉树的存储结构 4.二叉树的性质 5.相关案例 1.二叉树的概念 一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由 ...

  4. C语言——数据结构之广义表(概念及其存储结构)

    前言 本节我们来说说C语言中的广义表.主要介绍广义表的概念定义,并说明其存储结构,算法中将使用到递归思想. 广义表是线性表的一种推广,在数据结构中有广泛应用. 一.广义表的概念 1.广义表的概念 (1 ...

  5. 数据结构(六):图的概念、存储方式、基本操作、最小生成树、最短路径、有向无环图、关键路径 | Prim、Kruskal算法 | BFS、Dijkstra、Floyd算法 | 拓扑排序 | 求关键路径

    文章目录 第六章 图 一.图 (一)图的定义 (二)图逻辑结构的应用 (三)无向图.有向图 (四)简单图.多重图 (五)顶点的度.入度.出度 (六)顶点-顶点的关系描述 (七)连通图.强连通图 (八) ...

  6. 天翼云从业认证(1.2)存储的概念、体系结构、块存储、对象存储、文件存储以及 RAID 磁盘管理技术

    (1)块存储.对象存储.文件存储 存储方式 技术实现 优势 劣势 代表作 块存储 裸盘上划分逻辑卷,逻辑卷格式化成任意文件系统 支持多种文件系统,传输速度快,提供硬件容错机制 无法实现网络共享 FC- ...

  7. 块存储、文件存储、对象存储这三者和分布式文件存储系统的本质区别

    块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based St ...

  8. android 根目录缓存,Android系统中内部存储和外部存储(公有目录、私有目录、缓存目录)详解...

    首先,明确一个概念,Android内部存储和外部存储并非所谓的手机自带内存是内部存储,SD卡是外部存储云云. Android对内部存储和外部存储不是在物理上区分的,而是在逻辑上区分的.git 1.概念 ...

  9. 存储服务器配置型号,存储服务器配置要求指什么

    存储服务器配置要求指什么 内容精选 换一换 简要介绍miRanda是一种用于寻找microRNA基因组靶标的算法.该算法已用C语言编写,可以作为GPL下的开源方法使用.开发语言:C/C++一句话描述: ...

最新文章

  1. Machine Learning | (10) 回归算法-岭回归
  2. GridView中DropDownList联动
  3. Python语言学习之字母C开头函数使用集锦:count用法之详细攻略
  4. node更新到最新版本_win10怎么更新flash到最新版本「系统天地」
  5. 电工结业试卷_电工电子考试试(含答案).doc
  6. 征战蓝桥 —— 2017年第八届 —— C/C++A组第9题——分巧克力
  7. mysql8连接java_JAVA连接MYSQL8.0问题
  8. 深入理解Linux内核01:内存寻址
  9. 机器学习算法-09-深度学习、BP神经网络、Hopfield神经网络、基于数学原理的神经网络、径向基函数RBF(B站一条会说666的咸鱼)
  10. [bzoj1878][SDOI2009]HH的项链
  11. 威纶触摸屏与台达DVP系列PLC通信的参数设置和连接电缆
  12. NotNorthwind-更新#1-您所有的Northwind都属于我们
  13. 2022年【CSDN毎周小结】
  14. 耦合电感元件的相关概念
  15. 行人重识别论文阅读7-基于图卷积的行人骨架识别
  16. 不怕被群主踢,安心分享小游戏续命,上分好办法!
  17. 纯前端实现页面的回到顶部和回到底部功能
  18. python脚本课程_python选课脚本
  19. SQL SERVER RBAC权限管理表
  20. MapGIS裁剪等值线图到出图

热门文章

  1. C++实现超分辨率 IDN
  2. 测试cpu玩游戏的软件,玩游戏时显卡和CPU到底哪个更重要?来看下面的测试你就会明白了...
  3. 【机器学习项目实战】Python基于协同过滤算法进行电子商务网站用户行为分析及服务智能推荐
  4. Google Ads搜索广告如何搭建广告系列?
  5. Transformer完全图解
  6. MPU6050原始数据的获取
  7. [原]放弃 CmsEasy! 怎么样!
  8. 全球与中国亚麻布行业市场现状分析及投资可行性研究报告2022-2028年
  9. C++题目:逆波兰表达式
  10. 荣耀s20能不能升级鸿蒙系统,华为Mate40概念机:2K满溢屏+麒麟1020+鸿蒙OS系统 三星S20遭挑战...