農(nóng)麗萍,呂嘉嘉,梁梓辰,黃一平
(1.廣西師范大學物理科學與技術(shù)學院,廣西 桂林 541000;2.廣西師范大學電子與信息工程學院,廣西 桂林 541000;3.廣西師范大學計算機科學與工程學院,廣西 桂林 541000)
隨著5G 網(wǎng)絡的普及,數(shù)據(jù)流量不斷增多,用戶對云盤的需求越來越高。2020年百度網(wǎng)盤人均數(shù)據(jù)存儲量[1]超過200 GB,數(shù)據(jù)量增長快速。近年來,云盤數(shù)據(jù)泄露事件很常見[2],公有云盤存儲不安全且下載速度慢的問題也逐漸暴露出來,而個人網(wǎng)盤的核心場景主要基于個人存儲和中小企業(yè)辦公以及家庭娛樂等場景拓展[3]。伴隨著存儲設備的增多,能耗也在不斷增長。在國內(nèi),2021年數(shù)據(jù)中心總耗電量已達到2 000億kW·h,預計在2025年國內(nèi)數(shù)據(jù)中心總能耗[4]將超過3 000億kW·h。綜上所述,個人或者企業(yè)通常將數(shù)據(jù)存儲在云盤或者個人網(wǎng)盤。網(wǎng)盤容易造成數(shù)據(jù)泄露,且不開通會員下載速度比較慢;云盤后臺服務器長期不斷電,容易造成能源浪費;個人網(wǎng)盤使用百兆網(wǎng)卡,傳輸速度慢,而且無法遠程開關機,長期通電,浪費電能,配置繁瑣,使用不便捷。因此,開發(fā)一款安全、高效、節(jié)能、便捷的存儲設備對人們的生活具有重要意義。本文提出一種安全、節(jié)能的私有存儲設備,搭載Ubuntu 系統(tǒng)和SFTP 服務器[5],可保證數(shù)據(jù)傳輸安全[6];搭載千兆網(wǎng)卡,確保高速傳輸;配置遠程開關機模塊[7-8],確保設備節(jié)能[9]和數(shù)據(jù)安全。
本文的私有存儲設備由RTD1296 核心模塊、ESP32輔助控制模塊、WiFi 傳輸模塊、千兆以太網(wǎng)模塊、硬盤存儲模塊、USB 模塊、電源模塊等組成。RTD1296 作為核心控制模塊,主要控制數(shù)據(jù)傳輸以及服務器各種協(xié)議的運行等,不需要傳輸文件時,可以斷電關機,節(jié)省能源,防止黑客竊取文件信息。RTD1296 搭載了Uboot、Ubuntu 系統(tǒng)[10-12]、Nginx 服務器、SFTP 服務器[13]、NAT 服務器等。ESP32 模塊的功能包含AirKiss+ESPTouch 智能配網(wǎng)、MQTT 遠程開關機[14]、藍牙通信等,由專用的APP 控制。私有存儲系統(tǒng)整體設計如圖1 所示。
圖1 私有存儲系統(tǒng)整體設計
本文系統(tǒng)的基本框架層次主要由硬件環(huán)境、硬件接口驅(qū)動、操作系統(tǒng)、傳輸協(xié)議以及上層的應用軟件組成,如圖2 所示。
圖2 本文系統(tǒng)基本框架層次
本文使用RTD1296 作為核心控制芯片。RTD1296集成四核ARMCortex-A53 MPcore,最高工作頻率為1.5 GHz,能在開源智能路由器中使用;支持多種外圍設備,包括HDMI/TX、Mini DP、PCI 2.0、PCI 1.1、SDIO、m.2接口、USB 2.0、USB 3.0、SATA 端口、2 Gb/s 以太網(wǎng)端口,還支持通過PCI-e 端口連接IEEE 802.11 AC/n WLAN。本方案使用ESP32 作為輔助芯片,ESP32 是Espressif 樂鑫信息科技推出的一塊WiFi 芯片,雙核32 位MCU、2.4 GHz 雙模WiFi 和藍牙芯片,兩個CPU 核可以單獨控制或者上電。ESP32 使用板載天線,接收信號能力強;ESP32 控制RTD1296 和磁盤電源的使能端,控制其開關機。 使用RTL8822BE 作為WiFi 網(wǎng)卡,使用IEEE 802.11ac 標準。本文設計自帶2 個SATAⅢ接口,可以保證硬盤的存儲速度,SATAⅢ的傳輸速度可以達到6 Gb/s,理論上是SATAⅡ的2 倍。本設計采用合適的固件模塊以及相應的驅(qū)動,使操作系統(tǒng)和驅(qū)動能夠更好地適配各個硬件模塊。圖3 所示為硬件模塊連接結(jié)構(gòu)圖。
圖3 硬件模塊連接結(jié)構(gòu)圖
如圖3 所示,RTD1296 通過千兆以太網(wǎng)或者RTL8822BE 連接互聯(lián)網(wǎng),將數(shù)據(jù)存儲在SATA 接口的硬盤中。
本設計使用RTD1296 芯片搭載嵌入式Ubuntu 系統(tǒng)[15]和SFTP 服務器,將數(shù)據(jù)加密傳輸;使用Nginx 服務器防止其他客戶端登錄;使用ZeroTier 異地組網(wǎng)技術(shù),虛擬組建局域網(wǎng),實現(xiàn)內(nèi)網(wǎng)穿透。ESP32 主要實現(xiàn)AIRKISS+ESPTOUCH 配網(wǎng)技術(shù),MQTT 通信實現(xiàn)遠程開關機,藍牙通信技術(shù)提醒用戶備份等。兩者之間通過串口進行通信。
Ubuntu 系統(tǒng)是世界上最流行的Linux 系統(tǒng)之一,Ubuntu 系統(tǒng)主要應用在服務器產(chǎn)品和桌面辦公設備上,能夠快速兼容新的應用。 Ubuntu 系統(tǒng)集成Libreoffice 辦公工具,客戶可以借助此辦公工具,完成幻燈片設計和電子表格處理;Ubuntu 擁有成熟的網(wǎng)絡工具,從網(wǎng)絡配置工具到瀏覽器等。Ubuntu 社區(qū)為其發(fā)展提供了多種交流和討論方式,通過龐大的Ubuntu 社區(qū),開發(fā)者可以獲得很多技術(shù)支持;且Ubuntu 系統(tǒng)安裝軟件非常便捷,通常都是一個指令便可以完成,很適合新學者和開發(fā)人員的二次開發(fā)。所以,Ubuntu 系統(tǒng)更加適合本文的設計與開發(fā)。
SFTP(SSH File Transfer Protocol)是一種基于SSH(安全外殼)的文件傳輸協(xié)議,與FTP 語法和功能非常的相似。SFTP 是SSH 的一部分,是一種傳輸文件至服務器的安全方式。SFTP 協(xié)議傳輸過程中提供一種安全的網(wǎng)絡加密算法,從而保證數(shù)據(jù)傳輸?shù)陌踩FTP 在Linux 系統(tǒng)中,默認的網(wǎng)絡端口是22,其本身沒有單獨的守護進程,必須使用SSHD 守護進程完成相應的連接和答復操作,文件傳輸時提供密碼和密鑰驗證機制,有效防止黑客入侵。SFTP 傳輸速度能夠滿足千兆網(wǎng)速的需求,可以高達100 MB/s,在千兆寬帶傳輸時,不會拉低網(wǎng)速。
本文設計出于安全、穩(wěn)定、速度三方面考慮,選擇SFTP 服務器。
由于很多種軟件可以訪問SFTP 服務器,不利于數(shù)據(jù)存儲的安全,為了更安全地訪問設備,本文設計了Nginx 認證,使用Nginx 的auth_basic 認證模塊,主要用于生成用戶及其密碼,檢驗是否為特定APP;每次重新登錄時,都要進行Nginx 認證。Nginx 是一款輕量級的Web服務器/反向代理服務器,其特點是占有內(nèi)存少、并發(fā)能力強,能夠在嵌入式Ubuntu 系統(tǒng)中非常流暢地運行。
訪問設備時,首先要判斷是局域網(wǎng)還是外網(wǎng),如果是局域網(wǎng),則采用局域網(wǎng)傳輸;如果是外網(wǎng),則需要使用NAT 穿透技術(shù)。本文使用ZeroTier 技術(shù)來實現(xiàn)內(nèi)網(wǎng)穿透,基于P2P 連接,不經(jīng)過服務器中轉(zhuǎn),可以最大限度地利用帶寬提升網(wǎng)速,通過安裝相關客戶端、虛擬局域網(wǎng),達到內(nèi)網(wǎng)穿透的效果。圖4 所示為ZeroTier 內(nèi)網(wǎng)穿透模型圖。
圖4 ZeroTier 內(nèi)網(wǎng)穿透模型圖
本文設計是通過內(nèi)部ESP32 模塊進行配網(wǎng),ESP32工作在STA 模式,傳統(tǒng)AP 配網(wǎng)不太合適,操作相對而言,比較繁瑣。ESP32 采用AIRKISS+ESPTOUCH 配網(wǎng),幾乎所有的智能手機都可以使用。ESP32 通過智能配網(wǎng)成功以后,將正確的配網(wǎng)信息通過串口發(fā)送給RTD1296,RTD1296 主控設備接收到信息之后開始配網(wǎng)。具體配網(wǎng)過程如圖5 所示。
圖5 配網(wǎng)過程
RTD1296 整機工作在STA 模式,在手機上輸入密碼,點擊“一鍵配網(wǎng)”按鍵,設備開始配網(wǎng),成功之后,RTD1296 設備即可連接無線網(wǎng)。
本文設計的遠程開關機使用的是MQTT 技術(shù),終端設備發(fā)布消息,ESP32 模塊接收到由阿里云服務器轉(zhuǎn)發(fā)的消息,執(zhí)行相關指令;ESP32 模塊接收到正確的控制指令時,I/O 口輸出對應的高低電平,ESP32 的GPIO 連接RTD1296 的電源使能端,從而控制RTD1296 和磁盤的電源開關。圖6 所示為ESP32 模塊接收指令模型,左側(cè)的3 個終端設備為消息發(fā)布者,中間是MQTT 服務器,右側(cè)為RTD1296 設備,也就是本文的私有存儲設備。
圖6 ESP32 模塊接收指令模型
ESP32 模塊接收到MQTT 信息之后,如果是有效的指令,GPIO 就執(zhí)行相應的輸出;反之,則不執(zhí)行。
ESP32 模塊自帶藍牙功能,在不改變ESP32 模塊硬件電路的情況下,直接編寫藍牙控制程序即可。當ESP32 藍牙模塊在第一次使用時,要與用戶的藍牙進行配對才可以使用;配對完成以后,再次連接用戶藍牙設備,便可以自動激活設備,提醒用戶備份。
本文的實驗測試環(huán)境PC 端為聯(lián)想小新Pro13 便攜式計算機,Windows 10 操作系統(tǒng),CPU 為AMD Ryzen 54600U with Radeon Graphics 2.10 GHz,16 GB 內(nèi)存,普通固態(tài)硬盤512 GB,網(wǎng)卡型號為RTL8822CE。測試客戶端的加解密速度為平均速度。私有存儲設備的系統(tǒng)為Ubuntu1 6.04、RJ 45 千兆網(wǎng)口、RTL8822BE 無線網(wǎng)卡、SATA 接口硬盤,測試文件的傳輸速度為平均速度,并非理論速度。
SFTP 服務器是密文傳輸,主要考慮文件的安全性,防止黑客入侵,用戶通過SSH 文件傳輸協(xié)議安全傳輸文件。用WireShark 軟件進行抓包分析,圖7 所示為其后臺抓包截圖。
圖7 SFTP 服務器抓包圖(部分)
由圖7 中第2 行、3 行、7 行、8 行可以看出,SFTP 服務器的數(shù)據(jù)都是進行加密傳輸,不能獲得用戶名和密碼,由此可見數(shù)據(jù)傳輸是安全的。
本文設計的RTD1296 設備,其傳輸速度比傳統(tǒng)的私有存儲設備有一個很大的提升。與市面上的另一款私有存儲產(chǎn)品做對比,該產(chǎn)品簡稱為M1,其配置為使用RTD1195 為控制核心、1 GB DDR3、128 MB FLASH、千兆以太網(wǎng)接口、USB 3.0 擴展硬盤。下載與上傳速度對比如圖8、圖9 所示。
圖8 千兆以太網(wǎng)下載速度
圖9 千兆以太網(wǎng)上傳速度
下載速度方面,從圖8 中可以看出,RTD1296 的速度是RTD1195 的3 倍;上傳速度方面,從圖9 中可以看出,RTD1296 的速度是RTD1195 的7 倍;在私有存儲方面,RTD1296 更加合適。
外網(wǎng)訪問時,使用的是ZeroTier 異地組網(wǎng),網(wǎng)速和設備所接入的網(wǎng)絡有關,不經(jīng)過服務器中轉(zhuǎn),可以以最佳方式利用好帶寬。
市面上的私有存儲設備空閑的時候不能關閉主控的電源,只是主控進入待機狀態(tài)、磁盤進入休眠狀態(tài),主控和磁盤的電源沒有斷開,通常是5~10 W。本文設計的設備待機時只有ESP32 在工作,主控和硬盤電源關閉,延長整機壽命,待機功耗0.5 W 左右或者更低,按照每天工作10 h、待機14 h 進行對比,結(jié)果如表1 所示。
表1 存儲設備耗電量對比
表1 為兩款私有存儲設備的功率表,按照每天使用10 h、待機14 h 進行計算,RTD1296 設備每天消耗電能0.073 6 kW·h;RTD1195設備每天消耗電能0.149 kW·h。結(jié)果證明,本文設計的私有存儲設備(RTD1296)每天節(jié)省一半的電能,更適用于節(jié)能項目。
本文設計了一種以RTD1296 為控制核心的千兆私有存儲設備。本文的存儲設備采用模塊化設計方式,實驗證明,該系統(tǒng)的安全性高、傳輸速度快、節(jié)能。結(jié)合未來市場考慮,本文的硬件成本還可以降低。實際使用中,只需要以太網(wǎng)部分即可,輔助模塊也采用以太網(wǎng)連接,節(jié)省一個WiFi 網(wǎng)卡設備的成本。WiFi 連接網(wǎng)絡傳輸文件不穩(wěn)定,對網(wǎng)速需求較高者,則不能用WiFi 連接。不用WiFi 連接時,還可以省去配網(wǎng)時間,方便用戶聯(lián)網(wǎng),節(jié)省開發(fā)時間。
注:本文通訊作者為黃一平。