利用AIX条带化(STRIPE)优化数据库IO

 一、背景

生产环境IBM P560目前用于Oracle DataGuard 的standby机器。在oracle Apply 归档日志时,查看服务器IO情况,发现Hdisk0、1上的IO有时候能达到到100%。而Hdisk2、3上IO活动很少。
经分析,oracle的数据文件存放目录放在/oradata,该目录建立在hdisk0、1上。故在数据库发生读写数据文件时,只有hdisk0,1有IO。另外2块盘IO活动少。故考虑将数据库文件从rootvg迁移出来,将数据库的归档文件建立在rootvg里,达到平均分布服务器的IO的目的。

二、理论支持
一般以LVM管理的存储,一个vg中可能会有很多pv,同样的,一个lv可能跨越多块pv,为了使硬盘存储速度加快,就会用到条带化的技术,即把连续的数据分成大小相同的数据块,然后依次存储在各个pv上。类似于RAID0,使存储速度加快。但并不会使数据像RAID0一样危险容易丢失,因为在正式使用中,不会像此时做测试一样没有任何保障地将多块硬盘做成一个vg,而是普遍连接的后台存储,在划分LUN之前,已经在物理硬盘上做好RAID5或RAID1,在RAID5或RAID1的基础上再划分出多块LUN,即系统上的pv,即使pv所在硬盘损坏,但有底层的硬RAID冗余,并不会丢失数据。
条带单元大小:即条带化的LV中,每一个条带单元的大小,对应于I/O中数据块的大小。对于Oracle来讲,db_block_size即设定的数据块大小。而db_file_multiblock_read_count就一次读取时最多并行的数据块的个数,db_block_size和db_file_multiblock_read_count相乘即一次总的I/O大小。这个大小不能超过操作系统的最大I/O (max_io_size)值。在ORACLE应用中,lv条带的大小一般设置为两倍或两倍以上的Oracle块大小,因为假如设置成与Oracle数据块相同大小,无法保证Oracle数据块的边界正好与条带单元的边界对应,如果不对应的话,就会出现大量的一个I/O由两个条带单元,来处理的情况。
条带大小的原则:对于高并发并且IO请求小的情况下,一块物理硬盘处理多个I/O请求,低并发但I/O请求较大时,可能需要多块硬盘处理一个I/O请求。原则上的要求是一次I/O请求能被一次性处理完成。
大概的条带化的概念就是这样。

三、参数提取

 
 
  1. P560A:/#lspv 
  2. hdisk0          00c3ee9e3439bc67                    rootvg          active 
  3. hdisk1          00c3ee9e5033384d                    rootvg          active 
  4. hdisk2          00c3ee9eae48cc48                    rootvg          active 
  5. hdisk3          00c3ee9eae48df75                    rootvg          active 
  6.  
  7. P560A:/#lspv -l hdisk0 
  8. hdisk0: 
  9. LV NAME               LPs   PPs   DISTRIBUTION          MOUNT POINT 
  10. hd10opt               8     8     00..00..08..00..00    /opt 
  11. hd3                   40    40    00..00..40..00..00    /tmp 
  12. hd1                   4     4     00..00..04..00..00    /home 
  13. hd2                   16    16    00..00..16..00..00    /usr 
  14. hd9var                4     4     00..00..04..00..00    /var 
  15. hd8                   1     1     00..00..01..00..00    N/A 
  16. hd4                   4     4     00..00..04..00..00    / 
  17. hd5                   1     1     01..00..00..00..00    N/A 
  18. hd6                   32    32    00..00..32..00..00    N/A 
  19. tsmdb                 30    30    20..10..00..00..00    /tsmdb 
  20. oradatalv             278   278   49..11..00..109..109  /oradata 
  21. oraclelv              40    40    40..00..00..00..00    /home/oracle 
  22. weblogiclv            40    40    00..40..00..00..00    /weblogic 
  23. weblogic9lv           40    40    00..40..00..00..00    /weblogic9 
  24. lg_dumplv             8     8     00..08..00..00..00    N/A 
  25.  
  26. P560A:/#lspv -l hdisk1 
  27. hdisk1: 
  28. LV NAME               LPs   PPs   DISTRIBUTION          MOUNT POINT 
  29. hd10opt               8     8     00..00..08..00..00    /opt 
  30. hd3                   40    40    00..00..40..00..00    /tmp 
  31. hd1                   4     4     00..00..04..00..00    /home 
  32. hd2                   16    16    00..00..16..00..00    /usr 
  33. hd9var                4     4     00..00..04..00..00    /var 
  34. hd8                   1     1     00..00..01..00..00    N/A 
  35. hd4                   4     4     00..00..04..00..00    / 
  36. hd5                   1     1     01..00..00..00..00    N/A 
  37. hd6                   32    32    00..00..32..00..00    N/A 
  38. tsmdb                 30    30    20..10..00..00..00    /tsmdb 
  39. oradatalv             324   324   89..17..00..109..109  /oradata 
  40. fwdump                2     2     00..02..00..00..00    /var/adm/ras/platform 
  41. weblogiclv            40    40    00..40..00..00..00    /weblogic 
  42. weblogic9lv           40    40    00..40..00..00..00    /weblogic9 
  43.  
  44. P560A:/#lspv -l hdisk2 
  45. hdisk2: 
  46. LV NAME               LPs   PPs   DISTRIBUTION          MOUNT POINT 
  47. oradatalv             598   598   152..223..223..00..00 /oradata 
  48.  
  49. P560A:/#lspv -l hdisk3 
  50. hdisk3: 
  51. LV NAME               LPs   PPs   DISTRIBUTION          MOUNT POINT 
  52. archlog_lv            400   400   00..223..177..00..00  /archivelog 
  53.  
  54. P560A:/#lslv -l oradatalv 
  55. oradatalv:/oradata 
  56. PV                COPIES        IN BAND       DISTRIBUTION   
  57. hdisk0            278:000:000   3%            049:011:000:109:109  
  58. hdisk1            324:000:000   5%            089:017:000:109:109  
  59. hdisk2            598:000:000   37%           152:223:223:000:000  
  60.  
  61. P560A:/#lslv -l oraclelv 
  62. oraclelv:/home/oracle 
  63. PV                COPIES        IN BAND       DISTRIBUTION   
  64. hdisk0            040:000:000   0%            040:000:000:000:000  
  65.  
  66. P560A:/#lslv -l archlog_lv 
  67. archlog_lv:/archivelog 
  68. PV                COPIES        IN BAND       DISTRIBUTION   
  69. hdisk3            400:000:000   55%           000:223:177:000:000  


四、优化步骤
1、把hdisk2从rootvg中剔除
reducevg –d rootvg hdisk2;
2、将hdisk2、hdisk3做成datavg
smit mkvg 输入VG名字为datavg,选择盘为hdisk2 、hdisk3;
3、smit mklv 新建条带化LV
  LV名字输入:oradata_lv
  LV类型为:JFS2
  LV分布的PV:hdisk2、hdisk3
  strip Size 选择:128K (建议为oracle 的db_block_size *同时读取的块,目前系统最大允许为128K);
  lslv -m oradata_lv 发现LV的物理分区平均分布在hdisk2 和Hdisk3上

4、新建文件系统
  smit jfs2 建立文件系统

五、优化结果
P560A:/backup#lspv
hdisk0          00c3ee9e3439bc67                    rootvg          active
hdisk1          00c3ee9e5033384d                    rootvg          active
hdisk2          00c3ee9eae48cc48                    datavg          active
hdisk3          00c3ee9eb6975c7e                    datavg          active
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值