日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FCoE模块设计与实现

發布時間:2024/3/24 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FCoE模块设计与实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


FCOE協議介紹

????太網光纖通道(FCoE)將FC幀映射并封裝到以太網幀中,從而使得光纖通道存儲流量能在太網上傳輸,加上FCoE交換機的支持,將以太網上IP數據和FC數據等其它數據流整合到統一網絡鏈路,構成一個融合網絡。


1背景

FCoE技術的背景:海量數據存儲


1.1存儲技術與海量數據存儲

本地存儲:直接連接存儲(Direct?Attached?StorageDAS),直接與主機服務器相連接,不足是:I/O操作需要占據服務器大量的CPU時間來處理SCSI指令和數據塊,擴展性差。

網絡存儲:包括網絡附加存儲(Network?Attached?StorageNAS)和存儲區域網(Storage?Area?NetworkSAN

NAS是以太網上利用NFSNetwork?File?System),CIFSCommon?Internet?File?System)等網絡文件系統對外提供訪問其文件系統接口的文件共享服務器

SAN采用集中式存儲策略,在服務器與存儲設備之間通過交換機進行連接,將多級存儲器合并成一個集中管理的網絡存儲基礎設備。擴展性好,并且易于管理。

所以,為了實現海量數據存儲,SAN是較好的存儲技術。現在主要SAN架構有FC-SANIP-SAN,其中FC-SAN采用光纖通道協議,部署于高性能的數據中心。


1.2?FC協議


光纖通道FC作為SAN的一項連接技術已經取得了成功。

FC是一種雙向、點到點、串行的數據通道,而FC協議定義了數據在網絡上傳輸規則。FC協議分層,由物理接口層、編碼層、網絡層、通用服務層和上層協議(Upper?Layer?ProtocolULP)映射層共五層構成。

如在FC-SAN中,將目標端系統的存儲設備掛載到發起端系統中,作為一個塊設備進行訪問


2?FCoE目的

大方向:實現以太網融合,減少數據中心的網絡復雜度。

技術目標:融合傳統局域網和SAN,在高速以太網鏈路上傳輸IP幀和FC


3相關知識


3.1?SCSI系統

????SCSI是一組標準集,定義了與大量設備通信所需的接口和協議

SCSI上層接收來自上層(比如通用塊層,文件系統)的請求并將其轉換成SCSI請求,及負責完成SCSI命令并將狀態信息通知上層。

中間層是上層和底層的公共服務層。

底層是一組驅動器,稱為SCSI底層驅動,可以與物理設備通信。


3.2塊設備和請求隊列

塊設備(Block?Device)將信息存儲在固定大小的塊中,每個塊都有自己的地址,且每個塊都能獨立于其它塊進行讀寫,即具有隨機讀寫能力

一個塊設備驅動只有一個請求隊列(關于請求隊列,和應用程序的socket隊列或者Qdisc是否可以對比?點擊這里,應該是和Qdisc更加有比較性),用于完成I/O請求的合并、調度和處理。請求隊列跟蹤未完成的塊設備I/O請求,保存了描述設備所能處理的請求的參數,比如最大I/O大小,段數目,硬件扇區大小和對齊需求。請求隊列具有I/O調度功能,通過I/O調度程序來實現


4?FCoE設計與實現


4.1總體功能設計

FCoE模塊是實現FCoE協議功能的總體模塊,包括

模塊加載/卸載

接口創建/銷毀

FCoE登陸

I/O通信

FCoE模塊作為LINUX內核中SCSI系統的底層驅動模塊,連接SCSI系統和以太網系統,主要實現SCSI命令到FCoE幀的轉化、數據傳輸任務控制、協議注冊、FCoE模塊和以太網系統的通信。

總體結構如下,

如上圖,FCoE接口的創建成功,還需要完成FCoE登陸,遠程目標端SCSI設備的發現和在發起端創建目標端設備的設備文件(/dev/sdb)。

FCoE模塊具有用戶接口和內部接口。

用戶接口控制模塊加載/卸載,接口創建/銷毀,接口開啟/關閉等功能。

內部接口實現FCoE模塊和LINUX內核各系統或模塊交互。

如下,

FCoE模塊的協議處理依賴scsi_transport_fc模塊、libfc模塊和libfcoe模塊。

