SSD:硬盘分区最佳实践

日期: 2011-04-10 作者:Jeffrey B. Layton翻译:黄永兵 来源:TechTarget中国 英文

    在获得一块新的SSD时,你计划给它分区吗?你知道SSD硬盘分区的最佳做法吗?让我来告诉你吧!

  SSD分区实践示例

  我很庆幸我所生活的这座城市居然有MicroCenter商店,我在那里买了一块64GB SSD硬盘,它采用SandForce 1222控制器,我曾经对SandForce控制器在各种基准测试中的实时数据压缩功能非常感兴趣,因此我最终决定自己也搞一块来试试,但在测试之前,我需要考虑如何配置这块SSD。

  我们面临的挑战是,分区发生在柱面边界(记住Linux中的fdisk使用“磁头”和“磁道”定义柱面),如果柱面边界和SSD的“页面”对不齐,在读/修改/写期间,SSD需要承担更多地工作,可能会导致额外的写周期,进而降低性能,如果你不对SSD分区,那么不需要担心这个问题。

  默认情况下,Linux fsdisk使用默认的225磁头,63扇区/磁道几何形状,一个扇区等于512字节,每柱面就含有16065个5212字节大小的扇区(2008.125个4KB页面),在4KB页面上着肯定是不行的,因此我们需要调整几何形状,在4KB页面上对齐柱面边界,以便任何分区都和柱面边界对齐。

  如果你在网上搜索,你会发现一些针对不同SSD的几何建议,例如,ext4的领导者Theodore Ts’o就专门写了一篇博客探讨这个主题,他的建议如下:

  224 heads (32*7)
  56 sectors per track (8*7)

  这样每个柱面包含12544个扇区(256*49),每个磁道使用56个扇区,大小为56*512字节,即每磁道28762字节,这和每柱面4KB的7个块是一样的,因此每柱面4KB页面的数量是一个整数,这样任何分区都是协调一致的,下面是如何实现这种效果的一个例子:

  [root@test64 ~]# fdisk -H 224 -S 56 /dev/sdd
  The number of cylinders for this disk is set to 9345.
  There is nothing wrong with that, but this is larger than 1024,
  and could in certain setups cause problems with:
  1) software that runs at boot time (e.g., old versions of LILO)
  2) booting and partitioning software from other OSs
  (e.g., DOS FDISK, OS/2 FDISK)
  Command (m for help): n
  Command action
  e extended
  p primary partition (1-4)
  p
  Partition number (1-4): 1
  First cylinder (1-9345, default 1): 2
  Last cylinder or +size or +sizeM or +sizeK (2-9345, default 9345):
  Using default value 9345
  Command (m for help): w
  The partition table has been altered!
  Calling ioctl() to re-read partition table.
  Syncing disks.

  注意,我是从第二个柱面开始的,以保证分区/dev/sdd1从柱面边界开始。

  可以在fdisk后面跟上“-l”参数检查分区。

  [root@test64 ~]# fdisk -l /dev/sdd
  Disk /dev/sdd: 60.0 GB, 60022480896 bytes
  224 heads, 56 sectors/track, 9345 cylinders
  Units = cylinders of 12544 * 512 = 6422528 bytes
  Device Boot Start End Blocks Id System
  /dev/sdd1 2 9345 58605568 83 Linux

  我们也可以使用“-lu”参数查看扇区的数量。

  [root@test64 ~]# fdisk -lu /dev/sdd
  Disk /dev/sdd: 60.0 GB, 60022480896 bytes
  224 heads, 56 sectors/track, 9345 cylinders, total 117231408 sectors
  Units = sectors of 1 * 512 = 512 bytes
  Device Boot Start End Blocks Id System
  /dev/sdd1 12544 117223679 58605568 83 Linux

  分区从12544扇区(256*9)开始,在设备的末尾结束。

  在OCZ技术社区有人提供了另一种建议,使用的几何参数略有不同。

  32 heads
  32 sectors per track

  这样每柱面包含1024个扇区(32*32),512字节大小的扇区形成512KB的柱面(每柱面128个4KB页面),还是以/dev/sdd为例,这种几何划分法的命令如下:

  [root@test64 ~]# fdisk -H 32 -S 32 /dev/sdd
  The number of cylinders for this disk is set to 114483.
  There is nothing wrong with that, but this is larger than 1024,
  and could in certain setups cause problems with:
  1) software that runs at boot time (e.g., old versions of LILO)
  2) booting and partitioning software from other OSs
  (e.g., DOS FDISK, OS/2 FDISK)
  Command (m for help): n
  Command action
  e extended
  p primary partition (1-4)
  p
  Partition number (1-4): 1
  First cylinder (1-114483, default 1): 2
  Last cylinder or +size or +sizeM or +sizeK (2-114483, default 114483):
  Using default value 114483
  Command (m for help): w
  The partition table has been altered!
  Calling ioctl() to re-read partition table.
  Syncing disks.

  Fdisk加上“-l”参数可以检查分区。

  [root@test64 ~]# fdisk -l /dev/sdd
  Disk /dev/sdd: 60.0 GB, 60022480896 bytes
  32 heads, 32 sectors/track, 114483 cylinders
  Units = cylinders of 1024 * 512 = 524288 bytes
  Device Boot Start End Blocks Id System
  /dev/sdd1 2 114483 58614784 83 Linux

  注意,这种几何划分方法的“单位”是512KB(524288字节),它比第一种方法的柱面数更多,我们可以使用fdisk –lu命令查看扇区布局。

  [root@test64 ~]# fdisk -lu /dev/sdd
  Disk /dev/sdd: 60.0 GB, 60022480896 bytes
  32 heads, 32 sectors/track, 114483 cylinders, total 117231408 sectors
  Units = sectors of 1 * 512 = 512 bytes
  Device Boot Start End Blocks Id System
  /dev/sdd1 1024 117230591 58614784 83 Linux

  注意,我们从扇区1024开始,使用512字节的扇区,意味着分区匹配512KB。

  那种方法更好呢?我认为这取决于许多因素,特别是SSD的内部结构和固件工作原理,如果你不打算给你的SSD分区,如使用整个设备作为一个分区,那么你不需要担心这些问题,但如果你打算分区,这两个方法你就得选择一个,最重要的一条原则是,确保分区和边界保持对齐,这样有助于发挥SSD的性能,并延长它的使用寿命。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐

  • 销毁SSD和保护数据的关键步骤

    SSD技术正在迅速发展。随着价格下降,速度和容量继续增长,SSD在存储市场获得更强的立足点。尽管它们有着较长的 […]

  • 存储经理人2017年8月刊:分解技术大揭秘

    《存储经理人》2017年8月刊重点关注分解技术,分解的理念在于用大量计算机来创建出独立的资源池,然后根据需要分配适当的资源组合,从而为各个应用程序提供相应服务。另外,混合云存储将工作负载可选择的部署范围扩展到多个云,并实现令人信服的使用场景,例如异地备份、灾难恢复和云负载爆发。本期电子杂志还将讨论数据中心的硬盘和SSD共存问题。

  • 为全闪存数据中心做好准备

    公司应该抛弃硬盘,将数据中心完全装上闪存,供应商已经解决了旧的SSD问题,比如磨损时间和成本。

  • 超融合技术之近况

    超融合存储降低了总体拥有成本,简化了安装,并为软件定义的数据中心做好准备。那么,你是否应当全面拥抱超融合系统呢?简而言之,答案是肯定的。