• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      用于開源學習社區(qū)的openEuler 性能分布式測試實驗平臺開發(fā)

      2022-02-25 06:44:58黃靖茹李釗興裴喜龍徐志宇
      軟件導刊 2022年1期
      關鍵詞:端口集群分布式

      黃靖茹,李釗興,裴喜龍,2,徐志宇,2

      (1.同濟大學電子與信息工程學院;2.同濟大學計算機與信息技術國家級實驗教學示范中心,上海 201804)

      0 引言

      openEuler 是一個開源免費的Linux 發(fā)行版系統(tǒng)[1],旨在通過開放的社區(qū)形式與全球開發(fā)者共同構(gòu)建一個開放、多元和架構(gòu)包容的軟件生態(tài)體系。openEuler 同時也是一個創(chuàng)新系統(tǒng),倡導客戶在系統(tǒng)上提出創(chuàng)新想法、開拓新思路、實踐新方案。

      openEuler 是企業(yè)系統(tǒng)(Enterprise OS),其可以提供企業(yè)級應用要素,如穩(wěn)定的環(huán)境、長期的升級更新支持、強大的保守性、大規(guī)模系統(tǒng)的適用性等。與大多數(shù)操作系統(tǒng)一樣,openEuler 在發(fā)行每個版本前都需要經(jīng)過嚴格測試,驗證系統(tǒng)是否滿足需求,并對不足之處進行改進。測試人員一般通過靜態(tài)分析和軟件測試技術檢測系統(tǒng)缺陷[2-4],而系統(tǒng)故障具有很強的隨機性[5-6]。每個版本迭代時,系統(tǒng)測試都需要投入大量資源,因此如何以成本較低的方式構(gòu)造出一個隨機環(huán)境,既能使openEuler 隨機運行,又能有相對專業(yè)的人員將出現(xiàn)故障的情況描述清楚,并反饋給開發(fā)人員至關重要。雖然目前已針對許多系統(tǒng)開發(fā)了性能測試,如RTLinux[7-8]、Android[9-10]等,但關于openEuler 的平臺及其性能測試很少。

      隨著大數(shù)據(jù)和人工智能的發(fā)展,數(shù)據(jù)規(guī)模不斷擴大,利用單一設備進行測試面臨巨大挑戰(zhàn)[11-12]。在分布式環(huán)境下可以利用廉價主機組成集群進行大規(guī)模測試,以提高系統(tǒng)的可用性,因此目前對分布式測試的研究日益增加。為對openEuler 的性能進行高質(zhì)高效的分布式測試,同時盡量以低廉的成本推進版本的更新與迭代,本文設計了一個實驗平臺,通過開源學習社區(qū)和大規(guī)模學生實驗匯集個人智慧[13],使問題得到及時反饋與解決。本文主要介紹實驗平臺的開發(fā)過程,包括軟硬件配置、內(nèi)網(wǎng)穿透以及實驗平臺的使用方法。該實驗平臺是針對操作系統(tǒng)性能進行分布式測試,因此本文提出了基本的測試指標。此外,開發(fā)人員也可以根據(jù)具體需求定制方案及對應指標,具有很強的開放性和拓展性。

      1 實驗環(huán)境

      1.1 硬件環(huán)境

      3 塊樹莓派(Raspberry Pi,RPi),外加硬盤、SD 卡、電源等,組成一個陣列。由于編譯openEuler 的計算機存儲不得低于50GB,為滿足后續(xù)開發(fā)需要,本實驗平臺選擇128GB SD 卡作為每個RPi 的主存儲,并通過USB 口連接移動硬盤(Hard Disk)作為輔助存儲。

      Fig.1 Hardware configuration圖1 硬件配置

      圖1 為3 塊RPi 組成的硬件配置示意圖,每塊RPi 都需要連接電源和接入同一交換機(Switch),使其處在同一個局域網(wǎng)中,再通過廣域網(wǎng)(WAN)連到互聯(lián)網(wǎng)(Internet)。從集群分工的角度而言,一塊RPi 作為集群(Cluster)的主節(jié)點(Master),其他兩塊作為從節(jié)點(Workers),作為主節(jié)點的RPi 負責整個集群的存儲和對外訪問的控制。

      1.2 軟件環(huán)境

      需要安裝的軟件包括openEuler、Ceph 存儲[14]、Seafile云盤[15]、Frp[16]等。圖2 為軟件配置示意圖。

      Fig.2 Software configuration圖2 軟件配置

      openEuler 是整個集群的操作系統(tǒng),對于第一塊RPi(Rpi_0)而言,需要從官網(wǎng)直接獲取openEuler 的img 鏡像文件;對于剩下兩塊RPi(Rpi_1 和Rpi_2)而言,需利用openEuler 官方提供的源碼,在操作系統(tǒng)為openEuler 的Rpi_0中編譯得到img 鏡像文件。Ceph 負責具體存儲分配[17-18],構(gòu)成openEuler Ceph 集群,整個集群安裝Seafile 后,便于進行云存儲管理[19-20]。當集群處于同一局域網(wǎng)時,利用Frp開放內(nèi)網(wǎng)IP,使用戶可以在互聯(lián)網(wǎng)上進行訪問。為測試集群的性能,由測試管理服務訪問內(nèi)網(wǎng)。

      2 平臺搭建

      3 塊RPi 均需以openEuler 作為操作系統(tǒng)。出于測試openEuler 性能的目的,在不同硬件下需要按照不同方式安裝系統(tǒng),以下主要介紹兩種方式,均需在openEuler 的環(huán)境下進行。

      2.1 openEuler OS 獲取

      在openEuler 的RPi 版本下載官方openEuler 鏡像,將其燒錄到一張SD 卡中,在其中一塊RPi 上建立openEuler操作系統(tǒng)環(huán)境,版本為20.03 LTS SP1。

      2.2 openEuler OS 環(huán)境編譯構(gòu)建

      實驗平臺的開發(fā)圍繞openEuler 進行了多方面的性能測試,其中穩(wěn)定性的測試方法有以下兩種:在openEuler 環(huán)境下構(gòu)建自身編譯環(huán)境形成鏡像文件和構(gòu)建專門的測試程序。

      由于一款操作系統(tǒng)的穩(wěn)定性(兼容、數(shù)據(jù)包完整性等)測試從進行C/C++編譯、鏈接等開發(fā)過程便已開始,因此官網(wǎng)鏡像與自編鏡像一起工作有助于判斷環(huán)境文檔、腳本等是否完整。編譯環(huán)境會影響編譯構(gòu)建的結(jié)果,rpm 打包也受環(huán)境影響,因此在openEuler 自身環(huán)境下編譯構(gòu)建可以測試系統(tǒng)穩(wěn)定性。

      openEuler 是一款復雜應用環(huán)境的操作系統(tǒng),內(nèi)核和C/C++語言庫是耦合在一起的,內(nèi)核啟動后,首先會將C/C++庫作為動態(tài)鏈接庫載入內(nèi)存,如果要對操作系統(tǒng)內(nèi)核進行測試,需在應用程序上實施一些針對內(nèi)核的C/C++程序測試。在openEuler 系統(tǒng)搭建完成后,可以有針對性地編寫測試內(nèi)核的程序。

      2.3 openEuler 實驗軟件安裝

      目前有很多分布式軟件利用不同策略對每個節(jié)點進行管理和維護,安裝這些專業(yè)軟件不僅是搭建分布式環(huán)境的必要條件,也可以測試其與openEuler 系統(tǒng)的兼容性。此外,在分布式系統(tǒng)下,整個系統(tǒng)的穩(wěn)定性不僅與單臺計算機的性能有密切關系,計算機之間的存儲、時延等也會影響整體性能。因此,相關軟件的安裝能使測試重點更多地集中在操作系統(tǒng)表現(xiàn)上,有利于專業(yè)人員發(fā)現(xiàn)故障。

      2.3.1 Ceph 安裝

      在安裝Ceph 軟件之前系統(tǒng)環(huán)境需要滿足一定條件,包括配置eperl 源、關閉防火墻、配置主機名、配置NTP、配置免密登錄和關閉SELinux,其中配置NTP 是為了使集群中的存儲節(jié)點時差縮小,否則Ceph 會產(chǎn)生警報。

      正式安裝Ceph 軟件時,需要配置MON、MGR 和OSD 節(jié)點。由于OSD 節(jié)點實際存儲數(shù)據(jù)的進程,因此在每個存儲節(jié)點上都需要進行配置;MON 節(jié)點負責維護整個集群的狀態(tài),MGR 監(jiān)控集群的狀態(tài)并將一些數(shù)據(jù)暴露給外界,因此MON 節(jié)點和MGR 節(jié)點只需要在Master 節(jié)點配置。Ceph 同時提供塊、文件和對象存儲服務,后續(xù)可利用Ceph 提供的接口根據(jù)需要選擇合適的服務。

      2.3.2 Seaflie 安裝

      安裝Seafile 的前期需要關閉防火墻,以便安裝MySQL或MariaDB 數(shù)據(jù)庫。進行基本配置后還需要配置nginx 反向代理Seahub,同時啟動Seafile 和Seahub 并訪問nginx 監(jiān)聽的IP 地址和端口號。

      3 通過互聯(lián)網(wǎng)管理測試設備

      操作系統(tǒng)的開發(fā)測試環(huán)境一般布置得比較集中,以便于管理,易于采集出現(xiàn)故障的現(xiàn)場信息,甚至在恢復(Recover)的現(xiàn)場直接調(diào)試軟件,例如SSH 和遠程桌面均需要在局域網(wǎng)下通過IP 地址進行連接。本文對實驗環(huán)境的最重要訴求為隨時隨地訪問參與測試的機器。目前實驗系統(tǒng)均處于同一局域網(wǎng)中,為使外網(wǎng)能訪問到局域網(wǎng)內(nèi)部設備,一般需要將設備的私有IP 變?yōu)楣W(wǎng)IP。然而,為每一臺機器都申請一個公網(wǎng)IP 十分困難,也不必要,本文實驗平臺通過內(nèi)網(wǎng)穿透實現(xiàn)這一目的。

      實現(xiàn)內(nèi)網(wǎng)穿透的方法很多[21],本文使用Frp 進行反向代理的方案,該方案需要一臺帶有公網(wǎng)IP 的云服務器,本實驗選擇阿里云服務器。不同應用占用的端口不同,例如SSH 需要使用22 號端口,遠程桌面的RDP 占用3389 號端口,自建Web 服務一般占用80/443 端口,將工作站作為上外網(wǎng)的代理服務器則需要1080 端口等,因此可以通過開放不同的端口釋放不同的功能。

      利用Frp 進行反向代理的優(yōu)點是完全可控,可隨意配置端口進行穿透,還可以實現(xiàn)端口復用。多個服務都是通過公網(wǎng)服務器的某個端口暴露,速度與云服務器帶寬有關。frp 工具分為frps(server)和frpc(client)兩個包,分別安裝于公網(wǎng)云服務器和需要被外網(wǎng)訪問的各RPi 實驗平臺。

      為避免出現(xiàn)不兼容問題,統(tǒng)一選用0.32 版本的frp 工具。阿里云服務器的操作系統(tǒng)和內(nèi)網(wǎng)操作系統(tǒng)分別采用Ubuntu 和AArch64 架構(gòu)的openEuler,因此分別選用AMD 和ARM64 版本處理器。在實際搭建時,應關閉防火墻和開放端口,保證兩者暢通。通過Frp 的內(nèi)網(wǎng)穿透可實現(xiàn)對局域網(wǎng)內(nèi)部所有在線RPi 實驗平臺的隨時遠程訪問,同時也便于對性能測試的集中管理。

      4 測試集中管理

      實驗開始時,首先在PC 機上登錄客戶端軟件,通過互聯(lián)網(wǎng)訪問在線RPi 實驗平臺作為測試對象。使用Loadrunner 或網(wǎng)頁加壓程序?qū)ζ溥M行加壓,逐漸模擬用戶端的數(shù)目,對其進行檢測,觀察測試對象是否出現(xiàn)死機現(xiàn)象,同時在客戶機器上進行性能監(jiān)控,抓取測試對象的磁盤I/O 吞吐性能參數(shù)。

      本文設計的RPi 實驗平臺可用于對openEuler 各項性能指標的分布式測試,包括但不限于:

      (1)源碼編譯、安裝源的可獲得性評價。測試環(huán)境涉及到openEuler 與應用軟件的安裝,有很多安裝是基于源碼且隨機發(fā)生的,這將為評價openEuler 的資源分發(fā)能力提供數(shù)據(jù)支持。

      (2)云盤穩(wěn)定性。利用Seafile 的客戶端能力,在測試管理端隨機向云盤存儲文件,通過不同客戶端的數(shù)據(jù)同步能力判斷云盤服務的穩(wěn)定性和效率,這是一個功能與效率的復合測試。

      (3)系統(tǒng)連續(xù)開機能力。定時將/proc 目錄中的部分內(nèi)容傳輸給實驗管理服務器,用于判斷測試機器的運行情況。

      (4)網(wǎng)絡基準測試。通過不同客戶端從測試管理端收取數(shù)據(jù)包,觀察傳輸速度、時間以及數(shù)據(jù)大小等指標,判斷網(wǎng)絡傳輸中的系統(tǒng)穩(wěn)定性。

      5 結(jié)語

      針對目前開源操作系統(tǒng)openEuler 未曾向開源社區(qū)人員提供系統(tǒng)的分布式測試平臺這一問題,本文在RPi 上安裝openEuler,并在其上安裝Ceph、Seafile 以搭建基礎分布式環(huán)境,通過安裝Frp 進行內(nèi)網(wǎng)穿透,利用成熟的軟件系統(tǒng)檢驗操作系統(tǒng)及其應用軟件運行的穩(wěn)定性。該平臺避免了以往僅在事先制定的測試用例集上進行系統(tǒng)測試的短板,更能體現(xiàn)用戶應用場景的隨機性。該平臺易于使用、成本低廉,因此能在開源社區(qū)和學生實驗中推廣。然而,該平臺在系統(tǒng)性能方面的測試尚不全面,未來將著重研究如何對系統(tǒng)性能進行更完善的測試與評價。

      猜你喜歡
      端口集群分布式
      一種端口故障的解決方案
      科學家(2021年24期)2021-04-25 13:25:34
      海上小型無人機集群的反制裝備需求與應對之策研究
      一種無人機集群發(fā)射回收裝置的控制系統(tǒng)設計
      電子制作(2018年11期)2018-08-04 03:25:40
      分布式光伏熱錢洶涌
      能源(2017年10期)2017-12-20 05:54:07
      端口阻塞與優(yōu)先級
      分布式光伏:爆發(fā)還是徘徊
      能源(2017年5期)2017-07-06 09:25:54
      Python與Spark集群在收費數(shù)據(jù)分析中的應用
      勤快又呆萌的集群機器人
      基于DDS的分布式三維協(xié)同仿真研究
      雷達與對抗(2015年3期)2015-12-09 02:38:50
      初識電腦端口
      電腦迷(2015年6期)2015-05-30 08:52:42
      富顺县| 额济纳旗| 晋江市| 五大连池市| 元氏县| 肃北| 灵川县| 米易县| 台州市| 潍坊市| 固镇县| 古田县| 大庆市| 来凤县| 德化县| 克什克腾旗| 霍山县| 睢宁县| 克什克腾旗| 江都市| 蓬安县| 永康市| 称多县| 云安县| 嘉定区| 枣强县| 蕲春县| 宜兰县| 巴马| 肥乡县| 勃利县| 边坝县| 阳高县| 富民县| 江城| 龙南县| 连南| 肥东县| 长宁县| 蓬安县| 井陉县|