ATA-over-Ethernet(AoE)介紹

 

ATA-over-Ethernet(AoE)介紹:一種 iSCSI 與 Fibre Channel 之替代方案,TeraByte 等級磁碟儲存系統

本文主要介紹 ATA-over-Ethernet(AoE):一種使用在儲存設備之通訊協定,並且實做在 Linux 上實際運用,並簡介「儲存設備與儲存架構」與其相關名詞解釋。

AoE 介紹

AoE 實際上是「通訊協定」(Protocol),由 Coraid 公司所主導開發,AoE 就像她名稱一樣(ATA-over-Ethernet),主要應用就是使 Ethernet 上面運作 ATA 通訊方式,來傳輸儲存設備的資料。

AoE 有其優缺點,但必須先使讀者了解一些磁碟相關技術,才更能體會 AoE 在實務應用方面強大功能。

Note:「 http://www.coraid.com/ 」可看到 Coraid 公司與 AoE 的一些相關消息。
Tips:Linux 在 Kernel 2.6.11 以後,就內建支援 AoE 囉!
(舊版 Kernel 只好手動掛上 AoE 驅動程式,才能使用 AoE 設備)

coraid 圖檔

磁碟演進簡介

在討論 AoE 優點前,先說明一般磁碟配置方式、儲存設備與儲存架構相關之基本觀念。

「內接式」磁碟機與「外接式」磁碟機

在一般 PC 通常我們會將磁碟放置在電腦機殼裡,也就是「內接式」磁碟機,早期通常使用 IDE 或 SCSI 介面硬碟機,近年來 SATA (Serial-ATA)介面當道,漸漸取代 ATA(Parallel-ATA)介面市場。

在商業用途上,我們會因為較特殊需求,像是「磁碟機數量較多」、「磁碟總空間需求大」、「I/O 要求效能高」或「RAID(能夠容錯與增加 I/O 速度)」與等等因素,使得我們會把磁碟從電腦肚子裡(電腦機殼),外接到其他機箱中統一放置,並採用比較高規格設備,以取得更高效能。

Tips:此種外接硬碟方式一般稱之為 DAS(Direct-Attached Storage)『直接附加儲存裝置』,在底下名詞解釋時會有較詳細資料。

內接、外接磁碟圖檔

網路磁碟機與磁碟分享

一般價格較低廉 DAS 優點通常為「磁碟空間大」、「效能好」與「配合 RAID 作容錯」,缺點中以「無法分享儲存空間給多台主機」是最為淺顯易見,若是 DAS 遇到這個磁碟共享需求,經常會被 NAS(Network-Attached Storage)『網路附加儲存裝置』取而代之。

Tips:接上 DAS 的控制主機若使用 NFS/CIFS 來分享磁區,其實與 NAS 就非常類似。
Note:但 NAS、DAS 在存取(Access)資料方面有著很大的不同,就是存取磁碟資料方式與等級:
  • DAS:使用起來像是本機磁碟,會被當作區塊裝置(Block)存取,若是初次使用(尚未格式化),還必須先行做格式化的動作,才可以掛載存取檔案。
  • NAS:像是網路上已經格式化好的檔案系統(File System),我們只要掛載即可使用(權限要設定正確即可),NAS 的重點在於可將磁碟給予多台主機同時存取,但需注意到她只做到 File-Level Access 並沒有做到 Block-Level I/O 存取。

 

 DASNAS
存取等級(Access Level)Block-Level(區塊)I/OFile-Level(檔案)Access
可否格式化(format)可以不行(NAS Server 已經做過格式化)
儲存空間可否共享(Shared)通常不行可以
進階學習:中、高階的 DAS 可提供區塊等級磁碟共享功能,但通常最多給 2 到 4 台主機共享。

DAS、NAS 示意圖檔

HA Cluster 與 SAN

當磁碟可以共享後,HA(High-Availability)「高可用度」需求隨之而來,HA Cluster(高可用度叢集)她存取後端儲存設備通常使用 Block-Level I/O 方式,極少使用 File-Level Access,這主要考量「應用程式支援程度(例如:資料庫程式)」及「效能(Block-Level I/O 效能較佳)」

