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