国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

磁盤的可靠性其實很低,這種數(shù)據(jù)可靠性技術(shù)可以解決

存儲 存儲設(shè)備
在Linux操作系統(tǒng)下提升磁盤可靠性的技術(shù)就是RAID技術(shù)。具體實現(xiàn)有兩種,一種是通過MD實現(xiàn)的多磁盤設(shè)備,另外一種是LVM。今天我們主要介紹一下通過MD實現(xiàn)的RAID技術(shù)。

在我們?nèi)粘5恼J(rèn)識中,磁盤是非常可靠的。作者03年自己組裝的電腦的磁盤現(xiàn)在還在用著,想想都快二十年了。很多人可能會想,消費級的磁盤都這么靠譜,那企業(yè)級的豈不是更加厲害。其實并非如此,其實磁盤是很容易出現(xiàn)故障的。

磁盤

作者有幸參觀過一個大型的數(shù)據(jù)中心,發(fā)現(xiàn)成堆的故障磁盤。據(jù)說,該數(shù)據(jù)中心每天有幾十塊磁盤出現(xiàn)故障。谷歌在設(shè)計其分布式文件系統(tǒng)GFS的時候,也是將磁盤作為非常不可靠部件進(jìn)行考慮的,因此在其架構(gòu)中通過多副本保證其可靠性。

想想其中的原因,大概是使用頻度的差異造成的錯覺吧。我們平時使用的磁盤平均下來每天應(yīng)該不會超過一小時,而且大部分時間都沒有數(shù)據(jù)讀寫。而數(shù)據(jù)中心磁盤則是7*24小時運行,且負(fù)載很重。試想,如果讓你7*24小時不歇著,估計...

好了,廢話少說。既然磁盤這么不靠譜,我們今天就給大家介紹一下存儲領(lǐng)域保證磁盤可靠性的技術(shù)。為了方便大家理解和日后學(xué)習(xí),我們就以Linux內(nèi)核為例進(jìn)行介紹,其實技術(shù)是相通的,大家可以遷移過去。在Linux操作系統(tǒng)下提升磁盤可靠性的技術(shù)就是RAID技術(shù)。具體實現(xiàn)有兩種,一種是通過MD實現(xiàn)的多磁盤設(shè)備,另外一種是LVM。今天我們主要介紹一下通過MD實現(xiàn)的RAID技術(shù)。

一、RAID的原理及基本操作

人類認(rèn)識事物的客觀規(guī)律是具體的比抽象的容易理解。因此,為了讓大家更加容易理解本文介紹的內(nèi)容,我們先從具體的內(nèi)容開始。

1. RAID的基本原理

RAID的全稱為廉價冗余磁盤陣列(Redundant Array of Inexpensive Disks),從字面可以看出其基本原理就是通過廉價的磁盤組成一組磁盤,從而提高磁盤的整體可靠性。在Linux操作系統(tǒng)層面,其實就是將物理磁盤通過軟件抽象為邏輯磁盤。以RAID1(兩塊磁盤存儲相同的數(shù)據(jù),在出現(xiàn)一塊磁盤故障的情況下,數(shù)據(jù)不丟失)為例,通過Linux內(nèi)核中的軟件創(chuàng)建一個虛擬的塊設(shè)備,而該塊設(shè)備中記錄了底層對應(yīng)的物理設(shè)備及相關(guān)參數(shù)。

圖1 RAID示意圖

因此,從用戶層面來看就是一塊普通的磁盤設(shè)備,而在底層卻是2個獨立的物理硬盤。當(dāng)用戶向邏輯磁盤寫數(shù)據(jù)的時候,其中的軟件會通過參數(shù)進(jìn)行計算,并將數(shù)據(jù)重新定向到底層的物理設(shè)備。通過這種方法可以保證即使出現(xiàn)某個物理磁盤損壞,用戶的數(shù)據(jù)仍然完好無損。

2. Linux下RAID管理