HA 架構示意圖檔

倘若要做到 Block-Level I/O(區塊存取)又要 Shared Disk(磁碟共享)的話,需使用 SAN(Storage Area Network)這個儲存網路架構才行,這是個專門傳輸磁碟資料網路,並不是我們一般常見 TCP/IP 網路。

高階專業 SAN 是使用 Fibre Channel(光纖通道)配合 Fibre Channel Switch(光纖交換機)架構,採用 SCSI 方式來傳輸資料,所有 Fibre SAN 成員主機需要有 Fibre 介面卡(HBA 全名為 Host Bus Adapter),才能存取 Fibre Channel SAN Storage(儲存設備),Fibre Channel SAN 效能卓越伴隨著價格不菲。

進階學習:較廉價 SAN 還有 iSCSI,她使用 Gigabit Ethernet 來取代昂貴高效能的光纖(Fibre Channel),iSCSI 亦有其優缺點,將在本文後段名詞解釋中有更詳細介紹及比較。
Note:AoE 亦可用在 SAN 架構,她當然更便宜、溝通簡單(使用 ATA 方式),相同的是 AoE、iSCSI 與 Fibre Channel 皆為 Block-Level I/O 方式。
另外 IEEE 1394(Firewire) 亦有可能架構 SAN 。

SAN 架構示意圖檔

動態配置磁碟空間

完成 SAN 架構之後,事實上只做到「儲存設備集中管理」,主機與磁碟之間依然採用 1 對 1 方式,這樣集中管理好處是,若能配合磁碟管理程式(例如:LVM)動態配置磁碟空間,可減少磁碟空間浪費(DAS 最容易造成磁碟空間浪費)。

LVM 示意圖檔

Cluster File System

若要作到 HA Cluster ,只有 SAN 是不夠的,還必須配合 Cluster File System(叢集檔案系統),若只是使用一般檔案系統(例如:Ext3, ReiserFS 或 NTFS),SAN Storage 只能算是一個個獨立磁區,同時間只能給一台主機存取,Cluster File System 在 Linux 以 GFS(Global File System)較具知名度,也比較有機會實做。

進階學習:其他較知名 Cluster File System 還有 Lustre ,不然就是大廠如 IBM、HP、Sun 提供。

Cluster File System 示意圖檔

應用程式支援

在使用 Cluster File System 後,多台主機即可以 Block-Level I/O 方式來同時存取相同磁區。大多數應用程式(像是 E-mail Server、Web Server、Ftp Server、File Server 等等 程式)理論上都沒甚麼問題,頂多是發生一些 File Lock 狀況,不見得會影響整體運作,但是資料庫程式(像是 Oracle、MySQL、PostgreSQL 等等),就不一定能夠很正常運行,完善解決之道還需應用程式配合,例如 Oracle RAC(Real Application Clusters)就是一個很具知名度的資料庫叢集軟體。

AoE 優點

在此探討 AoE 優點,主要是相對於 iSCSI 與 Fibre Channel 來比較,這三種共同功能即是可建立 Block-Level I/O 之 Shared Storage(共享磁碟)。

便宜

因為 Fibre Channel(光纖)設備一般來說都不便宜,相對的 AoE 使用 Ethernet (通常是 Gigabit Ethernet)作傳輸線,這點與 iSCSI 也使用 Ethernet 來傳輸資料相當類似,這可節省不少成本。

簡單

AoE 使用 ATA 通訊方式來傳輸資料,這與 iSCSI 使用 SCSI 通訊還必須經過 TCP/IP 封包處理,兩者相較之下 AoE 著實簡單多了。

進階學習:AoE 使用 Layer 2 Frame 方式傳輸 ATA 通訊資料,而 iSCSI 使用 Layer 3 TCP/IP 封包來傳輸 SCSI 通訊資料。

AoE 優點示意圖檔

AoE 缺點

成熟度

