最後更新: 2016-05-25
WD HDD Q&A
Q. Does the WD Align utility have to be run again if a drive is reformatted?
No, users will only need to run WD Align one time after initially installing Windows XP.
Once Windows XP has been aligned, it will stay aligned even if the drive is reformatted or many files are added or removed.
Q. Do I need a special driver to install a WD Advanced Format Drive on an Intel chipset?
For AMD chipset, no driver update is required.
For Intel chipset, use the latest Intel driver version 9.6 or later.
Align partitions
Align partitions to the internal 4KB sector boundaries of the drive.
Make sure that data writes are aligned to 4KB sector boundaries.
parted optios:
-a alignment-type
none # Aligns to 512 byte sector boundaries.
cylinder # Align partitions to cylinders.
minimal # Use minimum alignment: 4KB on AF drives
optimal # Use optimum alignment: 1MB boundaries
# The default from parted 2.2 is to align to 1MB boundaries
Window
wmic DISKDRIVE get bytespersector, caption
BytesPerSector Caption 512 ST31000528AS ATA Device 512 WDC WD10EZEX-00BN5A0 ATA Device
wmic partition get name,size,type
Name Size Type Disk #1, Partition #0 1016320 Logical Disk Manager Disk #1, Partition #1 528343891968 Logical Disk Manager Disk #1, Partition #2 471858896896 Logical Disk Manager Disk #0, Partition #0 1000203805184 Logical Disk Manager
fsutil fsinfo ntfsinfo drive_letter
Advanced Format Support
- Windows 7 Service Pack 1 (SP1)
- Windows Server R2 Service Pack 1 (SP1)
Software RAID
Error: All disks holding extents for a given volume must have the same sector size, and the sector size must be valid.
原因: The hard disks in the RAID volume are formatted with different sector sizes.
For example, one hard disk is formatted by using Advanced Format, and another disk is formatted by using a legacy format.
BLOCK SIZE
I/O that is not properly aligned relative to the device's "I/O Limits" will result in reduced performance
Not all storage devices export this "I/O Limits" information
Certain 4K sector devices may use a 4K 'physical_block_size' internally but
expose a finer-grained 512 byte 'logical_block_size' to Linux.
This discrepancy introduces potential for misaligned I/O.
Storage vendors can also supply "I/O hints"('optimal_io_size') about a device's preferred
minimum unit for random I/O ('minimum_io_size') and streaming I/O
* BLOCKS *
# LOGICAL BLOCK LENGTH IN BYTES:
cat /sys/block/sdc/queue/logical_block_size
512
# LOGICAL BLOCKS PER PHYSICAL BLOCK EXPONENT:
cat /sys/block/sdc/queue/physical_block_size
4096
"I/O hints" ( TRANSFER LENGTH )
# OPTIMAL TRANSFER LENGTH
# device’s preferred unit for streaming I/O
cat /sys/block/sdc/queue/optimal_io_size
0
# OPTIMAL TRANSFER LENGTH GRANULARITY
# device’s preferred minimum unit for random I/O
cat /sys/block/sdc/queue/minimum_io_size
4096
Generally
logical_block_size =< physical_block_size =< minimum_io_size.
lvm
LVM will shift the start of the data area, that a given DM
device will use, to account for a non-zero 'alignment_offset' associated
LVM will adjust for any 'alignment_offset' by default
(may be disabled through lvm.conf's 'data_alignment_offset_detection'.)
parted
The heuristic parted uses is:
1) Always use the reported 'alignment_offset' as the offset for the
start of the first primary partition.
2a) If 'optimal_io_size' is defined (not 0) align all partitions on an
'optimal_io_size' boundary.
mkfs
mkfs.ext[234] and mkfs.xfs also use the "I/O hints" to layout ondisk data structure and
data areas relative to the underlying storage's 'minimum_io_size' and 'optimal_io_size'
512n(native) vs 512e(emulation)
http://www.wdc.com/en/products/internal/enterprise/
512n is the legacy version for obsolete OSes that can't handle 512e properly
* read-modify-write (RMW)
hdparm -V
hdparm v9.39
hdparm -I /dev/sda | grep Sector
512n:
Logical/Physical Sector size: 512 bytes
512e:
Logical Sector size: 512 bytes Physical Sector size: 4096 bytes
- /sys/block/sdc/queue/logical_block_size
- /sys/block/sdc/queue/minimum_io_size
- /sys/block/sdc/queue/optimal_io_size
parted /dev/sdc
Model: ATA WDC WD10EZEX-08R (scsi) Disk /dev/sdc: 1000GB Sector size (logical/physical): 512B/4096B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 99.6MB 98.6MB primary ext4 boot 2 99.6MB 12.1GB 12.0GB primary ext4
# align-check align-type n
# Determine whether the starting sector of partition n
# meets the disk’s selected alignment criteria.
align-check minimal 1
1 aligned
align-check optimal 1
1 aligned
/dev/sdc8
4K native
no emulation layer in place, and the disk media directly exposes its 4 KB physical sector size to the system firmware and operating system.
On the default block size
btrfs: 4 Kbyte
ext4: 1Kbyte (/etc/mke2fs.conf)
/etc/mke2fs.conf
[defaults] blocksize = 4096
tune2fs -l /dev/sdc1 | grep Block
OR
cd /boot;
stat -f .
在舊 OS 上用 Advanced Format
# 查看係咩 HDD
smartctl -i /dev/sda
Sector Sizes: 512 bytes logical, 4096 bytes physical
# 野 partition
fdisk -lu /dev/sda
-u When listing partition tables, give sizes in sectors instead of cylinders.
Disk /dev/uba: 1000.2 GB, 1000204885504 bytes 255 heads, 63 sectors/track, 121601 cylinders, total 1953525167 sectors Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System /dev/uba1 2048 1953525160 976761556+ 83 Linux
建立 partition 的 "Start" value divisible by 8 is good as well.
# Format
-b block-size
mkfs.ext3 -b 4096 /dev/uba1