天天看點

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日

                                         韻筝