什么是磁盘的IO
当一块磁盘被格式化后,会被分成上百个磁道(tracks),每个磁道又将被分割成许多扇区(sectors),一般都是512 bytes。上下一串盘片中,相同半径的磁道所组成的一个圆柱型的环壁,就称为柱面。

磁带的读写过程主要包括三个部分:
寻道时间:磁盘头从原始位置径直移动到目标数据所在的磁道的时间(平均是8毫秒)
旋转延迟时间:通过盘片的旋转,使得要读取的扇区转到读写头的下方的时间。这个时间取决磁盘的转数,比如一块7200(转/分钟)的硬盘,120/秒,一转大概需要8毫秒,平均旋转延迟是4毫秒。
传输时间:磁盘传输数据的时间,这个取决于磁盘接口速率,SATAFCSAS盘的接口带宽都各不相同。比如2Gb/s的带宽,8K的数据块大概只需要0.004毫秒。

磁盘的IO=寻道时间+旋转延迟时间+传输时间

 

一块已经固定磁盘无法去变更旋转速率和传输时间,只能通过优化数据的存放位置来减少寻道时间和平均旋转延迟,从而加快磁盘的IO 速率。

 

AIX下的磁盘结构:

AIX操作系统将PV划分成5个区域,这些区域与他们在硬盘磁盘自身上的位置对应:外侧边缘(out edge)、外侧中间(outer middle)、中心(center)、内侧中间(inner middle)和内侧边缘(inner edge)

PP是由一组大量的连续扇区组成,从1开始编号,out edgeinner edge根据磁盘的大小被分成了一定数量的PP数。5个区域分配的PP数量大致相等。如下:


# lspv -p hdisk1
hdisk1:
PP RANGE STATE REGION LV NAME TYPE MOUNT POINT
1-1 used outer edge hd5 boot N/A
2-76 used outer edge fslv01 jfs2 /oracle
77-102 free outer edge
103-110 used outer edge lg_dumplv sysdump N/A
111-210 used outer middle hd6 paging N/A
211-211 used outer middle fwdump jfs2 /var/adm/ras/platform
212-213 used outer middle livedump jfs2 /var/adm/ras/livedump
214-218 used outer middle fslv01 jfs2 /oracle
219-219 used outer middle hd11admin jfs2 /admin
220-220 used center hd8 jfs2log N/A
221-239 used center hd2 jfs2 /usr
240-243 used center hd9var jfs2 /var
244-323 used center hd3 jfs2 /tmp
324-324 used center hd1 jfs2 /home
325-328 used center hd10opt jfs2 /opt
329-330 used inner middle hd4 jfs2 /
331-437 free inner middle
438-464 free inner edge
465-504 used inner edge testlv jfs2 /test
505-546 free inner edge

总共有546PPS
outer edgePPS=110
outer middlePPS=109
centerPPS=109
inner middlePPS=109
inner edgePPS=109
其中/oracle 文件系统对应fslv01的被分配到了2个区域,前5PPouter middle区域,其他PPout edge中。

