鳥哥的Linux私房菜(伺服器)- 第十八章、網路驅動器裝置: iSCSI 伺服器
由於企業的資料量越來越大,而且重要性與保密性越來越高,尤其類似資料庫的內容,常常容量單位是以 TB (1TB = 1024GB) 在進行計算的。哇!真可怕!所以囉,磁碟陣列的應用就很重要了。那麼磁碟陣列通常是在哪裡呢? 磁碟陣列通常是 (1)主機內部有磁碟陣列控制卡,可以自行管理磁碟陣列。不過想要提供磁碟陣列的容量, 得要透過額外的網路服務才行; (2)外接式磁碟陣列裝置,就是單純的磁碟陣列裝置,必須透過某些介面連結到主機上, 主機也要安裝適當的驅動程式後,才能捉到這個裝置所提供的磁碟容量。
不過,以目前的資訊社會來說,你應該很少聽到內建或外接的 RAID 了,常常聽到的應該是 NAS 與 SAN ,那這是啥咚咚? 讓我們簡單的來說說:
- NAS (Network Attached Storage, 網路附加儲存伺服器)
基本上,NAS 其實就是一部客製化好的主機了,只要將 NAS 連線上網路,那麼在網路上面的其他主機就能夠存取 NAS 上頭的資料了。簡單的說,NAS 就是一部 file server 囉~不過,NAS 由於也是接在網路上面,所以,如果網路上有某個使用者大量存取 NAS 上頭的資料時,是很容易造成網路停頓的問題的,這個比較麻煩點~低階的 NAS 通常會使用 Linux 系統搭配軟體磁碟陣列來提供大容量檔案系統。不過效能嘛就有待加強啦!此外,NAS 也通常支援 TCP/IP ,並會提供 NFS, SAMBA, FTP 等常見的通訊協議來提供客戶端取得檔案系統。
那為什麼不要直接使用個人計算機安裝 Linux 再搭配相關的服務,即可提供 NAS 預計要提供的大容量空間啦!幹嘛需要 NAS 呢? 因為,通常 NAS 還會包括很多組態的介面,通常是利用 Web 介面來控制磁碟陣列的設定狀況、提供 IP 或其他相關網路設定, 以及是否提供某些特定的服務等等。因為具有較為親和的操作與控制介面,對於非 IT 的人員來說,控管較為容易啦。 這也是 NAS 存在的目的。
不過,目前倒是有類似 FreeNAS 的軟體開發專案 (http://sourceforge.net/projects/freenas/, 注2),可以讓你的
Linux PC 變成一部可透過 Web 控管的 NAS 哩!不過不是本章的重點,有興趣的朋友可以自行前往下載與安裝該軟體來玩玩~
- SAN (Storage Area Networks, 儲存區域網絡)
從上面的說明來看,其實那個 NAS 就是一部可以提供大容量檔案系統的主機嘛! 那我們知道單部主機能夠提供的插槽再怎麼說也是有限的! 所以並不能無限制的安插磁碟在同一部實體主機上面。但是如果偏偏你就是有大量磁碟使用的需求,那時該如何是好? 這時就得要使用到 SAN 這玩意兒啦!
最簡單的看法,就是將 SAN 視為一個外接式的儲存裝置。只是單純的外接式儲存裝置僅能透過某些介面 (如 SCSI 或 eSATA) 提供單一部主機使用,而 SAN 卻可以透過某些特殊的介面或通道來提供區域網絡內的所有機器進行磁碟存取。要注意喔,SAN 是提供『磁碟 (block device)』給主機用,而不是像 NAS 提供的是『網路協議的檔案系統 (NFS, SMB...)』!這兩者的差異挺大的喔!因此,掛載使用 SAN 的主機會多出一個大磁碟,並可針對 SAN 提供的磁碟進行分割與格式化等動作。想想看,你能對 NAS 提供的檔案系統格式化嗎?不行吧!這樣瞭解差異否?
另外,既然 SAN 可以提供磁碟,而 NAS 則是提供相關的網路檔案系統,那麼 NAS 能不能透過網路去使用 SAN 所提供的磁碟呢?答案當然是可以啊!因為 SAN 最大的目的就是在提供磁碟給伺服器主機使用,NAS 也是一部完整的伺服器, 所以 NAS 當然可以使用 SAN 啦!同時其他的網路伺服器也能夠使用這個 SAN 來進行資料存取。
此外,既然 SAN 開發的目的是要提供大量的磁碟給使用者,那麼傳輸的速度當然是非常重要的。因此,早期的 SAN 大多配合光纖通道 (Fibre Channel) 來提供高速的資料傳輸。目前標準的光纖通道是速度是 2GB ,未來還可能到達 10GB 以上呢~不過,使用光纖等技術較高的裝置,當然就比較貴一些。
拜乙太網絡盛行,加上技術成熟之賜,現今的乙太網絡媒體 (網路卡、交換器、路由器等等裝置) 已經可以達到 GB 的速度了,離 SAN 的光纖通道速度其實差異已經縮小很多啦~那麼是否我們可以透過這個 GB 的乙太網絡介面來連線到 SAN 的裝置呢?這就是我們接下來要提到的 iSCSI 架構啦! ^_^