農麗萍,呂嘉嘉,梁梓辰,黃一平
(1.廣西師范大學物理科學與技術學院,廣西 桂林 541000;2.廣西師范大學電子與信息工程學院,廣西 桂林 541000;3.廣西師范大學計算機科學與工程學院,廣西 桂林 541000)
隨著5G 網絡的普及,數據流量不斷增多,用戶對云盤的需求越來越高。2020年百度網盤人均數據存儲量[1]超過200 GB,數據量增長快速。近年來,云盤數據泄露事件很常見[2],公有云盤存儲不安全且下載速度慢的問題也逐漸暴露出來,而個人網盤的核心場景主要基于個人存儲和中小企業辦公以及家庭娛樂等場景拓展[3]。伴隨著存儲設備的增多,能耗也在不斷增長。在國內,2021年數據中心總耗電量已達到2 000億kW·h,預計在2025年國內數據中心總能耗[4]將超過3 000億kW·h。綜上所述,個人或者企業通常將數據存儲在云盤或者個人網盤。網盤容易造成數據泄露,且不開通會員下載速度比較慢;云盤后臺服務器長期不斷電,容易造成能源浪費;個人網盤使用百兆網卡,傳輸速度慢,而且無法遠程開關機,長期通電,浪費電能,配置繁瑣,使用不便捷。因此,開發一款安全、高效、節能、便捷的存儲設備對人們的生活具有重要意義。本文提出一種安全、節能的私有存儲設備,搭載Ubuntu 系統和SFTP 服務器[5],可保證數據傳輸安全[6];搭載千兆網卡,確保高速傳輸;配置遠程開關機模塊[7-8],確保設備節能[9]和數據安全。
本文的私有存儲設備由RTD1296 核心模塊、ESP32輔助控制模塊、WiFi 傳輸模塊、千兆以太網模塊、硬盤存儲模塊、USB 模塊、電源模塊等組成。RTD1296 作為核心控制模塊,主要控制數據傳輸以及服務器各種協議的運行等,不需要傳輸文件時,可以斷電關機,節省能源,防止黑客竊取文件信息。RTD1296 搭載了Uboot、Ubuntu 系統[10-12]、Nginx 服務器、SFTP 服務器[13]、NAT 服務器等。ESP32 模塊的功能包含AirKiss+ESPTouch 智能配網、MQTT 遠程開關機[14]、藍牙通信等,由專用的APP 控制。私有存儲系統整體設計如圖1 所示。

圖1 私有存儲系統整體設計
本文系統的基本框架層次主要由硬件環境、硬件接口驅動、操作系統、傳輸協議以及上層的應用軟件組成,如圖2 所示。

圖2 本文系統基本框架層次
本文使用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 以太網端口,還支持通過PCI-e 端口連接IEEE 802.11 AC/n WLAN。本方案使用ESP32 作為輔助芯片,ESP32 是Espressif 樂鑫信息科技推出的一塊WiFi 芯片,雙核32 位MCU、2.4 GHz 雙模WiFi 和藍牙芯片,兩個CPU 核可以單獨控制或者上電。ESP32 使用板載天線,接收信號能力強;ESP32 控制RTD1296 和磁盤電源的使能端,控制其開關機。 使用RTL8822BE 作為WiFi 網卡,使用IEEE 802.11ac 標準。本文設計自帶2 個SATAⅢ接口,可以保證硬盤的存儲速度,SATAⅢ的傳輸速度可以達到6 Gb/s,理論上是SATAⅡ的2 倍。本設計采用合適的固件模塊以及相應的驅動,使操作系統和驅動能夠更好地適配各個硬件模塊。圖3 所示為硬件模塊連接結構圖。

