#title Disk partition alignment
[[TableOfContents]]

==== 확인 방법 ====
cmd에서..

 wmic partition get BlockSize, StartingOffset, Name, Index

{{{
BlockSize  Index  Name                    StartingOffset
512        0      디스크 0번, 파티션 0번  32256		--> 요거(Partition StartingOffset) 
512        0      디스크 1번, 파티션 0번  32256
512        0      디스크 2번, 파티션 0번  32256
512        0      디스크 3번, 파티션 0번  32256
512        0      디스크 4번, 파티션 0번  16384
512        0      디스크 5번, 파티션 0번  16384
}}}

H/W or SAN Guy에게 Allocation Unit Size 확인

 Partition Offset / Stripe Unit Size --> 요거시 정수로 조낸 나누어 떨어져야 함.

cmd에서..

 fsutil fsinfo ntfsinfo e:

{{{
NTFS 볼륨 일련 번호:              0x1c98a98898a9614e
버전:                             3.1
섹터 개수:                        0x00000000a27ff4a8
전체 클러스터 개수:               0x000000000144ffe9
사용 가능한 클러스터:             0x00000000001498fd
예약된 개수:                      0x0000000000000000
섹터당 바이트:                    512
클러스터당 바이트:                65536				--> 요거 (OS File Allocation Unit Size)
FileRecord 세그먼트당 바이트:     1024
FileRecord 세그먼트당 클러스터:   0
Mft 올바른 데이터 길이:           0x0000000000190000
Mft 시작 Lcn:                     0x000000000000c000
Mft2 시작 Lcn:                    0x0000000000a27ff4
Mft 영역 시작:                    0x000000000000c000
Mft 영역 끝:                      0x00000000000b0f40
}}}

 Stripe Unit Size / OS File Allocation Unit Size -> 요거시 정수로 조낸 나누어 떨어져야 함.

'''결국은 Allocation Unit Size이나 Stripe Unit Size도 1024의 2배 단위로 할당될 것이므로 Partition StartingOffset / 1024 가 정수로 나누어 떨어지면 대충은 다 맞을 거란 말씀.'''

[[HTML(<font color=red>windows 2003, xp는 위 처럼 확인 해 봐야 하고, 2008에서는 기본이 Partition StartingOffset 1024로 Disk Partition Alignment를 OS 단에서 맞춰 준다.</font>)]]

wmic partition get BlockSize, StartingOffset, Name, Index
{{{
BlockSize  Index  Name                   StartingOffset
512        0      Disk #1, Partition #0  1048576
512        0      Disk #6, Partition #0  1048576
512        0      Disk #7, Partition #0  1048576
512        0      Disk #2, Partition #0  1048576
512        0      Disk #3, Partition #0  1048576
512        0      Disk #4, Partition #0  1048576
512        0      Disk #5, Partition #0  1048576
512        0      Disk #0, Partition #0  16384
}}}

==== Disk Partition Alignment 하는 방법 ====
{{{
Diskpart
list disk
select disk <DiskNumber>
create partition primary align=<Offset_in_KB>
assign letter=<DriveLetter>
format fs=ntfs unit=64K label="<label>" nowait
}}}

{{{
C:\>diskpart
Microsoft DiskPart version 6.0.6001
Copyright (C) 1999-2007 Microsoft Corporation.
On computer: ASPIRINGGEEK
DISKPART> list disk
  Disk ###  Status      Size     Free     Dyn  GPT
  --------  ----------  -------  -------  ---  ---
  Disk 0    Online       186 GB      0 B
  Disk 1    Online       100 GB      0 B
  Disk 2    Online       120 GB      0 B
  Disk 3    Online       150 GB   150 GB
DISKPART> select disk 3
Disk 3 is now the selected disk.
DISKPART> create partition primary align=1024
DiskPart succeeded in creating the specified partition.
DISKPART> assign letter=F
DiskPart successfully assigned the drive letter or mount point.
DISKPART> format fs=ntfs unit=64K label="MyFastDisk" nowait
}}}

==== 참고자료 ====

 * [http://technet.microsoft.com/ko-kr/library/aa995867(EXCHG.65).aspx 저장소 트랙 경계에 Exchange I/O 맞추는 방법]
 * [http://nexondbteam.tistory.com/tag/Sector%20Alignment Sector Alignment에 대한 IO성능]
 * [http://msdn.microsoft.com/en-us/library/dd758814.aspx Disk Partition Alignment Best Practices for SQL Server]
 * [http://blogs.msdn.com/jimmymay/archive/2009/05/08/disk-partition-alignment-sector-alignment-make-the-case-with-this-template.aspx Disk Partition Alignment (Sector Alignment): Make the Case: Save Hundreds of Thousands of Dollars]
 * [http://kendalvandyke.blogspot.com/2009/02/disk-performance-hands-on-series.html Disk Performance Hands On: Series Introduction]
 * [http://msdn.microsoft.com/en-us/library/dd758814.aspx Disk Partition Alignment Best Practices for SQL Server]
 * [http://feedproxy.google.com/~r/PaulSRandal/~3/nPWtF078yx0/post.aspx Using diskpart and wmic to check disk partition alignment]