以發展成熟度來看,Fibre Channel 可說是成熟度最高之商品,接著才是 iSCSI 第二,而 AoE 算是敬陪末座,若以中高階運用來看 AoE 還很有努力空間。

傳輸距離

Fibre Channel 在遠距傳輸有著優勢存在,而 iSCSI 雖以 Ethernet 傳輸,但因 Base 在 TCP/IP 所以可以通過 router 而傳輸到遠方,AoE 的傳輸距離就侷限在 Ethernet 能傳輸的距離。

Note:這裡「遠距」是指跨越不同地點,而且若是使用 Ethernet 會無法傳遞或是訊號不足的距離。
Tips:「遠距傳輸」需求經常是由『異地備援』促成。

效能

理論上效能會是 Fibre Channel 第一,iSCSI 與 AoE 第二且差別不大,主因是 Fibre Channel 以每秒 4Gb / 2Gb / 1Gb 速度傳輸,而 iSCSI 與 AoE 以每秒 1Gb / 100Mb (0.1Gb)傳輸速度所造成差異。

Note:單位為 bit / sec,例 4 Gb/s 為每秒傳輸 4 Gigabit。
進階學習:這裡說的「效能比較」是相對於高階設備,若是與一般低階設備(ATA / SATA)比較那可是快多了。

AoE 實做開始

AoE 實做所需設備如下:

  • 兩台 Linux PC,並使用 Ethernet 串接起來(兩台對接也可以)
  • 如果有 GbE Switch 最好,若沒有也可以使用一般交換機
Tips:GbE Switch 即「千兆交換機」

Initiator 與 Target

對於 SAN 架構來說:Initiator 是「使用磁碟」主機端、Target 是「提供磁碟」主機端

Linux kernel 在 2.6.11 即內建 AoE 驅動程式(Initiator 端),所以建議讀者使用較新版本 Linux 來當 Initiator 主機(筆者使用 Fedora core 5),你可使用指令「uname -r」來檢視 Linux kernel 版本編號。

若想要測試比較舊版 kernel (例如 2.4 版或 2.6.11 之前版本)來當 Initiator 的話,請自行至「http://www.coraid.com/support/linux/」下載、編譯與測試。

Target 端主機需下載「vblade」軟體來編譯使用 ,下載網址「http://sourceforge.net/projects/aoetools/」

硬體為一般 PC,若搭配 GbE 網路卡及 GbE 交換機更能顯示出效能。

 

角色InitiatorTarget
Linux 版本Fedora core 5SuSE 10 professional
AoE 相關軟體內建 AoE 驅動程式下載 vblade 軟體

下載 vblade 示意圖檔

架構

原本 SAN 架構需「獨立」網路,以區隔一般 TCP/IP 網路,筆者為測試方便,遂使用相同網路介面(兩台主機都只有一張網路卡 eth0)。

設定 Target 主機

以下步驟是在 Target 主機上實做的,內容與先前下載 vblade 包裹內的 README 類似

第一步:解開並編譯 vblade 軟體

使用指令「tar -zxvf vblade-10.tar.gz」解開包裹
使用指令「cd vblade-10」進入解開的目錄 vblade-10
使用指令「make」編譯產生 vblade 二進位執行檔案

Note:記得要先安裝 gcc、make 等等編譯工具,否則無法進行編譯工作。
Tips:vblade 有虛擬(Virtual)刀片(Blade)之意。

解開、編譯與執行 vblade 示意圖檔

第二步:啟用 vblade 軟體,將本機裝置分享出去,筆者以下分享裝置 /dev/sdb(第二個 SATA 或 SCSI 硬碟)

執行剛才編譯出來之 vblade 執行檔,使用指令「./vblade 1 2 eth0 /dev/sdb」其中

第一個參數 1 為 <shelf>

第二個參數 2 是 <slot>

第三個參數 eth0 是 AoE 網路介面

第四個參數 /dev/sdb 是分享出去的裝置

Tips:shelf、slot 的中文分別是「一格一格的架子」與「插槽」意思,建議之數值為 0-15 之間。
Note:請勿將 Target 主機重要資料裝置分享給不信任之 AoE 網路,以免發生資訊安全問題。