[html] viewplaincopyprint?

  1. # lslv -p hdisk1 fslv01

  2. hdisk1:fslv01:/oracle

  3. USED 0006 0007 0008 0009 0010 0011 0012 0013 0014 1-10

  4. 0015 0016 0017 0018 0019 0020 0021 0022 0023 0024 11-20

  5. 0025 0026 0027 0028 0029 0030 0031 0032 0033 0034 21-30

  6. 0035 0036 0037 0038 0039 0040 0041 0042 0043 0044 31-40

  7. 0045 0046 0047 0048 0049 0050 0051 0052 0053 0054 41-50

  8. 0055 0056 0057 0058 0059 0060 0061 0062 0063 0064 51-60

  9. 0065 0066 0067 0068 0069 0070 0071 0072 0073 0074 61-70

  10. 0075 0076 0077 0078 0079 0080 FREE FREE FREE FREE 71-80

  11. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 81-90

  12. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 91-100

  13. FREE FREE USED USED USED USED USED USED USED USED 101-110

  14.  

  15. USED USED USED USED USED USED USED USED USED USED 111-120

  16. USED USED USED USED USED USED USED USED USED USED 121-130

  17. USED USED USED USED USED USED USED USED USED USED 131-140

  18. USED USED USED USED USED USED USED USED USED USED 141-150

  19. USED USED USED USED USED USED USED USED USED USED 151-160

  20. USED USED USED USED USED USED USED USED USED USED 161-170

  21. USED USED USED USED USED USED USED USED USED USED 171-180

  22. USED USED USED USED USED USED USED USED USED USED 181-190

  23. USED USED USED USED USED USED USED USED USED USED 191-200

  24. USED USED USED USED USED USED USED USED USED USED 201-210

  25. USED USED USED 0001 0002 0003 0004 0005 USED 211-219

  26.  

  27. USED USED USED USED USED USED USED USED USED USED 220-229

  28. USED USED USED USED USED USED USED USED USED USED 230-239

  29. USED USED USED USED USED USED USED USED USED USED 240-249

  30. USED USED USED USED USED USED USED USED USED USED 250-259

  31. USED USED USED USED USED USED USED USED USED USED 260-269

  32. USED USED USED USED USED USED USED USED USED USED 270-279

  33. USED USED USED USED USED USED USED USED USED USED 280-289

  34. USED USED USED USED USED USED USED USED USED USED 290-299

  35. USED USED USED USED USED USED USED USED USED USED 300-309

  36. USED USED USED USED USED USED USED USED USED USED 310-319

  37. USED USED USED USED USED USED USED USED USED 320-328

  38.  

  39. USED USED FREE FREE FREE FREE FREE FREE FREE FREE 329-338

  40. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 339-348

  41. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 349-358

  42. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 359-368

  43. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 369-378

  44. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 379-388

  45. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 389-398

  46. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 399-408

  47. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 409-418

  48. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 419-428

  49. FREE FREE FREE FREE FREE FREE FREE FREE FREE 429-437

  50.  

  51. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 438-447

  52. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 448-457

  53. FREE FREE FREE FREE FREE FREE FREE USED USED USED 458-467

  54. USED USED USED USED USED USED USED USED USED USED 468-477

  55. USED USED USED USED USED USED USED USED USED USED 478-487

  56. USED USED USED USED USED USED USED USED USED USED 488-497

  57. USED USED USED USED USED USED USED FREE FREE FREE 498-507

  58. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 508-517

  59. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 518-527

  60. FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE 528-537

  61. FREE FREE FREE FREE FREE FREE FREE FREE FREE 538-546

# lslv -phdisk1 fslv01

hdisk1:fslv01:/oracle

USED      0006     0007      0008      0009     0010      0011      0012     0013      0014            1-10

0015      0016     0017      0018      0019     0020      0021      0022     0023      0024            11-20

0025      0026     0027      0028      0029     0030      0031      0032     0033      0034            21-30

0035      0036     0037      0038      0039     0040      0041      0042     0043      0044            31-40

0045      0046     0047      0048      0049     0050      0051      0052     0053      0054            41-50

0055      0056     0057      0058      0059     0060      0061      0062     0063      0064            51-60

0065      0066     0067      0068      0069     0070      0071      0072     0073      0074            61-70

0075      0076     0077   0078      0079     0080      FREE      FREE     FREE      FREE               71-80

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE      FREE            81-90

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE      FREE            91-100

FREE      FREE     USED      USED      USED     USED      USED      USED     USED      USED          101-110

 

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          111-120

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          121-130

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          131-140

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          141-150

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          151-160

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED         161-170

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          171-180

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          181-190

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          191-200

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          201-210

USED      USED     USED      0001      0002     0003      0004      0005     USED                    211-219

 

USED      USED     USED      USED     USED      USED      USED     USED      USED      USED          220-229

USED      USED     USED   USED      USED     USED      USED      USED     USED      USED          230-239

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          240-249

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          250-259

USED      USED     USED      USED      USED    USED      USED      USED     USED      USED          260-269

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          270-279

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          280-289

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          290-299

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          300-309

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          310-319

USED      USED     USED      USED      USED     USED      USED      USED     USED                     320-328

 

USED      USED     FREE      FREE      FREE     FREE      FREE      FREE     FREE      FREE          329-338

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE      FREE          339-348

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE      FREE          349-358

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE      FREE          359-368

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE      FREE          369-378

FREE      FREE     FREE      FREE     FREE      FREE      FREE  FREE      FREE      FREE             379-388

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE      FREE          389-398

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE      FREE          399-408

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE     FREE          409-418

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE      FREE          419-428

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE                    429-437

 

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE      FREE          438-447

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE      FREE          448-457

