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日
                                         韻箏
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章