V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hazard
V2EX  ›  问与答

求通俗解释 4K 对齐

  •  
  •   hazard · 2014-07-12 12:18:18 +08:00 · 4226 次点击
    这是一个创建于 3589 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看维基百科: http://zh.wikipedia.org/wiki/4K%E5%AF%B9%E9%BD%90 时,对“原理”中第三段第一句 :"即为每7个簇后的第8个簇都会是跨越2个物理扇区并造成3584字节的空间浪费,该结果累计起来将会是个庞大数目,并长时间如此使用将会产生硬盘扇区新旧程度不同导致寿命下降。"
    这句话不太理解。第八个未沾满的簇空间不用,后面的簇开始连续使用扇区,不就只浪费了0.125个簇吗?为何会按这说的浪费这么多?求解释。。。多谢。。。
    14 条回复    2014-07-12 19:18:46 +08:00
    nendors
        1
    nendors  
       2014-07-12 12:52:52 +08:00   ❤️ 1
    “每7个簇后的第8个簇都会是跨越2个物理扇区并造成3584字节的空间浪费”
    注意“每”
    hazard
        2
    hazard  
    OP
       2014-07-12 13:20:26 +08:00
    @nendors 还是不太理解 能再说地详细一点么。。。?
    yfdyh000
        3
    yfdyh000  
       2014-07-12 13:41:19 +08:00
    一知半解的解释一下:簇因某些设计原因故是无视物理扇区按绝对按顺序保存的,因此默认情况下接下来的所有簇仍将跨越两个扇区,而4K对齐就是空出63号扇区之后的几个扇区使后续物理扇区都保持只包含一个4K簇的布局。
    billlee
        4
    billlee  
       2014-07-12 14:10:08 +08:00   ❤️ 1
    维基百科上这段的用词有点问题吧,Flash ROM 上的单元叫做 page, 一般不叫物理扇区。
    一般的解释是:
    扇区:512 bytes, 磁盘上的最小单位
    簇:文件系统中的最小单位,很多情况下是 4096 bytes
    现在的 SSD 使用的是 Flash ROM, Flash page 是按 page 擦除的,一个 page 一般是 4096 Bytes
    按照上面的大小,1 簇 == 1 page == 8 扇区,

    在 Windows/NTFS 上,每个分区的前面 63 扇区是引导区,从第 63 扇区开始是文件系统。在磁盘上,这是没有问题的,每个簇就由 8 个扇区构成。但在 SSD 上,就变成了每个簇对应了一个 page 的最后 512 bytes 和另一个 page 的 3584 bytes. 这样每次文件系统要求读写一个簇(4096 bytes)时,都要变成读写两个 page(8192 bytes) 的操作,肯定影响速度,并且不必要的擦除操作会缩短寿命。
    nendors
        5
    nendors  
       2014-07-12 14:19:21 +08:00
    @hazard mbr占了63个扇区
    按照默认簇大小得出63扇区为多少个簇:
    32256B÷4096B=7.875
    那么接下来的每一个扇区则包含属于前一个簇的3584B空间 以及NTFS默认一个簇4096B-3584B空间 这样4k不对齐 每次NTFS读写会跨两个扇区 读写速度下降
    (以上为个人理解,如果有错误 请指出)
    billlee
        6
    billlee  
       2014-07-12 14:23:03 +08:00   ❤️ 1
    @nendors 那不叫 MBR, 占 63 扇区是 NTFS 的“引导区”, MBR 在每个磁盘的最开头,占 1 扇区。
    nendors
        7
    nendors  
       2014-07-12 14:25:22 +08:00
    至于所说的空间浪费 经过google 找到一个页面http://www.tomshardware.com/reviews/advanced-format-4k-sector-size-hard-drive,2759.html
    指的是4个512B分区中ECC所占的空间比1个4K分区中的大吧
    nendors
        8
    nendors  
       2014-07-12 14:27:42 +08:00
    @billlee 谢谢 我被这条wiki坑了 原文中的主引导记录跳转到了MBR
    NTFS文件格式因为「主引导记录」占用了一个磁道共63个扇区[1],真正储存用户文件的扇区一般都在63号扇区之后,那么依照计算得出前63个扇区大小为:
    yfdyh000
        9
    yfdyh000  
       2014-07-12 14:38:41 +08:00
    @billlee 机械硬盘也有4K对齐问题。
    srsman
        10
    srsman  
       2014-07-12 14:51:05 +08:00
    真不知道纠结这些玩意干嘛?
    billlee
        11
    billlee  
       2014-07-12 14:58:20 +08:00
    @nendors 算 ECC 的时候是按照物理块算的,和是否对齐没关系吧

    @yfdyh000 恩,你说得对,现在的磁盘物理块一般也是 4KB
    hazard
        12
    hazard  
    OP
       2014-07-12 14:59:42 +08:00
    @billlee 依你所言似乎没有磁盘空间的浪费?
    msg7086
        13
    msg7086  
       2014-07-12 16:09:18 +08:00
    @hazard 没有造成空间浪费,纯粹的毁硬盘而已。
    chenshaoju
        14
    chenshaoju  
       2014-07-12 19:18:46 +08:00
    楼主看这个网址里的Flash动画就明白了:

    http://www.paragon-software.com/home/partition-alignment/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5747 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 06:01 · PVG 14:01 · LAX 23:01 · JFK 02:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.