一、背景
生產環境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請求能被一次性處理完成。
大概的條帶化的概念就是這樣。
三、參數提取
- P560A:/#lspv
- hdisk0 00c3ee9e3439bc67 rootvg active
- hdisk1 00c3ee9e5033384d rootvg active
- hdisk2 00c3ee9eae48cc48 rootvg active
- hdisk3 00c3ee9eae48df75 rootvg active
-
- P560A:/#lspv -l hdisk0
- hdisk0:
- LV NAME LPs PPs DISTRIBUTION MOUNT POINT
- hd10opt 8 8 00..00..08..00..00 /opt
- hd3 40 40 00..00..40..00..00 /tmp
- hd1 4 4 00..00..04..00..00 /home
- hd2 16 16 00..00..16..00..00 /usr
- hd9var 4 4 00..00..04..00..00 /var
- hd8 1 1 00..00..01..00..00 N/A
- hd4 4 4 00..00..04..00..00 /
- hd5 1 1 01..00..00..00..00 N/A
- hd6 32 32 00..00..32..00..00 N/A
- tsmdb 30 30 20..10..00..00..00 /tsmdb
- oradatalv 278 278 49..11..00..109..109 /oradata
- oraclelv 40 40 40..00..00..00..00 /home/oracle
- weblogiclv 40 40 00..40..00..00..00 /weblogic
- weblogic9lv 40 40 00..40..00..00..00 /weblogic9
- lg_dumplv 8 8 00..08..00..00..00 N/A
-
- P560A:/#lspv -l hdisk1
- hdisk1:
- LV NAME LPs PPs DISTRIBUTION MOUNT POINT
- hd10opt 8 8 00..00..08..00..00 /opt
- hd3 40 40 00..00..40..00..00 /tmp
- hd1 4 4 00..00..04..00..00 /home
- hd2 16 16 00..00..16..00..00 /usr
- hd9var 4 4 00..00..04..00..00 /var
- hd8 1 1 00..00..01..00..00 N/A
- hd4 4 4 00..00..04..00..00 /
- hd5 1 1 01..00..00..00..00 N/A
- hd6 32 32 00..00..32..00..00 N/A
- tsmdb 30 30 20..10..00..00..00 /tsmdb
- oradatalv 324 324 89..17..00..109..109 /oradata
- fwdump 2 2 00..02..00..00..00 /var/adm/ras/platform
- weblogiclv 40 40 00..40..00..00..00 /weblogic
- weblogic9lv 40 40 00..40..00..00..00 /weblogic9
-
- P560A:/#lspv -l hdisk2
- hdisk2:
- LV NAME LPs PPs DISTRIBUTION MOUNT POINT
- oradatalv 598 598 152..223..223..00..00 /oradata
-
- P560A:/#lspv -l hdisk3
- hdisk3:
- LV NAME LPs PPs DISTRIBUTION MOUNT POINT
- archlog_lv 400 400 00..223..177..00..00 /archivelog
-
- P560A:/#lslv -l oradatalv
- oradatalv:/oradata
- PV COPIES IN BAND DISTRIBUTION
- hdisk0 278:000:000 3% 049:011:000:109:109
- hdisk1 324:000:000 5% 089:017:000:109:109
- hdisk2 598:000:000 37% 152:223:223:000:000
-
- P560A:/#lslv -l oraclelv
- oraclelv:/home/oracle
- PV COPIES IN BAND DISTRIBUTION
- hdisk0 040:000:000 0% 040:000:000:000:000
-
- P560A:/#lslv -l archlog_lv
- archlog_lv:/archivelog
- PV COPIES IN BAND DISTRIBUTION
- hdisk3 400:000:000 55% 000:223:177:000:000