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