圖3 硬件模塊連接結構圖
如圖3 所示,RTD1296 通過千兆以太網或者RTL8822BE 連接互聯網,將數據存儲在SATA 接口的硬盤中。
本設計使用RTD1296 芯片搭載嵌入式Ubuntu 系統[15]和SFTP 服務器,將數據加密傳輸;使用Nginx 服務器防止其他客戶端登錄;使用ZeroTier 異地組網技術,虛擬組建局域網,實現內網穿透。ESP32 主要實現AIRKISS+ESPTOUCH 配網技術,MQTT 通信實現遠程開關機,藍牙通信技術提醒用戶備份等。兩者之間通過串口進行通信。
Ubuntu 系統是世界上最流行的Linux 系統之一,Ubuntu 系統主要應用在服務器產品和桌面辦公設備上,能夠快速兼容新的應用。 Ubuntu 系統集成Libreoffice 辦公工具,客戶可以借助此辦公工具,完成幻燈片設計和電子表格處理;Ubuntu 擁有成熟的網絡工具,從網絡配置工具到瀏覽器等。Ubuntu 社區為其發展提供了多種交流和討論方式,通過龐大的Ubuntu 社區,開發者可以獲得很多技術支持;且Ubuntu 系統安裝軟件非常便捷,通常都是一個指令便可以完成,很適合新學者和開發人員的二次開發。所以,Ubuntu 系統更加適合本文的設計與開發。
SFTP(SSH File Transfer Protocol)是一種基于SSH(安全外殼)的文件傳輸協議,與FTP 語法和功能非常的相似。SFTP 是SSH 的一部分,是一種傳輸文件至服務器的安全方式。SFTP 協議傳輸過程中提供一種安全的網絡加密算法,從而保證數據傳輸的安全。SFTP 在Linux 系統中,默認的網絡端口是22,其本身沒有單獨的守護進程,必須使用SSHD 守護進程完成相應的連接和答復操作,文件傳輸時提供密碼和密鑰驗證機制,有效防止黑客入侵。SFTP 傳輸速度能夠滿足千兆網速的需求,可以高達100 MB/s,在千兆寬帶傳輸時,不會拉低網速。
本文設計出于安全、穩定、速度三方面考慮,選擇SFTP 服務器。
由于很多種軟件可以訪問SFTP 服務器,不利于數據存儲的安全,為了更安全地訪問設備,本文設計了Nginx 認證,使用Nginx 的auth_basic 認證模塊,主要用于生成用戶及其密碼,檢驗是否為特定APP;每次重新登錄時,都要進行Nginx 認證。Nginx 是一款輕量級的Web服務器/反向代理服務器,其特點是占有內存少、并發能力強,能夠在嵌入式Ubuntu 系統中非常流暢地運行。
訪問設備時,首先要判斷是局域網還是外網,如果是局域網,則采用局域網傳輸;如果是外網,則需要使用NAT 穿透技術。本文使用ZeroTier 技術來實現內網穿透,基于P2P 連接,不經過服務器中轉,可以最大限度地利用帶寬提升網速,通過安裝相關客戶端、虛擬局域網,達到內網穿透的效果。圖4 所示為ZeroTier 內網穿透模型圖。

圖4 ZeroTier 內網穿透模型圖
本文設計是通過內部ESP32 模塊進行配網,ESP32工作在STA 模式,傳統AP 配網不太合適,操作相對而言,比較繁瑣。ESP32 采用AIRKISS+ESPTOUCH 配網,幾乎所有的智能手機都可以使用。ESP32 通過智能配網成功以后,將正確的配網信息通過串口發送給RTD1296,RTD1296 主控設備接收到信息之后開始配網。具體配網過程如圖5 所示。

圖5 配網過程
RTD1296 整機工作在STA 模式,在手機上輸入密碼,點擊“一鍵配網”按鍵,設備開始配網,成功之后,RTD1296 設備即可連接無線網。
本文設計的遠程開關機使用的是MQTT 技術,終端設備發布消息,ESP32 模塊接收到由阿里云服務器轉發的消息,執行相關指令;ESP32 模塊接收到正確的控制指令時,I/O 口輸出對應的高低電平,ESP32 的GPIO 連接RTD1296 的電源使能端,從而控制RTD1296 和磁盤的電源開關。圖6 所示為ESP32 模塊接收指令模型,左側的3 個終端設備為消息發布者,中間是MQTT 服務器,右側為RTD1296 設備,也就是本文的私有存儲設備。

