六盒宝典开奖结果今睌|香港最快开奖结果直播|六合宝典今晚开奖结果

一些存储的基本概念

发布日期:2019-09-06 12:11   来源:未知   阅读:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      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。

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

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

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

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

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

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

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

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

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

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