网上一些评论和提问经常会遇到三个问题,我们将这三个问题展开:
- MinIO不适用于小文件?
- MinIO小文件性能?
- MinIO是否是合小文件的读取场景?
首先,我们正面回答问题。
第一种观点是错误的,MinIO不仅非常适合小文件,还适合中
型文件和大文件。我们对于友商的这种中伤行为,感觉,他们太可爱了。
骗骗技术菜鸟和新手小白还行。
您想想为什么专家们没有这么说呢?
前言:建立正确的“文件观”
骗子年年有,在专业领域我们就对网上错误的言论打打假,用力锤一下假专家、假公知们。让他们理解“铁头”的厉害之处。
看看真正的存储架构师是如何暴揍他们的。而“存储铁头架构师们”往往几个方面进行评估读写速度的:
- 存储的介质;
- 硬盘的物理设备接口;
- 接口协议;
- 格式化的文件系统;
- 文件大小和队列深度;
- 读取特点;
- 分布式场景。
通过以上内容耐心、详细的阅读后,你就知道你为什么会网络上的言论给骗了?
同时,你还会明白为什么小文件读写的时候不仅是普通硬盘,而且像百度网盘、阿里云盘、iCloud等在传输的时候都明显会感觉遇到一些问题。
让我们一起深入到硬盘的世界。
一、存储的介质
存储的介质有很多,大家也见过很多:
- 留生机唱片
- 软盘
- 硬盘
- 光盘
- U盘
- 闪存
- 其他
1.1 马达带动的圆盘
我们说说很久以前的一些设备,很久到“酒零”后和“蛋蛋后"们没有看过的东西。他的名字叫:软盘。没有硬盘前的电脑都基于软盘存储的数据,他的外观长这样:
他的内部长这样:
他的特点与大家还见过的光盘类似,有一个读取内容的磁头,下面用小电机带动圆盘(软盘/光盘/磁盘)转圈。
这个磁头,在每秒高达上万转的速度带动圆盘上的磁性或者光性材料转圈。然后将写在存储材料上面的0和1读取出来,转换为大家看得到的东西。
那么,问题来了转的再快也有极限值,所以这种磁性材料即使使用了分层、使用了多磁头,他的速度永远都有一个上限。
它们长这样:
因此,大家为了追求更快的速度,我们见过的光盘、硬盘、软盘、留声机唱片我们都可以归纳为马达带动的圆盘。而速度遇到问题了,伟大的人类先驱就发明了另外一种存储方式:SSD(固态存储)。
1.2 SSD(固态存储)
我们所见过的手机上的硬盘、U盘、电脑上标注的固态硬盘等都属固态存储器,他使用存储颗粒进行的存储。
这类SSD存储技术,不需要任何机械运动进行转圈。所以,他具备更快的读写速度,更低的等待延时。因此,他具备更高的瞬间吞吐量。
以下部份大家了解一下即可,固态硬盘使用的是闪存芯片(或者叫闪存颗粒),它是一种基于电子存储单元数组的半导体存储器,其内部由许多晶体管组成。而很多闪存芯片使用非易失性存储技术进行数据保存,它们由许多晶体管组成,每个晶体管代表一个存储单元。
同时,每次擦除和重新编程都会导致存储单元内部的电子发生损耗,从而降低其可靠性和寿命。往往闪存芯片会有擦写的次数限制,超过指定的次数后容易造成数据丢失。
它们长这样:
二、硬盘的物理设备接口
硬盘的物理解口我们常见的有以下几种:
- SATA
- IDE(老古董)
- PCIe
我们来看看他们的样子:
2.1 SATA接口的样子
2.2 IDE接口的样子
2.3 PCIe接口的样子
PCIe接口协议主流的有3.0/4.0和5.0,并且分为长短距离的口适配不同的情况。如下图:
2.4 不同的物理接口的速度也不同
看了下图你就会明白,选择硬盘的接口也很重要。
接口 | 最高传输速率 |
---|---|
PCIe 5. x1 | 4 GB/s |
PCIe 5. x1 | 6 64 GB/s |
IDE | 133 MB/s |
SATA 3. | 6 Gb/s (750 MB/s) |
SATA 2. | 3 Gb/s (375 MB/s) |
SATA 1. |
三、接口协议
除了我们物理接口外,我们对于硬盘的通信也有对应的存储协议标准。我们将相关的常见的存储协议的读写速度给大家列出了表格。
接口协议 | 最高读取速度 | 最高写入速度 |
---|---|---|
NVMe | 7 GB/s | 6.5 GB/s |
SCSI | 320 MB/s | 320 MB/s |
iSCSI | 取决于网络带宽和延迟 | 取决于网络带宽和延迟 |
SAS 12 Gb/s | 12 Gb/s |
所以,除了我们选择物理接口外,我们在选择硬盘的时候,还需要了解他的存储的协议。
小结: 物理接口、存储介质、协议
我们针对前面的内容作一个小的总结:
- 选择PCIe 5.0 接口 NVMe存取协议的SSD固态硬盘会有更好的速度。
- 海量的小文件读写最好的方式是选择固态硬盘和NVMe硬盘。
- 再优秀的乌龟也快不过火箭,再牛逼的机械硬盘的优化不如何选一块好硬盘。
我们接下来我们看看小文件的性能测评。
四、格式化的文件系统
我们电脑上进行格式化的时候都会选择一个文件格式化的方式,比如大家常见的:NTFS、EXT4、FAT32、XFS文件系统等。
而不同的文件格式化的特征对于文件存取的时候又具有不同的特征,会影响到文件大小、读写速度等。
下面,我们用表格为大家总结了不同的文件系统的特征:
文件系统 | 最大文件大小 | 最大卷大小 | 支持的操作系统 | 日志记录 | 文件大小限制 | 读取速度 | 写入速度 |
---|---|---|---|---|---|---|---|
NTFS | 16 EB | 256 TB | Windows, Linux | 有 | 无限制 | 高 | 高 |
EXT4 | 16 TB | 1 EB | Linux | 有 | 无限制 | 高 | 中高 |
FAT32 | 4 GB | 2 TB | Windows, Mac, Linux | 无 | 4 GB | 一般 | 一般 |
XFS | 8 EB | 8 EB | Linux | 有 | 无限制 | 高 | 高 |
因此,在存取文件的时候,进行文件大小的写入测评,不说明文件系统也是不要face。
五、文件大小和队列深度
文件大小与写入速度正相关,文件大写入快,文件小写入慢。
这是为什么呢?
专业硬盘厂商在硬盘测试的时候,会提供以下几个指标作为参考:
指标 | 说明 |
---|---|
iops | 一般是指4K小文件的读写性能,在单位时间内可以处理的读写请求数量,通常用于评估磁盘阵列、固态硬盘等存储设备的性能 |
随机读写 | 随机读写的时候都会加上文件大小的说明。因为文件越小,随机性越强,磁头就需要重新进行一次寻址。速度就变慢了 |
连续读写 | 连续读写的时候磁头不需要连续寻址,读写速度就会变快 |
我们有图有真像,我们看看国际最知名的固态硬盘厂商,三星的硬盘测评参数:
注释说明:
DQ1和DQ32是硬盘(通常是SSD)的IOPS测试中两个不同的测试负载。它们的主要区别在于测试时队列深度的不同。
DQ1代表着Depth Queue 1,即队列深度为1时的测试负载。这意味着测试程序在每次读写请求时只会发送一个请求给硬盘。
DQ32代表着Depth Queue 32,即队列深度为32时的测试负载。这意味着测试程序可以同时向硬盘发送最多32个读写请求,并等待硬盘返回结果,DQ32测试能够反映硬盘处理高并发请求时的性能情况。
六、分布式场景
在分布式场景下面,重要的三个指标是:
- 网络;
- CPU和内存 ;
- 硬盘。
6.1 分布式场景下:网络
我们在高IO下面,假设使用了1000Mbps的网。而我文件上传高达200MB。
那么200MB x 8 = 1600Mbps。
因此,读写的IO不要超过网络的瓶颈。
6.2 分布式场景下:CPU和内存
CPU 要求支持AVX512和AVX2的编解码,这样他能很好的进行加速运算。
在硬盘写入没完成的情况下,会大量占用内存进行文件的快速存取,所以内存要在一个合理的区间。
注解说明:
AVX2(Advanced Vector Extensions 2):这是Intel CPU指令集中的一种扩展,引入了256位向量寄存器,可以执行更多的并行浮点运算和整数运算操作。
AVX512(Advanced Vector Extensions 512):这是Intel CPU指令集中的另一种扩展,引入了512位向量寄存器,可以进一步提高计算密集型任务的性能。AVX512支持更多的浮点数运算、整数运算和比特操作,并且具有更强的向量化能力。它适用于各种高性能计算场景,如科学计算、人工智能、图像处理等。
6.3 分布式场景下:硬盘
在上面我们讲了这么多的硬盘,分布式场景下进行通信的前提是不要有速度瓶颈。因此,我们最好保证硬盘的一致性。
避免在多台服务器下,A服务器硬盘快、B服务器硬盘慢的情况。
上面的这种情况会造成整个服务器集群变慢。
6.4 分布式场景下:小结
在上面我们讲到了硬盘、文件系统、文件大小对于存取速度的影响。我们针对存储
现在由于CPU性能、硬盘技术和网络通信速度的迅猛发展,越来越多的企业不再使用和购买传统硬件存储。
因为,大家已经知道了存储性能完全是看硬盘,并且普通的X86架构的服务器的各项指标已经远远超过了几年前的专有存储硬件的性能。
此外,存储性能传统的专有存储硬件太贵了,专用存储硬件特别容易被硬件供应商绑定。往往在X86 SDS(软件定义存储)的性能这么强劲的基础上,商务部门和技术部门领导采购高昂的硬件,特别容易被人认为与硬件供应商有勾结,廉洁问题上有道德风险。
最后
发明拉屎少的马,也解决不了伦敦和巴黎的污染问题,而汽车解决了这个问题。
小文件的软件层面疯狂的优化,也解决不了硬盘介质和接口的问题。
存储的速度受限最大的是硬盘,硬盘问题解决了,小文件的问题就解决了。
结论:MinIO不仅适用于小文件,对于中型文件和大文件也非常友好。