硬盘、文件系统和存储 block、sector、 Stripe size区别

本文详细介绍了硬盘存储中的基本概念,包括扇区(sector)、块(block)以及Stripe大小的区别。扇区是磁盘的最小存储单位,通常是512字节。块是文件系统层的概念,其大小在创建文件系统时可设置。Stripe大小在RAID中至关重要,影响读写性能。磁盘阵列的Stripe Size应考虑与文件系统Block Size匹配,以优化性能。此外,Cache Block Size的设置也会影响存储效率。
部署运行你感兴趣的模型镜像

  扇区(block)是驱动可以操作的最小单位,是磁盘级别的。一个磁盘扇区(sector)512个字节(现在有4K的了),扇区(sector)是磁盘的最小存储单位,
  块(block)是文件系统层的,mkfs时可以设置块的大小.
磁盘块(block)应该是类似FAT的簇大小的概念,是操作系统中分配磁盘容量的最小单位. 块(block)是数据存储的最小单位!

 

    我的理解,512字节和520字节(针对EMC)所指的不是block,而是硬盘扇区的大小。在EMC存储中,每个硬盘在出厂前就被格式化成每扇区520 字节(其中512字节可存放数据,另外8字节是存储FLARE的元数据。其他存储设备的硬盘一般默认都是每扇区512字节的。
至于block的大小,在一般情况下,我觉得应该等同于strip大小。只有在创建了RAID之后才会有block的概念。stripe 和 strip之间的区别的确容易混淆,我是这么理解的,一个RAID中所有磁盘的strip合起来就是stripe。

在创建RAID的时候,会让你选择Stripe size 以及Block size,

 

 

Cylinder, Tracks(磁道) and Sector(扇区)

 

 

      Cylinder ,有人给翻译成柱面,这个中文意思得好好想想才明白:一根木头棍,用刀横向一切,形成的这个平面就是柱面。硬盘的一个中心轴上,平行放置了好几块碟片,每个碟片就是一个柱面。

    Track ,每个碟片逻辑上有好多个同心圆形成的轨道,这些轨道就是 Track 。数据分布在这些 Track 上。

Sector ,为了更有效地利用空间,每个 Track 都会化成相同大小的小块,每个小块 512Byte ,就是一个 Sector

 

    硬盘写数据时,都是从外圈的 Track 忘里写。角速度相同的情况下,相同时间内外圈的 track 能读取更多的数据,即 transfer rate MB/s )更大,一般最外圈的 transfer rate 可以比最内圈的大 1 倍以上。

 

    磁盘阵列的一个重要功能是虚拟出 LUN ,一个 LUN 对主机来讲就是一个硬盘,也有 C Cylinder H Heads S Sector )参数。同样的每个 LUN Sector 大小仍然是 512 Byte(有点厂商是 520B

 

    操作系统读写文件时,不是按照 512Byte Sector 大小来进行的,而是按照文件系统定义的 Cluster 大小读写数据。

 

   文件系统一般按照 Cluster 大小,有时候也称为 Block 大小来读写数据,这个 Cluster 一般最小的 4K ,大的定为 32K 64K 等都可以,主要根据应用的不同。比如 Oracle 的应用一般就用 4K 8K Block 大小,大文件读写就用 128K 甚至 256K 都可以。

 

那主机文件系统定义的 Block 块和后端存储的哪个参数相关呢?

 

    Stripe Size :存储阵列在做 RAID 的时候,比如 RAID5 ,一般都要指定 Stripe Size ,就是在硬盘上读写数据的条带化单位。这个单位设得太小,比文件系统的 Block Size 还小的话,存储就需要在多个条带单位上写一个 Block 数据,对读写性能显然有影响;这个单位如果设得太大,对文件系统的读写应该影响不大,因为文件系统读写数据是按照模拟出来的 LUN Geometry 读写的,只要这个 LUN 平均分配到了多个硬盘上,即使是远小于 Stripe Size 的多个 Block ,也应该能平均分到多个硬盘上。(这点不太确定,但对数据库应用还是很重要的,直觉上对这类应用,应该设比较小的 Stripe Size )―――这是不是说 Array 上的 Stripe Size 尽量设大一点呢?

 

    Cache Block Size :有些存储能调整 Cache Block Size 。如果 cache block size 正好等于文件系统的 block size ,那么 cache 就能够被充分利用。假设一种情况: cache block size 等于 128k ,而文件系统 block size 等于 8k ,那么 cache 的利用率就大大降低了。而如果 cache block size 等于 8k ,但文件系统的 block size 等于 128k ,那存储就需要把一个读写数据块拆成 16 个缓存数据块,这样会造成 CPU 的负载加重。(如果我是存储的设计者,我会选择比较小的 cache block size ,因为 Cache 主要给 Oracle 这样的小数据块频繁读写的应用使用。对大流量的文件读写应用, cache 用处不大,这个更考验系统的总线和通道吞吐能力)

来源http://blogold.chinaunix.net/u2/73762/showart_1085536.html

您可能感兴趣的与本文相关的镜像

Qwen3-8B

Qwen3-8B

文本生成
Qwen3

Qwen3 是 Qwen 系列中的最新一代大型语言模型,提供了一整套密集型和专家混合(MoE)模型。基于广泛的训练,Qwen3 在推理、指令执行、代理能力和多语言支持方面取得了突破性进展

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值