?
一、IO 系統(tǒng)的分層
?
二、IO 模型
這部分的東西在網(wǎng)絡(luò)編程經(jīng)常能看到,不過在所有IO處理中都是類似的。2.1 IO請(qǐng)求的兩個(gè)階段等待資源階段:IO請(qǐng)求一般需要請(qǐng)求特殊的資源(如磁盤、RAM、文件),當(dāng)資源被上一個(gè)使用者使用沒有被釋放時(shí),IO請(qǐng)求就會(huì)被阻塞,直到能夠使用這個(gè)資源。使用資源階段:真正進(jìn)行數(shù)據(jù)接收和發(fā)生。2.2 在等待數(shù)據(jù)階段,IO分為阻塞IO和非阻塞IO。
阻塞IO:資源不可用時(shí),IO請(qǐng)求一直阻塞,直到反饋結(jié)果(有數(shù)據(jù)或超時(shí))。非阻塞IO:資源不可用時(shí),IO請(qǐng)求離開返回,返回?cái)?shù)據(jù)標(biāo)識(shí)資源不可用2.3 在使用資源階段,IO分為同步IO和異步IO。
同步IO:應(yīng)用阻塞在發(fā)送或接收數(shù)據(jù)的狀態(tài),直到數(shù)據(jù)成功傳輸或返回失敗。異步IO:應(yīng)用發(fā)送或接收數(shù)據(jù)后立刻返回,數(shù)據(jù)寫入OS緩存,由OS完成數(shù)據(jù)發(fā)送或接收,并返回成功或失敗的信息給應(yīng)用。
-
阻塞IO
-
非阻塞IO
-
IO復(fù)用
-
信號(hào)驅(qū)動(dòng)的IO
-
異步IO
三、最重要的三個(gè)指標(biāo)
?3.1 IOPSIOPS,即每秒鐘處理的IO請(qǐng)求數(shù)量。IOPS是隨機(jī)訪問類型業(yè)務(wù)(OLTP類)很重要的一個(gè)參考指標(biāo)。3.12 一塊物理硬盤能提供多少IOPS?從磁盤上進(jìn)行數(shù)據(jù)讀取時(shí),比較重要的幾個(gè)時(shí)間是:尋址時(shí)間(找到數(shù)據(jù)塊的起始位置),旋轉(zhuǎn)時(shí)間(等待磁盤旋轉(zhuǎn)到數(shù)據(jù)塊的起始位置),傳輸時(shí)間(讀取數(shù)據(jù)的時(shí)間和返回的時(shí)間)。其中尋址時(shí)間是固定的(磁頭定位到數(shù)據(jù)的存儲(chǔ)的扇區(qū)即可),旋轉(zhuǎn)時(shí)間受磁盤轉(zhuǎn)速的影響,傳輸時(shí)間受數(shù)據(jù)量大小的影響和接口類型的影響(不同的硬盤接口速度不同),但是在隨機(jī)訪問類業(yè)務(wù)中,他的時(shí)間也很少。因此,在硬盤接口相同的情況下,IOPS主要受限于尋址時(shí)間和傳輸時(shí)間。以一個(gè)15K的硬盤為例,尋址時(shí)間固定為4ms,旋轉(zhuǎn)時(shí)間為60s/15000*1/2(最多轉(zhuǎn)半圈)=2ms,一般計(jì)算IOPS都忽略傳輸時(shí)間。1000ms/6ms=167個(gè)IOPS。3.13 OS的一次IO請(qǐng)求對(duì)應(yīng)物理硬盤一個(gè)IO嗎?在沒有文件系統(tǒng)、沒有VM(卷管理)、沒有RAID、沒有存儲(chǔ)設(shè)備的情況下,這個(gè)答案還是成立的。但是當(dāng)這么多中間層加進(jìn)去以后,這個(gè)答案就不是這樣了。物理硬盤提供的IO是有限的,也是整個(gè)IO系統(tǒng)存在瓶頸的最大根源。所以,如果一塊硬盤不能提供,那么多塊在一起并行處理,這不就行了嗎?確實(shí)是這樣的。可以看到,越是高端的存儲(chǔ)設(shè)備的cache越大,硬盤越多,一方面通過cache異步處理IO,另一方面通過盤數(shù)增加,盡可能把一個(gè)OS的IO分布到不同硬盤上,從而提高性能。文件系統(tǒng)則是在cache上會(huì)影響,而VM則可能是一個(gè)IO分布到多個(gè)不同設(shè)備上(Striping)。所以,一個(gè)OS的IO在經(jīng)過多個(gè)中間層以后,發(fā)生在物理磁盤上的IO是不確定的。可能是一對(duì)一個(gè),也可能一個(gè)對(duì)應(yīng)多個(gè)。3.14 IOPS能算出來嗎?對(duì)單塊磁盤的IOPS的計(jì)算沒有沒問題,但是當(dāng)系統(tǒng)后面接的是一個(gè)存儲(chǔ)系統(tǒng)時(shí)、考慮不同讀寫比例,IOPS則很難計(jì)算,而需要根據(jù)實(shí)際情況進(jìn)行測(cè)試。主要的因素有:存儲(chǔ)系統(tǒng)本身有自己的緩存。緩存大小直接影響IOPS,理論上說,緩存越大能cache的東西越多,在cache命中率保持的情況下,IOPS會(huì)越高。RAID級(jí)別。不同的RAID級(jí)別影響了物理IO的效率。讀寫混合比例。對(duì)讀操作,一般只要cache能足夠大,可以大大減少物理IO,而都在cache中進(jìn)行;對(duì)寫操作,不論cache有多大,最終的寫還是會(huì)落到磁盤上。因此,100%寫的IOPS要越獄小于100%的讀的IOPS。同時(shí),100%寫的IOPS大致等同于存儲(chǔ)設(shè)備能提供的物理的IOPS。一次IO請(qǐng)求數(shù)據(jù)量的多少。一次讀寫1KB和一次讀寫1MB,顯而易見,結(jié)果是完全不同的。當(dāng)時(shí)上面N多因素混合在一起以后,IOPS的值就變得撲朔迷離了。所以,一般需要通過實(shí)際應(yīng)用的測(cè)試才能獲得。3.2 IO Response Time即IO的響應(yīng)時(shí)間。IO響應(yīng)時(shí)間是從操作系統(tǒng)內(nèi)核發(fā)出一個(gè)IO請(qǐng)求到接收到IO響應(yīng)的時(shí)間。因此,IO Response time除了包括磁盤獲取數(shù)據(jù)的時(shí)間,還包括了操作系統(tǒng)以及在存儲(chǔ)系統(tǒng)內(nèi)部IO等待的時(shí)間。一般看,隨IOPS增加,因?yàn)镮O出現(xiàn)等待,IO響應(yīng)時(shí)間也會(huì)隨之增加。對(duì)一個(gè)OLTP系統(tǒng),10ms以內(nèi)的響應(yīng)時(shí)間,是比較合理的。下面是一些IO性能示例:一個(gè)8K的IO會(huì)比一個(gè)64K的IO速度快,因?yàn)閿?shù)據(jù)讀取的少些。一個(gè)64K的IO會(huì)比8個(gè)8K的IO速度快,因?yàn)榍罢咧徽?qǐng)求了一個(gè)IO而后者是8個(gè)IO。串行IO會(huì)比隨機(jī)IO快,因?yàn)榇蠭O相對(duì)隨機(jī)IO說,即便沒有Cache,串行IO在磁盤處理上也會(huì)少些操作。需要注意,IOPS與IO Response Time有著密切的聯(lián)系。一般情況下,IOPS增加,說明IO請(qǐng)求多了,IO Response Time會(huì)相應(yīng)增加。但是會(huì)出現(xiàn)IOPS一直增加,但是IO Response Time變得非常慢,超過20ms甚至幾十ms,這時(shí)候的IOPS雖然還在提高,但是意義已經(jīng)不大,因?yàn)檎麄€(gè)IO系統(tǒng)的服務(wù)時(shí)間已經(jīng)不可取。3.3 Throughput為吞吐量。這個(gè)指標(biāo)衡量標(biāo)識(shí)了最大的數(shù)據(jù)傳輸量。如上說明,這個(gè)值在順序訪問或者大數(shù)據(jù)量訪問的情況下會(huì)比較重要。尤其在大數(shù)據(jù)量寫的時(shí)候。吞吐量不像IOPS影響因素很多,吞吐量一般受限于一些比較固定的因素,如:網(wǎng)絡(luò)帶寬、IO傳輸接口的帶寬、硬盤接口帶寬等。一般他的值就等于上面幾個(gè)地方中某一個(gè)的瓶頸。3.4 一些概念3.41 IO Chunk Size即單個(gè)IO操作請(qǐng)求數(shù)據(jù)的大小。一次IO操作是指從發(fā)出IO請(qǐng)求到返回?cái)?shù)據(jù)的過程。IO Chunk Size與應(yīng)用或業(yè)務(wù)邏輯有著很密切的關(guān)系。比如像Oracle一類數(shù)據(jù)庫,由于其block size一般為8K,讀取、寫入時(shí)都此為單位,因此,8K為這個(gè)系統(tǒng)主要的IO Chunk Size。IO Chunk Size小,考驗(yàn)的是IO系統(tǒng)的IOPS能力;IO Chunk Size大,考驗(yàn)的時(shí)候IO系統(tǒng)的IO吞吐量。3.42 Queue Deep熟悉數(shù)據(jù)庫的人都知道,SQL是可以批量提交的,這樣可以大大提高操作效率。IO請(qǐng)求也是一樣,IO請(qǐng)求可以積累一定數(shù)據(jù),然后一次提交到存儲(chǔ)系統(tǒng),這樣一些相鄰的數(shù)據(jù)塊操作可以進(jìn)行合并,減少物理IO數(shù)。而且Queue Deep如其名,就是設(shè)置一起提交的IO請(qǐng)求數(shù)量的。一般Queue Deep在IO驅(qū)動(dòng)層面上進(jìn)行配置。Queue Deep與IOPS有著密切關(guān)系。Queue Deep主要考慮批量提交IO請(qǐng)求,自然只有IOPS是瓶頸的時(shí)候才會(huì)有意義,如果IO都是大IO,磁盤已經(jīng)成瓶頸,Queue Deep意義也就不大了。一般來說,IOPS的峰值會(huì)隨著Queue Deep的增加而增加(不會(huì)非常顯著),Queue Deep一般小于256。3,43 隨機(jī)訪問(隨機(jī)IO)、順序訪問(順序IO)隨機(jī)訪問的特點(diǎn)是每次IO請(qǐng)求的數(shù)據(jù)在磁盤上的位置跨度很大(如:分布在不同的扇區(qū)),因此N個(gè)非常小的IO請(qǐng)求(如:1K),必須以N次IO請(qǐng)求才能獲取到相應(yīng)的數(shù)據(jù)。順序訪問的特點(diǎn)跟隨機(jī)訪問相反,它請(qǐng)求的數(shù)據(jù)在磁盤的位置是連續(xù)的。當(dāng)系統(tǒng)發(fā)起N個(gè)非常小的IO請(qǐng)求(如:1K)時(shí),因?yàn)橐淮蜪O是有代價(jià)的,系統(tǒng)會(huì)取完整的一塊數(shù)據(jù)(如4K、8K),所以當(dāng)?shù)谝淮蜪O完成時(shí),后續(xù)IO請(qǐng)求的數(shù)據(jù)可能已經(jīng)有了。這樣可以減少IO請(qǐng)求的次數(shù)。這也就是所謂的預(yù)取。隨機(jī)訪問和順序訪問同樣是有應(yīng)用決定的。如數(shù)據(jù)庫、小文件的存儲(chǔ)的業(yè)務(wù),大多是隨機(jī)IO。而視頻類業(yè)務(wù)、大文件存取,則大多為順序IO。3.44 選取合理的觀察指標(biāo):以上各指標(biāo)中,不用的應(yīng)用場(chǎng)景需要觀察不同的指標(biāo),因?yàn)閼?yīng)用場(chǎng)景不同,有些指標(biāo)甚至是沒有意義的。隨機(jī)訪問和IOPS:?在隨機(jī)訪問場(chǎng)景下,IOPS往往會(huì)到達(dá)瓶頸,而這個(gè)時(shí)候去觀察Throughput,則往往遠(yuǎn)低于理論值。順序訪問和Throughput:在順序訪問的場(chǎng)景下,Throughput往往會(huì)達(dá)到瓶頸(磁盤限制或者帶寬),而這時(shí)候去觀察IOPS,往往很小。
四、文件系統(tǒng)的結(jié)構(gòu)
各種文件系統(tǒng)實(shí)現(xiàn)方式不同,因此性能、管理性、可靠性等也有所不同。下面為L(zhǎng)inux Ext2(Ext3)的一個(gè)大致文件系統(tǒng)的結(jié)構(gòu)。
- 直接索引:直接指向?qū)嶋H內(nèi)容信息,公有12個(gè)。因此如果,一個(gè)文件系統(tǒng)block size為1k,那么直接索引到的內(nèi)容最大為12k
- 間接索引
- 兩級(jí)間接索引
- 三級(jí)間接索引
- 塊設(shè)備就是以塊(比如磁盤扇區(qū))為單位收發(fā)數(shù)據(jù)的設(shè)備,它們支持緩沖和隨機(jī)訪問(不必順序讀取塊,而是可以在任何時(shí)候訪問任何塊)等特性。塊設(shè)備包括硬盤、CD-ROM 和 RAM 盤。
- 字符設(shè)備則沒有可以進(jìn)行物理尋址的媒體。字符設(shè)備包括串行端口和磁帶設(shè)備,只能逐字符地讀取這些設(shè)備中的數(shù)據(jù)。
- ?
- ?
- ?
# ls -l /dev/*lv
brw------- 1 root system 22, 2 May 15 2007 lv
crw------- 2 root system 22, 2 May 15 2007 rlv
-
塊設(shè)備能支持緩沖和隨機(jī)讀寫。即讀取和寫入時(shí),可以是任意長(zhǎng)度的數(shù)據(jù)。最小為1byte。對(duì)塊設(shè)備,你可以成功執(zhí)行下列命令:dd if=/dev/zero of=/dev/vg01/lv bs=1 count=1。即:在設(shè)備中寫入一個(gè)字節(jié)。硬件設(shè)備是不支持這樣的操作的(最小是512),這個(gè)時(shí)候,操作系統(tǒng)首先完成一個(gè)讀取(如1K,操作系統(tǒng)最小的讀寫單位,為硬件設(shè)備支持的數(shù)據(jù)塊的整數(shù)倍),再更改這1k上的數(shù)據(jù),然后寫入設(shè)備。
-
字符設(shè)備只能支持固定長(zhǎng)度數(shù)據(jù)的讀取和寫入,這里的長(zhǎng)度就是操作系統(tǒng)能支持的最小讀寫單位,如1K,所以塊設(shè)備的緩沖功能,這里就沒有了,需要使用者自己來完成。由于讀寫時(shí)不經(jīng)過任何緩沖區(qū),此時(shí)執(zhí)行dd if=/dev/zero of=/dev/vg01/lv bs=1 count=1,這個(gè)命令將會(huì)出錯(cuò),因?yàn)檫@里的bs(block size)太小,系統(tǒng)無法支持。如果執(zhí)行dd if=/dev/zero of=/dev/vg01/lv bs=1024 count=1,則可以成功。這里的block size有OS內(nèi)核參數(shù)決定。
- 統(tǒng)一進(jìn)行磁盤管理。按需分配空間,提供動(dòng)態(tài)擴(kuò)展。
- 條帶化(Striped)
- 鏡像(mirrored)
- 快照(snapshot)
- PV(physical volume):物理卷。在LVM中,一個(gè)PV對(duì)應(yīng)就是操作系統(tǒng)能看見的一塊物理磁盤,或者由存儲(chǔ)設(shè)備分配操作系統(tǒng)的lun。一塊磁盤唯一對(duì)應(yīng)一個(gè)PV,PV創(chuàng)建以后,說明這塊空間可以納入到LVM的管理。創(chuàng)建PV時(shí),可以指定PV大小,即可以把整個(gè)磁盤的部分納入PV,而不是全部磁盤。這點(diǎn)在表面上看沒有什么意義,但是如果主機(jī)后面接的是存儲(chǔ)設(shè)備的話就很有意義了,因?yàn)榇鎯?chǔ)設(shè)備分配的lun是可以動(dòng)態(tài)擴(kuò)展的,只有當(dāng)PV可以動(dòng)態(tài)擴(kuò)展,這種擴(kuò)展性才能向上延伸。
- VG(volume group):卷組。一個(gè)VG是多個(gè)PV的集合,簡(jiǎn)單說就是一個(gè)VG就是一個(gè)磁盤資源池。VG對(duì)上屏蔽了多個(gè)物理磁盤,上層是使用時(shí)只需考慮空間大小的問題,而VG解決的空間的如何在多個(gè)PV上連續(xù)的問題。
- LV(logical volume):邏輯卷。LV是最終可供使用卷,LV在VG中創(chuàng)建,有了VG,LV創(chuàng)建是只需考慮空間大小等問題,對(duì)LV而言,他看到的是一直聯(lián)系的地址空間,不用考慮多塊硬盤的問題。
- PE(physical extend): 物理擴(kuò)展塊。LVM在創(chuàng)建PV,不會(huì)按字節(jié)方式去進(jìn)行空間管理。而是按PE為單位。PE為空間管理的最小單位。即:如果一個(gè)1024M的物理盤,LVM的PE為4M,那么LVM管理空間時(shí),會(huì)按照256個(gè)PE去管理。分配時(shí),也是按照分配了多少PE、剩余多少PE考慮。
- LE(logical extend):邏輯擴(kuò)展塊。類似PV,LE是創(chuàng)建LV考慮,當(dāng)LV需要?jiǎng)討B(tài)擴(kuò)展時(shí),每次最小的擴(kuò)展單位。
- 數(shù)據(jù)完整性的風(fēng)險(xiǎn)。Striping導(dǎo)致一份完整的數(shù)據(jù)被分布到多個(gè)磁盤上,任何一個(gè)磁盤上的數(shù)據(jù)都是不完整,也無法進(jìn)行還原。一個(gè)條帶的損壞會(huì)導(dǎo)致所有數(shù)據(jù)的失效。因此這個(gè)問題只能通過存儲(chǔ)設(shè)備來彌補(bǔ)。
- 條帶大小的設(shè)定很大程度決定了Striping帶來的好處。如果條帶設(shè)置過大,一個(gè)IO操作最終還是發(fā)生在一個(gè)磁盤上,無法帶來并行的好處;當(dāng)條帶設(shè)置國小,本來一次并行IO可以完成的事情會(huì)最終導(dǎo)致了多次并行IO。
- 讀取操作可以從兩個(gè)磁盤上獲取,因此讀效率會(huì)更好些。
- 數(shù)據(jù)完整復(fù)雜了一份,安全性更高。
- 所有的寫操作都會(huì)同時(shí)發(fā)送在兩個(gè)磁盤上,因此實(shí)際發(fā)送的IO是請(qǐng)求IO的2倍
- 由于寫操作在兩個(gè)磁盤上發(fā)生,因此一些完整的寫操作需要兩邊都完成了才算完成,帶來了額外負(fù)擔(dān)。
- 在處理串行IO時(shí),有些IO走一個(gè)磁盤,另外一些IO走另外的磁盤,一個(gè)完整的IO請(qǐng)求會(huì)被打亂,LVM需要進(jìn)行IO數(shù)據(jù)的合并,才能提供給上層。像一些如預(yù)讀的功能,由于有了多個(gè)數(shù)據(jù)獲取同道,也會(huì)存在額外的負(fù)擔(dān)。
- 把多個(gè)映射到同一塊空間的路徑合并為一個(gè)提供給主機(jī)
- 提供fail over的支持。當(dāng)一條通路出現(xiàn)問題時(shí),及時(shí)切換到其他通路
- 提供load balance的支持。即同時(shí)使用多條路徑進(jìn)行數(shù)據(jù)傳送,發(fā)揮多路徑的資源優(yōu)勢(shì),提高系統(tǒng)整體帶寬。
?
RAID 6與RAID 5類似。但是提供了兩塊校驗(yàn)盤(下圖右下角為p和q的)。安全性更高,寫性能更差了。RAID 0最少需要4塊盤。
RAID 10(Striped mirror)RAID 10是RAID 0 和RAID 1的結(jié)合,同時(shí)兼顧了二者的特點(diǎn),提供了高性能,但是同時(shí)空間使用也是最大。RAID 10最少需要4塊盤。需要注意,使用RAID 10來稱呼其實(shí)很容易產(chǎn)生混淆,因?yàn)镽AID 0+1和RAID 10基本上只是兩個(gè)數(shù)字交換了一下位置,但是對(duì)RAID來說就是兩個(gè)不同的組成。因此,更容易理解的方式是“Striped mirrors”,即:條帶化后的鏡像——RAID 10;或者“mirrored stripes”,即:鏡像后的條帶化。比較RAID 10和RAID 0+1,雖然最終都是用到了4塊盤,但是在數(shù)據(jù)組織上有所不同,從而帶來問題。RAID 10在可用性上是要高于RAID 0+1的:- RAID 0+1 任何一塊盤損壞,將失去冗余。如圖4塊盤中,右側(cè)一組損壞一塊盤,左側(cè)一組損壞一塊盤,整個(gè)盤陣將無法使用。而RAID 10左右各損壞一塊盤,盤陣仍然可以工作。
- RAID 0+1 損壞后的恢復(fù)過程會(huì)更慢。因?yàn)橄冉?jīng)過的mirror,所以左右兩組中保存的都是完整的數(shù)據(jù),數(shù)據(jù)恢復(fù)時(shí),需要完整恢復(fù)所以數(shù)據(jù)。而RAID 10因?yàn)橄葪l帶化,因此損壞數(shù)據(jù)以后,恢復(fù)的只是本條帶的數(shù)據(jù)。如圖4塊盤,數(shù)據(jù)少了一半。
-
RAID與LVM中的條帶化原理上類似,只是實(shí)現(xiàn)層面不同。在存儲(chǔ)上實(shí)現(xiàn)的RAID一般有專門的芯片來完成,因此速度上遠(yuǎn)比LVM塊。也稱硬RAID。
-
如上介紹,RAID的使用是有風(fēng)險(xiǎn)的,如RAID 0,一塊盤損壞會(huì)導(dǎo)致所有數(shù)據(jù)丟失。因此,在實(shí)際使用中,高性能環(huán)境會(huì)使用RAID 10,兼顧性能和安全;一般情況下使用RAID 5(RAID 50),兼顧空間利用率和性能;
-
單臺(tái)主機(jī)。在這種情況下,存儲(chǔ)作為主機(jī)的一個(gè)或多個(gè)磁盤存在,這樣局限性也是很明顯的。由于受限于主機(jī)空間,一個(gè)主機(jī)只能裝一塊到幾塊硬盤,而硬盤空間時(shí)受限的,當(dāng)磁盤滿了以后,你不得不為主機(jī)更換更大空間的硬盤。
-
獨(dú)立存儲(chǔ)空間。為了解決空間的問題,于是考慮把磁盤獨(dú)立出來,于是有了DAS(Direct Attached Storage),即:直連存儲(chǔ)。DAS就是一組磁盤的集合體,數(shù)據(jù)讀取和寫入等也都是由主機(jī)來控制。但是,隨之而來,DAS又面臨了一個(gè)他無法解決的問題——存儲(chǔ)空間的共享。接某個(gè)主機(jī)的JBOD(Just a Bunch Of Disks,磁盤組),只能這個(gè)主機(jī)使用,其他主機(jī)無法用。因此,如果DAS解決空間了,那么他無法解決的就是如果讓空間能夠在多個(gè)機(jī)器共享。因?yàn)镈AS可以理解為與磁盤交互,DAS處理問題的層面相對(duì)更低。使用協(xié)議都是跟磁盤交互的協(xié)議
-
獨(dú)立的存儲(chǔ)網(wǎng)絡(luò)。為了解決共享的問題,借鑒以太網(wǎng)的思想,于是有了SAN(Storage Area Network),即:存儲(chǔ)網(wǎng)絡(luò)。對(duì)于SAN網(wǎng)絡(luò),你能看到兩個(gè)非常特點(diǎn),一個(gè)就是光纖網(wǎng)絡(luò),另一個(gè)是光纖交換機(jī)。SAN網(wǎng)絡(luò)由于不會(huì)之間跟磁盤交互,他考慮的更多是數(shù)據(jù)存取的問題,因此使用的協(xié)議相對(duì)DAS層面更高一些。光纖網(wǎng)絡(luò):對(duì)于存儲(chǔ)來說,與以太網(wǎng)很大的一個(gè)不同就是他對(duì)帶寬的要求非常高,因此SAN網(wǎng)絡(luò)下,光纖成為了其連接的基礎(chǔ)。而其上的光纖協(xié)議相比以太網(wǎng)協(xié)議而言,也被設(shè)計(jì)的更為簡(jiǎn)潔,性能也更高。光纖交換機(jī):這個(gè)類似以太網(wǎng),如果想要做到真正的“網(wǎng)絡(luò)”,交換機(jī)是基礎(chǔ)。
-
網(wǎng)絡(luò)文件系統(tǒng)。存儲(chǔ)空間可以共享,那文件也是可以共享的。NAS(Network attached storage)相對(duì)上面兩個(gè),看待問題的層面更高,NAS是在文件系統(tǒng)級(jí)別看待問題。因此他面的不再是存儲(chǔ)空間,而是單個(gè)的文件。因此,當(dāng)NAS和SAN、DAS放在一起時(shí),很容易引起混淆。NAS從文件的層面考慮共享,因此NAS相關(guān)協(xié)議都是文件控制協(xié)議。NAS解決的是文件共享的問題;SAN(DAS)解決的是存儲(chǔ)空間的問題。NAS要處理的對(duì)象是文件;SAN(DAS)要處理的是磁盤。為NAS服務(wù)的主機(jī)必須是一個(gè)完整的主機(jī)(有OS、有文件系統(tǒng),而存儲(chǔ)則不一定有,因?yàn)榭梢运竺嬗纸恿艘粋€(gè)SAN網(wǎng)絡(luò)),他考慮的是如何在各個(gè)主機(jī)直接高效的共享文件;為SAN提供服務(wù)的是存儲(chǔ)設(shè)備(可以是個(gè)完整的主機(jī),也可以是部分),它考慮的是數(shù)據(jù)怎么分布到不同磁盤。NAS使用的協(xié)議是控制文件的(即:對(duì)文件的讀寫等);SAN使用的協(xié)議是控制存儲(chǔ)空間的(即:把多長(zhǎng)的一串二進(jìn)制寫到某個(gè)地址)
?
審核編輯:湯梓紅
評(píng)論