楊冬雪 鄧榮
摘要:主要對(duì)車(chē)載邊緣計(jì)算環(huán)境中基于Linux平臺(tái)的FTP服務(wù)器集群進(jìn)行研究,首先對(duì)車(chē)載邊緣計(jì)算場(chǎng)景進(jìn)行分析,了解數(shù)據(jù)的來(lái)源以及傳輸方向,之后根據(jù)需求選擇使用FTP協(xié)議,搭建一個(gè)基于Linux平臺(tái)的FTP服務(wù)器集群,在服務(wù)器集群中提供FTP服務(wù),實(shí)時(shí)上傳車(chē)載數(shù)據(jù),有效避免車(chē)輛與云端服務(wù)器通信過(guò)程中會(huì)產(chǎn)生的高延時(shí)和數(shù)據(jù)量龐大的問(wèn)題,提高道路實(shí)時(shí)數(shù)據(jù)處理效率。
關(guān)鍵詞:車(chē)載邊緣計(jì)算;FTP服務(wù);服務(wù)器集群
中圖分類(lèi)號(hào):TP391? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)31-0122-03
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID)
0 引言
近年來(lái),隨著駕駛技術(shù)、無(wú)線通信技術(shù)的發(fā)展,伴隨著云計(jì)算技術(shù)以及云服務(wù)器的出現(xiàn),在車(chē)聯(lián)網(wǎng)環(huán)境中引入移動(dòng)邊緣計(jì)算技術(shù)被稱(chēng)作車(chē)載邊緣計(jì)算技術(shù)(Vehicle Edge Computing,VEC) [1],通過(guò)在路邊單元(Road Side Unit,RSU)上配備邊緣服務(wù)器,就近提供車(chē)輛所需數(shù)據(jù)處理計(jì)算服務(wù),在道路場(chǎng)景中,產(chǎn)生海量的數(shù)據(jù)和連接,邊緣計(jì)算靠近數(shù)據(jù)終端側(cè),可以及時(shí)處理對(duì)時(shí)延要求敏感的大量數(shù)據(jù),這樣避免了云平臺(tái)因處理海量數(shù)據(jù)而出現(xiàn)延遲、網(wǎng)絡(luò)擁塞等情況,可為車(chē)載用戶(hù)提供低時(shí)延、高帶寬、高可靠性的應(yīng)用服務(wù)。
車(chē)載邊緣計(jì)算需要將計(jì)算任務(wù)從云端遷移到車(chē)輛所在的邊緣設(shè)備上,并且通過(guò)車(chē)聯(lián)網(wǎng)技術(shù)將數(shù)據(jù)傳輸?shù)皆贫诉M(jìn)行存儲(chǔ)和處理。通過(guò)FTP協(xié)議,用戶(hù)可以上傳和下載文件,其在車(chē)載邊緣計(jì)算中具有廣泛的應(yīng)用潛力,F(xiàn)TP具有高效的文件傳輸能力,能夠快速地傳輸大量的數(shù)據(jù);其次,F(xiàn)TP支持?jǐn)帱c(diǎn)續(xù)傳和數(shù)據(jù)校驗(yàn),保證數(shù)據(jù)傳輸?shù)目煽啃?;此外,F(xiàn)TP還支持多種安全協(xié)議和身份驗(yàn)證機(jī)制,提供數(shù)據(jù)傳輸?shù)陌踩U?。本文考慮車(chē)載邊緣計(jì)算環(huán)境中的數(shù)據(jù)上傳問(wèn)題,設(shè)計(jì)了一個(gè)Linux服務(wù)器的集群,利用服務(wù)器集群的快速數(shù)據(jù)計(jì)算和處理能力,并在集群中提供FTP服務(wù),上傳汽車(chē)實(shí)時(shí)行駛數(shù)據(jù)和動(dòng)態(tài)交通信息數(shù)據(jù),加強(qiáng)信息共享能力。
1 車(chē)載邊緣計(jì)算場(chǎng)景
車(chē)載邊緣計(jì)算技術(shù)(VEC) 是車(chē)聯(lián)網(wǎng)與MEC技術(shù)的結(jié)合,車(chē)載邊緣計(jì)算場(chǎng)景圖如圖1 所示,通??梢苑譃槿齻€(gè)層次:邊緣節(jié)點(diǎn)層、邊緣網(wǎng)絡(luò)層和后端云層。每個(gè)層次具有不同的功能和職責(zé)[2]:
1) 邊緣節(jié)點(diǎn)層:由車(chē)、路邊單元、行人和紅綠燈等組成,包含車(chē)輛內(nèi)部的邊緣計(jì)算節(jié)點(diǎn)。邊緣節(jié)點(diǎn)層負(fù)責(zé)接收、處理和存儲(chǔ)來(lái)自路邊單元和車(chē)載單元的數(shù)據(jù),并執(zhí)行本地計(jì)算任務(wù),它包括了各種嵌入式系統(tǒng)或車(chē)載計(jì)算平臺(tái),可以實(shí)時(shí)響應(yīng)車(chē)輛的需求,提供邊緣計(jì)算的能力,在這一層可以實(shí)現(xiàn)車(chē)與車(chē)、車(chē)與人、車(chē)與路之間的通信。
2) 邊緣網(wǎng)絡(luò)層:由基站和邊緣服務(wù)器組成,負(fù)責(zé)連接車(chē)輛內(nèi)的邊緣計(jì)算節(jié)點(diǎn)與后端云層之間的通信,可以及時(shí)處理路邊單元和車(chē)載單元上傳的低時(shí)延數(shù)據(jù),將邊緣節(jié)點(diǎn)層收集到的數(shù)據(jù)進(jìn)行數(shù)據(jù)處理和數(shù)據(jù)存儲(chǔ)操作,并通過(guò)基站將邊緣網(wǎng)絡(luò)層和后端云層處理完成后的數(shù)據(jù)返還至車(chē)輛。邊緣網(wǎng)絡(luò)層提供網(wǎng)絡(luò)連接、數(shù)據(jù)傳輸和通信協(xié)議轉(zhuǎn)換等功能,邊緣層通常使用各種通信技術(shù),如4G/5G移動(dòng)網(wǎng)絡(luò)、Wi-Fi、藍(lán)牙等,實(shí)現(xiàn)車(chē)輛與邊緣網(wǎng)關(guān)或云服務(wù)器之間的數(shù)據(jù)傳輸。
3) 后端云層:由云服務(wù)器組成,負(fù)責(zé)接收、處理和存儲(chǔ)來(lái)自車(chē)輛節(jié)點(diǎn)和其他邊緣計(jì)算節(jié)點(diǎn)的數(shù)據(jù)。它提供強(qiáng)大的計(jì)算和存儲(chǔ)能力,支持大規(guī)模數(shù)據(jù)分析、機(jī)器學(xué)習(xí)和決策制定。后端云層可以執(zhí)行復(fù)雜的數(shù)據(jù)處理和應(yīng)用程序任務(wù),并通過(guò)邊緣網(wǎng)絡(luò)層與車(chē)輛節(jié)點(diǎn)進(jìn)行通信。
這三個(gè)層次協(xié)同工作,使得車(chē)載邊緣計(jì)算能夠在車(chē)輛內(nèi)部進(jìn)行實(shí)時(shí)的數(shù)據(jù)處理和決策,減少了與后端云服務(wù)器的延遲和數(shù)據(jù)傳輸量。
2 FTP協(xié)議
FTP (File Transfer Protocol) [3],文件傳輸協(xié)議,可跨平臺(tái)、簡(jiǎn)單且易于實(shí)現(xiàn),是應(yīng)用最廣泛的文件傳輸應(yīng)用之一。FTP工作在網(wǎng)絡(luò)OSI參考模型中的第七層,TCP/IP模型的第四層,提供文件傳輸和管理功能。TCP通過(guò)一系列策略保證傳輸過(guò)程中的可靠性,建立在TCP基礎(chǔ)上的FTP協(xié)議,在文件傳輸過(guò)程中也是非??煽康模圆捎肍TP進(jìn)行文件傳輸時(shí)除非提示有錯(cuò)誤,否則不會(huì)出現(xiàn)任何傳輸問(wèn)題。
FTP的基本模型如圖2所示,采用客戶(hù)機(jī)/服務(wù)器模式,即C/S模式,其中客戶(hù)端是發(fā)送文件或請(qǐng)求文件的一方,而服務(wù)器是存儲(chǔ)文件和響應(yīng)客戶(hù)端請(qǐng)求的一方。在普遍使用的HTTP通信過(guò)程中,只需要建立一個(gè)連接就可以傳輸數(shù)據(jù),但在FTP通信過(guò)程中,在客戶(hù)端與服務(wù)器進(jìn)行文件傳輸?shù)倪^(guò)程中須使用兩個(gè)連接,控制連接和數(shù)據(jù)連接,分別負(fù)責(zé)命令請(qǐng)求與交互和數(shù)據(jù)傳輸。
在FTP協(xié)議進(jìn)行文件傳輸時(shí),客戶(hù)端與服務(wù)器通過(guò)TCP建立連接,客戶(hù)端首先使用默認(rèn)的21號(hào)端口向服務(wù)器發(fā)出控制連接請(qǐng)求,隨后服務(wù)器使用20號(hào)端口與客戶(hù)端建立數(shù)據(jù)連接。正是由于FTP采用兩個(gè)獨(dú)立連接的優(yōu)點(diǎn),使文件傳輸分工更加明確,文件傳輸時(shí)也可以控制連接。
在本文中,需要完成車(chē)載邊緣計(jì)算環(huán)境中邊緣節(jié)點(diǎn)與FTP服務(wù)器的文件上傳以及下載任務(wù),根據(jù)上述對(duì)FTP的介紹,要實(shí)現(xiàn)最終的文件傳輸,首先需要建立FTP控制連接、客戶(hù)身份驗(yàn)證和FTP數(shù)據(jù)連接,控制連接需要一直保持連接狀態(tài),只有用戶(hù)端需要斷開(kāi)才會(huì)斷開(kāi)連接。FTP與計(jì)算機(jī)的類(lèi)型和操作系統(tǒng)無(wú)關(guān),因此基于這種原理,在不同的計(jì)算機(jī)類(lèi)型和操作系統(tǒng)上使用FTP進(jìn)行文件的上傳時(shí)基本的命令結(jié)構(gòu)也都是完全相同的。
3 中心云服務(wù)器集群應(yīng)用
Linux服務(wù)器集群在許多領(lǐng)域都有廣泛的應(yīng)用[4],如科學(xué)計(jì)算、數(shù)據(jù)分析、云計(jì)算等。它們提供了一種高性能、高可靠性和可擴(kuò)展性的解決方案,可以滿(mǎn)足大規(guī)模計(jì)算和處理需求。Linux服務(wù)器集群是將多臺(tái)運(yùn)行Linux操作系統(tǒng)的服務(wù)器組合在一起,形成一個(gè)統(tǒng)一的高性能計(jì)算集群。Linux服務(wù)器集群通常采用并行計(jì)算的方式,將大規(guī)模的計(jì)算任務(wù)分解成多個(gè)小任務(wù),并在多個(gè)計(jì)算節(jié)點(diǎn)上同時(shí)進(jìn)行處理,從而實(shí)現(xiàn)高效的計(jì)算,確保整個(gè)系統(tǒng)的可用性,可通過(guò)添加更多的計(jì)算節(jié)點(diǎn)來(lái)增加計(jì)算能力,擴(kuò)展集群的計(jì)算能力。
服務(wù)器集群可以提供高性能的數(shù)據(jù)處理能力,支持實(shí)時(shí)數(shù)據(jù)分析、車(chē)輛感知和決策等任務(wù)。集群中的多個(gè)服務(wù)器可以進(jìn)行并行計(jì)算,以加快數(shù)據(jù)處理速度。此外,服務(wù)器集群還可用于車(chē)載邊緣節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ),提供持久性的存儲(chǔ)解決方案。服務(wù)器集群可以充當(dāng)車(chē)載通信網(wǎng)關(guān),負(fù)責(zé)與車(chē)輛內(nèi)部和外部網(wǎng)絡(luò)的連接,實(shí)現(xiàn)車(chē)聯(lián)網(wǎng)功能。集群中的服務(wù)器可以處理車(chē)輛與云端服務(wù)器之間的通信,包括數(shù)據(jù)上傳、命令下發(fā)、實(shí)時(shí)消息推送等。服務(wù)器集群的高可用性和負(fù)載均衡特性能夠提供穩(wěn)定可靠的通信服務(wù)。通過(guò)服務(wù)器集群,可以對(duì)車(chē)載邊緣節(jié)點(diǎn)的資源進(jìn)行集中管理和調(diào)度。集群中的服務(wù)器可以監(jiān)控和管理車(chē)輛內(nèi)的計(jì)算資源、存儲(chǔ)資源和網(wǎng)絡(luò)資源,并根據(jù)需求進(jìn)行資源分配、任務(wù)調(diào)度和負(fù)載均衡。這樣可以提高資源利用率,降低能耗,同時(shí)確保系統(tǒng)的性能和可靠性。
在車(chē)載邊緣計(jì)算場(chǎng)景中使用Linux服務(wù)器集群具有如下優(yōu)勢(shì):
1) 高可用性:服務(wù)器集群可以提供高可用性和冗余性,減少了因服務(wù)器故障而導(dǎo)致的停機(jī)時(shí)間。車(chē)載邊緣計(jì)算涉及大量的數(shù)據(jù)生成、處理和存儲(chǔ)需求,服務(wù)器集群可以提供高性能的數(shù)據(jù)處理能力,支持實(shí)時(shí)數(shù)據(jù)分析、車(chē)輛感知和決策等任務(wù),支持?jǐn)?shù)據(jù)存儲(chǔ),提供持久性的存儲(chǔ)解決方案。
2) 負(fù)載均衡:服務(wù)器集群通過(guò)將負(fù)載分布到多個(gè)節(jié)點(diǎn)上,可以實(shí)現(xiàn)負(fù)載均衡。這有助于避免單個(gè)服務(wù)器過(guò)載,根據(jù)當(dāng)前的負(fù)載情況智能地分配請(qǐng)求,確保資源的有效利用和最大化的吞吐量。
3) 擴(kuò)展性:服務(wù)器集群可以輕松擴(kuò)展以應(yīng)對(duì)不斷增長(zhǎng)的流量和需求。通過(guò)添加更多的節(jié)點(diǎn),可以增加系統(tǒng)的處理能力和容量。
4) 故障恢復(fù)和容錯(cuò)能力:可以保證車(chē)載邊緣計(jì)算系統(tǒng)的穩(wěn)定運(yùn)行,通過(guò)在集群中配置冗余節(jié)點(diǎn)和自動(dòng)故障轉(zhuǎn)移機(jī)制,若某節(jié)點(diǎn)發(fā)生故障,其他節(jié)點(diǎn)可繼續(xù)接管該節(jié)點(diǎn)的服務(wù),提供可靠的系統(tǒng)運(yùn)行,避免長(zhǎng)時(shí)間的停機(jī)時(shí)間和數(shù)據(jù)丟失。
5) 靈活性和可管理性:允許對(duì)集群中的節(jié)點(diǎn)進(jìn)行集中管理和監(jiān)控,實(shí)施統(tǒng)一的配置和更新。這樣可以簡(jiǎn)化管理任務(wù),并提供更好的可控性和可維護(hù)性。
6) 成本效益:通過(guò)充分利用多個(gè)節(jié)點(diǎn)的計(jì)算資源,可以按需分配和利用硬件資源,減少硬件投資和維護(hù)成本。
4 仿真測(cè)試
4.1 在Linux服務(wù)器上架設(shè)FTP服務(wù)
由于FTP服務(wù)與計(jì)算機(jī)型號(hào)和操作系統(tǒng)無(wú)關(guān),利用Linux系統(tǒng)的高穩(wěn)定性,本文采用RHEL8系統(tǒng)架設(shè)FTP服務(wù)器[5]。RHEL8系統(tǒng)中 FTP用戶(hù)有匿名用戶(hù)、本地用戶(hù)及虛擬用戶(hù)三種認(rèn)證方式,在此選擇相對(duì)較安全的虛擬用戶(hù)模式,虛擬用戶(hù)是一種由FTP服務(wù)器創(chuàng)建的虛擬賬號(hào),它不對(duì)應(yīng)于服務(wù)器操作系統(tǒng)中的實(shí)際用戶(hù),通常用于增加FTP服務(wù)器的靈活性和安全性,特別是在大型服務(wù)器環(huán)境中,虛擬用戶(hù)的憑據(jù)和權(quán)限由FTP服務(wù)器自己管理和維護(hù),不依賴(lài)于操作系統(tǒng)的用戶(hù)和權(quán)限,F(xiàn)TP服務(wù)器可以實(shí)現(xiàn)靈活的權(quán)限控制,為FTP服務(wù)單獨(dú)建立用戶(hù)數(shù)據(jù)庫(kù)文件,將不同的虛擬用戶(hù)映射到不同的目錄,并給予它們特定的讀寫(xiě)權(quán)限,最安全的一種用戶(hù)認(rèn)證模式。因此在車(chē)載邊緣計(jì)算場(chǎng)景中FTP服務(wù)器集群采用更為安全的匿名模式進(jìn)行文件傳輸服務(wù)。選擇一臺(tái)服務(wù)器配置步驟如下:
1) 配置該臺(tái)服務(wù)器的IP為192.168.10.100。
2) 采用本地yum源安裝FTP服務(wù)的vsftpd軟件,即yum? ?-y? install? vsftpd*。
3) FTP服務(wù)安裝完成后,為虛擬用戶(hù)創(chuàng)建數(shù)據(jù)庫(kù)文件:/etc/vsftpd/virtuserdb.txt,然后使用Hash算法加密數(shù)據(jù)庫(kù)文件:db_load? -T? -t? hash? -f? /etc/vsftpd/virtuserdb.txt? /etc/vsftpd/vsftpd.db。
4) 創(chuàng)建虛擬用戶(hù)對(duì)應(yīng)的真實(shí)賬號(hào)及其所登錄的目錄,并設(shè)置相應(yīng)的權(quán)限:useradd? -d? /var/virtuser? virtuser創(chuàng)建用戶(hù)virtuser,其主目錄是/var/virtuser,并且為virtuser用戶(hù)和組添加讀和執(zhí)行權(quán)限chmod? 755? /var/virtuser。
5) 在/etc/vsftpd/vsftpd_user_conf目錄下為虛擬用戶(hù)添加讀寫(xiě)權(quán)限。
6) 修改FTP配置文件,打開(kāi)FTP配置文件:/etc/vsftpd/vsftpd.conf,在配置文件末尾添加語(yǔ)句及對(duì)應(yīng)功能如表1所示。
7) 啟動(dòng)vsftpd服務(wù):systemctl? restart? vsftpd,關(guān)閉防火墻: systemctl? stop? firewalld,關(guān)閉selinux:setenforce? 0,之后便可在客戶(hù)端使用虛擬用戶(hù)登錄訪問(wèn)FTP服務(wù)器上的資源。
4.2 FTP服務(wù)器性能測(cè)試
為了便于觀察,在Windows客戶(hù)端使用JMeter對(duì)FTP服務(wù)器進(jìn)行性能測(cè)試[6]。 JMeter是一款由Apache 組織基于 Java開(kāi)發(fā)的開(kāi)源的負(fù)載測(cè)試工具軟件,它主要用于模擬并發(fā)用戶(hù)訪問(wèn)網(wǎng)站、Web應(yīng)用程序、Web服務(wù)、數(shù)據(jù)庫(kù)等,以評(píng)估系統(tǒng)在不同負(fù)載情況下的性能和穩(wěn)定性。JMeter提供了豐富的功能和靈活的配置選項(xiàng),支持多種協(xié)議,可以創(chuàng)建測(cè)試計(jì)劃來(lái)組織和管理測(cè)試,通過(guò)線程組來(lái)模擬并發(fā)用戶(hù),生成豐富的測(cè)試報(bào)告和圖表,以可視化方式展示測(cè)試結(jié)果。可以通過(guò)圖表分析響應(yīng)時(shí)間、吞吐量、錯(cuò)誤率等指標(biāo),可用于測(cè)試靜態(tài)和動(dòng)態(tài)資源,可進(jìn)行壓力測(cè)試、性能測(cè)試、功能測(cè)試、接口測(cè)試等,可以幫助開(kāi)發(fā)人員和測(cè)試人員評(píng)估系統(tǒng)的性能和穩(wěn)定性,發(fā)現(xiàn)潛在的性能問(wèn)題,并進(jìn)行性能優(yōu)化。
1) 創(chuàng)建FTP服務(wù)測(cè)試計(jì)劃
首先在測(cè)試計(jì)劃中創(chuàng)建線程組,添加線程“FTP服務(wù)器測(cè)試”,設(shè)置線程數(shù)為500,模擬此時(shí)有500個(gè)邊緣用戶(hù)同時(shí)請(qǐng)求FTP服務(wù)器的響應(yīng)。添加FTP請(qǐng)求并進(jìn)行設(shè)置,設(shè)置協(xié)議為FTP協(xié)議,服務(wù)器IP為192.168.10.100,端口號(hào)為默認(rèn)端口號(hào)21,設(shè)置服務(wù)器中遠(yuǎn)程文件路徑為tmp,本地上傳的文件為D:/putfile.txt,傳輸方式為put,并輸入訪問(wèn)FTP服務(wù)器的虛擬用戶(hù)名及口令。
2) 添加監(jiān)聽(tīng)器
在監(jiān)聽(tīng)器中添加結(jié)果樹(shù)和聚合報(bào)告。
3) 運(yùn)行線程
運(yùn)行線程后查看結(jié)果樹(shù)和聚合報(bào)告,進(jìn)行性能分析,如圖 3、圖4 所示。在察看結(jié)果樹(shù)中,可以看到所有的請(qǐng)求都有正確響應(yīng)并完成,500個(gè)模擬用戶(hù)均完成本地文件上傳任務(wù);在聚合報(bào)告中,通過(guò)觀察每個(gè)FTP上傳請(qǐng)求的平均響應(yīng)時(shí)間為109ms,響應(yīng)時(shí)間指系統(tǒng)對(duì)用戶(hù)請(qǐng)求做出響應(yīng)所需要的時(shí)間,響應(yīng)時(shí)間越短,表明軟件的響應(yīng)速度越快,性能越好,吞吐量為25.0/sec,表示每秒能處理25個(gè)任務(wù),吞吐量越大,系統(tǒng)單位時(shí)間內(nèi)處理的數(shù)據(jù)就越多,即負(fù)載能力就越強(qiáng)。
5 結(jié)論
車(chē)載邊緣計(jì)算技術(shù)可以有效提升交通系統(tǒng)的安全性和可靠性,但其中的數(shù)據(jù)傳輸需要毫秒級(jí)別的處理速度,考慮將計(jì)算任務(wù)卸載到云端服務(wù)器,但同時(shí)也會(huì)因傳輸距離較遠(yuǎn)帶來(lái)車(chē)載終端的服務(wù)質(zhì)量嚴(yán)重下降的問(wèn)題。因此本文在云端設(shè)計(jì)了一個(gè)基于Linux系統(tǒng)的FTP服務(wù)器集群,提供高性能、高可用性的FTP服務(wù),以提高車(chē)載終端的服務(wù)質(zhì)量,提高道路實(shí)時(shí)數(shù)據(jù)的處理效率。
參考文獻(xiàn):
[1] 朱文霞,馮興樂(lè),劉靜敏,等.面向車(chē)聯(lián)網(wǎng)多優(yōu)先級(jí)任務(wù)的MEC計(jì)算卸載策略[J].現(xiàn)代電子技術(shù),2022,45(1):125-131.
[2] 段帥琪.基于移動(dòng)邊緣計(jì)算的車(chē)輛計(jì)算任務(wù)協(xié)作卸載策略研究[D].廣州:廣東工業(yè)大學(xué),2021.
[3] 史劉陽(yáng),牛奔,霍亞璽,等.某型導(dǎo)彈綜合測(cè)試設(shè)備筆錄儀數(shù)據(jù)采集改造研究[J].航空維修與工程,2019(6):41-43.
[4] 榮露威,陳麗瓊.基于Linux平臺(tái)的Web服務(wù)器集群架構(gòu)設(shè)計(jì)[J].無(wú)線互聯(lián)科技,2022,19(3):69-70.
[5] 王波.Linux網(wǎng)絡(luò)技術(shù)[M].2版.北京:機(jī)械工業(yè)出版社,2015.
[6] 楊柳.基于JMeter的網(wǎng)站性能測(cè)試研究[J].信息記錄材料,2022,23(10):204-206.
【通聯(lián)編輯:梁書(shū)】