shelf 與 slot 示意圖檔

設定 Initiator 主機

接下來步驟是在 Initiator 主機上做的,目的是要使用 Target 主機所分享出來之裝置

第一步:載入 AoE 模組

使用指令「modprobe aoe」載入 AoE 核心模組(也可稱為『驅動程式』)

第二步:確認偵測到 AoE 裝置於「/dev/etherd/」目錄下

使用指令「ls /dev/etherd/」來列出所偵測到 AoE 裝置

筆者範例為偵測到有一顆 e1.2 磁碟並且有一個已經切割好的分割區(partition)e1.2p1

因為筆者在 Target 主機已經格式化過 /dev/sdb1 分割區,所以要存取此分割區資料則使用指令「mount /dev/etherd/e1.2p1 /mnt」掛載在 /mnt 下即可。

進階學習:可使用指令「modprobe -r aoe」來移除 AoE 核心模組
特別注意:請勿試圖以不同電腦來同時讀寫相同裝置,除非您使用 Cluster File System(例如 GFS)而非一般檔案系統(例如 Ext3 或 ReiserFS),此舉可能會導致資料錯亂與損毀。

Initiator 示意圖檔

AoE 進階使用介紹

先前介紹 AoE 使用方式,是直接將 Target 主機上的 device 交給 Initiator 主機使用,這應該是最簡單的 AoE 使用方法,以下介紹 AoE 進階應用,將可以學到更多 Linux 技術。

Target 主機使用『檔案』當作 AoE 磁碟分享出去

Target 主機除了使用『本機裝置』來當 AoE 磁碟外,還可以使用『檔案』來當作 AoE 磁碟。

第一步:使用 dd 指令來製作檔案

使用指令「dd if=/dev/zero of=testfile bs=1024 count=1 seek=1048576」製作出一個約 1.1 GB 、檔名為 testfile 的檔案。

參數解釋如下:

if 來源檔案 /dev/zero(即電腦最基本運算的 0 與 1 中的『0』)

of 目的檔案 testfile

bs I/O 的 BYTES

count 次數

seek 目的忽略幾個 blocks

進階學習:請使用指令「man dd」來參考 dd 說明文件
Tips:若需要更大的檔案,只須加大 seek=「數字」,1048576 是 1024 x 1024 的結果。

第二步:使用 losetup 將 testfile 聯繫成 loop device

使用指令「losetup /dev/loop0 testfile」將 loop0 與 testfile 聯繫

之後存取 /dev/loop0 就會存取到 testfile

進階學習:loop 裝置預設有 /dev/loop0 到 /dev/loop7
使用「losetup /dev/loopN」可查詢 loop device 與 loop file 之間關係
使用「losetup /dev/loopN loopfile」來關聯 loop file 與 loop device
使用「losetup -d /dev/loopN」可移除兩者關聯性

第三步:使用 vblade 將 loop device 分享出去

使用指令「./vblade 3 4 eth0 /dev/loop0」(與先前範本雷同,故不再贅述)

Target 進階示意圖檔

Initiator 主機之『切割磁碟』、『格式化磁區』與『掛載』

與初階設定不同的是,此時 Initiator 主機得到是一個「尚未切割與格式化」磁碟,並不能即刻掛載使用,需先 format(格式化)後方可掛載使用。

第一步:載入 AoE 模組、並列出裝置於「/dev/etherd/」目錄下

使用指令「modprobe aoe」載入 AoE 核心模組(也可稱為『驅動程式』)

使用指令「ls /dev/etherd/」來列出所偵測到 AoE 裝置

筆者範例為偵測到有一顆 e3.4 磁碟(與先前範本類似,故不再贅述)

第二步:切割 AoE 磁碟

使用「fdisk /dev/etherd/e3.4」來切割磁碟,以下只示範切割單一主磁區

按下「n」新增磁區「Enter」,再按下「p」新增主要磁區「enter」,按下「1」「Enter」新增 partition 1

