1. 程式人生 > >oracle學習筆記 儲存及raid技術概述

oracle學習筆記 儲存及raid技術概述

oracle學習筆記

儲存及raid技術概述

本課以oracle資料庫所執行的環境,講一下儲存和raid技術。

一)oralce生產環境裡的結構
先說一下oracle所在的環境。
有一種結構:
兩個伺服器、兩個光纖儲存交換機、兩個儲存,
它們通過網線相互連線在一起。
每個伺服器接兩個交換機,
每個交換機連兩個伺服器同時連兩個儲存,
每個儲存和兩個交換機有連線。
這是oracle資料庫相對比較典型的正規的執行環境。

每個伺服器上都裝Linux和oracle資料庫軟體,
oracle資料庫建在儲存上,有兩份資料分別放在兩個儲存上,
並且兩個儲存上的資料完全一樣。

對伺服器本地來講只是安裝有作業系統和oracle資料庫軟體,如果壞了可以重灌。

整個系統裡面非常重要的資料的載體和儲存介質是儲存,
oracle資料庫資料檔案放在儲存上。

儲存最主要的作用是儲存資料,
資料都儲存在硬碟上,儲存裡面放的是一堆硬碟。

對伺服器來講一般本地只有兩塊硬碟,硬碟空間比較小,真正的空間需求在儲存上。

我們這裡的例子:
有兩個伺服器裝有兩個linux、兩個資料庫軟體,
還有兩個光纖儲存交換機,還有好多線和兩個儲存。

特點:
1、處處體現了冗餘,一個壞了還有另一個,防止出現單點故障。
冗餘又叫HA高可用。
在計算機系統我們設計時要防止出現單點故障,要採取冗餘,處處冗餘。
2、我們把冗餘的餘字去掉,我們在冗餘的同時,讓兩個伺服器同時工作,
一個壞了,另外的一個還可以繼續工作。
這樣就達到了LB(load balance)負載均衡。

一個oracle軟體在兩個伺服器上執行,
對使用者來講,我們的效能提高了一倍。

我們的環境可以實現HA和LB。

oracle的硬體環境就是這個環境,用的很多基本是這種環境。

另一種環境:
兩個伺服器,一個光纖儲存交換機,一個儲存。
存在一個問題,如果出現單點故障 交換機或儲存壞了 整個系統都不能使用。

還有一種環境:
兩個伺服器兩個交換機和一個儲存
交換機排除了單點故障,儲存還會出現單點故障。
我們儘量採用第一種結構,但第二種結構實際使用也比較多。

前面主要講了oralce生產環境裡的結構。

二)儲存
儲存是用來儲存資料的。

儲存就是一個大鐵櫃子裡面擱著一堆硬碟,
根據儲存的容量和你的需要,可以配非常多的硬碟。
一個殼子不夠可以再加一些殼子,殼子裡面再放硬碟。
這樣容量空間就會很大。
這是儲存最簡單的一個比喻。

觀察實際儲存實體,
從儲存的前面看有整齊排列的很多硬碟,
如一排十四塊硬碟,一共兩排,就有共28塊硬碟。

一塊硬碟300G,
總共就是300G*28=8400G 約為8.2T
這樣總體是一個8個T的儲存。

對一般的資料8000G就夠了。
這個儲存算一箇中小型的儲存。

小型的儲存放的硬碟較少。

為了配合oralce的學習,我們有必要將儲存的大概的知識講一下。

儲存的後面,可以看到控制器、電源,
儲存一般是雙控雙電,儲存本身也是有冗餘的。

控制器是儲存的心臟,電源是供電的。

儲存把控制器拿走就不值錢了,
儲存很貴,主要貴在控制器上。

控制器從外面可以看到有很多介面,
用來連線光纖儲存交換機,交換機再連伺服器。

伺服器通過HBA卡、光纖線連到光纖儲存交換機上,
光纖儲存交換機通過光纖線連到控制器的口上,叫LC口。
伺服器就是通過這個結構連到儲存上的。

光纖線有很多種,
一頭插到儲存的控制器上,一頭插到儲存交換機上。中間的線可以很長。

有的光纖線口很大有的口很小。
LC型連線頭用的較多,MTRJ也較多。
SC型連線頭現在用的較少,因為頭較大,佔空間。

光纖線有單模多模之分,
單模傳輸距離遠,多模傳輸距離近。
二三百米以內用多模,單模幾公里都可以。
但是傳輸速度是一樣的。

光纖傳輸速度主要取決於HBA卡的傳輸速度。
光纖本身沒有傳輸速度,取決於卡。