scsi_transport_fc模塊提供了SCSI系統與FC之間的接口。

libfc模塊提供了FC協議處理接口

Libfcoe模塊提供了FCoE協議處理接口,也為FCoE模塊提供用戶接口


4.2功能模塊設計與實現


加載/卸載模塊

FCoE模塊的加載主要完成向FCoE?TransportFC?Tranport的添加,申請資源,創建內核線程,注冊通知鏈等。FCoE模塊的卸載主要完成運行期間建立資源的釋放(比如接口創建)和模塊加載資源的釋放

加載/卸載模塊的實現比較簡單。

接口創建

FCoE接口創建主要是完成FCoE接口結構(struct?hust_interface)分配和初始化,及FIPFCoE協議注冊,接口創建成功后,會繼續完成登陸和設備發現等工作,通過調用用戶接口create來創建FCoE接口。FCoE接口創建的同時,需要創建對應的FC接口,FC接口是實現FC協議處理的關鍵

hust_fcoe_create是實現FCoE接口創建的函數(如圖)。hust_interface_lookup函數完成接口查詢,判斷某網卡接口是否已經創建FCoE接口,如果沒有創建則創建接口,否則返回。hust_inteface_create完成接口的實際創建工作,調用fcoe_ctlr_init完成FIPFCoE協議初始化和注冊,調用hust_interface_setup完成FCoE接口配置(如圖)。hust_fcoe_hardware_setup函數完成硬件配置工作,該函數開啟網卡的硬件卸載功能,可以更具不同的網卡類型配置不同的運行環境,比如開啟Intel網卡的DDPDirect?Data?Placement)功能。

接口銷毀

接口銷毀是接口創建的逆過程,但在接口銷毀前需要關閉接口和清除隊列中未完成的請求。網卡接口上已經創建對應的FCoE接口,可以調用用戶接口destroy來銷毀FCoE接口。hust_fcoe_destoryFCoE接口的銷毀函數,調用hust_if_destory_work完成FC接口銷毀

登陸

FCoE登陸主要完成發起端發現FCF,向FCF注冊和DNS注冊。

發起端可能與FCoE網絡的交換機連接或與目標端設備直連,發送FLOGI,根據ACCFLOGI)選擇方式建立和目標設備的連接。

如果發起端連接FCoE交換機,需要PLOGI登陸FCFDNS,在DNS注冊自己的端口信息,并獲得其它端口信息,完成DNS過程后,就可以向其它設備發送PLOGI請求

如果是目標端設備,還會建立進程通信和在發起端建立目標端設備文件。如果發起端直連目標端設備,則直接進行目標端的PLOGI和后續操作。如下,

IO模塊

????IO模塊完成FCoE協議處理,其中包含了SCSI命令(或數據)生成FC幀、FC幀到FCoE幀的映射、FCoE幀封裝到以太網幀和發送到以太網核心。

FCoE模塊需要結合SCSI系統,libFC模塊和以太網系統完成IO請求。發起端主要IO請求類型為讀請求和寫請求。讀請求是發起端向目標端發送讀命令,目標端接收到命令后將數據發送給發起端。寫請求是發起端向目標端發送寫命令,目標端接收到命令后分配接收數據所需的內存并通知發起端,然后發起端將數據發送到目標端。

fc_queuecommandSCSI系統的接口函數,將SCSI請求發送到底層處理。



5效果

在發起端看來,訪問存儲區域網的設備就像訪問本地的塊設備一樣簡單高效!

以傳輸的角度看,光纖通道(FC)幀映射并封裝到以太網幀中,從而使得光纖通道存儲流量能在太網上傳輸。使得能在高速以太網鏈路上同時傳輸IP幀和FC

從數據中心角度,FCoE可以和數據中心現有的以太網及FC基礎設施無縫互通,將以太網上IP數據和FC數據等其它數據流整合到統一網絡鏈路,構成一個融合網絡

IT業界看來,FCoE為存儲網絡流量提供統一交換網絡,更有效地利用資源、減少交換基礎設施、服務器的IO適配器和線纜的數量,從而大幅減少電力和冷卻成本。同時,簡化的基礎設施也能降低管理和運營開支。

總結

以上是生活随笔為你收集整理的FCoE模块设计与实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。