Methods for aligning flash modules for optimal performance are the subject of a tech tip in the System and Application Performance, Monitoring, and Tuning wiki that outlines how to take advantage of the solid state flash devices (SSDs) for Solaris as well as Linux.
SSDs have block alignments that are typically aligned on 4KByte boundaries, the tip notes, not the 512Byte boundaries of conventional disks. Users need to have correctly aligned partitions on a SSD to achieve maximum performance.
The two type of labels in Solaris SPARC systems are described. These are the SMI (SunMIcrosystems) and EFI (Extensible Firmware Interface).
The SMI default in the SPARC Solaris format tool uses a notation of virtual sectors, tracks and cylinders to describe a disk's geometry. This type of notation can be used for SSDs as it is with conventional disk drives.
If EFI labels are used, the partition set-up uses sector values. This makes setting and verifying the beginning of a partition easy; the sector size multiplied by the beginning sector needs to be a multiple of 4096 bytes. It should be noted that the EFI default is not 4K aligned.
For Linux system, the common partitioning tools are fdisk (and derivatives) and parted.
fdisk can be used to partition drives but it has limitations, the writer observes. One method for Linux is to create a Sun label and then manipulate the resulting partition boundaries to meet alignment needs.
Parted is the recommended tool for SSDs since it offers defaults to specifying the start and size of a partition in megabytes. This makes parted much more useful for fine control of partition boundaries.
Both Solaris and Linux methods are explored within this wiki tech tip offering up examples for each.
The Solaris example works with an SMI Label showing the output of the Format / verify command to demonstrate the values of virtual sectors and tracks. The alternate example demonstrates how to create an EFI Label.
The Linux citation shows the use of fdisk and the data from /sys/block/sda/sda1 to validate the start address. A non-aligned partition 1, sda1, is created and the vdbench output is provided to show the effects. For parted, its use and the data from /sys/block/sda/sda1 to validate the start address are shown. This example creates an msdos label and shows fine control over the starting address.
More Information
[url "http://tinyurl.com/ydzlh7p"] - the mentioned wiki tech tip
Flash Storage Performance
Does 4k Alignment Really Matter?
Business Value of Deploying Flash Systems
Things Are Getting Easier with ZFS, Live Upgrade and now, Flash Archive
Sun Flash Accelerator F20 PCIe Card
[...read more...]