操作系統(tǒng)對硬件的虛擬化
操作系統(tǒng)
:就是為其他程序提供編寫和運(yùn)行環(huán)境的程序檩淋。
由程序來運(yùn)行程序芬为,而不是程序自己來運(yùn)行,這是操作系統(tǒng)提供的虛擬化的表現(xiàn)蟀悦。
加電之后媚朦,首先運(yùn)行OS,隨時可以載入其他程序執(zhí)行日戈。執(zhí)行完以后切換回OS本身询张。
但是每次還是要等待這個程序執(zhí)行完畢,才能接著載入下個程序執(zhí)行浙炼。任何中斷事件瑞侮,都會中斷正在運(yùn)行的程序的圆。
程序執(zhí)行完畢,會將CPU歸還給OS半火。從而繼續(xù)OS本身的運(yùn)行越妈。這種操作系統(tǒng)就是單任務(wù)操作系統(tǒng),典型代表就是DOS钮糖。
而批處理就是操作系統(tǒng)將多個程序一個一個的排列起來梅掠。省去了人為載入的過程。所以批處理操作系統(tǒng)相對單任務(wù)來說又進(jìn)了一步店归,但是本質(zhì)仍然是一個程序獨(dú)占資源阎抒。
再后來操作系統(tǒng)針對系統(tǒng)時鐘中斷開發(fā)了中斷服務(wù)程序,也就是多任務(wù)OS中的調(diào)度程序消痛。
中斷來臨且叁,CPU根據(jù)中斷向量表的內(nèi)容,指向調(diào)度程序所在的內(nèi)存地址入口秩伞,執(zhí)行調(diào)度程序的代碼逞带。
調(diào)度程序?qū)PU的執(zhí)行跳轉(zhuǎn)到各個應(yīng)用程序所在的內(nèi)存地址入口。
從微觀上看纱新,每個應(yīng)用程序獨(dú)占CPU展氓,但是時間非常小10ms,從宏觀上看就是同時執(zhí)行多個任務(wù)脸爱。
多任務(wù)操作系統(tǒng)的關(guān)鍵就是有多任務(wù)調(diào)度程序遇汞。
虛擬化的好處
虛擬化的好處是,將下層復(fù)雜的邏輯轉(zhuǎn)換為上層簡單的邏輯簿废,方便人類讀懂空入。
其實(shí)整個計算機(jī)技術(shù)就是抽象、封裝族檬、虛擬执庐、映射的過程。就連CPU也在想辦法把功能封裝到CPU的邏輯電路里面导梆,從而出現(xiàn)了更多的指令集轨淌。1.6GHz的酷睿雙核CPU性能比主頻3GHz的奔騰4代CPU更高。
計算機(jī)存儲子系統(tǒng)的虛擬化
存儲子系統(tǒng)主要分為:
- 磁盤
- 磁盤控制器
- 存儲網(wǎng)絡(luò)
- 磁盤陣列
- 卷管理層
- 目錄虛擬層
- 文件系統(tǒng)虛擬層
下面將介紹這些子系統(tǒng)如何進(jìn)行抽象虛擬的看尼。
磁盤控制器的虛擬化
控制器的工作就是根據(jù)驅(qū)動程序發(fā)來的磁盤讀寫信息递鹉,向磁盤發(fā)送SCSI指令和數(shù)據(jù)。
所以磁盤控制器完全可以對驅(qū)動程序隱藏下掛的物理磁盤藏斩。而虛擬出一個或者多個虛擬磁盤躏结。RAID就是典型代表≌颍控制器將物理磁盤組成RAID Group媳拴,然后在RG的基礎(chǔ)上虛擬出多個LUN黄橘,通告給主機(jī)驅(qū)動。
存儲網(wǎng)絡(luò)的虛擬化
在交換式SAN中屈溉,任何節(jié)點(diǎn)都是通過交換設(shè)備來進(jìn)行通信的塞关,如果在交換節(jié)點(diǎn)上做些手腳,就可以達(dá)到虛擬化的效果子巾。
我們可以在交換機(jī)上嵌入SCSI協(xié)議感知模塊帆赢。,SCSI發(fā)起設(shè)備向目標(biāo)設(shè)備傳輸?shù)臄?shù)據(jù)线梗,經(jīng)過交換機(jī)椰于,會主動復(fù)制對應(yīng)的幀到另一個節(jié)點(diǎn)的LUN上,形成鏡像仪搔。若一個節(jié)點(diǎn)故障瘾婿,則會將數(shù)據(jù)重定向到鏡像的LUN上。
還可以將某些N節(jié)點(diǎn)的LUN合并成池烤咧,然后動態(tài)的從這個池中分出虛擬LUN
磁盤陣列的虛擬化
磁盤陣列本來就是一個小計算機(jī)系統(tǒng)偏陪,是對存儲子系統(tǒng)的抽象虛擬化最佳表現(xiàn)。
何為磁盤陣列髓削,指的是將大量磁盤進(jìn)行組織管理,抽象虛擬成邏輯磁盤镀娶。通過和主機(jī)適配器通信立膛,呈現(xiàn)給主機(jī)。
盤陣控制器的角色都是不直接參與連接每塊磁盤梯码,而是利用后端適配器來管理下掛的磁盤
適配器就是中心控制器驅(qū)動的二級磁盤控制器宝泵。作為中心CPU的IO適配器,直接控制和管理物理磁盤轩娶,然后由中心控制器統(tǒng)一實(shí)現(xiàn)RAID儿奶、卷管理等功能。
后端適配器與中心控制器CPU之間通過PCIX總線等連接鳄抒。
中心控制器不但可以實(shí)現(xiàn)最基本的RAID功能闯捎,還可以實(shí)現(xiàn)LUN鏡像、快照许溅、遠(yuǎn)程復(fù)制瓤鼻、CDP數(shù)據(jù)保護(hù)、LUN再分配等贤重。
卷管理層
運(yùn)行在應(yīng)用主機(jī)上的功能模塊茬祷,對底層的物理磁盤或者LUN搜集再分配。
對盤陣控制器虛擬化之后的LUN再虛擬化并蝗,
比如進(jìn)行鏡像處理祭犯,
或者對其中的多個LUN做成軟RAID 秸妥。
再或者將所有的LUN合并形成資源池。
然后掰成多個卷沃粗。
文件系統(tǒng)
SAN存儲解決的是怎么記錄的問題粥惧,文件系統(tǒng)解決的是怎么組織磁盤的數(shù)據(jù)
需要在相應(yīng)的地方做標(biāo)記,通過一個鏈表一次一次指引找出完整的數(shù)據(jù)陪每。
把鏈表單獨(dú)做成一個記錄影晓,放在固定的位置,可以通過表找出一條數(shù)據(jù)在磁盤上的完整分布檩禾。利用這種思想做出來的文件系統(tǒng)挂签,比如FAT文件系統(tǒng),把每個完整數(shù)據(jù)稱為文件盼产。
文件分配表:FAT , File Allocate Table文件可以在磁盤不連續(xù)的存放饵婆,由單獨(dú)數(shù)據(jù)結(jié)構(gòu)來描述文件在磁盤的分布,
NTFS:給出文件在磁盤上的具體扇區(qū)戏售,利用“開始——結(jié)束”這樣的結(jié)構(gòu)來描述文件的分布情況侨核。
文件系統(tǒng)將磁盤抽象成了文件柜,同一份文件放在柜子的不同抽屜灌灾,利用元數(shù)據(jù)
來記錄“文件——對應(yīng)抽屜” 的分布情況搓译。
描述其他文件分布情況及屬性的文件,
元文件Metadata
文件系統(tǒng)是對磁盤塊的虛擬锋喜、抽象些己、組織和管理。只需要訪問文件嘿般,就等于訪問了扇區(qū)段标。
目錄虛擬層
操作系統(tǒng)中有一個虛擬目錄結(jié)構(gòu),在linux中叫VFS炉奴。--
虛擬文件系統(tǒng)逼庞,也就是說文件系統(tǒng)的目錄不是真實(shí)的,任何的文件系統(tǒng)可以掛在目錄下瞻赶。成為虛擬目錄的子目錄赛糟,可以增強(qiáng)靈活性。
其次砸逊,OS外部設(shè)備虛擬成一個虛擬文件虑灰,比如卷。/dev/hda
磁盤——控制器——存儲網(wǎng)絡(luò)——總線適配器——卷管理層——文件系統(tǒng)——虛擬目錄層和最終應(yīng)用層
帶內(nèi)虛擬化和帶虛擬化
帶內(nèi) InBand :控制指令和數(shù)據(jù)包走同一路線痹兜,所謂控制指令指的是控制數(shù)據(jù)流向的數(shù)據(jù)穆咐,如IP路由協(xié)議產(chǎn)生的數(shù)據(jù)包,它也是利用實(shí)際數(shù)據(jù)線路進(jìn)行傳輸。
帶外 OutBand:控制指令走單獨(dú)的路線对湃。
帶外和帶內(nèi)虛擬化:
帶內(nèi)虛擬化:進(jìn)行虛擬化的設(shè)備直接橫在發(fā)起者和目標(biāo)路徑之間崖叫,也就是串在同一路徑上,作為一個“泵”
帶外虛擬化:旁路拍柒,用這條路徑來走控制信號心傀,而實(shí)際數(shù)據(jù)還是由發(fā)起者直接走向目標(biāo)。發(fā)起者必須先咨詢旁路的虛擬化設(shè)備拆讯,經(jīng)過提示之后脂男,才根據(jù)虛擬化設(shè)備的指示直接向目標(biāo)請求數(shù)據(jù)
硬網(wǎng)絡(luò)與軟網(wǎng)絡(luò)
硬網(wǎng)絡(luò)
硬件網(wǎng)絡(luò)設(shè)備其功能還是靠軟件來實(shí)現(xiàn)的,特別是路由設(shè)備种呐,本質(zhì)是一臺Server宰翅,上面運(yùn)行著處理數(shù)據(jù)包的程序。
所以硬件網(wǎng)絡(luò)環(huán)境實(shí)際上是用一部分PC充當(dāng)網(wǎng)絡(luò)硬件設(shè)備爽室,其他PC利用網(wǎng)絡(luò)設(shè)備的PC實(shí)現(xiàn)通信
軟件網(wǎng)絡(luò)程序
message queue和Message Broker在硬件網(wǎng)絡(luò)設(shè)備 的基礎(chǔ)上汁讼,模擬出一個純軟件的網(wǎng)絡(luò)轉(zhuǎn)發(fā)引擎。
MQ:消息轉(zhuǎn)發(fā)器阔墩『偌埽客戶端通過TCP/IP與之相連,將消息轉(zhuǎn)發(fā)到這個轉(zhuǎn)發(fā)器上啸箫,然后根據(jù)策略將消息轉(zhuǎn)發(fā)到其他客戶端上耸彪。類似于交換機(jī),不過MQ的鏈路層由TCP/IP來充當(dāng)
MB:應(yīng)用邏輯轉(zhuǎn)發(fā)引擎忘苛。應(yīng)用層次的轉(zhuǎn)發(fā)蝉娜,類似郵件服務(wù)器。只不過可轉(zhuǎn)發(fā)各種格式的數(shù)據(jù)包柑土。
多虛一
HPC
HPC主要分為兩類:
CPU密集運(yùn)算:專門用來計算數(shù)據(jù)蜀肘,稱為計算節(jié)點(diǎn)
IO密集運(yùn)算:專門用來存儲計算過程中所需要提取或者存放的數(shù)據(jù)绊汹,稱為存儲節(jié)點(diǎn)
計算節(jié)點(diǎn)看做CPU和內(nèi)存稽屏,存儲節(jié)點(diǎn)看做硬盤。對獨(dú)立的PC西乖,CPU內(nèi)存與硬盤的連接為高速IO總線狐榔,如PCIe
但是對HPC ,有些利用Infiniband有些利用以太網(wǎng)获雕。前者一般適用于IO密集運(yùn)算薄腻,后者用于CPU密集運(yùn)算。
Web + APP + db
客戶端通過Web服務(wù)器獲得網(wǎng)頁届案,應(yīng)用邏輯由APP服務(wù)器處理庵楷。最后通過Web服務(wù)器進(jìn)行展現(xiàn)。
可以把Web看做顯示終端,APP看做CPU和內(nèi)存尽纽,將DB看做硬盤
一虛多
計算虛擬化:模擬硬件系統(tǒng)咐蚯,將程序?qū)@個硬件系統(tǒng)CPU發(fā)送的指令經(jīng)過處理之后,加以虛擬傳到物理CPU上弄贿。比如Vmware的ESX
用磁盤陣列來虛擬磁帶庫
VTL,Virtual Tape Lib
要提高磁帶庫的速度春锋,只能多個驅(qū)動器同時工作,成本高差凹。
VTL使用磁盤來存儲數(shù)據(jù)而不是磁帶期奔,虛擬出機(jī)械手、磁帶驅(qū)動器危尿、磁帶