對分布式IO資源全局的有效管理和使用
隨著近幾年網(wǎng)絡(luò)的不斷推進發(fā)展,計算機協(xié)同作業(yè)成為提高計算機整體能力的重要途徑,合理的資源利用和相對應(yīng)的管理方案使計算機系統(tǒng)中大量的IO資源減輕了系統(tǒng)的運行和維護成本,提高系統(tǒng)的可用性。同時結(jié)合當前的各種軟件和硬件IO虛擬化技術(shù),在系統(tǒng)軟件層研究分布式IO資源訪問的技術(shù),實現(xiàn)客戶操作系統(tǒng)對分布式IO資源全局的有效管理和使用。
分布式I/O 資源虛擬化的具體實現(xiàn)系統(tǒng)主要由以下幾個子模塊構(gòu)成:
(1) 虛擬機退出和進人模塊
虛擬機退出、進人模塊就是保存處理器在根模式與非根模式之間轉(zhuǎn)換的制些處理器狀態(tài)信息。
(2) 指令解析模塊
主要功能是將客戶操作系統(tǒng)的1/0 設(shè)備訪問存指令按照一定規(guī)則解析并保存在固定數(shù)據(jù)結(jié)構(gòu)中。
(3)IO設(shè)備模型
主要功能是用軟件完全模擬物理設(shè)備,客戶操作系統(tǒng)可以向?qū)ξ锢碓O(shè)備訪問那樣訪問這些虛擬設(shè)備。同時10設(shè)備模型模塊還通過設(shè)備驅(qū)動完成虛擬擬設(shè)備到真實物理設(shè)備的訪問過程。
客戶操作系統(tǒng)在主節(jié)點訪向設(shè)備處理器進人根模式,經(jīng)過虛擬機退出模塊和指令解析模塊將需要模擬執(zhí)行的指令保存在ioreq 結(jié)構(gòu)中,然后主節(jié)點的1/0設(shè)備模型模塊對這個IO指令ioreq 結(jié)構(gòu)進行模擬執(zhí)行,并且將指令返回的信息更新到ioreq結(jié)構(gòu)中,然后虛擬機進人模塊將ioreq結(jié)構(gòu)中的信息更新客戶操作操作系統(tǒng)中,處理器進人非根模式,客戶操作系統(tǒng)繼續(xù)運行。
客戶操作系統(tǒng)在從節(jié)點發(fā)起設(shè)備訪問請求,系統(tǒng)分成二類設(shè)備請求進行處理: 非訪存類10指令,訪存類1/O指令,DMA指令,下面介紹這三類指令的實現(xiàn)方式:
1.非訪存類I/O 指令訪問模式
非訪存類I/O 指令訪問模式采用指令傳輸、遠程執(zhí)行、結(jié)果返回這種方式實現(xiàn)從節(jié)點對主節(jié)點虛擬設(shè)備I/O端口的訪問。 主節(jié)點接受到來自從節(jié)點的ioreq 請求,調(diào)用IO設(shè)備模型對此ioreg 進行模擬執(zhí)行,將返回的數(shù)據(jù)寫到ioreq結(jié)構(gòu)中,同時將此ioreg 結(jié)構(gòu)發(fā)回請求節(jié)點,請求節(jié)點接受到此ioreq結(jié)構(gòu)后,將此ioreq 結(jié)構(gòu)信息更新到客戶操作系統(tǒng)中,然后引起虛擬機進人,此次從節(jié)點發(fā)起的非訪存類1O指令就執(zhí)行完成。
2. 訪存類1/O 指令訪問模式
因為系統(tǒng)中所有對于內(nèi)存的訪問均由DSM 統(tǒng)籌處理,所以訪存類1/O指令執(zhí)行時必須經(jīng)過DSM.從節(jié)點解析此訪存類I/O指令。發(fā)送DSM 請求,此請求主要是讓DSM將所要訪問的頁面定住(pin),防止DSM 將此頁面遷往其他節(jié)點,或者其他節(jié)點的程序訪問此頁面。當DSM 模塊pin住此頁面之后,就可以像主節(jié)點那樣訪問此MMIO內(nèi)存區(qū)域訪問完成之后需要unpin 此內(nèi)存區(qū)域。
3.DMA 指令訪問模式I/O指令
從節(jié)點發(fā)起一個IDE DMA 指令,主節(jié)點的跨節(jié)點1/0請求服務(wù)例程接收到這個DMA ioreq之后,調(diào)用主節(jié)點處理DMA ioreq 模塊進行處理,然后IDE DMA 處理模塊被調(diào)用執(zhí)行。
IDEDMA處理模大方問I/O 設(shè)備模型,將主節(jié)點物理IDE硬盤的目標數(shù)據(jù)拷貝到I/O設(shè)備模型的虛擬IDE硬盤DMA緩沖區(qū)中,然后將此緩沖區(qū)中的數(shù)據(jù)拷貝到客戶操作系統(tǒng)運行的虛擬內(nèi)存的目標區(qū)域中,此過程需要請求DSM 的pin 和unpin操作,同時發(fā)送此DMA ioreg 發(fā)送回請求節(jié)點,更新CPU相關(guān)信息,隨后引起請求節(jié)點虛擬機進人非根模式,結(jié)束此次跨節(jié)點的IDE DMA 指令操作,
與其他服務(wù)器中對分布式IO資源的管理方面相比,IO虛擬化技術(shù)實現(xiàn)成本低。運用IO虛擬化技術(shù)和硬件虛擬化技術(shù)可以基于多主機的IO資源在系統(tǒng)軟件層構(gòu)件全局IO空間,客戶操作系統(tǒng)無需修改就能實現(xiàn)跨主機的分布式IO資源訪問和管理。