我有一个 3ware 9550SXU-12 存储控制器和与之连接的 750G 磁盘。磁盘配置为单个单元(不是 JBOD)。
我一直在运行一些性能测试,主要是为了查看分区对齐、加密、raid 级别等对读/写/iops 性能的影响。
令我惊讶的是,在我的案例中,相同存储配置的读/写性能在对齐分区的情况下比在未对齐分区的情况下略低。
这促使我开始检查当通过 3ware 控制器连接时和使用主板上的端口(根本不支持任何 RAID)时磁盘对操作系统的可见性是否存在差异。
我知道 3ware 控制器将磁盘控制块 (DCB) 元数据放在磁盘上,这样就可以更换控制器而不必重新配置它,因为配置数据是从磁盘上的 DCB 块读取的。我的控制器使用“新格式”,这显然意味着控制器将 DCB 写入磁盘的最后 1024 个 LBA。
我很想知道我的对齐努力是否没有因为 3ware 控制器仅向操作系统呈现部分磁盘而受到阻碍。
我的发现:
- 无论是否使用 3ware 控制器连接,磁盘的开头看起来都完全相同。此处对齐不应受到任何影响。使用 dd/md5sum 进行验证。
- 磁盘的最后 1024*512B 确实包含一些看起来像是 3ware 放在那里的东西(根据那里可读的字符串判断)
- 现在有趣的部分是:当在 3ware 控制下时,磁盘报告的介质大小为 749988741120 B,而直接连接时则报告的介质大小为 750156374016 B,这意味着当通过 3ware 控制器连接时,操作系统可以访问的磁盘介质少了大约 160MB。
如果只是 1024x512B(DCB)的差异,这是可以理解的,但 160MB 似乎对于存储这种类型的控制器元数据来说空间有点太大了。
问题:
是否有人知道在对齐连接到存储这些磁盘上的单元配置的控制器的磁盘上的分区时是否还有其他我可能错过的注意事项?
出于好奇 - 有人知道最后 160MB 的磁盘介质是做什么用的吗?
谢谢
答案1
我无法直接评论,因为我不熟悉 3ware。
但总的来说,我遇到过不少“窃取”磁盘空间的存储阵列。原因多种多样,包括:
- 控制器运行精简版操作系统,需要空间。(配置/管理等)
- 控制器运行写入缓存,并且在发生电源故障时需要某个地方紧急刷新缓存。
- 尺寸标准化,允许磁盘大小略有变化。
- 控制器中内置的“分配单元”,例如,仅允许分配固定倍数。(通常针对缓存/分页限制)。
关于对齐 - 我能想到的唯一导致你正确对齐速度较慢的原因是,如果你的控制器还处理对齐。阵列/控制器越来越多地能够识别主机操作系统 - 部分原因是需要正确设置 SCSI 标志,但也因为这个对齐问题。
您可能会发现,如果您的阵列知道您的主机的平台,那么它已经在内部“调整”了对齐。(因此通过自我对齐,您再次使其错位)。