Linux磁盤管理

  我們知道計算機的五大組成部件:輸入設備、輸出設備、儲存器、運算器、控制器,其中輸入輸出設備我們稱之爲I/O設備,運算器和控制器稱之爲CPU,存儲器如內存、硬盤等。計算機只要有CPU和內存其實就已經可以獨立完成計算任務了,只是其輸入輸出都在內存中實現,但是內存屬於隨機存儲單元,斷電就會導致數據的丟失,因此我們就通過其他的輔助存儲設備來彌補內存的這個不足,這些輔助的存儲設備稱之爲外存,如:磁盤、光驅等。
  對於linux而言,一切皆文件,因此linux之上所有的設備的操作都是通過文件接口實現的,也就是所的在訪問設備的時候就像訪問一個文件一樣,因此他們使用的都是文件接口.
   每一個設備都有一個文件作爲它的訪問接口,此文件我們稱之爲設備文件;該文件關聯至一個設備驅動程序,進而能夠跟與之對應的硬件設備進行通訊.
  假如同一個設備有兩個,那請問該設備是應該關聯一個設備文件還是關聯兩個設備文件?假如有兩個兩塊硬盤,那他肯定要關聯到兩個設備文件上,那這兩個設備文件可能會關聯到一個驅動程序上,因爲這兩塊硬盤都是統一的型號,但是這兩個設備文件作爲了兩個不同的設備入口;需要知道的是文件只是用戶視圖中所看到的訪問入口,但是對於硬件和系統級別,他們更容易識別的是數字而不是字符串,那麼每個設備在內核集中都是靠一個設備號來進行標識的。
設備號碼:用來標識設備,不同類別的設備有不同的設備號,同一個類別設備有不同的設備或多個設備,因此就有主設備號和次設備號。
主設備號:major number, 標識設備類型
次設備號:minor number, 標識同一類型下的不同設

磁盤設備的設備文件命名
硬盤接口類型:通常我們通過硬盤接口的不同來區分不同硬盤,而不同的驅動程序是靠自己的硬盤內部的工作電氣特性來實現的;因此不管你的硬盤是那個廠商生產的,你的sata接口肯定是要接入到主板上的sata控制器上。

Linux磁盤管理

Linux磁盤管理

機械硬盤和固態硬盤

  機械硬盤(HDD):Hard Disk Drive,即是傳統普通硬盤,主要由:盤 片,磁頭,盤片轉軸及控制電機,磁頭控制器,數據轉換器,接口,緩存 等幾個部分組成。機械硬盤中所有的盤片都裝在一個旋轉軸上,每張盤片 之間是平行的,在每個盤片的存儲面上有一個磁頭,磁頭與盤片之間的距 離比頭髮絲的直徑還小,所有的磁頭聯在一個磁頭控制器上,由磁頭控制 器負責各個磁頭的運動。磁頭可沿盤片的半徑方向運動,加上盤片每分鐘 幾千轉的高速旋轉,磁頭就可以定位在盤片的指定位置上進行數據的讀寫 操作。數據通過磁頭由電磁流來改變極性方式被電磁流寫到磁盤上,也可 以通過相反方式讀取。硬盤爲精密設備,進入硬盤的空氣必須過濾
  固態硬盤(SSD):Solid State Drive,用固態電子存儲芯片陣列而制 成的硬盤,由控制單元和存儲單元(FLASH芯片、DRAM芯片)組成。固 態硬盤在接口的規範和定義、功能及使用方法上與普通硬盤的完全相同, 在產品外形和尺寸上也與普通硬盤一致

Linux磁盤管理

磁盤的尋址方式:CHS和LBA
CHS 有以下特點:
1.採用24bit位尋址方式
2.其中前10位表示cylinde(柱面) ,中間8位表示head(磁頭) ,後邊6位表示aector(扇區)
3.最空間大尋址8GB
LBA
LBA有以下特點
1.LBA是一個整數,通過轉換成CHS格式完成磁盤具體尋址
2.LBA採用48個bit爲尋址
3.最大尋址空間128PB
LBA有以下特點
1.LBA是一個整數,通過轉換成CHS格式完成磁盤具體尋址
2.LBA採用48個bit爲尋址
3.最大尋址空間128PB

*由於CHS尋址方式的尋址空間大概在8GB以內,所以在磁盤容量小於8GB時可以使用CHS尋址方式或是LBA尋址方式,在磁盤容量大於8GB時,只能使用LBA尋址方式。

磁盤分區方式:MBA和GPT
MBA
1.使用32位表示扇區數,分區不超過2T
2.根據柱面數來分區
3.MBR的0磁道0扇區的前512字節中446字節用來存boot loader(系統啓動項)64字節用來表示分區表(16字節一個)最後2字節用來存結束位(55AA)
4.因爲前512字節中,只有64個字節是用來存分區表信息的,所以只能分4個主分區,一般會分三個主分區,一個擴展分區,擴展分區可以在分N個邏輯分區
GPT
1.支持128個分區沒知識64位,支持8Z(512byte/block)64Z(4096byte/block)
2.使用128位UUID表示磁盤和分區GPT分區表自動備份在頭和尾兩位,並有CRC校驗位
3.UEFI(統一擴展固件接口)硬件支持GPT,是操作系統啓動,

