本帖最后由 999的demo 于 2024-6-24 00:40 编辑
IOPS 每s读、写次数(是衡量硬盘性能的主要指标之一) 吞吐量 每s传输的数据量-带宽;一般细分为读吞吐和写吞吐两种 读吞吐:每s读的次数(IOPS)*每次读的字节 写吞吐:每s写的次数(IOPS)*每次写的字节 传输带宽(Throughput吞吐量) 指单位时间内成功传输的数据数量,即传输数据流的速度。 例如写入10000个1KB的文件需要10s,则此时传输带宽只达到1MB/s;若写入一个10MB的文件用了0.1s,则此时的传 输带宽为100MB/s 硬盘类型 机械硬盘HDD--最小存储单元为扇区硬盘的容量=柱面数*磁头数*扇区大小(影响硬盘容量的因素有单碟容量和磁片数量) 硬盘缓存:由于CPU和硬盘之间存在巨大的速度差异,为解决硬盘在读写数据时CPU的等待问题,在 硬盘上设置适当的高速缓存,以解决二者之间速度不匹配的问题,硬盘缓存与CPU上的高速缓存作用一样,是为了提高硬盘的读写速度。 机械硬盘的结构 盘面:硬盘的每一个盘片都有两个盘面,每个盘面都能存储数据,成为有效盘片。 每一个有效盘面都有一个盘面号,按从上到小的顺序从0开始依次编号。 在硬盘系统中,盘面号又叫磁头号,因为每一个有效盘面都有一个对应的读写磁头。 磁道(Track):磁道是在盘片上围绕在主轴周围的同心环,数据被记录在磁道上。 磁道从最外圈向内圈从0开始顺序编号。 硬盘的每一个盘面有300~1024个磁道,新式大容量硬盘每面的磁道数更多,通常用盘片上每英寸的磁道数(TPI,也称磁道密度)来衡量盘片上磁道排列的紧密程度。 磁道是肉眼看不见的,只是盘面上以特殊形式磁化了的一些磁化区。 柱面(Cylinder):在同一个硬盘中所有盘片(包含上下两个盘面)具有相同编号的磁道形成一个圆柱,称之为硬盘的柱面。 每个柱面上的磁头由上而下从0开始编号,数据的读写按柱面进行。即磁头读写数据时先在同一柱面内从0磁头开始进行操作,依次往下在同一柱面的不同盘面(即磁头)上进行操作。只有同一柱面所有的磁头全部读写完成后磁头才转移到写一个柱面,因为选取磁头只需通过电子切换即可,而选取柱面侧必须通过机械切换,即寻道。 通常硬盘中磁头的位置由柱面号来说明,而不是用磁道号来说明。 扇区(Sector):每个磁道被分为更小的单位,称为扇区,划分扇区的目的是为了使数据存储更加条理化。 扇区是硬盘中可以单独寻址的最小存储单元。不同硬盘磁道的扇区数可以不同。 通常情况下,一个扇区可以保存512字节的用户数据,但也有一些硬盘可以被格式化为更大的扇区大小,如4KB扇区。 影响硬盘性能的因素: 转速(影响硬盘连续IO时吞吐量性能的首要因素) 寻道速度(影响硬盘随机IO性能的首要因素) 单碟容量(影响磁盘性能的一个间接因素) 接口速度(影响磁盘性能的一个最不重要的因素) 固态硬盘-SSD—最小存储单元是Cell SSD利用flash技术存储信息,数据传输传输更快;在性能、可靠性、能耗、轻便性方面上有着绝对的优势。 SSD盘的使用寿命受擦写次数影响,当Cell不断被擦写达到次数极限后就不能继续读写数据了。 SSD主要由闪存颗粒和控制单元组成 控制单元又细分为SSD控制器、主机接口、DRAM 闪存颗粒:数据存储的物理器件,是一种非易失性随机访问存储介质(多通道并发) 控制单元-SSD控制器:负责主机到后端介质的读写访问和协议转换,表项管理、数据缓存及校验等,是SSD的核心部件 控制单元-主机接口:主机访问SSD的协议和物理接口,如SATA、SAS和PCIe 控制单元-DRAM:FTL(Flash translation layer,闪存转换层)表项和数据的缓存,以提高数据访问性能 FTL 将Host(电脑、手机等)发送至Device(eMMC、SSD)的逻辑地址转换为写入Flash的物理地址(地址映射管理) 闪存颗粒的构成 NAND 闪存颗粒采用浮栅晶体管存储数据,其内部存储单元组成包括:LUN、Plane、Block、Page、Cell LUN: 能够独立封装的最小物理单元,通常包含多个plane Plane:拥有独立的Page寄存器,通常包含1K或2K奇数Block或偶数Block Block: 能够执行擦除操作的最小单元,通常由多个Page组成 Page: 能够执行编程和读操作的最小单元,通常大小为16KB Cell: Page中的最小操作擦写读单元,对应一个浮栅晶体管,可以存储1bit或多bit 不同的闪存介质 不同闪存介质的Cell大小不同,Cell越大,容量越大,读写性能和寿命越低,成本越低 性能由高到低依次为 SLC、MLC、TLC、QLC 常见的硬盘接口类型 M.2、SCSI、SATA、SAS、FC、PCIE、U.2等 PCIE一般是插在服务器里面的,需要将服务器拆开来插入硬盘,因此该盘就不支持热插拔了,所以现在PCIE使用的会越来越少,一般会使用U.2的盘(U.2盘的传输协议也是NVME) 机械硬盘常见的三种接口 IDE、SATA(基本上IOPS在100左右,)、SAS(比SATA快) 固态硬盘常见的接口 SATA、SAS、PCIE、U.2等。NVME(不是传输接口,是一种传输协议) 常见的硬盘传输协议 iSCSI、FC、FCoE、IB、RDMA、NVME等协议 磁带/单磁盘、专用存储设备、分布式存储设备 集中式存储 专有存储设备(像磁盘阵列),存储服务器成为系统性能瓶颈,无法满足大规模存储应用的需要 磁盘阵列一般由两部分组成(控制器和磁盘柜) 控制器 提供算力,可以做镜像、快照等,主要包含I/O路径和处理器两个组件 控制器的I/O路径:一端负责与磁盘阵列通信,一端负责与存储网络或直连的服务器通信 控制器的处理器:负责处理数据传输、数据相关的各种功能(如RAID、卷管理、快照、克隆等) 磁盘柜 通过磁盘存放数据;如果磁盘一直增加磁盘,可能导致机头负载过大(一般场景下还是可以使用的) 分布式存储 将硬盘分配到各个主机上,通过软件组成类似于RAID的东西,组成一个虚拟的大的空间,每一个节点都能够对外提供计算能力和接入点 可以实现存算分离,存储的地方和计算的地方不同 深信服的EDS 计算基于KVM架构 存储vs基于glusterfs、ceph架构(ceph 文件和对象存储、glusterf块存储) HCI存储网络之间就是通过127.0.0.1通信的 存储的类型 存储的类型主要包含块存储、文件存储、对象存储等 常用的为块存储和文件存储(文件存储可以直接进行文件读写,块存储需要进行文件系统格式化后才可以进行文件读写) 块存储 本质就是直接将磁盘空间通过各种方式提供给主机 可扩展性和课管理性差 读写效率好,延迟低 文件存储 在硬件存储上建立文件系统,然后直接将文件提供给主机 扩展性好、易于管理,价格便宜 读写效率低,延迟大 对象存储——主要解决文件存储海量存储问题 文件存储和对象存储都是用来存储非结构化数据的(图片、视频、音频等),对象存储解决了文件存储中文件系统限制了存储空间的问题 文件系统是以目录树的形式存放文件的,当数据量比较大的时候,文件存放在比较深的目录,不容易被发现;因此随着文件越来越多,文件系统会形成一个很深的树状结构,访问速度会越来越慢,成为了存储的一个限制 而对象存储没有目录结构,存储在对象存储的文件都称为对象,所有对象都放在一个“桶”中,是一种非常扁平化的存储方式 因此相比于文件存储,对象存储能够存放更加海量的数据;对象是千亿数量级,文件存储是百亿数量级,因此一般的客户使用不到对象存储,并且对象存储的运维成本比较高 对象存储的传输 对象存储基于HTTP传输 由于http协议无法在线修改,必须发送get、post等请求,因此对象存储只可以实现上传和下载,无法在线编辑(微信朋友圈、网盘等基本上都是使用的对象存储) 存储连接架构 DAS直连式存储——对外提供块存储 DAS是一种存储设备与使用存储空间的服务器通过总线适配器和SCSI/FC线缆直接相连的技术,中间无网络 SAN存储区域网络——对外提供块存储 SAN是一种高可用性、高性能的专用存储网络,通过专用的存储网络将服务器和存储设备连接起来。可以基于IP网络,也可以基于FC网络 特点 SAN向主机提供块存储,主机访问块存储(LUN),然后在其中创建文件,文件存储由主机端维护,主机与主机之间的文件系统没有同步 常用的SAN存储网络 IP SAN(主机通过IP网络可以获取到存储设备上的块存储) FC SAN(主机通过FC网络可以获取到存储设备上的块存储) FCoE SAN(FCoE网络是将FC帧封装到以太网中,实现在以太网基础设施上传输光纤信号的功能,成本降低) NAS网络附加存储——对外提供文件系统 NAS是一种将存储设备连接到网络上,通过网络共享协议向主机提供数据和文件服务的一种存储网络架构;支持NFS-Linux、CIFS-Windows、FTP等网络共享协议(VMware挂NFS是可以直接跑虚拟机的) 特点 文件系统由存储设备维护,用户访问文件系统,不直接访问底层存储 存储设备拥有所有主机上文件与底层存储空间的映射,所以此模式非常利于共享 同等物理硬件条件下,SAN性能好还是NAS性能好 首先我们要知道一个文件主要由两类数据组成 元数据:文件的相关属性(一般情况下访问元数据的次数更多) 真正的数据:存储的真实的数据 一般情况下元数据是存储在文件系统上,而文件系统可以加载到内存上;所以SAN的性能更好(因为SAN的文件系统存储在用户本地) RAID(RedundantArray of Independent Disks)独立冗余磁盘阵列,简称硬盘阵列;是一种把多个单独的物理硬盘以不同的方式组合成一个逻辑硬盘,将逻辑硬盘挂载给操作系统,在系统中读取到的是逻辑硬盘,而非独立的物理磁盘 RAID实现方式 硬件RAID——通过RAID卡实现 软件RAID——通过软件实现RAID RAID的数据组织形式 条带:单个硬盘中单个或着多个连续的扇区构成一个条带(组成分条的元素)扇区一般512B 分条:同一硬盘阵列中的多个硬盘驱动器上的相同“位置”的条带(相同编号的条带) 分条的深度:条带的大小 分条的宽度:硬盘的个数 不同RAID的特点 常用的RAID类型有RAID0、RAID1、RAID3、RAID5、RAID6、RAID10、RAID50等 RAID0:也被称为条带化RAID,只是将硬盘整合在了一起,没有冗余功能 RAID1:称为镜像,使用一半的物理硬盘做为镜像盘做数据备份 RAID5:使用的是分布式奇偶校验,每个成员硬盘将用于存储用户数据和奇偶校验数据 RAID6:相比于RAID5会存放两份校验信息(使用P+Q算法或DP算法) RAID10:先进行RAID1,再进行RAID0 写惩罚 进行单次IO写入时 需要实际读写数据的次数 RAID0:1(直接写入) RAID1:2(镜像,写入2次) RAID5:4(读数据、读校验位、写数据、写校验位) RAID6:6(相比于RAID5校验位需要读写2次,所以为6) RAID10:2 RAID10与RAID01有什么区别 RAID10的冗余性更高一点 RAID 10是先做镜像,然后再做条带(先RAID1,再RAID0) RAID 01是先做条带,然后再做镜像(先RAID0,再RAID1) 为什么RAID10的可靠性更高? 当RAID01中的Disk0盘故障时,左边的条带化将无法读取;此时当右边的任意一块盘(Disk3、Disk4、Disk5)失效就会导致RAID失效 当RAID10中的Disk0盘故障时,只对于Disk0所在的RAID1组的读写性能有影响,但是不影响正常的读写;然后当Disk1故障时才会导致整个RAID失效 |