FREE      FREE     FREE      FREE      FREE     FREE      FREE      USED     USED      USED          458-467

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          468-477

USED      USED    USED      USED      USED     USED      USED      USED     USED      USED           478-487

USED      USED     USED      USED      USED     USED      USED      USED     USED      USED          488-497

USED      USED     USED      USED      USED     USED      USED      FREE     FREE      FREE          498-507

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE      FREE          508-517

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE      FREE          518-527

FREE      FREE     FREE      FREE      FREE     FREE      FREE      FREE     FREE      FREE          528-537

FREE      FREE     FREE      FREE     FREE      FREE      FREE     FREE      FREE                    538-546




由于中心是磁盘头经常通过的区域,所以越靠近中心,寻道时间就越短,从而加快整体的IO。而在out edge或者inner edge 的数据需要花费的寻道时间较长,从而导致应用程序的响应缓慢。

虽然outer edge的寻道时间长,但是由于在圆的外道,圆周的速度最快,所以outer edge的顺序读写速度更快些。

 

下面测试下:

先将/dev/ fslv01的前5pp移到out edge中:

 

#migratelp fslv01/1 hdisk1/77
# migratelp fslv01/2 hdisk1/78
# migratelp fslv01/3 hdisk1/79
#migratelp fslv01/4 hdisk1/80
# migratelp fslv01/5 hdisk1/81

# lspv -p hdisk1
hdisk1:
PP RANGE STATE REGION LV NAME TYPE MOUNT POINT
1-1 used outer edge hd5 boot N/A
2-81 used outer edge fslv01 jfs2 /oracle
82-102 free outer edge
103-110 used outer edge lg_dumplv sysdump N/A
111-210 used outer middle hd6 paging N/A
211-211 used outer middle fwdump jfs2 /var/adm/ras/platform
212-213 used outer middle livedump jfs2 /var/adm/ras/livedump
214-218 free outer middle
219-219 used outer middle hd11admin jfs2 /admin
220-220 used center hd8 jfs2log N/A
221-239 used center hd2 jfs2 /usr
240-243 used center hd9var jfs2 /var
244-323 used center hd3 jfs2 /tmp
324-324 used center hd1 jfs2 /home
325-328 used center hd10opt jfs2 /opt
329-330 used inner middle hd4 jfs2 /
331-437 free inner middle
438-464 free inner edge
465-504 used inner edge testlv jfs2 /test
505-546 free inner edge

/oracle 文件系统已经全部位于out edge中了,选择/oracle/tmp /test 进行测试:

 

先对outer edge进行测试:
#time dd if=/dev/zero of=/oracle/test bs=1024k count=4096
real 0m46.03s
user 0m0.03s
sys 0m11.36s
消耗时间为:46.03
Topas监控到的磁盘IO 88.6M


接着对center进行测试:
#time dd if=/dev/zero of=/tmp/test bs=1024k count=4096
real 0m53.29s
user 0m0.02s
sys 0m12.16s
消耗时间为:53.29s
Topas监控到的磁盘IO 77M

最后看下inner edge
#time dd if=/dev/zero of=/test/test bs=1024k count=4096
real 1m5.75s
user 0m0.02s
sys 0m12.43s

消耗时间为:15.75

Topas监控到的磁盘IO 只有62M

 

由此看出,对于顺序读写,Outer edge的确有很大的优势。再来做一个测试,将oraclelv拆分到多个区域,进行测试,类似如下:

[html] viewplaincopyprint?

  1. # for i in 2 3 4 5 6 7 8 9

  2. > do migratelp fslv01/$i hdisk1/33$i

  3. > done

  4. migratelp: Mirror copy 1 of logical partition 2 of logical     volume

  5. fslv01 migrated to physical partition 332 of hdisk1.

  6. migratelp: Mirror copy 1 of logical partition 3 of logical     volume

  7. fslv01 migrated to physical partition 333 of hdisk1.

  8. migratelp: Mirror copy 1 of logical partition 4 of logical     volume

  9. fslv01 migrated to physical partition 334 of hdisk1.

  10. migratelp: Mirror copy 1 of logical partition 5 of logical     volume

  11. fslv01 migrated to physical partition 335 of hdisk1.

  12. migratelp: Mirror copy 1 of logical partition 6 of logical     volume

  13. fslv01 migrated to physical partition 336 of hdisk1.

  14. migratelp: Mirror copy 1 of logical partition 7 of logical     volume

  15. fslv01 migrated to physical partition 337 of hdisk1.

  16. migratelp: Mirror copy 1 of logical partition 8 of logical     volume

  17. fslv01 migrated to physical partition 338 of hdisk1.

  18. migratelp: Mirror copy 1 of logical partition 9 of logical     volume

  19. fslv01 migrated to physical partition 339 of hdisk1.