按下「Enter」設定 partition 1 使用第一磁柱開始、「Enter」設定 partition 1 使用最後磁柱結束

最後按下「w」寫入磁碟資訊

Note:上述切割磁碟是 Linux 基礎功夫,在此不詳述 fdisk 使用方法,若讀者不習慣 fdisk 指令操作,可嘗試使用選單模式「cfdisk」或是 SuSE 提供圖形模式「yast2 disk」
進階學習:理論上若磁碟不切割就直接 format 是可以運作的,但是有切割過的磁碟有其優點(例如 多磁區、mbr 資訊),一般習慣上我們會將容量較大的磁碟作分割(例如 硬碟)而將容量較小者直接使用(例如 軟碟)。

fdisk 示意圖檔

第三步:format 磁碟

使用指令「mkfs -j /dev/etherd/e3.4p1」 format 成 Ext3 格式

或使用指令「mkreiserfs /dev/etherd/e3.4p1」 format 成 ReiserFS 格式

Note:要 format partition 1 只需二個命令選其一執行即可,若使用 ReiserFS 需注意相關套件是否已經安裝。
Tips:在 Linux kernel 2.6 版後,經常使用 device mapper 來自動建立「裝置檔案」例如:/dev/etherd/e3.4p1(p1 暨 partition 1 之意)

mkfs -j 示意圖檔

mkreisefs 示意圖檔

第四步:mount 磁碟

使用指令「mount /dev/etherd/e3.4p1 /mnt」

進階學習:「mount 裝置 掛載點」是使用 mount 基本觀念,以上例來說「/mnt」是掛載點。其實說穿了「掛載點其實只是個目錄」,您亦可以自行使用 mkdir 來製作掛載點

其他議題

測試磁碟效能

架構好 AoE SAN 當然要測試看看他的效能,使用指令「hdparm -t /dev/etherd/e3.4」來測試 I/O 效能,一般來說,100Mbit/s 網路理想值與實際值如下,若是 GbE 網路則更為快速。

 

磁碟設備理想值由單顆硬碟
供應粗估值
由磁碟陣列
供應理想值
猜測效能瓶頸處有機會更快速之方案
100Mbit Ethernet AoE12.5 MB/s10 MB/s12.5 MB/sEthernet 過慢換用 GbE 設備
Gigabit Ethernet AoE125 MB/s50 MB/s125 MB/sGbE 最大 125 MB/s換用 Fibre Channel 設備
IDE ATA 133 硬碟133 MB/s50 MB/s133 MB/sATA 介面到主機 I/O換用 SCSI 設備
SATA II 300 硬碟300 MB/s60 MB/s300 MB/sSATA 介面到主機 I/O換用 SCSI 設備
SCSI Ultra 320 硬碟320 MB/s70 MB/s320 MB/sSCSI 介面到主機 I/O換用 Fibre Channel 設備

由此可知,單顆硬碟效能主要考量在「單顆磁碟轉速」、「單顆磁碟快取」與「I/O 方式」(SCSI > SATA > ATA)

由磁碟陣列供應時的實際運作值通常會與規格理想值相距甚遠,需視當時配備而定,筆者遇過的 SCSI Ultra 320 能夠測出 200 MB/s 已經是相當快速,若是需要更快速並且超穩定磁碟系統,硬體晶片的選擇重要性會提高(例如 Fibre Channel、 SCSI 或 SATA 晶片廠商),介面使用 Fibre Channel、iSCSI 或 AoE 的話則更具有未來擴充性。

進階學習:據說有 10 G Ethernet 產品只是筆者尚未真正看到相關設備

hdparm -t 示意圖檔

效能增進:將 vblade 改成 Kernel-Based 方式運作

vblade 除了當作一般應用程式來運作外,還可以使用 Kernel-Based 方式來執行,這樣比較要求效能的 AoE 應用,應該派的上用場。

若要使用 Kernel-Based vblade 需要下載 vblade-kernel 套件來編譯並載入編譯出來的核心模組(應用上的難度較高一些)。

