英創(chuàng)公司針對目前銷售的工控主板,都推出了一些擴展存儲的方案,比如所有型號的板卡都可以通過usb外接存儲器件(U盤、移動硬盤等),還有大部分的主板都可以支持TF卡,所以也可以根據(jù)實際需求使用相應(yīng)大小的TF卡。同時i.MX6系列的主板ESM6800H、ESM6800V、ESM6802和ESM7000系列主板都已經(jīng)板載了4GB大小的EMMC,而ESM8000和ESM6400系列主板最高支持到了16GB大小的EMMC。根據(jù)實際測試,板載的EMMC存儲讀盤速度最高可達78MB/s,寫盤速度最高為29MB/s,而常用的TF卡(SDHC格式,最大32GB)讀盤速度最高約10M/s,寫盤速度最高為4.3MB/s,盡管這些存儲方式已可以滿足大部分常規(guī)的應(yīng)用需求,但對一些對存儲容量、存儲速度有特殊要求的應(yīng)用,就顯得不夠了。
本文將介紹一種基于英創(chuàng)主板的PCIe接口的高速大容量存儲方案。經(jīng)過實際的評估和測試,本方案可完全滿足客戶對于存儲大小和速度有特殊要求的應(yīng)用。目前能夠支持PCIe接口的主板為ESM6802G(ESM6802帶有PCIe接口的版本)、ESM7100、ESM8100以及即將推出的ESM6400主板。主板如下圖所示:
ESM7100 ESM6802G
本方案使用的是符合NVMe規(guī)范的M.2接口固態(tài)硬盤。M.2接口前身為Next Generation Form Factor (NGFF),是一種計算機內(nèi)部擴展卡及相關(guān)連接器規(guī)范,M.2有兩種接口定義:Socket 2和Socket 3。Socket 2支持SATA、PCI-EX2通道的SSD,Socket 3專為高性能存儲設(shè)計,支持PCI-EX4,而主板支持的是Socket3類型。NVMe(NVM express)為易失性內(nèi)存主機控制器接口規(guī)范,該規(guī)范依托于PCIe總線,比起SATA3的AHCI規(guī)范性能有著較大的提升,所以使用主板的PCIe總線配合Socket3類型的M.2接口就能夠和符合NVMe規(guī)范的固態(tài)硬盤鏈接。
為了方便客戶評估,ESMARC通用評估底板(V9.0及以上版本)上將增加支持NVME協(xié)議的M.2接口,用戶可以將固態(tài)硬盤直接連上方便的進行測試。固態(tài)硬盤的尺寸比較常見的有兩種,寬度都為統(tǒng)一的22mm,長度一種是42mm規(guī)格稱為2242,另一種為80mm規(guī)格稱為2280,在這次的測試中就選擇了一款三星2280的固態(tài)硬盤進行測試。另外,在選擇固態(tài)硬盤的時候需要注意,主板支持的M.2的Socket3接口類型都是M-key,有一些固態(tài)硬盤是B-key類型的接口,這種類型是不能在英創(chuàng)的板卡上使用的,可以參考下圖:
M key和B key的區(qū)別
ESM6802G主板上的PCIe總線為1.0版本,理論最高傳輸速度為250 MB/s,ESM7100主板的PCIe總線為2.0標準,理論最高速度為500MB/s。本次測試選擇ESM6802G作為平臺,而固態(tài)硬盤選用了一款128GB大小的SSD,硬件連接非常簡單,如下圖:
固定好后即可進行上電,一旦PCIe總線識別到M.2存儲設(shè)備,系統(tǒng)會自動加載驅(qū)動模塊,如果沒有自動加載輸入命令modprobe nvme即可。進入系統(tǒng)后可以使用lspci命令查看PCIe總線下的設(shè)備,這時在終端應(yīng)該能看到有固態(tài)硬盤的設(shè)備信息,同時驅(qū)動加載后在/dev目錄下應(yīng)該會生成相應(yīng)的設(shè)備節(jié)點,因為是使用的nvme驅(qū)動,所以設(shè)備節(jié)點會以nvme開頭:
SSD設(shè)備信息
如果是新的硬盤沒有分區(qū),只會看到nvme0和nvme0n1兩個設(shè)備節(jié)點,可以使用fdisk或者sfdisk命令操作nvme0n1設(shè)備節(jié)點進行分區(qū)操作,具體的分區(qū)操作可以查詢這兩個命令的詳細使用方法。如果只有一個分區(qū),就會和上圖一樣,多出現(xiàn)一個nvme0n1p1節(jié)點,多個分區(qū)的話就會有多個設(shè)備節(jié)點,即nvme0n1pn1~nvme0n1pn。對于存儲容量較大的設(shè)備,建議客戶使用ext4格式的文件系統(tǒng),ext4為日志型的文件系統(tǒng),在每次文件系統(tǒng)操作的時候都會生成相應(yīng)的日志,一旦出現(xiàn)實際內(nèi)容和日志不匹配,就會通過日志內(nèi)容進行恢復,安全性很高,是目前Linux系統(tǒng)中使用最廣泛的文件系統(tǒng)。格式化ext4文件系統(tǒng)可以使用mkfs.ext4命令,參數(shù)為對應(yīng)的分區(qū)設(shè)備節(jié)點,比如要把上圖中的分區(qū)格式化為ext4,輸入命令mkfs.ext4 /dev/ nvme0n1p1即可:
制作ext4分區(qū)
文件系統(tǒng)格式制作好之后,可以通過mount命令掛載到需要的目錄下,這樣就能通過訪問這個目錄來訪問主板連接的固態(tài)硬盤了,mount會自動識別ext4格式,所以不需要修改文件系統(tǒng)格式,只需要對應(yīng)的設(shè)備節(jié)點和掛載目錄即可,以這次的測試為例,把固態(tài)硬盤掛載到/mnt/nvme這個目錄下,使用命令mount /dev/nvme0n1p1 /mnt/nvme,掛載好之后,可以使用df –h命令查看空間大小:
掛載SSD
可以看到硬盤總的大小為118GB,這個時候在/mnt/nvme這個目錄中讀取或者寫入文件,就相當于在固態(tài)硬盤中讀取和寫入文件了。接下來測試ESM6802G上連接固態(tài)硬盤的讀寫速度,使用的測試工具為fio,這是一款專業(yè)測試固態(tài)硬盤的工具,因為fio的使用較為靈活需要設(shè)置的參數(shù)較多,這里就不一一介紹了,有興趣的客戶可以查詢fio命令的詳細資料來了解。首先測試讀取速度,設(shè)置讀取塊大小為64K,隊列深度為32,測試大小為5GB,采用順序讀取的方式,并且繞過系統(tǒng)緩存,測試結(jié)果如下:
測試順序讀
可以看到順序讀的速度為160MB/s,這應(yīng)該是可達到的最高讀取速度,接下來測試隨機讀取的速度,其他的參數(shù)都不改變:
測試隨機讀取
根據(jù)上圖的結(jié)果,隨機讀取的速度大約為140MB/s,對于隨機讀寫還有個指標iops是比較重要的,這個參數(shù)代表了每秒的讀取次數(shù),但是這個參數(shù)僅僅是用來衡量硬盤本身的性能,所以在這里就不做參考了。然后是測試寫盤速度,采用順序?qū)懙姆绞剑渌麉?shù)不變:
順序?qū)懕P測試
根據(jù)上圖結(jié)果,順序?qū)懕P的速度大約為165MB/s,這也應(yīng)該是可達到的最高寫盤速度,最后測試隨機寫的性能,同樣其他參數(shù)不變:
隨機寫盤測試
根據(jù)上圖結(jié)果,隨機寫盤的速度大約為158MB/s。
最后總結(jié)一下測試結(jié)果,ESM6802G外接NVMe規(guī)范的M.2接口固態(tài)硬盤讀寫速度如下表:
測試平臺 | 讀寫操作 | 測試文件 | 讀寫方式 | 測試結(jié)果 |
ESM6802G | 讀盤 | 5GB | 順序 | 160MB/s |
ESM6802G | 讀盤 | 5GB | 隨機 | 140MB/s |
ESM6802G | 寫盤 | 5GB | 順序 | 165MB/s |
ESM6802G | 寫盤 | 5GB | 隨機 | 158MB/s |
ESM7100 | 讀盤 | 5GB | 順序 | 262MB/s |
ESM7100 | 讀盤 | 5GB | 隨機 | 262MB/s |
ESM7100 | 寫盤 | 5GB | 順序 | 284MB/s |
ESM7100 | 寫盤 | 5GB | 隨機 | 307MB/s |
ESM8100 | 讀盤 | 5GB | 順序 | 239MB/s |
ESM8100 | 讀盤 | 5GB | 隨機 | 238MB/s |
ESM8100 | 寫盤 | 5GB | 順序 | 390MB/s |
ESM8100 | 寫盤 | 5GB | 隨機 | 320MB/s |
ESM6400 | 讀盤 | 5GB | 順序 | 174MB/s |
ESM6400 | 讀盤 | 5GB | 隨機 | 175MB/s |
ESM6400 | 寫盤 | 5GB | 順序 | 185MB/s |
ESM6400 | 寫盤 | 5GB | 隨機 | 159MB/s |
這個結(jié)果應(yīng)該能夠滿足對讀寫速度要求很高的客戶了,并且對于存儲空間也沒有太大的限制,從128GB到1TB的存儲空間都有很多硬盤模塊可以選擇。在體積上采用NVMe規(guī)范的硬盤比SATA接口的硬盤要小很多,可以通過固定孔方便的固定在底板上,非常適合作為嵌入式設(shè)備,目前我們也已經(jīng)測試過了一些硬盤,下圖是測試通過的硬盤,供客戶在購買硬盤的時候參考:
有興趣的客戶可以和英創(chuàng)公司的工程師聯(lián)系,了解更詳細的情況。
成都英創(chuàng)信息技術(shù)有限公司 028-8618 0660