SSD partition alignment confusion
Posted: Thu Oct 13, 2011 1:57 pm
Due to the recent post by Jeffrey Lee
http://www.terabyteunlimited.com/ucf/vi ... ?f=2&t=173
I have been looking into SSD partition alignment recommendations. I'm confused.
Various recommendations I have seen are
1. 4KiB alignment
2. You should only need to make sure that the start and end sectors of partitions are multiples of the size of your erase block. The Erase Block Size is largely vendor specific. (my SSD is Intel 320 120GB - not found the erase block size)
3. General consensus is to start your first partition at 1,048,576 bytes, as it is evenly divisible by 512, 4096, 131,072, and 524,288 bytes, covering all sector, filesystem block, and erase block size possibilities.
4. (Linux) -remember that fdisk in Linux uses “heads” and “tracks” to define cylinders. If the cylinder boundary is not aligned with the “page” of an SSD, then the SSD can easily undergo extra work during a read/modify/write cycle. By default, Linux fdisk uses a default geometry of 255 heads, 63 sectors/track, and, still currently, 512-byte sectors. This results in 16,065, 512-byte sectors per cylinder (2,008.125, 4KB pages). This is definitely not aligned on 4KB pages. So we need to adjust the geometry to align the cylinder boundaries on 4KB pages so that any partitions are aligned on page boundaries.
It is claimed that Windows 7 automatically starts a partition at the front of a drive at the 2MB point (2048k) - if you set up the partition with BIBM initially this presumably is not applicable (unless Windows leaves the first part vacant).
I believe the recommendations are made to optimise writing pages and erasing blocks (which are multiples of pages). Personally I don't see the logic regarding erasing as the OS doesn't delete files based on blocks or pages. So even if you aligned on a block the OS would still fragment the content of blocks. Regarding writing pages I understand a page is usually 4KiB so ideally one would want the OS to write in aligned 4KiB chunks.
As Windows' NTFS partitions use 4096 byte clusters maybe alignment to 4KiB is desirable.
I also use Linux and checking my Mint 11 root partition the block size is 4096.
So my take at the moment is I'd like to align at 4KiB. However BIBM seems only to be able to align at 2KiB. Looking at TB's Knowledgbase article "Understanding 4K Sector Drives and WD Advanced Formatting" it says:
You can use BootIt Bare Metal to align your new or existing partitions by enabling its global Align at 2048 option. So am I to assume this option is targeted at hard disks not SSDs?
In the IFW manual there's an option to align based on 2048 sectors (not bytes) "Use 2048 Sector Alignment – Use this option to instruct Image for Linux to align restored partitions based on 2048 sectors." However this doesn't seem to be possible with BIBM options when creating a partition in the first place.
In TB support's reply to the above mentioned post it mentions using the 2KiB alignment in BIBM. Is this sufficient?
Any help or information on the above would be very welcome.
http://www.terabyteunlimited.com/ucf/vi ... ?f=2&t=173
I have been looking into SSD partition alignment recommendations. I'm confused.
Various recommendations I have seen are
1. 4KiB alignment
2. You should only need to make sure that the start and end sectors of partitions are multiples of the size of your erase block. The Erase Block Size is largely vendor specific. (my SSD is Intel 320 120GB - not found the erase block size)
3. General consensus is to start your first partition at 1,048,576 bytes, as it is evenly divisible by 512, 4096, 131,072, and 524,288 bytes, covering all sector, filesystem block, and erase block size possibilities.
4. (Linux) -remember that fdisk in Linux uses “heads” and “tracks” to define cylinders. If the cylinder boundary is not aligned with the “page” of an SSD, then the SSD can easily undergo extra work during a read/modify/write cycle. By default, Linux fdisk uses a default geometry of 255 heads, 63 sectors/track, and, still currently, 512-byte sectors. This results in 16,065, 512-byte sectors per cylinder (2,008.125, 4KB pages). This is definitely not aligned on 4KB pages. So we need to adjust the geometry to align the cylinder boundaries on 4KB pages so that any partitions are aligned on page boundaries.
It is claimed that Windows 7 automatically starts a partition at the front of a drive at the 2MB point (2048k) - if you set up the partition with BIBM initially this presumably is not applicable (unless Windows leaves the first part vacant).
I believe the recommendations are made to optimise writing pages and erasing blocks (which are multiples of pages). Personally I don't see the logic regarding erasing as the OS doesn't delete files based on blocks or pages. So even if you aligned on a block the OS would still fragment the content of blocks. Regarding writing pages I understand a page is usually 4KiB so ideally one would want the OS to write in aligned 4KiB chunks.
As Windows' NTFS partitions use 4096 byte clusters maybe alignment to 4KiB is desirable.
I also use Linux and checking my Mint 11 root partition the block size is 4096.
So my take at the moment is I'd like to align at 4KiB. However BIBM seems only to be able to align at 2KiB. Looking at TB's Knowledgbase article "Understanding 4K Sector Drives and WD Advanced Formatting" it says:
You can use BootIt Bare Metal to align your new or existing partitions by enabling its global Align at 2048 option. So am I to assume this option is targeted at hard disks not SSDs?
In the IFW manual there's an option to align based on 2048 sectors (not bytes) "Use 2048 Sector Alignment – Use this option to instruct Image for Linux to align restored partitions based on 2048 sectors." However this doesn't seem to be possible with BIBM options when creating a partition in the first place.
In TB support's reply to the above mentioned post it mentions using the 2KiB alignment in BIBM. Is this sufficient?
Any help or information on the above would be very welcome.