# for iin    2 3 4 5 6 7 8 9 

> domigratelp fslv01/$i hdisk1/33$i

> done

migratelp:Mirror copy 1 of logical partition 2 of logical volume

                fslv01 migrated to physicalpartition 332 of hdisk1.

migratelp:Mirror copy 1 of logical partition 3 of logical volume

                fslv01 migrated to physicalpartition 333 of hdisk1.

migratelp:Mirror copy 1 of logical partition 4 of logical volume

                fslv01 migrated to physicalpartition 334 of hdisk1.

migratelp:Mirror copy 1 of logical partition 5 of logical volume

                fslv01 migrated to physicalpartition 335 of hdisk1.

migratelp:Mirror copy 1 of logical partition 6 of logical volume

                fslv01 migrated to physicalpartition 336 of hdisk1.

migratelp:Mirror copy 1 of logical partition 7 of logical volume

                fslv01 migrated to physicalpartition 337 of hdisk1.

migratelp:Mirror copy 1 of logical partition 8 of logical volume

                fslv01 migrated to physicalpartition 338 of hdisk1.

migratelp:Mirror copy 1 of logical partition 9 of logical volume

                fslv01 migrated to physicalpartition 339 of hdisk1.

 

查看下/oracle 文件系统的pp分布:

 

#lspv -p hdisk1
hdisk1:
PP RANGE STATE REGION LV NAME TYPE MOUNT POINT
1-1 used outer edge hd5 boot N/A
2-36 free outer edge
37-59 used outer edge fslv01 jfs2 /oracle
60-66 free outer edge
67-84 used outer edge fslv01 jfs2 /oracle
85-86 free outer edge
87-102 used outer edge fslv01 jfs2 /oracle
103-110 used outer edge lg_dumplv sysdump N/A
111-210 used outer middle hd6 paging N/A
211-211 used outer middle fwdump jfs2 /var/adm/ras/platform
212-213 used outer middle livedump jfs2 /var/adm/ras/livedump
214-218 used outer middle fslv01 jfs2 /oracle
219-219 used outer middle hd11admin jfs2 /admin
220-220 used center hd8 jfs2log N/A
221-239 used center hd2 jfs2 /usr
240-243 used center hd9var jfs2 /var
244-323 used center hd3 jfs2 /tmp
324-324 used center hd1 jfs2 /home
325-328 used center hd10opt jfs2 /opt
329-330 used inner middle hd4 jfs2 /
331-339 used inner middle fslv01 jfs2 /oracle
340-437 free inner middle
438-464 free inner edge
465-504 used inner edge testlv jfs2 /test
505-510 free inner edge
511-519 used inner edge fslv01 jfs2 /oracle
520-546 free inner edge

/oracle 目录被分配到了4个区域,测下顺序IO
#time dd if=/dev/zero of=/oracle/test bs=1024k count=4096
real 0m53.32s
user 0m0.02s
sys 0m12.60s
IO 速度有所下降。如果是随机IO,磁盘头进行的寻道时间会大大的增加,IO 的速率就会受到很大的影响。

 

优化规则:

通过以上的磁盘寻道原理和AIXLVM磁盘管理方式,优化本地磁盘应该遵循以下规则:

1. LV 尽可能保持连续。当文件系统数据分散在一个磁盘上时,硬盘头需要花费更长的时间在寻道时间和旋转延迟上。如果 LV 存在于一个连续的区域,会最大程度地缩短搜索时间,更快地找到文件。这就要求最好是一次性建好足够大的LV,而不是经常去扩空间。