在Linux操作系統(tǒng)下可以通過mdadm工具非常方便的創(chuàng)建RAID。我們以RAID1為例演示一下如何創(chuàng)建。可能很多同學(xué)沒有多塊物理磁盤,其實沒有關(guān)系,我們可以通過虛擬機(jī)創(chuàng)建虛擬磁盤或者loop設(shè)備模擬的方式創(chuàng)建RAID。

為了方便大家練習(xí),本文就通過loop設(shè)備模擬磁盤來創(chuàng)建RAID。首先需要創(chuàng)建2個loop設(shè)備。具體執(zhí)行如下命令:

創(chuàng)建loop設(shè)備

圖2 創(chuàng)建loop設(shè)備

成功運行上述命令后,在/dev目錄下就多出2個設(shè)備,分別是loop0和loop1。我們可以將這兩個設(shè)備當(dāng)做磁盤來使用。下面我們就可以創(chuàng)建RAID了,非常簡單,通過一條命令就可以了。

  1. mdadm --create /dev/md1 --level=1 --raid-devices=2 /de 

在上面命令中/dev/md1表示創(chuàng)建的新設(shè)備的名稱,level=1表示是RAID1,后面分別是物理設(shè)備的數(shù)量和具體的物理設(shè)備路徑。

除了創(chuàng)建RAID之外,mdadm還支持很多功能,比如獲取RAID的詳細(xì)信息(mdadm --detail /dev/md1)。

圖3 RAID的詳細(xì)信息

該命令的功能很多,我們就不一一介紹了。這里只是拋磚引玉,具體內(nèi)容大家自行學(xué)習(xí)就行。后面我們重點從原理和實現(xiàn)層面介紹一下Linux的RAID技術(shù)。

3. RAID軟件架構(gòu)

Linux的RAID實現(xiàn)在用戶態(tài)和內(nèi)核態(tài)都有涉及。其中用戶態(tài)主要進(jìn)行RAID的管理,而內(nèi)核態(tài)一方面配合用戶態(tài)進(jìn)行RAID管理,另外一方面則實現(xiàn)對IO的處理,這部分才是RAID最為核心的內(nèi)容。

圖4 軟件架構(gòu)

對于基于SCSI物理磁盤的RAID來說,Linux環(huán)境下整個軟件架構(gòu)如圖4所示。其中虛線以上的為用戶態(tài)的軟件模塊,虛線以下的為內(nèi)核態(tài)的軟件模塊。這里比較核心的是RAID公共層,在這里主要創(chuàng)建md設(shè)備,該設(shè)備是一個邏輯設(shè)備,也是用戶可以看到的RAID設(shè)備。其下則是具體的RAID模塊,用于實現(xiàn)不同的RAID級別(算法)。

再往下就是通用SCSI驅(qū)動層了,也就是圖中的SCSI磁盤驅(qū)動這一層的內(nèi)容。該層其實是SCSI系統(tǒng)的上層驅(qū)動(SCSI子系統(tǒng)分為上中下三層)。RAID模塊通過調(diào)用該層的數(shù)據(jù)訪問接口就可以實現(xiàn)物理磁盤數(shù)據(jù)讀寫了。

這里需要說明的是,這里的物理磁盤并不一定是本地磁盤。由于基于SAN或者其它協(xié)議的磁盤可以通過光纖或者SAS線連接到主機(jī),并呈現(xiàn)為物理硬盤。這種物理硬盤與本地物理硬盤沒有任何差異。

二、RAID的代碼淺析

針對Linux內(nèi)核的具體實現(xiàn),我們簡單介紹一下其中的代碼。關(guān)于代碼部分我們以RAID1為例介紹兩部分的內(nèi)容,一部分是關(guān)于創(chuàng)建RAID的邏輯;另一部分是請求處理邏輯。理解了上述內(nèi)容,也就理解了關(guān)于RAID代碼邏輯的大部分內(nèi)容。

1. 關(guān)于RAID的超級塊

接觸過Linux文件系統(tǒng)的同學(xué)應(yīng)該對超級塊不會陌生。在RAID中也有超級塊(superblock),并且作用與文件系統(tǒng)類似。RAID超級塊的作用類似,可以將超級塊理解稱為RAID的地圖。RAID軟件對底層物理磁盤的一切操作都以該超級塊為依據(jù)。