Tips:使用 Kernel-Based 方式,可在行程管理看到以中括號[]括起來應用程式通常就是以 Kernel-Based 方式執行
Note:使用 Kernel-Based 方式的分享 AoE 磁碟裝置方法與之前不同,詳情請參考 vblade-kernel 套件內 README 說明文件。

Kernel-Based 示意圖檔

觀察 AoE 狀態

AoE 另外提供一個查詢 AoE 磁碟工具「aoe-stat」收錄在『aoetools』套件包中,這套件包也是需要自行下載編譯與執行,這個軟體可以用來觀察/查詢網路上 AoE 磁碟。

aoe-stat 示意圖檔

aoe 核心模組參數

AoE 核心模組有提供「aoe_iflist」參數,可以特別指明 AoE 網路介面,例如:使用指令「modprobe aoe aoe_iflist=eth1」即特別指明 eth1 才是 AoE 網路,這樣若是 eth0 介面有 AoE 磁碟也不會偵測到或是影響到。

aoe_iflist 示意圖檔

其他作業系統支援度

AoE 在其他作業系統上的支援也不遺餘力,您可在 coraid 網站上,下載到其他作業系統 AoE driver,包括 Linux、Windows、FreeBSD 及 Solaris。

Note:各家作業系統可供下載 AoE 驅動程式網頁「http://www.coraid.com/support.html」

其他 OS 支援示意圖檔

配合磁碟陣列(RAID)

大多數作業系統例如 Linux 皆有內建 Software RAID 系統(軟體模擬出的 RAID),若是將 Software RAID 應用在 AoE 磁碟將會是「固若金湯」且「高效能」磁碟陣列系統。

配合 Linux 邏輯磁區管理員(LVM)

LVM 主要是將磁碟延展性,也就是卷群組(Volume Group)、邏輯卷(Logic Volume)放大與縮小功能,發揮到淋漓盡致,並且在效能上亦有所提昇。

進階學習:RAID 、 LVM 技術如何運用在 Target 主機或是 Initiator 主機,端看讀者巧思,好幾 TeraByte 儲存空間將不再是夢想。

名詞介紹

ATA、IDE、PATA 與 ATAPI

ATA 是我們一般 IDE 硬碟傳輸方式,而 ATAPI 其實也是幾近相同意思,近年來因為 SATA(Serial ATA)漸漸盛行,有些時候會特別使用 PATA(Parallel ATA)來與 SATA 作區隔。

PATA 傳輸速度最大理想值為 133 MB/s,已經到達速度瓶頸,早期傳輸上需倚靠大量 CPU 運算能力(使用 PIO 模式),改良使用 DMA/UDMA 模式後則減少 CPU 耗用,使用主機板南橋晶片運算,近年來漸漸被 SATA 介面所取代,現在新型主機大多將 PATA 介面用來連接光碟機,原因是光碟機傳輸速度較慢,不一定需要 SATA 介面。

Note:Parallel ATA 的 Parallel 「平行」之意,Serial ATA 的 Serial 「序列」之意。

SATA

SATA(Serial ATA、序列 ATA)是近年相當流行的傳輸介面,SATA 有 SATA I 與 SATA II 兩種規格,傳輸速度最大理想值 SATA 為 150 MB/s、SATA II 為 300 MB/s,發展初期使用專屬晶片來當 SATA 控制器,近來為節省成本會將 SATA 功能整合進南橋晶片裡,除了速度之外 SATA 相對 PATA 另一項顯著改良就是 SATA 能夠支援硬碟熱抽換(Hot-Swap)功能。

SCSI

SCSI 相關設備一直以來給人高貴、高效能的感覺。在早期還沒有 SATA 介面時,伺服器通常建議使用 SCSI 儲存設備,如此能將磁碟 I/O 運算交由專屬 SCSI 晶片處理,而讓 CPU 能夠專心處理伺服器應用程式運算,另外 SCSI 能夠接上更多磁碟(7 個或更多),不像 IDE 介面預設只能連接 4 個設備,這也是 SCSI 優點之一,現在主流 SCSI 傳輸速度理想值達到 320 MB/s,一般常見 SCSI 為 Parallel SCSI 設備,未來亦有使用 SAS(Serial Attached SCSI)來取代 Parallel SCSI 趨勢。

