文件系统块如何转换为 lba?

Posted

技术标签:

【中文标题】文件系统块如何转换为 lba?【英文标题】:How does a file-system block gets translated to lba? 【发布时间】:2013-09-04 18:24:27 【问题描述】:

我了解文件系统可以选择它在磁盘上使用的块大小。 另一方面,我了解磁盘分为 LBA。 LBA 是磁盘上一个扇区的地址。 那么文件系统使用的块和磁盘扇区(lba)有什么联系呢?

fs 块和 lba 是否有某种翻译? fs和fs有区别吗? 我可以在哪里阅读更多相关信息?

谢谢

【问题讨论】:

【参考方案1】:

是的。文件系统通常会看到一个连续的逻辑空间,而不知道下面的主轴,因此它也不知道磁盘 LBA。翻译工作通常在称为卷的层中完成,该层隐藏磁盘细节并为文件系统提供逻辑上连续的空间。例如,在 Linux 中有 LVM (Logical Volume Manager) 扮演这样的角色。

暴露给 fs 的卷可能不是磁盘。它可以构建在其他卷上,因此有时会拿出一个非常大的磁盘。

卷还可以提供 RAID 的功能,将多个磁盘放在一起,可以在一定程度上缓解磁盘故障,但会牺牲性能和空间效率。

一些文件系统可以直接管理磁盘并在原始磁盘上操作,因此没有卷层。据我所知,NETAPP的WAFL就是这样做的。

【讨论】:

以上是关于文件系统块如何转换为 lba?的主要内容,如果未能解决你的问题,请参考以下文章

LBA和CHS转换(转)

Linux基础IO——文件系统(上)

LBA转换成CHS公式

如何将 qcow2 转换为文件系统或存档文件

μC/OS的文件系统

如何使用 expo(文件系统)将视频转换为 base64