Linux的RAID有多個版本,包括0.9、1.0、1.1和1.2四個版本,且版本之間并不能保證兼容性。對于1.2版本的RAID,其超級塊位于開始4KB偏移的位置。我們可以通過dd或者其它工具將該數(shù)據(jù)導(dǎo)出到文件中,并通過二進(jìn)制工具查看。

RAID的超級塊

圖5 RAID的超級塊

如圖5是作者導(dǎo)出的上面創(chuàng)建的RAID1的超級塊信息及數(shù)據(jù)結(jié)構(gòu)(mdp_superblock_1)對比圖。如果看不清楚也沒關(guān)系,大家可以自行獲取上述進(jìn)行,并對比。

RAID的超級塊內(nèi)容非常多,在本文不可能一一介紹。這里大家只要知道這里面包含創(chuàng)建時間、RAID級別、設(shè)備大小及同步信息等內(nèi)容即可。后續(xù)我們可能會專門介紹超級塊中每個成員的具體作用。

2. 創(chuàng)建RAID核心流程

創(chuàng)建RAID的流程是由用戶態(tài)觸發(fā),內(nèi)核態(tài)具體完成的。RAID的創(chuàng)建核心分為3個步驟,具體如下:

  • 用戶態(tài)工具mdadm根據(jù)參數(shù)構(gòu)建超級塊,并寫入物理設(shè)備
  • 用戶態(tài)工具觸發(fā)創(chuàng)建md設(shè)備(RAID設(shè)備)
  • 用戶態(tài)工具觸發(fā)內(nèi)核,是RAID處于運行狀態(tài)

其中第一步我們不再解釋,原理很簡單,大家自行閱讀代碼即可。關(guān)于第二步,用戶態(tài)工具(mdadm)通過向/sys/module/md_mod/parameters/new_array中寫入一個名為md*的字符串來觸發(fā)內(nèi)核創(chuàng)建md設(shè)備。

圖6 RAID創(chuàng)建流程

這里的核心是分配一個關(guān)于md設(shè)備的數(shù)據(jù)結(jié)構(gòu)(mddev),并且調(diào)用通用塊層的接口創(chuàng)建一個通用塊設(shè)備并添加(add_disk)到系統(tǒng)。成功之后,我們就可以在/dev目錄下看到我們想創(chuàng)建的md設(shè)備了,設(shè)備名稱就是mdadm傳入的參數(shù)。這里面需要重點關(guān)注的是,在分配md設(shè)備的數(shù)據(jù)結(jié)構(gòu)的時候會關(guān)聯(lián)一個名為md_make_request的函數(shù),該函數(shù)就是RAID的IO處理函數(shù)。

此時已經(jīng)可以看到設(shè)備,但是還不能使用,因為RAID設(shè)備還沒有與底層的物理設(shè)備關(guān)聯(lián)起來。因此,后續(xù)mdadm工具會通過系統(tǒng)調(diào)用觸發(fā)內(nèi)核啟動RAID,具體流程如圖7所示。

RAID啟動流程

圖7 RAID啟動流程

此時,內(nèi)核會根據(jù)超級塊信息執(zhí)行若干動作,并且更改其中某些狀態(tài)標(biāo)記。成功之后RAID設(shè)備就可以使用了。關(guān)于細(xì)節(jié)我們這里不做介紹,介紹了大家也記不住,有興趣的同學(xué)可以自行閱讀代碼。

3. 讀寫請求核心流程

前文我們知道創(chuàng)建RAID其實是創(chuàng)建了一個通用塊設(shè)備,并注冊了請求處理函數(shù)(md_make_request)。當(dāng)在用戶態(tài)通過文件系統(tǒng)接口訪問該塊設(shè)備(RAID)時,虛擬文件系統(tǒng)會調(diào)用該函數(shù)(請參考本號之前關(guān)于SCSI磁盤的文章)。因此,關(guān)于RAID的讀寫流程,我們就從該函數(shù)開始介紹,下面先看一下整體流程。

圖8 讀寫流程

