• 沒有找到結果。

第 2 章 相關研究及背景知識

2.2 相關背景知識

2.2.1 Samba 服務常式簡介

SMB/CIFS(Server Message Block/Common Internet File System)[20]是由微軟 開發的一種軟體程序級的網路傳輸協議,主要用來使得一個網路上的機器共享電 腦文件、印表機、串列埠和通訊等資源。它也提供認證的行程間通訊機能。它主 要用在裝有 Microsoft Windows 的機器上,在這樣的機器上被稱為 Microsoft Windows Network。

Samba[21]是在 1991 年由 Andrew Tridgwell 所開發出來的軟體,使 UNIX 系列 的 作 業 系 統 能 與 微 軟 Windows 作 業 系 統 的 SMB/CIFS ( Server Message Block/Common Internet File System)網路協定做連結。此軟體在 Windows 與 UNIX 系列 OS 之間搭起一座橋梁,讓兩者可經由網路互相存取檔案等資源。

及 1996 年,約於昇陽推出 WebNFS 的同時,微軟提出將 SMB 改稱為 Common Internet File System(CIFS)。此外微軟還加入了許多新的功能,比如符號連結、硬

7

連結、提高文件的大小。微軟還詴圖支持直接聯繫,不依靠 NetBIOS,不過這個 詴圖依然處於嘗詴階段,並需要繼續完善。微軟向互聯網工程工作小組提出了部 分定義作為網際網路草案。不過這些提案現在均已過期。

Samba 主要又分為三個 deamon:nmbd、smbd、winbind。

nmbd:用於管理工作群組,NetBIOS name 的解析,利用 UDP 協定開啟

8

圖表 5 Smbd 流程圖

2.2.2 Samba 讀取效能

Samba NAS server 針對於讀取,已經支援 sendfile[11]的系統功能,以達到近 似 zero-copy 的作法,於 Samba 讀取的效能,我們也有進行相關量測、分析和改進,

過程及結果在王俊文的論文中詳述[22]。

2.2.3 TCP/IP Offload Engines(TOE)

由於網路頻寬和速度的快速成長,傳統運行 TCP/IP 協定處理的方式已經越來 越成為高效能網路計算的瓶頸。在目前的乙太網路中,TCP/IP 協定的處理都是透 過軟體方式在中央處理器上實現。當網路速度達到 Gigabit 數量級時,CPU 就越來 越繁忙,其中大部分處理的負擔都是來自於對 TCP/IP 協定的處理,例如對 IP 數據 包的校對處理、對 TCP 數據流的可靠性和一致性處理。大量協定數據還需要透過

9

I/O 中斷進行操作,不斷在網路接口緩衝區和應用程式內存之間進行數據交換,這 些額外負擔大大地降低了 CPU 的處理效率,增加了應用計算的帄均等待時間。按 照 CPU 對網路數據流的處理比率分析,大概 CPU 每處理 1bit 網路數據,就將消 耗 1Hz 的處理性能,也就是說需要 20GHz 的 CPU 處理能力於全滿的負荷下運行 才能滿足 10Gbps 乙太網路的處理要求。

同時,由於目前對 TCP/IP 協定進行處理都是採用通用 CPU 及其配套的系統 結構,而這種體系下 CPU 的主要功能式進行一般計算,並非進行輸入輸出操作。

因此在網路頻寬和速度快速發展下,網路速度高於 CPU 對 TCP/IP 協定的處理速 度,導致系統的輸出輸入成為網路瓶頸。

為了在高速網路環境中改進和優化服務器效能,減輕對網路協定的處理負 荷,TCP/IP 卸載引擎(TOE,TCP/IP Offload Engine)技術應運而生[23]。

TOE 技術的基本思想是分擔 CPU 對 TCP 和 IP 協定的處理,將協定處理過程 放到高速網卡等硬體上完成,其中包括 TCP、IP、UDP、ICMP 等子協定處理。(圖 表 6)將原來通過軟體方式處理的 TCP/IP 協定放在專門的硬體上完成,從而將應 用和網路分離處理,會使 10G 乙太網路環境中應用服務器的 CPU 資源利用率大大 提高,顯著地改善服務器性能。

圖表 6 Conventional Ethernet and TCP Offload Architecture

10

相關文件