DBA不得不懂的儲存知識

hai503發表於2017-03-07

概述

計算機發展到今天,無論是CPU處理速度還是記憶體都取得了很大的發展,但是儲存的發展速度遠遠低於CPU和記憶體等,儲存的效率比記憶體慢千萬倍,因此IO也成為影響效能的最關鍵因素。

對於DBA來說,懂點系統和儲存知識是非常必要的。拿DB2來說,資料庫的資料大都存放在外掛儲存上,儲存的設計好壞直接影響著資料庫的IO讀寫效能。調優資料庫基本上就是在CPU,記憶體和儲存IO之間做平衡,但很多DBA對儲存缺乏基本的理解,在調優時根本無從下手。

本文從DB2儲存模型入手,介紹了AIX系統LVM儲存模型和陣列儲存模型的基本概念和關係,希望對大家有所幫助。有不當之處,也請大家在評論區留言,感謝大家的支援!

DB2的儲存模型

db2的儲存模型包括幾個重要的概念:表空間(tablespace)、容器(container)、資料塊(extent)和資料頁(page)。表(table)建在表空間上,表空間是個邏輯概念,實際資料是存放在container中,container才是資料的物理存放地。根據表空間的管理方式不同,container可以是目錄(SMS,由作業系統管理),也可以是檔案或裸裝置(DMS,DB2自己管理)。目前在Unix環境中,考慮到效能原因,大部分的container採用裸裝置。

AIX系統中的儲存模型

aix中提供LVM(logical volume manager)邏輯卷管理器進行儲存管理。LVM軟體層介於應用和儲存硬體之間,提供對磁碟空間的靈活而動態的管理。

DBA不得不懂的儲存知識

在LVM裡,有幾個重要概念:vg,pv,lv,pp,lp.

PV,physical volume-物理卷,對應一塊物理磁碟或者一個hdisk(陣列)

VG,volume group-卷組,由PV組成

PP,physical partition-物理分割槽,VG中磁碟劃分的最小單元

LV,logical volume-邏輯卷,可跨多個PV,檔案系統建在LV上

LP,Logical partition-邏輯分割槽,包含一個或多個PP。

前面我們提到的表空間raw container其實就是建在某個VG的LV上。可以透過list tablespace containers for xx得到container的位置,一般都是在/dev/目錄下面r開頭的某個邏輯捲上。可透過lslv檢視某個lv跨越哪些硬碟或Hdisk。

當用iostat監控到某個Hdisk很忙的時候,可以透過

#lsdev -Cc disk

來定位hdisk是否放在陣列上,舉例:

#lsdev -Cc disk

hdisk0 Available 09-08-00-8,0 16 Bit LVD SCSI Disk Drive

hdisk1 Available 09-08-00-9,0 16 Bit LVD SCSI Disk Drive

hdisk6 Available 0C-08-02 EMC CLARiiON FCP RAID 1/0 Disk

hdisk7 Available 0C-08-02 EMC CLARiiON FCP RAID 1/0 Disk

hdisk8 Available 0E-08-02 EMC CLARiiON FCP RAID 1/0 Disk

hdisk9 Available 0E-08-02 EMC CLARiiON FCP RAID 1/0 Disk

hdisk10 Available 0C-08-02 EMC CLARiiON FCP RAID 1/0 Disk

hdisk11 Available 0C-08-02 EMC CLARiiON FCP RAID 1/0 Disk

hdisk12 Available 0E-08-02 EMC CLARiiON FCP RAID 1/0 Disk

hdisk13 Available 0E-08-02 EMC CLARiiON FCP RAID 1/0 Disk

hdiskpower0 Available 0C-08-02 PowerPath Device

hdiskpower1 Available 0E-08-02 PowerPath Device

從上面可以看到,hdisk0-1是本地SCSI硬碟,hdisk6-13是EMC的Raid 10磁碟陣列,是儲存的LUN在多個路徑下的產物,hdiskpower0/1則是EMC Powerpath合併後的可用物理卷,真正對應到儲存的LUN。這裡又提到兩個概念Powerpath和LUN。

LUN由於多條訪問路徑的原因被認成多個hdisk,類似網路裡面的多路經路由。但aix不能自動將多個路徑認到的裝置歸為一個hdisk,所以透過儲存提供的多路經管理軟體,再歸為一個裝置。

Powerpath是EMC提供的多路徑管理軟體(multiple path),hds的老版本叫vpath,新版本叫dlmpath。

一個Powerpath對應儲存系統裡面的一個硬碟(並非物理硬碟,而是經過劃分後的邏輯硬碟),這個Powerpath會對應n個hdisk,n取決於你有多少條通道。

上面例子中,hdisk6,hdisk7,hdisk10,hdisk11對應hdiskpower0 裝置,而hdisk8,hdisk9,hdisk12,hdisk13對應hdiskpower1裝置,透過Hdisk的個數可知有4條通道。

LUN是儲存上的概念,對應到系統中就是一個Hdisk或hdiskpower。

陣列儲存模型

RAID陣列和LUN

陣列的配置,就是先選好幾塊盤,作raid組,然後在raid組上,劃分LUN,大小自定;然後作group,可以是raid組group、lun group,主機group等;然後作主機map(對映),或者叫host attachement,就是設定哪個或哪些主機能看到相應的lun,或lun group。設定好map後,主機開機,便會看到分配給它的新磁碟(對應陣列上的lun),如hdiskpower等。主機可以對其進行分割槽,格式化等常規磁碟的操作,或將其加到VG中,而不必也無法關心這個lun在陣列中是由哪些盤組成的,raid型別是什麼,這些都是陣列控制器關心的,上層主機是看不到的。

RAID的型別常用的有RAID0,RAID1,RAID5和RAID10。RAID0在多塊盤上作條帶(stripe),效能最好,但不做任何形式的冗餘。RAID1透過映象(mirror)提供最好的冗餘,但比較費盤。RAID10是RAID0+RAID1。RAID5透過奇偶校驗演算法確保陣列中每塊盤的資料都可透過其餘盤恢復,因此在提供高效能的同時,也能提高冗餘性。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12707874/viewspace-2134833/,如需轉載,請註明出處,否則將追究法律責任。

相關文章