儲存有控制器和電源,
控制器有光纖口,
HBA卡,有光纖口。

儲存是一個大鐵櫃子,後面有控制器還有電源,前面放了很多硬碟。
硬碟放資料,控制器對整個儲存控制,電源供電。

儲存上有快取,有電池,還有CPU。
儲存上還有光纖介面、管理介面,都在控制器上。

東西很多,有的用得著,有的用不著。
實際使用中,根據技術的不同和高低,不是每樣東西都可以用的。

儲存特點:
1、它把非常多的硬碟集合起來,形成一個大硬碟。
如一個硬碟300G,一共100塊硬碟,
儲存就可以把這些硬碟整合起來,然後讓我們使用。
提供了空間的聚集。

2、加快從儲存的硬碟上讀寫資料的速度。
其中用了快取技術可以加快讀寫速度。

3、儲存支援RAID技術。
控制器把這堆硬碟進行了分組和整合。
做成不同的樣子,搞成不同的訪問方式。

三)RAID
RAID就是控制器把很多硬碟進行集合,通過一些技術來實現對硬碟訪問速度的提高。

raid在幾個方面有特色。
1、提供冗餘
2、提高訪問速度

raid技術常用的有:
raid0
raid1
raid5
raid6

raid10
raid01

raid0 raid1 raid5這三種技術現在用的越來越少。
直接使用越來越少,新的技術裡面基本不用它們。

但從理論上講,應該是越基礎的技術其實用性和耐用性是越好的。

現在raid6有用的,
用的最多的是raid10和raid01。

1)raid0
下面假設陣列中有兩塊硬碟。

raid首先把包含的所有硬碟空間上劃出一個個的條帶,
條帶在每塊硬碟上有一塊,
這些塊空間大小上都是一樣的。

要把一個檔案存到raid0的磁碟上,
它把檔案切成很多塊,按順序放到磁碟陣列的塊中,
這樣檔案被均勻的放在兩塊硬碟上。

raid0的好處
每個硬碟都有自己的一套硬碟系統,如硬碟控制器,
一個檔案在往raid0磁碟上寫時,可以實現並行寫。
讀的時候也可以實現並行讀。
raid0可以提高我們將資料寫入磁碟和讀取的速度,就是提高我們對硬碟的訪問速度。

raid0的壞處
同一檔案分佈在兩塊硬碟上,硬碟越多壞一塊硬碟的概率就越大。
只有一塊硬碟損壞機率和有一百塊硬碟其中一塊硬碟損壞的機率顯然後者大。
raid0任意一塊硬碟壞了,整個raid0中存放的檔案會全部損壞。
raid0在讀寫效能方面表現的非常優秀,
但是有個非常致命的地方,沒有任何冗餘,
資料更容易損壞,而且一損壞是全部損壞。
raid0只適合對讀寫速度要求很高,但是對可靠性安全性幾乎沒有要求的工作環境。
在這種環境中我們可以用raid0,只提高速度沒有冗餘。
raid0最少兩塊硬碟,三塊四塊五塊都可以,建議不要超過六塊。

2)raid1
也叫映象。
假設陣列中有兩塊硬碟。
一個檔案,往raid1上寫的時候,
寫入一塊硬碟的一塊資料時,同時往另外一塊硬碟寫入完全相同的一塊資料。
每向一塊硬碟寫資料,另一塊硬碟都寫入映象。

這時提供了冗餘。一塊硬碟壞了,還有一塊硬碟沒有損壞。

raid1特點:
1、提供冗餘
2、寫效能稍微會差一些,因為同一資料同時向兩塊硬碟寫,至少在寫效能上沒有提高。
一個檔案兩個硬碟都有,在讀一個檔案時可以從兩個硬碟上同時讀。
一個硬碟讀一部分,另一個硬碟可以讀出另外的一部分。
這樣在讀效能上可以有所提高。

raid1提供冗餘,但是它浪費了50%的空間,因為是兩塊硬碟映象。raid0沒有浪費空間。
raid1至少兩塊硬碟,一般都是偶數。

raid1應用的場合,伺服器本地兩塊硬碟,99%的環境兩塊硬碟做成raid1。

3)raid5
寫資料有特色

如raid5有四塊硬碟,每個條帶就有四個資料塊。
一個檔案要往裡寫,分塊寫入,
同一條帶的其中三塊寫入檔案的三塊資料,
另一塊不寫入檔案的資料,而是另三塊資料計算出來的一塊資料。
這種資料的存放的特色,四塊資料中任意一塊資料壞了,都能夠通過其它三塊資料計算出來。
我們叫奇偶校驗。