從圖8可以看出整個流程還是比較簡單的。在公共層會根據(jù)參數(shù)調(diào)用個性層的接口,對于RAID1來說就是調(diào)用raid1_make_request函數(shù)。該函數(shù)中會根據(jù)請求類型出現(xiàn)不同的分支,上圖是寫數(shù)據(jù)的流程。

RAID1本身比較簡單(請求分別放入底層物理磁盤),IO經(jīng)過簡單處理后會放入一個隊列中。然后喚醒守護(hù)線程刷寫隊列。

責(zé)任編輯:趙寧寧 來源: itworld123
相關(guān)推薦

2010-12-28 19:50:21

可靠性產(chǎn)品可靠性

2010-12-28 20:04:10

網(wǎng)絡(luò)的可靠性網(wǎng)絡(luò)解決方案可靠性

2017-06-23 18:25:51

kafka數(shù)據(jù)可靠性

2016-12-22 15:27:22

數(shù)據(jù)中心NFV運營商

2011-05-25 19:31:07

Stratus信息化

2010-12-28 20:16:24

2020-12-06 14:51:23

物聯(lián)網(wǎng)可靠性IOT

2010-12-28 19:55:20

軟件架構(gòu)可靠性

2013-11-04 17:04:22

容錯可靠

2024-05-09 08:04:23

RabbitMQ消息可靠性

2009-04-08 10:23:00

軟交換網(wǎng)絡(luò)可靠

2015-06-09 14:04:04

2018-05-07 10:20:38

Kafka存儲機(jī)制

2013-11-04 17:05:37

銀行容錯

2011-05-04 19:17:36

VPLSVPN技術(shù)

2021-02-02 11:01:31

RocketMQ消息分布式

2018-09-27 14:13:27

云服務(wù)可靠故障

2024-02-28 10:26:04

物聯(lián)網(wǎng)數(shù)據(jù)存儲

2023-11-17 09:00:00

Kafka開發(fā)

2013-10-14 16:47:06

虛擬化容錯服務(wù)器
點贊
收藏

51CTO技術(shù)棧公眾號