MAR分區結構
Linux磁盤管理

GRT分區結構
Linux磁盤管理

磁盤陣列

磁盤陣列(Redundant Arrays of Independent Disks,RAID),有“獨立磁盤構成的具有冗餘能力的陣列”之意。
磁盤陣列是由很多價格較便宜的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數據所產生加成效果提升整個磁盤系統效能。

分類

磁盤陣列其樣式有三種,一是外接式磁盤陣列櫃、二是內接式磁盤陣列卡,三是利用軟件來仿真。
外接式磁盤陣列櫃最常被使用大型服務器上,具可熱交換(Hot Swap)的特性,不過這類產品的價格都很貴。
內接式磁盤陣列卡,因爲價格便宜,但需要較高的安裝技術,適合技術人員使用操作。硬件陣列能夠提供在線擴容、動態修改陣列級別、自動數據恢復、驅動器漫遊、超高速緩衝等功能。它能×××能、數據保護、可靠性、可用性和可管理性的解決方案。陣列卡專用的處理單元來進行操作。
利用軟件仿真的方式,是指通過網絡操作系統自身提供的磁盤管理功能將連接的普通SCSI卡上的多塊硬盤配置成邏輯盤,組成陣列。軟件陣列可以提供數據冗餘功能,但是磁盤子系統的性能會有所降低,有的降低幅度還比較大,達30%左右。因此會拖累機器的速度,不適合×××量的服務器。

RAID優缺點

優點
提高傳輸速率。RAID通過在多個磁盤上同時存儲和讀取數據來大幅提高存儲系統的數據吞吐量(Throughput)。在RAID中,可以讓很多磁盤驅動器同時傳輸數據,而這些磁盤驅動器在邏輯上又是一個磁盤驅動器,所以使用RAID可以達到單個磁盤驅動器幾倍、幾十倍甚至上百倍的速率。這也是RAID最初想要解決的問題。因爲當時CPU的速度增長很快,而磁盤驅動器的數據傳輸速率無法大幅提高,所以需要有一種方案解決二者之間的矛盾。RAID最後成功了。
通過數據校驗提供容錯功能。普通磁盤驅動器無法提供容錯功能,如果不包括寫在磁盤上的CRC(循環冗餘校驗)碼的話。RAID容錯是建立在每個磁盤驅動器的硬件容錯功能之上的,所以它提供更高的安全性。在很多RAID模式中都有較爲完備的相互校驗/恢復的措施,甚至是直接相互的鏡像備份,從而大大提高了RAID系統的容錯度,提高了系統的穩定冗餘性。
缺點
RAID0沒有冗餘功能,如果一個磁盤(物理)損壞,則所有的數據都無法使用。
RAID1磁盤的利用率最高只能達到50%(使用兩塊盤的情況下),是所有RAID級別中最低的。
RAID0+1以理解爲是RAID 0和RAID 1的折中方案。RAID 0+1可以爲系統提供數據安全保障,但保障程度要比 Mirror低而磁盤空間利用率要比Mirror高。

RAID級別

RAID 0: RAID 0連續以位或字節爲單位分割數據,並行讀/寫於多個磁盤上,因此具有很高的數據傳輸率,但它沒有數據冗餘,因此並不能算是真正的RAID結構。RAID 0只是單純地提高性能,並沒有爲數據的可靠性提供保證,而且其中的一個磁盤失效將影響到所有數據。因此,RAID 0不能應用於數據安全性要求高的場合。

Linux磁盤管理

RAID 1: 它是通過磁盤數據鏡像實現數據冗餘,在成對的獨立磁盤上產生互爲備份的數據。當原始數據繁忙時,可直接從鏡像拷貝中讀取數據,因此RAID 1可以提高讀取性能。RAID 1是磁盤陣列中單位成本最高的,但提供了很高的數據安全性和可用性。當一個磁盤失效時,系統可以自動切換到鏡像磁盤上讀寫,而不需要重組失效的數據。

Linux磁盤管理

RAID 5: RAID 5不單獨指定的奇偶盤,而是在所有磁盤上交叉地存取數據及奇偶校驗信息。在RAID 5上,讀/寫指針可同時對陣列設備進行操作,提供了更高的數據流量。RAID 5更適合於小數據塊和隨機讀寫的數據。RAID 3與RAID 5相比,最主要的區別在於RAID 3每進行一次數據傳輸就需涉及到所有的陣列盤;而對於RAID 5來說,大部分數據傳輸只對一塊磁盤操作,並可進行並行操作。在RAID 5中有“寫損失”,即每一次寫操作將產生四個實際的讀/寫操作,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。

Linux磁盤管理