圖6 ESP32 模塊接收指令模型
ESP32 模塊接收到MQTT 信息之后,如果是有效的指令,GPIO 就執行相應的輸出;反之,則不執行。
ESP32 模塊自帶藍牙功能,在不改變ESP32 模塊硬件電路的情況下,直接編寫藍牙控制程序即可。當ESP32 藍牙模塊在第一次使用時,要與用戶的藍牙進行配對才可以使用;配對完成以后,再次連接用戶藍牙設備,便可以自動激活設備,提醒用戶備份。
本文的實驗測試環境PC 端為聯想小新Pro13 便攜式計算機,Windows 10 操作系統,CPU 為AMD Ryzen 54600U with Radeon Graphics 2.10 GHz,16 GB 內存,普通固態硬盤512 GB,網卡型號為RTL8822CE。測試客戶端的加解密速度為平均速度。私有存儲設備的系統為Ubuntu1 6.04、RJ 45 千兆網口、RTL8822BE 無線網卡、SATA 接口硬盤,測試文件的傳輸速度為平均速度,并非理論速度。
SFTP 服務器是密文傳輸,主要考慮文件的安全性,防止黑客入侵,用戶通過SSH 文件傳輸協議安全傳輸文件。用WireShark 軟件進行抓包分析,圖7 所示為其后臺抓包截圖。

圖7 SFTP 服務器抓包圖(部分)
由圖7 中第2 行、3 行、7 行、8 行可以看出,SFTP 服務器的數據都是進行加密傳輸,不能獲得用戶名和密碼,由此可見數據傳輸是安全的。
本文設計的RTD1296 設備,其傳輸速度比傳統的私有存儲設備有一個很大的提升。與市面上的另一款私有存儲產品做對比,該產品簡稱為M1,其配置為使用RTD1195 為控制核心、1 GB DDR3、128 MB FLASH、千兆以太網接口、USB 3.0 擴展硬盤。下載與上傳速度對比如圖8、圖9 所示。

圖8 千兆以太網下載速度

圖9 千兆以太網上傳速度
下載速度方面,從圖8 中可以看出,RTD1296 的速度是RTD1195 的3 倍;上傳速度方面,從圖9 中可以看出,RTD1296 的速度是RTD1195 的7 倍;在私有存儲方面,RTD1296 更加合適。
外網訪問時,使用的是ZeroTier 異地組網,網速和設備所接入的網絡有關,不經過服務器中轉,可以以最佳方式利用好帶寬。
市面上的私有存儲設備空閑的時候不能關閉主控的電源,只是主控進入待機狀態、磁盤進入休眠狀態,主控和磁盤的電源沒有斷開,通常是5~10 W。本文設計的設備待機時只有ESP32 在工作,主控和硬盤電源關閉,延長整機壽命,待機功耗0.5 W 左右或者更低,按照每天工作10 h、待機14 h 進行對比,結果如表1 所示。

表1 存儲設備耗電量對比
表1 為兩款私有存儲設備的功率表,按照每天使用10 h、待機14 h 進行計算,RTD1296 設備每天消耗電能0.073 6 kW·h;RTD1195設備每天消耗電能0.149 kW·h。結果證明,本文設計的私有存儲設備(RTD1296)每天節省一半的電能,更適用于節能項目。
本文設計了一種以RTD1296 為控制核心的千兆私有存儲設備。本文的存儲設備采用模塊化設計方式,實驗證明,該系統的安全性高、傳輸速度快、節能。結合未來市場考慮,本文的硬件成本還可以降低。實際使用中,只需要以太網部分即可,輔助模塊也采用以太網連接,節省一個WiFi 網卡設備的成本。WiFi 連接網絡傳輸文件不穩定,對網速需求較高者,則不能用WiFi 連接。不用WiFi 連接時,還可以省去配網時間,方便用戶聯網,節省開發時間。
注:本文通訊作者為黃一平。