fcoe和fc的区别_IBM AIX FC和FCoE设备驱动程序堆栈的性能改进
本文介紹了針對16 Gb FC(功能代碼:EN0A)和10 Gb FCoE(功能代碼:EN0H)HBA的IBM?AIX?光纖通道(FC)/以太網光纖通道(FCoE)設備驅動程序堆棧的性能改進。 AIX FC驅動程序堆棧包括啟動程序模式小型計算機系統接口(SCSI)協議驅動程序和適配器驅動程序。 現有的AIX FC適配器驅動程序維護一個SCSI I / O隊列,用于將所有I / O請求提交給FC HBA。 現有的FC堆棧具有每秒最大I / O事務(IOPS)和較小I / O大小的擴展問題。 這是由于通過單個I / O隊列進行的I / O序列化。
為了在較小的塊大小的I / O請求上提高IOPS的數量,多隊列功能與16 Gb FC或10 Gb FCoE適配器驅動程序一起引入,從以下位置開始:
- AIX發行版– AIX 7.2 TL01 SP1,AIX 7.1 TL04 SP3和AIX 6.1 TL09 SP8
- VIOS版本– VIOS 2.2.4.30和VIOS 2.2.5.0
圖1描述了如何在多個I / O隊列上并行化I / O,以及本文中討論的改進。
圖1.傳統的FC驅動程序堆棧與改進的FC驅動程序堆棧
配置細節
以下配置用于塊大小為4 KB的隨機讀取操作的性能分析
- IBMPower?System E870服務器,帶有64個處理器,頻率為4.350 GHz
- 具有八個存儲FC端口的IBMFlashSystem?900:
- 帶FC
- Brocade 16 Gb FC交換機:2498-B24
- PCIe2兩端口16 Gb FC適配器(功能代碼:EN0A)
- 使用FCoE:
- PCIe2 10 Gb四端口FCoE適配器(功能代碼:EN0H)
- Brocade 10 Gb FCoE交換機
- 使用本機(獨立)AIX配置:
- 操作系統:AIX 7.2 TL01 SP1
- 處理器數量:32
- 使用N_端口ID虛擬化(NPIV)配置:
- VIOS版本:2.2.5.0
- NPIV客戶端操作系統:AIX 7.2 TL01 SP1
- VIOS主機上的處理器數量:32
- 每個NPIV客戶端上的處理器數量:4
實施細節
為了支持多個I / O隊列功能,為FC / FCoE設備(fcs)引入了新的對象數據管理器(ODM)屬性num_io_queues ,以指示在FC適配器驅動程序中配置的I / O隊列數。 每個I / O隊列都與FC HBA中的硬件工作隊列關聯。 發出到特定hdisk的所有I / O請求都將映射到相同的SCSI I / O隊列。 每個SCSI I / O隊列可以為多個hdisk服務,但是,給定hdisk的I / O請求不能分配給多個SCSI I / O隊列。
示例:對于16 Gb FC HBA, num_io_queues的ODM節如下所示:
# lsdev | grep fcs fcs0 Available 00-00 PCIe2 2-Port 16Gb FC Adapter (df1000e21410f103) fcs1 Available 00-01 PCIe2 2-Port 16Gb FC Adapter (df1000e21410f103)# odmget -q name=fcs0 CuDv CuDv:name = "fcs0"status = 1chgstatus = 0ddins = "pci/emfcdd"location = "00-00"parent = "pci0"connwhere = "0"PdDvLn = "adapter/pciex/df1000e21410f10" # # odmget -q uniquetype="adapter/pciex/df1000e21410f10" PdAt | grep -p num_io_queues PdAt:uniquetype = "adapter/pciex/df1000e21410f10"attribute = "num_io_queues"deflt = "8"values = "1-16,1"width = ""type = "R"generic = "DU"rep = "nr"nls_index = 67 #可以使用chdev命令或系統管理界面工具(SMIT)界面來更改此屬性的值。 可能的值為:
# lsattr -l fcs0 -a num_io_queues -R 1...16 (+1)要啟用多個I / O隊列,HBA的直接內存訪問(DMA)資源應足以在多個隊列之間分配I / O請求。 現有的ODM屬性io_dma控制著適配器驅動程序在配置HBA時請求的I / O DMA區域的數量。
默認ODM屬性值
本部分提供與多個I / O隊列功能相關的ODM屬性的默認值。
對于AIX 7.2 TL01 SP1和VIOS 2.2.5版本
所述的缺省值num_io_queues屬性被設置為8,并具有足夠的DMA資源,所述的缺省值io_dma屬性增加到256,開始與AIX 7.2 TL01 SP1和VIOS 2.2.5版本。
# lsattr -El fcs0 | grep -e num_io_queues -e io_dma io_dma 256 IO_DMA True num_io_queues 8 Desired number of IO queues True對于AIX 7.1 TL04 SP3,AIX 6.1 TL09 SP8和VIOS 2.2.4.30版本
對于AIX 7.1 TL04 SP3,AIX 6.1 TL09 SP8和VIOS 2.2.4.30版本, num_io_queues屬性的缺省值設置為1, io_dma設置為64。
# lsattr -El fcs0 | grep -e num_io_queues -e io_dma io_dma 64 IO_DMA True num_io_queues 1 Desired number of IO queues True如本文前面所述,應該有足夠的DMA資源來支持多個I / O隊列。 因此, io_dma屬性的值應從64增加到256。如果用戶僅更改num_io_queues的值而未將io_dma值增加到256,則適配器實例將配置有單個SCSI I / O隊列,并且以下信息錯誤將與AIX錯誤日志一起記錄。
# errpt | grep fcs0 29FA8C20 0629173616 I O fcs0 Additional FC Adapter Information使用chdev命令調整num_io_queues屬性的步驟
您需要執行以下步驟來使用chdev命令針對16 Gb FC HBA調整num_io_queues屬性:
- 取消配置設備實例。 #rmdev -Rl fcs0
- 將屬性更改為所需的值(例如16)。 # chdev -l fcs0 -a num_io_queues=16 fcs0 changed
- 配置設備實例。 # cfgmgr -l fcs0
- 驗證屬性是否設置為必需值。 # lsdev | grep fcs0 fcs0 Available 00-00 PCIe2 2-Port 16Gb FC Adapter (df1000e21410f103) # lsattr -El fcs0 | grep num_io_queues num_io_queues 16 Desired number of IO queues True
性能結果–隨機讀取操作,塊大小為4 KB
以下結果適用于AIX本機[即邏輯分區(LPAR)擁有的物理HBA]案例。 I / O請求并行使用默認的FlashSystem 900存儲目標運行shortest_queue上的hdisk設備算法。
圖2. 16 Gb FC HBA的AIX(本機)結果
圖3. 10 Gb FCoE HBA的AIX(本機)結果
以下結果適用于NPIV(即VIOS擁有物理HBA和在VIOS上調整的num_io_queues )。 使用Flash System 900存儲磁盤上的默認shortest_queue算法,每個NPIV客戶端上給定磁盤的所有I / O路徑上并行運行的I / O請求。
圖4. 16 Gb FC和10 Gb FCoE HBA的NPIV結果
結論
在本機配置中,使用改進的FC堆棧,對于單個FC HBA端口情況,用于塊大小為4KB的隨機讀取操作的IOPS數量增加了約2.5倍,這是一個重大改進。 IOPS達到390,000,非常接近單個FC HBA端口的線速度。
在客戶端數量為六個或更多的情況下,NPIV配置中塊大小為4 KB的隨機讀取操作的IOPS增益幾乎等同于本機配置。
翻譯自: https://www.ibm.com/developerworks/aix/library/au-aix-performance-improvements-fc-fcoe-trs/index.html
總結
以上是生活随笔為你收集整理的fcoe和fc的区别_IBM AIX FC和FCoE设备驱动程序堆栈的性能改进的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中的step_STEP文件解析
- 下一篇: 图像传感器binning_CCD的Bin