2. 将具有高 I/O、顺序读取或写入操作的LV 放在外侧边缘。由于磁盘外侧边缘的速度因素,如果 LV 需要更快读取或写入较长序列(比如大型静态文件或数据表内容)中的数据,外侧边缘的更高旋转速度会有所帮助。
3.将具有高活跃度的 LV 放在靠近中心位置。如果您有一个文件系统具有大量读取和写入操作,并且需要快速响应,尽量分布在中心附近。如果空间足够将swap空间也放在该区域。
4.将使用率较低的 LV 放在内部边缘附近。如果您的文件系统很少使用或访问,那么可以将它们放在具有最低 I/O 速度的磁盘区域内(内部边缘上接近主轴的区域)。例如,很少使用的逻辑卷很适合放在这里。
5. 当存在多个swap 分区时,一块磁盘最好只分配一个swap分区,而且大小要相等,从而减少跨区域的lv操作,增大IO 负担。
6.如果可能将两个磁盘分别创建一个独立的分页空间 LV,那么每个磁盘均可解决内存交换,效率将会翻倍。
7.尽可能分散 I/O 负载,以提高性能和冗余。如果您有一个较大的系统具有多个硬盘,可以通过将数据分散在一组磁盘组合中开利用它们。如果您选择镜像您的 PV,可以在多个硬盘上这么做,以便如果一个磁盘抽屉(drawer)出现故障,冗余不会限制到一个硬盘。参考参数range of physical volumesminimummaximum

磁盘优化的常用工具:

 

查看工具:

1. 使用lsvg 查看VG的信息

查看所有的VG

#lsvg

查看激活的VG

#lsvg –o

查看VG的总体信息:

#lsvg rootvg

查看VGlv的信息

# lsvg -l rootvg

查看VGPV中的分布

#lsvg –p rootvg

2.lspv用来查看某块磁盘的信息,如PVIDPP的大小、包含的LV数目、5个区域中PP的使用情况等等。如:

查看PV总体信息:

# lspv -L hdisk1

查看PVLVLPsPPs、以及5个区域的总体分布大小

# lspv -l hdisk1

详细查看PV中每个PP的使用情况:

#lspv –p hdisk1

3. lslv用来查看某个LV的特征、状态以及其PPsPV中的详细分布

查看LV的总体信息:

#lslv –L fslv01

查看LVPV中的分布信息:

#lslv –p hdisk1 fslv00

查看LV的镜像在各个磁盘上的分布

#lslv –l fslv00

查看LVLP对应的PP的分布信息

#lslv –m fslv00

迁移工具:

1. chlvsmit chlv用来更改LV的属性,及PPPV上的分布,使得LVPP尽可能变的连续。

#chlv -a e -e x -r y -s n -u 5 fslv00

2. migratepv用来迁移PV上的LV到其他PVs 比如将hdisk1上的LV迁移到hdisk6hdisk7

#migratepv hdisk1 hdisk6 hdisk7

lv01 hdisk1迁移到hdisk6

#migratepv –l lv01 hdisk1 hdisk6

 

3. migratelp用来迁移LV上的某个lp到指定的PVpp

比如将lv01 上的第一个LP迁移到 hdisk1上的第100PP

#migratelp lv01/1 hdisk1/100

lv01 上的第3LP的第二个镜像拷贝迁移到hdisk1

#migratelp lv01/3/2 hdisk1

 

4. mirrorvgunmirror

vg生成3份镜像

#mirrorvg -c 3 datavg

生成默认镜像(2份)

#mirrorvg datavg

更换镜像的坏盘

#unmirrorvg datavg hdisk7

#reducevg datavg hdisk7

#rmdev -dl hdisk7

#extendvg datavg hdisk7

#mirrorvg datavg hdisk7

在指定的PV上生成镜像

#mirrorvg -m datavg hdisk2

将镜像工作放入后台运行

#mirrorvg –S workvg

5. Mklvcopy 用来单独将某个LV进行复制

比如将lv01 hdisk1middle区域创建一个镜像

#mklvcopy –a m –m lv01 hdisk1

 

6. reorgvg [-i],-i 参数用于3块以上PV重组,在重组时,临时文件存放在/tmp目录下确保/tmp目录的空间大小。

重组整个vg

#reoravg rootvg

重组指定LV

#reoravg rootvg lv01 lv02 v03

重组指定PV上的LV

#echo "hdisk4 hdisk6" | reorgvg-i vg02 lv203 lv205


转自:http://blog.csdn.net/lixz_2008/article/details/7855049