RAID 01/10: 根據組合分爲RAID 10和RAID 01,實際是將RAID 0和RAID 1標準結合的產物,在連續地以位或字節爲單位分割數據並且並行讀/寫多個磁盤的同時,爲每一塊磁盤作磁盤鏡像進行冗餘。它的優點是同時擁有RAID 0的超凡速度和RAID 1的數據高可靠性,但是CPU佔用率同樣也更高,而且磁盤的利用率比較低。RAID 1+0是先鏡射再分區數據,再將所有硬盤分爲兩組,視爲是RAID 0的最低組合,然後將這兩組各自視爲RAID 1運作。RAID 0+1則是跟RAID 1+0的程序相反,是先分區再將數據鏡射到兩組硬盤。它將所有的硬盤分爲兩組,變成RAID 1的最低組合,而將兩組硬盤各自視爲RAD 0運作。性能上,RAID 0+1比RAID 1+0有着更快的讀寫速度。可靠性上,當RAID 1+0有一個硬盤受損,其餘三個硬盤會繼續運作。RAID 0+1 只要有一個硬盤受損,同組RAID 0的另一隻硬盤亦會停止運作,只剩下兩個硬盤運作,可靠性較低。因此,RAID 10遠較RAID 01常用,零售主板絕大部份支持RAID 0/1/5/10,但不支持RAID 01

Linux磁盤管理

Linux磁盤管理

RAID 50: RAID50是RAID5與RAID0的結合。此配置在RAID5的子磁盤組的每個磁盤上進行包括奇偶信息在內的數據的剝離。每個RAID5子磁盤組要求三個硬盤。RAID50具備更高的容錯能力,因爲它允許某個組內有一個磁盤出現故障,而不會造成數據丟失。而且因爲奇偶位分部於RAID5子磁盤組上,故重建速度有很大提高。優勢:更高的容錯能力,具備更快數據讀取速率的潛力。需要注意的是:磁盤故障會影響吞吐量。故障後重建信息的時間比鏡像配置情況下要長。(不常用的)

Linux磁盤管理

兩道Linux運維面試題

簡述raid0 raid1 raid5 三種工作模式的工作原理及特點
RAID,可以把硬盤整合成一個大磁盤,還可以在大磁盤上再分區,放數據
還有一個大功能,多塊盤放在一起可以有冗餘(備份)
RAID整合方式有很多,常用的:0 1 5 10
RAID 0,可以是一塊盤和N個盤組合
其優點讀寫快,是RAID中最好的
缺點:沒有冗餘,一塊壞了數據就全沒有了
RAID 1,只能2塊盤,盤的大小可以不一樣,以小的爲準
10G+10G只有10G,另一個做備份。它有100%的冗餘,缺點:浪費資源,成本高
RAID 5 ,3塊盤,容量計算10*(n-1),損失一塊盤
特點,讀寫性能一般,讀還好一點,寫不好
冗餘從好到壞:RAID1 RAID10 RAID 5 RAID0
性能從好到壞:RAID0 RAID10 RAID5 RAID1
成本從低到高:RAID0 RAID5 RAID1 RAID10
單臺服務器:很重要盤不多,系統盤,RAID1
數據庫服務器:主庫:RAID10 從庫 RAID5\RAID0(爲了維護成本,RAID10)
WEB服務器,如果沒有太多的數據的話,RAID5,RAID0(單盤)
有多臺,監控、應用服務器,RAID0 RAID5
我們會根據數據的存儲和訪問的需求,去匹配對應的RAID級別
簡述raid0 raid1 raid5 三種工作模式的工作原理及特點
RAID 0:帶區卷,連續以位或字節爲單位分割數據,並行讀/寫於多個磁盤上,因此具有很高的數據傳輸率
但它沒有數據冗餘,RAID 0 只是單純地提高性能,並沒有爲數據的可靠性提供保證
而且其中的一個磁盤失效將影響到所有數據。因此,RAID 0 不能應用於數據安全性要求高的場合
RAID 1:鏡像卷,它是通過磁盤數據鏡像實現數據冗餘,在成對的獨立磁盤上產生互爲備份的數據
不能提升寫數據效率。當原始數據繁忙時,可直接從鏡像拷貝中讀取數據,因此RAID1 可以提高讀取性能
RAID 1 是磁盤陣列中單位成本最高的,鏡像卷可用容量爲總容量的1/2,但提供了很高的數據安全性和可用性
當一個磁盤失效時,系統可以自動切換到鏡像磁盤上讀寫,而不需要重組失效的數據
RAID5:至少由3塊硬盤組成,分佈式奇偶校驗的獨立磁盤結構,它的奇偶校驗碼存在於所有磁盤上
任何一個硬盤損壞,都可以根據其它硬盤上的校驗位來重建損壞的數據(最多允許1塊硬盤損壞)
所以raid5可以實現數據冗餘,確保數據的安全性,同時raid5也可以提升數據的讀寫性能

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章