在线日韩欧美| 日韩高清不卡一区二区| 欧美亚洲一区三区| 国产成人av电影在线观看| 欧美精品在线免费观看| 一级视频在线免费观看| 狠狠久久亚洲欧美| 亚洲自拍小视频| 99这里只有精品视频| 精品播放一区二区| av大片在线看| 亚洲v日本v欧美v久久精品| 人妻少妇精品久久| 在线观看欧美www| 欧美色图另类| 看片的网站亚洲| 欧美激情国内偷拍| 国产欧美日韩一区二区三区四区| gogo大胆日本视频一区| 亚洲mm色国产网站| 欧美电影完整版在线观看| 日韩精品一区二区在线| 天堂аⅴ在线最新版在线| 国产精品欧美一区喷水| 欧美另类videos| 亚洲第一区色| 国产精品久久久久久久久久久不卡 | 欧美一级片免费观看| 九九视频精品全部免费播放| 日韩中文字幕视频| 亚洲福利影院| 日韩一区二区三区高清免费看看| 极品粉嫩饱满一线天在线| 国产欧美一区二区三区沐欲| 一区二区免费在线视频| 亚洲大片av| 成人女保姆的销魂服务| 深爱激情综合| 97人人爽人人喊人人模波多| 欧美aaa视频| 日韩福利视频在线观看| 免费网站在线观看人| 亚洲免费在线观看| 午夜精品久久久内射近拍高清| 久久国产精品第一页| 欧美日本亚洲| 香蕉久久夜色精品| 国产98在线|日韩| 三级国产在线观看| 中文字幕亚洲不卡| 波多野结衣xxxx| 久久精品视频在线免费观看| 美女扒开大腿让男人桶| 亚洲成人影院麻豆| 岛国av午夜精品| 久久国产情侣| 国产伦精品一区二区三区在线观看 | av资源在线看片| 精品成人国产在线观看男人呻吟| 成人黄色免费电影| 国产精品丝袜一区| 97精品国产97久久久久久免费| 日韩一级电影| 致1999电视剧免费观看策驰影院| 国产黄色免费在线观看| 国产精品美女主播在线观看纯欲| 日韩av中文在线观看| 国产v日韩v欧美v| 欧美主播一区二区三区| 久草在线资源视频| 亚洲国产精品一区二区www在线| 污网站在线看| 人妻夜夜添夜夜无码av | 欧美人与性动交| 一区二区三区亚洲变态调教大结局| 精品国偷自产在线视频99| 日韩三级av高清片| 91爱视频在线| 91精品国产综合久久久久久丝袜| 国产成人午夜视频| 全黄性性激高免费视频| 亚洲一区二区三区四区的 | 久久三级福利| 日韩动漫在线观看| 国产成人午夜精品5599| 免费看a级黄色片| 欧美丰满一区二区免费视频| 日韩女优人人人人射在线视频| 亚洲一区不卡| 成人亚洲精品777777大片| 日本韩国欧美在线| 欧州一区二区三区| av五月天在线| 亚洲精品国产福利| 波多野结衣在线观看一区二区三区 | 国产成人免费xxxxxxxx| 国产精品视频在线播放| 这里只有精品在线| 日韩免费毛片| 亚洲三级久久久| av免费在线免费| 日韩亚洲精品电影| 欧美88av| 国产视频一区二区视频| 欧美久久久久久久久久| 久久av网站| 天天人人精品| 精品久久久久久久久久久久久| av资源网在线播放| 91精品国产综合久久香蕉| kk眼镜猥琐国模调教系列一区二区 | 91亚洲精品久久久蜜桃网站| 三上悠亚在线免费观看| 在线丨暗呦小u女国产精品| 欧美在线首页| 成人羞羞国产免费网站| 91精品欧美久久久久久动漫| 成人h动漫精品一区二区器材| 日本午夜精品一区二区| 一区二区三区四区亚洲| 日韩一区二区三区免费| 成人综合电影| 亚洲精品免费看| 日韩福利影视| 欧美久久久久久| 天天亚洲美女在线视频| 亚洲性视频在线| 国产激情在线看| 69av一区二区三区| 久久一区91| juliaann成人作品在线看| 日韩精品视频免费专区在线播放| 欧美高清一区| 日本五十路在线| 久久久久久国产免费| 国产精品一区二区久激情瑜伽| 日本在线免费| 91精品中国老女人| 亚洲毛片av在线| 国产精品一区二区中文字幕| 久色视频在线播放| 尤物99国产成人精品视频| 精品一区二区三区视频在线观看| av色图一区| 翡翠波斯猫1977年美国| 欧美日韩在线观看视频| 日韩精品在线观看网站| 综合一区av| 中文视频在线| 国产精品一区二区电影| 一区二区成人在线观看| 久久久伦理片| 一区二区xxx| 久久久久久久久电影| 国产亚洲精品aa| 久久伦理中文字幕| 久久精品免费一区二区| 中文字幕亚洲二区| 成人av资源在线| 欧美视频在线视频精品| 北条麻妃69av| 九九热r在线视频精品| 91丨九色porny丨蝌蚪| 久久久久久久性潮| 欧美老熟妇喷水| 欧美黑人又粗大| 一区精品在线播放| 台湾亚洲精品一区二区tv| 福利视频一区二区三区四区| 亚洲天堂av在线免费| 成人av动漫在线| 亚洲网站免费| www日韩在线观看| 97av在线播放| 亚洲国产日韩在线一区模特| 午夜影院欧美| 哥也色在线视频| 亚洲成年人专区| 久久精品视频99| 国产精品国产自产拍在线| 日韩在线观看| 黄色片在线免费看| 日本免费高清一区二区| 亚洲香蕉伊综合在人在线视看 | 欧美激情综合| 欧美日本一道| 日本a在线天堂| 九九九久久国产免费| 一区二区在线电影| 在线欧美福利| 婷婷激情一区| 国产福利在线播放| 精品国产区在线| 亚洲性视频网址| 国产精品理论在线观看| 综合亚洲视频| 成人欧美大片| 嫩草嫩草嫩草| 欧美午夜精品久久久久免费视| 亚洲天堂av电影|