DAS

DAS(Direct-Attached Storage)『直接附加儲存裝置』顧名思義 DAS 是電腦直接附加上去的儲存空間(通常為磁碟陣列),傳輸方式一般採用 SCSI 或 Fibre Channel,通常會配合 RAID 功能來提供磁碟容錯(fault tolerance)功能,初階 DAS 通常會將 RAID 功能由 Server 上控制卡來提供,而中、高階 DAS 則由內建控制器來提供 RAID 與磁碟控制功能,有些 DAS 設備亦可提供區塊等級共享磁碟,這種 DAS 使用起來會有點像是初階 SAN。

NAS

NAS(Network-Attached Storage)『網路附加儲存裝置』使用網路來連接儲存設備,NAS 使用檔案等級(File-Level)存取,常見資料通訊方式為「NFS」與「CIFS」,分別適合用來銜接 Linux/Unix 與 Windows 作業系統,NAS 最常拿來當 File Server 並也能提供 ftp 功能。

 

檔案系統全名通常搭配 Client 端作業系統
NFSNetwork File SystemLinux/Unix
CIFSCommon Internet File SystemWindows
Tips:近來有些 NAS 會增加 iSCSI 傳輸介面功能,使之擁有 Block-Level I/O 存取能力。

SAN

SAN(Storage Area Network)儲存區域網路,這是一種用來傳輸磁碟資料的網路架構,通常會與我們一般 ethernet 區隔開來,預設談論到的 SAN 通常是 Fibre Channel SAN,也就是使用光纖當介質的 SAN,速度與效能皆是頂級,當然價格不便宜,令外也有 iSCSI SAN 或 AoE SAN,在這種 SAN 的儲存架構下,磁碟空間應用較有彈性,並且較易配合 Cluster 系統應用。

Fibre Channel(FC)

Fibre Channel(光纖通道),高階儲存設備傳輸媒介,光纖的 Initiator 主機需使用 Fibre Channel 介面卡(HBA,Host Bus Adapter)來連接 Target 磁碟主機,傳輸速度一般可達 1Gb/s 以上,現階段主流規格為 2Gb/s 與 4Gb/s 設備,並且有專門 Fibre Channel Switch 來連接儲存設備(Target)與 Initiator 主機,除了『傳輸速度快』與『傳輸穩定』優勢外,另一個使用光纖優點為『傳輸距離長』(好幾公尺甚至以好幾公里來計算),近年來 Fibre Channel、SAN 與 Cluster 關係越來越密切。

iSCSI

iSCSI(Internet SCSI)也是一種用來架設 SAN 的通訊方式標準,使用 Ethernet(通常是 Gigabit Ethernet)來當作傳輸媒介,並以 TCP/IP 為基礎運行 Layer 3 封包,使得 iSCSI 可以使用一般 Gigabit Switch 來當作 SAN Switch,而且可以通過 router 傳輸到遠處,另外 iSCSI 不一定需要專用 Initiator 介面卡(HBA),可使用軟體來模擬 Initiator 運作(使用硬體 Initiator 效果更好,也就是 iSCSI HBA)。

iSCSI 初期由 IBM、Cisco 兩大廠商主推,接著於 2003 年左右微軟內建 iSCSI Initiator 軟體後,iSCSI 聲勢更是水漲船高。而 Linux 對於 iSCSI 支援一直是還不錯,廠商通常會提供 Linux iSCSI Initiator 硬體驅動程式(硬體式 Initiator 驅動程式),Linux 對於「軟體模擬方式」iSCSI 真正穩定與成熟則要到 2005 年左右(包括 Software iSCSI Initiator 與 iSCSI Target)。

RAID

磁碟陣列(RAID)技術近年來已經算是 MIS 基本常識,一般常用 RAID Level 包括 0、1 與 5 簡單整理如下:

 