raid5特點:
1、有冗餘。最多可以壞一塊硬碟,但浪費1/n空間。
浪費空間:raid1為50%,raid0沒有浪費,raid5浪費1/n空間。

raid5有冗餘可以壞一塊,如果壞兩塊整個陣列也壞了。

2、讀效能很高,多塊硬碟可以同時讀,
讀取時不用計算,而且可同時讀n-1塊的資料。
寫效能比較差,每次寫都是對條帶中的所有塊同時寫,
而其中一塊需要經過計算後才能得到,所以寫效能較差。

raid5和raid0相似,但是raid5有冗餘,冗餘浪費空間並造成寫效能差一些。
raid5是以前經常採用的技術。現在都不願意使用它了。

4)raid6
raid6也使用的奇偶校驗,也實現了冗餘,但有兩塊冗餘資料。
raid6比raid5改進的地方可以同時壞兩塊硬碟。
它要同時寫兩份奇偶校驗資料,它的寫效能比raid5還要差。
雖然可以同時壞兩塊硬碟,但此技術並不是非常好,因為讀效能還可以,寫效能確實比較差。
同時可以壞兩塊硬碟是一個好處。

raid5只能壞一塊硬碟。
如raid5壞了一塊硬碟,讀資料時,
其中壞盤的資料要把其它三塊盤同條帶的資料讀出並且計算才能得到,造成讀效能急劇下降。
raid5就有這樣一個特點和風險,
如果壞了一塊硬碟,整體raid5的效能會急劇下降,幾乎無法使用。

raid6 好一些,它壞一塊硬碟不很明顯,壞兩塊和raid5壞硬碟一樣。
raid6目前有的在用,老師並不建議使用。

5)raid01和raid10
老師講課時間2012年,最流行的技術是raid01和raid10。

假設使用四塊硬碟。

兩個硬碟做raid0,兩個raid0再做raid1,四塊硬碟就是raid01。

它使用了raid0,讀寫效能都很高。
兩個raid0合起來用了raid1,好處提高了讀效能的同時提供了冗餘。
整體提高了讀效能,有raid0寫效能也不差。

冗餘是50%,冗餘度也很好。
有個問題空間浪費比較嚴重,浪費了50%。

raid10和raid01效能差不多。
兩個硬碟做raid1,兩個raid1再做raid0。

raid01和raid10在oracle資料庫裡面,我們都是建議使用的,都不錯。
雖然有人進行比較,但老師通過自己實際工程中做的專案來講01和10效能都可以。
對oracle的實際工作環境raid5,raid6,raid0,raid1在儲存上還是建議少使用。

5)raid技術心得
所有raid技術都對讀都有提高,對寫提高只有raid0做到了。

發現了一個和物理上的能量守恆類似的情況:
計算機作為一個整體,其技術在提高了一方面的效能時,都會消耗另外一方面的資源。
如磁碟陣列,所有技術類別提高效能都需要增加控制器和增加硬碟。
raid0提高了寫入速度,但會降低安全性,
只要一塊硬碟損毀,陣列就壞了,而且是全部資料損壞。
raid1,提高安全性時,會消耗成倍的儲存硬碟。
raid5、raid6提高了資料安全性,
就會同時消耗掉cpu的一部分處理效能,用來運算。它的奇偶校驗需要cpu處理。

四)
今天講了儲存、raid、HBA卡和光纖的一些技術。
講的比較粗略一些,主要為了oracle課的下一步的一些進展。

補充技術:
oralce伺服器典型結構中,一個伺服器訪問一個硬碟有兩條路徑。
一個伺服器接兩個交換機兩條路徑,然後這兩條路徑分別有一條路徑接一個儲存
這樣一個伺服器訪問一個儲存一共有兩條路徑
這兩條路徑有冗餘的作用,一條路徑壞了可以走另一條。

通過某些軟體的設定,它不僅有冗餘的作用,還有負載均衡的作用,
一個伺服器從一個儲存取資料時,資料可以分成兩份,分別走兩條路徑。
這兩條鏈路不僅僅實現了HA,也實現了負載均衡。
這個技術叫multi path。

其實我們做的時候,在伺服器上通過一個軟體將這兩條鏈路綁成一條鏈路。
也就是伺服器看到的只有一條鏈路過來,實際上是軟體將鏈路合起來了。
這叫MPIO技術,multi path IO技術
UNIX和LINUX中這是一個非常重要的技術。多路徑技術,非常重要。


2016年6月20日
                                         韻箏