Level說明硬碟損壞對於資料保全範例
0空間通通整在一起壞一顆立即使得資料無法使用三顆硬碟作 RAID 0 磁碟空間為三顆碟總和
1鏡像(Mirror)可損壞硬碟,只剩一顆有資料無損壞即可通常用兩顆硬碟作 RAID 1,實際可用空間一顆
5耗用一顆空間來備援可損壞硬碟一顆最少三顆硬碟作 RAID 5,磁碟空間少掉一顆

硬體 RAID(Hardware RAID)採用 RAID 介面卡(晶片),由介面卡提供與設定 RAID 功能,軟體 RAID(Software RAID)由作業系統提供(模擬 RAID 功能)需使用到系統資源。

Note:使用在 RAID 硬碟通常規格會相同,尤其是硬體 RAID,軟體 RAID 比較有機會混用規格不同硬碟。
Tips:RAID 5 使用 N 顆硬碟則擁有 N-1 顆空間,於同時間可損壞一顆硬碟,且 N 必須大於等於 3(也就是最少三顆硬碟才能作 RAID 5)。

RAID 示意圖檔

LVM

LVM(Logic Volume Manager)主要優點在於 VG(Volume Group, 卷群組)與 LV(Logic Volume, 邏輯卷)可以線上(Online)擴大/縮小(resize)技術。

 

PVPhysical Volume實體卷
VGVolume Group卷群組
LVLogic Volume邏輯卷

例如:一開始只有 hdb1、hdc1 兩個 PV,並且這兩個 PV 都是同一個 VG(群組,例如:vg2),裡面可以建立三個 LV 分別為 LvHome、LvUsr 與 LvSwap,假設未來需要更大磁區,可新增 hdd1 PV,並將 hdd1 這個 PV 線上(online)加入到 vg2,然後在視情況擴大/縮小 LvHome 等等(LV 與 VG 皆可以擴大/縮小)。

LVM 示意圖檔

結語

效能瓶頸與解決方案

AoE 現階段的效能瓶頸理論上會是在 Gigabit Switch,若是還需要更快 I/O 速度,卻又不想花大錢買 10G Switch 與 10G 網路卡的話,Linux 能夠將兩張以上網路卡,當成一大張(也就是以倍數成長傳輸速度)來傳輸資料,簡單說就是兩張 1Gb/s 網路卡邏輯上變成感覺像是 2Gb/s 的一張網路卡,這個網路卡整合技術,在 Linux 稱『Bonding』,這 Bonding 技術不只可以拓展 I/O 速度,也可以用來作線路備援(Failover),Linux Bonding 亦支援 802.3ad 規格,並且與市面上高階 Switch 相容(例如:Cisco etherChannel 功能),若有高階 I/O 需求讀者不妨參考看看。

bonding 示意圖檔

將網路線當作 ATA 排線

依照 iSCSI 使用 Gigabit Ethernet 媒介傳輸看來,使用 Ethernet 來當排線會是一個趨勢,歸納原因在於價格效能比太過於優秀,使得 AoE 走向與 iSCSI 相同發展路線,使用 ethernet 來當傳輸媒介,AoE 更感覺像是精簡版 iSCSI,至於未來 AoE 發展,需要實際商業應用後才能夠進一步了解與評價,尤其是巨大磁碟空間應用與 Cluster 相關技術(包括:Cluster File System)。

將電腦當作硬碟的擴充性

長久以來,筆者一直想找『如何使一台電腦,變成像是另一台電腦的其中一顆硬碟』,最後卻是在研究 Cluster 文件時在 AoE 找到這個技術,這樣一來可省去將磁區掛載來、掛載去且還需資料搬移的麻煩,使用 AoE 配合 LVM 後,可將單一磁碟空間(Logic Volume)幾近無限制的擴充長大,感覺真是方便極了,未來若是有好幾 Tera 等級的磁碟需求,說不一定可以自行辦到這樣的系統。

網路線當作 ATA 排線示意圖檔


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值