超融合解決方案完整版本_第1頁(yè)
超融合解決方案完整版本_第2頁(yè)
超融合解決方案完整版本_第3頁(yè)
超融合解決方案完整版本_第4頁(yè)
超融合解決方案完整版本_第5頁(yè)
已閱讀5頁(yè),還剩76頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

超融合解決方案V3.0頁(yè)超融合解決方案目錄TOC\o"1-6"\h\z\u第1章、 前言 61.1 IT時(shí)代的變革 61.2 白皮書(shū)總覽 8第2章、 超融合技術(shù)架構(gòu) 91.1 超融合架構(gòu)概述 91.1.1 超融合架構(gòu)的定義 91.2 超融合架構(gòu)組成模塊 91.2.1.1 系統(tǒng)總體架構(gòu) 91.2.1.2 aSV計(jì)算虛擬化平臺(tái) 101.2.1.2.1 概述 101.2.1.2.2 aSV技術(shù)原理 111.2.1.2.2.1 aSV的Hypervisor架構(gòu) 131.2.1.2.2.2 Hypervisor虛擬化實(shí)現(xiàn) 171.2.1.2.3 aSV的技術(shù)特性 251.2.1.2.3.1 內(nèi)存NUMA技術(shù) 251.2.1.2.3.2 SR-IOV 261.2.1.2.3.3 Faik-raid 281.2.1.2.3.4 虛擬機(jī)生命周期管理 291.2.1.2.3.5 虛擬交換機(jī) 301.2.1.2.3.6 動(dòng)態(tài)資源調(diào)度 301.2.1.2.4 aSV的特色技術(shù) 311.2.1.2.4.1 快虛 311.2.1.2.4.2 虛擬機(jī)熱遷移 321.2.1.2.4.3 虛擬磁盤(pán)加密 331.2.1.2.4.4 虛擬機(jī)的HA 341.2.1.2.4.5 多USB映射 351.2.1.3 aSAN存儲(chǔ)虛擬化 361.2.1.3.1 存儲(chǔ)虛擬化概述 361.2.1.3.1.1 虛擬后對(duì)存儲(chǔ)帶來(lái)的挑戰(zhàn) 361.2.1.3.1.2 分布式存儲(chǔ)技術(shù)的發(fā)展 371.2.1.3.1.3 aSAN概述 371.2.1.3.2 aSAN技術(shù)原理 381.2.1.3.2.1 主機(jī)管理 381.2.1.3.2.2 文件副本 381.2.1.3.2.3 磁盤(pán)管理 401.2.1.3.2.4 SSD讀緩存原理 421.2.1.3.2.5 SSD寫(xiě)緩存原理 481.2.1.3.2.6 磁盤(pán)故障處理機(jī)制 521.2.1.3.3 aSAN功能特性 641.2.1.3.3.1 存儲(chǔ)精簡(jiǎn)配置 641.2.1.3.3.2 aSAN私網(wǎng)鏈路聚合 651.2.1.3.3.3 數(shù)據(jù)一致性檢查 661.2.1.4 aNet網(wǎng)絡(luò)虛擬化 661.2.1.4.1 網(wǎng)絡(luò)虛擬化概述 661.2.1.4.2 aNET網(wǎng)絡(luò)虛擬化技術(shù)原理 671.2.1.4.2.1 SDN 671.2.1.4.2.2 NFV 681.2.1.4.2.3 aNet底層的實(shí)現(xiàn) 691.2.1.4.3 功能特性 741.2.1.4.3.1 aSW分布式虛擬交換機(jī) 741.2.1.4.3.2 aRouter 741.2.1.4.3.3 vAF 751.2.1.4.3.4 vAD 751.2.1.4.4 aNet的特色技術(shù) 761.2.1.4.4.1 網(wǎng)絡(luò)探測(cè)功能 761.2.1.4.4.2 全網(wǎng)流量可視 761.2.1.4.4.3 所畫(huà)即所得業(yè)務(wù)邏輯拓?fù)?771.2.2 超融合架構(gòu)產(chǎn)品介紹 771.2.2.1 產(chǎn)品概述 771.2.2.2 產(chǎn)品定位 78第3章、 超融合架構(gòu)帶來(lái)的核心價(jià)值 791.1 可靠性: 791.2 安全性 791.3 靈活彈性 791.4 易操作性 79第4章、 超融合架構(gòu)最佳實(shí)踐 81前言IT時(shí)代的變革20世紀(jì)90年代,隨著Windows的廣泛使用及Linux服務(wù)器操作系統(tǒng)的出現(xiàn)奠定了x86服務(wù)器的行業(yè)標(biāo)準(zhǔn)地位,然而x86服務(wù)器部署的增長(zhǎng)帶來(lái)了新的IT基礎(chǔ)架構(gòu)和運(yùn)作難題,包括:基礎(chǔ)架構(gòu)利用率低、物理基礎(chǔ)架構(gòu)成本日益攀升、IT管理成本不斷提高以及對(duì)關(guān)鍵應(yīng)用故障和災(zāi)難保護(hù)不足等問(wèn)題。X86服務(wù)器虛擬化技術(shù)的出現(xiàn),通過(guò)將x86系統(tǒng)轉(zhuǎn)變成通用的共享硬件基礎(chǔ)架構(gòu),充分挖掘硬件的潛力,提高硬件的利用效率,降低硬件和運(yùn)營(yíng)成本,并且簡(jiǎn)化運(yùn)維降低管理成本,最終幫助用戶(hù)把更多的時(shí)間和成本轉(zhuǎn)移到對(duì)業(yè)務(wù)的投入上。隨著云計(jì)算和虛擬化技術(shù)向構(gòu)建新一代數(shù)據(jù)中心方向發(fā)展,關(guān)鍵以虛擬化為基礎(chǔ),實(shí)現(xiàn)管理以及業(yè)務(wù)的集中,對(duì)數(shù)據(jù)中心資源進(jìn)行動(dòng)態(tài)調(diào)整和分配,重點(diǎn)滿足企業(yè)關(guān)鍵應(yīng)用向X86系統(tǒng)遷移對(duì)于資源高性能、高可靠、安全性和高可適應(yīng)性上的要求,同時(shí)提高基礎(chǔ)架構(gòu)的自動(dòng)化管理水平,確保滿足基礎(chǔ)設(shè)施快速適應(yīng)業(yè)務(wù)的商業(yè)訴求,支持企業(yè)應(yīng)用云化部署。云計(jì)算并不是一種新的技術(shù),而是在一個(gè)新理念的驅(qū)動(dòng)下產(chǎn)生的技術(shù)組合。在云計(jì)算之前,企業(yè)部署一套服務(wù),需要經(jīng)歷組網(wǎng)規(guī)劃,容量規(guī)劃,設(shè)備選型,下單,付款,發(fā)貨,運(yùn)輸,安裝,部署,調(diào)試的整個(gè)完整過(guò)程。這個(gè)周期在大型項(xiàng)目中需要以周甚至月來(lái)計(jì)算。在引入云計(jì)算后,這整個(gè)周期縮短到以分鐘來(lái)計(jì)算。IT業(yè)有一條摩爾定律,芯片速度容量每18個(gè)月提升一倍。同時(shí),IT行業(yè)還有一條反摩爾定律,所有無(wú)法追隨摩爾定律的廠家將被淘汰。IT行業(yè)是快魚(yú)吃慢魚(yú)的行業(yè),使用云計(jì)算可以提升IT設(shè)施供給效率,不使用則會(huì)拖慢產(chǎn)品或服務(wù)的擴(kuò)張腳步,一步慢步步慢。云計(jì)算當(dāng)然還會(huì)帶來(lái)別的好處,比如提升復(fù)用率縮減成本,降低能源消耗,縮減維護(hù)人力成本等方面的優(yōu)勢(shì),但在反摩爾定律面前,已經(jīng)顯得不是那么重要。業(yè)界關(guān)于云計(jì)算技術(shù)的定義,是通過(guò)虛擬化技術(shù),將不同的基礎(chǔ)設(shè)施標(biāo)準(zhǔn)化為相同的業(yè)務(wù)部件,然后利用這些業(yè)務(wù)部件,依據(jù)用戶(hù)需求自動(dòng)化組合來(lái)滿足各種個(gè)性化的訴求。云著重于虛擬化,標(biāo)準(zhǔn)化,和自動(dòng)化。的超融合架構(gòu)是一款成熟的Iaas層的云計(jì)算解決方案,除滿足上面所述的虛擬化,標(biāo)準(zhǔn)化和自動(dòng)化訴求外,秉承公司產(chǎn)品的優(yōu)秀基因,向您提供簡(jiǎn)單易用,安全可靠的產(chǎn)品。本文檔向您講述超融合架構(gòu)解決方案中所用到的相關(guān)技術(shù),通過(guò)閱讀本文檔,您能夠了解到:云的虛擬化,標(biāo)準(zhǔn)化,易用性,易管理這些關(guān)鍵技術(shù)是如何在的超融合架構(gòu)解決方案中體現(xiàn)的;超融合架構(gòu)解決方案是如何做到簡(jiǎn)單,安全可靠的;超融合解決方案所包含的部件,所涉及的主要技術(shù)領(lǐng)域,使用的主要的一些技術(shù);針對(duì)超融合架構(gòu)提供的各種技術(shù)選擇,您怎樣使用它們來(lái)滿足您的業(yè)務(wù)訴求。白皮書(shū)總覽本書(shū)介紹的內(nèi)容大致如下:第一章、在前言部分,給您對(duì)云計(jì)算,云平臺(tái)有一個(gè)概括性的認(rèn)識(shí),并對(duì)本文檔的閱讀給出指導(dǎo)。第二章、講述超融合架構(gòu)中的主要功能模塊,各個(gè)功能模塊的技術(shù)細(xì)節(jié)介紹。第三章、向您介紹超融合架構(gòu)中的技術(shù)在為客戶(hù)帶來(lái)的核心價(jià)值。第四章、分享超融合架構(gòu)在客戶(hù)中的實(shí)際應(yīng)用場(chǎng)景,并給出超融合架構(gòu)產(chǎn)品的體驗(yàn)途徑,非常歡迎您來(lái)試用。超融合技術(shù)架構(gòu)超融合架構(gòu)概述超融合架構(gòu)的定義超融合基礎(chǔ)架構(gòu),這是一種將計(jì)算、網(wǎng)絡(luò)和存儲(chǔ)等資源作為基本組成元素,根據(jù)系統(tǒng)需求進(jìn)行選擇和預(yù)定義的一種技術(shù)架構(gòu),具體實(shí)現(xiàn)方式上一般是指在同一套單元節(jié)點(diǎn)(x86服務(wù)器)中融入軟件虛擬化技術(shù)(包括計(jì)算、網(wǎng)絡(luò)、存儲(chǔ)、安全等虛擬化),而每一套單元節(jié)點(diǎn)可以通過(guò)網(wǎng)絡(luò)聚合起來(lái),實(shí)現(xiàn)模塊化的無(wú)縫橫向擴(kuò)展(scale-out),構(gòu)建統(tǒng)一的資源池。超融合架構(gòu)組成模塊系統(tǒng)總體架構(gòu)超融合架構(gòu)圖超融合架構(gòu)在基于底層基礎(chǔ)架構(gòu)(標(biāo)準(zhǔn)的X86硬件)上將計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)、安全軟件化,通過(guò)這種軟件化的方式,即計(jì)算虛擬化aSV、存儲(chǔ)虛擬化aSAN、網(wǎng)絡(luò)虛擬化aNet,構(gòu)建了數(shù)據(jù)中心里所需的最小資源單元,通過(guò)資源池中的最小單元,提供了數(shù)據(jù)中心IT基礎(chǔ)架構(gòu)中所需的全部資源。aSV計(jì)算虛擬化平臺(tái)概述計(jì)算資源虛擬化技術(shù)就是將通用的x86服務(wù)器經(jīng)過(guò)虛擬化軟件,對(duì)最終用戶(hù)呈現(xiàn)標(biāo)準(zhǔn)的虛擬機(jī)。這些虛擬機(jī)就像同一個(gè)廠家生產(chǎn)的系列化的產(chǎn)品一樣,具備系列化的硬件配置,使用相同的驅(qū)動(dòng)程序。虛擬化技術(shù)起源于大型機(jī),最早可以追溯到上世紀(jì)六、七十年代大型機(jī)上的虛擬分區(qū)技術(shù),即允許在一臺(tái)主機(jī)上運(yùn)行多個(gè)操作系統(tǒng),讓用戶(hù)盡可能充分地利用昂貴的大型機(jī)資源。隨著技術(shù)的發(fā)展和市場(chǎng)競(jìng)爭(zhēng)的需要,虛擬化技術(shù)向小型機(jī)或UNIX服務(wù)器上移植,只是由于真正使用大型機(jī)和小型機(jī)的用戶(hù)還是少數(shù),加上各廠商產(chǎn)品和技術(shù)之間的不兼容,使得虛擬化技術(shù)不太被公眾所關(guān)注。(注:由于X86架構(gòu)在設(shè)計(jì)之初并沒(méi)有考慮支持虛擬化技術(shù),它本身的結(jié)構(gòu)和復(fù)雜性使得在其之上進(jìn)行虛擬化非常困難,早期的X86架構(gòu)并沒(méi)有成為虛擬化技術(shù)的受益者)20世紀(jì)90年代,虛擬化軟件廠商采用一種軟件解決方案,以VMM(VirtualMachineMonitor,VMM虛擬機(jī)監(jiān)視器)為中心使X86服務(wù)器平臺(tái)實(shí)現(xiàn)虛擬化。然而這種純軟件的“全虛擬化”模式,每個(gè)GuestOS(客戶(hù)操作系統(tǒng))獲得的關(guān)鍵平臺(tái)資源都要由VMM控制和分配,需要利用二進(jìn)制轉(zhuǎn)換,而二進(jìn)制轉(zhuǎn)換帶來(lái)的開(kāi)銷(xiāo)使得“完全虛擬化”的性能大打折扣。為解決性能問(wèn)題,出現(xiàn)了一種新的虛擬化技術(shù)“半虛擬化”,即不需要二進(jìn)制轉(zhuǎn)換,而是通過(guò)對(duì)客戶(hù)操作系統(tǒng)進(jìn)行代碼級(jí)修改,使定制的GuestOS獲得額外的性能和高擴(kuò)展性,但是修改GuestOS也帶來(lái)了系統(tǒng)指令級(jí)的沖突及運(yùn)行效率問(wèn)題,需要投入大量?jī)?yōu)化的工作。當(dāng)前,虛擬化技術(shù)已經(jīng)發(fā)展到了硬件支持的階段,“硬件虛擬化”技術(shù)就是把純軟件虛擬化技術(shù)的各項(xiàng)功能用硬件電路來(lái)實(shí)現(xiàn),可減少VMM運(yùn)行的系統(tǒng)開(kāi)銷(xiāo),可同時(shí)滿足CPU半虛擬化和二進(jìn)制轉(zhuǎn)換技術(shù)的需求,的超融合架構(gòu)解決方案中的計(jì)算虛擬化采用aSV虛擬化系統(tǒng),通過(guò)將服務(wù)器資源虛擬化為多臺(tái)虛擬機(jī)。最終用戶(hù)可以在這些虛擬機(jī)上安裝各種軟件,掛載磁盤(pán),調(diào)整配置,調(diào)整網(wǎng)絡(luò),就像普通的x86服務(wù)器一樣使用它。計(jì)算虛擬化是超融合的架構(gòu)中必不可少的關(guān)鍵因素,對(duì)于最終用戶(hù),虛擬機(jī)比物理機(jī)的優(yōu)勢(shì)在于它可以很快速的發(fā)放,很方便的調(diào)整配置和組網(wǎng)。對(duì)于維護(hù)人員來(lái)講,虛擬機(jī)復(fù)用了硬件,這樣硬件更少,加上云平臺(tái)的自動(dòng)維護(hù)能力,這樣整個(gè)IT系統(tǒng)的成本顯著降低。aSV技術(shù)原理服務(wù)器務(wù)器虛擬化前后的巨大差異,源于虛擬機(jī)與物理服務(wù)器的本質(zhì)區(qū)別上:虛擬機(jī)的定義:虛擬機(jī)(VirtualMachine)是由虛擬化層提供的高效、獨(dú)立的虛擬計(jì)算機(jī)系統(tǒng),每臺(tái)虛擬機(jī)都是一個(gè)完整的系統(tǒng),它具有處理器、內(nèi)存、網(wǎng)絡(luò)設(shè)備、存儲(chǔ)設(shè)備和BIOS,因此操作系統(tǒng)和應(yīng)用程序在虛擬機(jī)中的運(yùn)行方式與它們?cè)谖锢矸?wù)器上的運(yùn)行方式?jīng)]有什么區(qū)別。虛擬機(jī)的本質(zhì)區(qū)別:與物理服務(wù)器相比,虛擬機(jī)不是由真實(shí)的電子元件組成,而是由一組虛擬組件(文件)組成,這些虛擬組件與物理服務(wù)器的硬件配置無(wú)關(guān),關(guān)鍵與物理服務(wù)器相比,虛擬機(jī)具有以下優(yōu)勢(shì):抽象解耦:1.可在任何X86架構(gòu)的服務(wù)器上運(yùn)行;2.上層應(yīng)用操作系統(tǒng)不需修改即可運(yùn)行;分區(qū)隔離:1.可與其他虛擬機(jī)同時(shí)運(yùn)行;2.實(shí)現(xiàn)數(shù)據(jù)處理、網(wǎng)絡(luò)連接和數(shù)據(jù)存儲(chǔ)的安全隔離;封裝移動(dòng):1.可封裝于文件之中,通過(guò)簡(jiǎn)單的文件復(fù)制實(shí)現(xiàn)快速部署、備份及還原;2.可便捷地將整個(gè)系統(tǒng)(包括虛擬硬件、操作系統(tǒng)和配置好的應(yīng)用程序)在不同的物理服務(wù)器之間進(jìn)行遷移,甚至可以在虛擬機(jī)正在運(yùn)行的情況下進(jìn)行遷移;aSV的Hypervisor架構(gòu)Hypervisor是一種運(yùn)行在物理服務(wù)器和操作系統(tǒng)之間的中間軟件層,可允許多個(gè)操作系統(tǒng)和應(yīng)用共享一套基礎(chǔ)物理硬件,因此也可以看作是虛擬環(huán)境中的“元”操作系統(tǒng),它可以協(xié)調(diào)訪問(wèn)服務(wù)器上的所有物理設(shè)備和虛擬機(jī),也叫虛擬機(jī)監(jiān)視器(VirtualMachineMonitor)。Hypervisor是所有虛擬化技術(shù)的核心。非中斷地支持多工作負(fù)載遷移的能力是Hypervisor的基本功能。當(dāng)服務(wù)器啟動(dòng)并執(zhí)行Hypervisor時(shí),它會(huì)給每一臺(tái)虛擬機(jī)分配適量的內(nèi)存、CPU、網(wǎng)絡(luò)和磁盤(pán),并加載所有虛擬機(jī)的客戶(hù)操作系統(tǒng)。虛擬化技術(shù)架構(gòu)Hypervisor,常見(jiàn)的Hypervisor分兩類(lèi):Type-I(裸金屬型)指VMM直接運(yùn)作在裸機(jī)上,使用和管理底層的硬件資源,GuestOS對(duì)真實(shí)硬件資源的訪問(wèn)都要通過(guò)VMM來(lái)完成,作為底層硬件的直接操作者,VMM擁有硬件的驅(qū)動(dòng)程序。裸金屬虛擬化中Hypervisor直接管理調(diào)用硬件資源,不需要底層操作系統(tǒng),也可以理解為Hypervisor被做成了一個(gè)很薄的操作系統(tǒng)。這種方案的性能處于主機(jī)虛擬化與操作系統(tǒng)虛擬化之間。代表是VMwareESXServer、CitrixXenServer和MicrosoftHyper-V,Linux

KVM。Type-II型(宿主型)指VMM之下還有一層宿主操作系統(tǒng),由于GuestOS對(duì)硬件的訪問(wèn)必須經(jīng)過(guò)宿主操作系統(tǒng),因而帶來(lái)了額外的性能開(kāi)銷(xiāo),但可充分利用宿主操作系統(tǒng)提供的設(shè)備驅(qū)動(dòng)和底層服務(wù)來(lái)進(jìn)行內(nèi)存管理、進(jìn)程調(diào)度和資源管理等。主機(jī)虛擬化中VM的應(yīng)用程序調(diào)用硬件資源時(shí)需要經(jīng)過(guò):VM內(nèi)核->Hypervisor->主機(jī)內(nèi)核,導(dǎo)致性能是三種虛擬化技術(shù)中最差的。主機(jī)虛擬化技術(shù)代表是VMware

Server(GSX)、Workstation和Microsoft

Virtual

PC、Virtual

Server等。由于主機(jī)型Hypervisor的效率問(wèn)題,的aSV采用了裸機(jī)型Hypervisor中的LinuxKVM虛擬化,即為T(mén)ype-I(裸金屬型)。KVM(Kenerl-basedVirtualMachine)是基于linux內(nèi)核虛擬化技術(shù),自linux2.6.20之后就集成在linux的各個(gè)主要發(fā)行版本中。它使用linux自身的調(diào)度器進(jìn)行管理,所以相對(duì)于xen,其核心源碼很少。KVM是基于硬件虛擬化擴(kuò)展(Intel

VT-

X

AMD-V)和

QEMU

的修改版,KVM屬于Linuxkernel的一個(gè)模塊,可以用命令modprobe去加載KVM模塊。加載了該模塊后,才能進(jìn)一步通過(guò)工具創(chuàng)建虛擬機(jī)。但是僅有KVM模塊是不夠的。因?yàn)橛脩?hù)無(wú)法直接控制內(nèi)核去做事情,還必須有一個(gè)運(yùn)行在用戶(hù)空間的工具才行。這個(gè)用戶(hù)空間的工具,我們選擇了已經(jīng)成型的開(kāi)源虛擬化軟件QEMU。QEMU也是一個(gè)虛擬化軟件,它的特點(diǎn)是可虛擬不同的CPU,比如說(shuō)在x86的CPU上可虛擬一個(gè)power的CPU,并可利用它編譯出可運(yùn)行在power上的CPU,并可利用它編譯出可運(yùn)行在power上的程序。KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的用戶(hù)空間工具了。這就是KVM和QEMU的關(guān)系。如下圖:KVM的實(shí)現(xiàn)模塊有兩個(gè),分別是:kvm.ko是提供核心虛擬化的基礎(chǔ)架構(gòu);特定于處理器的模塊kvm-intel.ko和kvm-amd.ko。其設(shè)計(jì)目標(biāo)是在需要引導(dǎo)多個(gè)未改動(dòng)的PC操作系統(tǒng)時(shí)支持完整的硬件模擬。一個(gè)普通的linux進(jìn)程有兩種運(yùn)行模式:內(nèi)核和用戶(hù)。而KVM增加了第三種模式:客戶(hù)模式(有自己的內(nèi)核和用戶(hù)模式)。在kvm模型中,每一個(gè)虛擬機(jī)都是由linux調(diào)度程序管理的標(biāo)準(zhǔn)進(jìn)程??傮w來(lái)說(shuō),kvm由兩個(gè)部分組成:一個(gè)是管理虛擬硬件的設(shè)備驅(qū)動(dòng),該驅(qū)動(dòng)使用字符設(shè)備/dev/kvm作為管理接口;另一個(gè)是模擬PC硬件的用戶(hù)空間組件,這是一個(gè)稍作修改的qemu進(jìn)程。同時(shí),aSV采用KVM優(yōu)勢(shì)有:嵌入到Linux正式Kernel(提高兼容性)代碼級(jí)資源調(diào)用(提高性能)虛擬機(jī)就是一個(gè)進(jìn)程(內(nèi)存易于管理)直接支持NUMA技術(shù)(提高擴(kuò)展性)保持開(kāi)源發(fā)展模式(強(qiáng)大的社區(qū)支持)Hypervisor虛擬化實(shí)現(xiàn)VMM(VirtualMachineMonitor)對(duì)物理資源的虛擬可以劃分為三個(gè)部分:CPU虛擬化、內(nèi)存虛擬化和I/O設(shè)備虛擬化,其中以CPU的虛擬化最為關(guān)鍵。經(jīng)典的虛擬化方法:現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)一般至少有兩個(gè)特權(quán)級(jí)(即用戶(hù)態(tài)和核心態(tài),x86有四個(gè)特權(quán)級(jí)Ring0~Ring3)用來(lái)分隔系統(tǒng)軟件和應(yīng)用軟件。那些只能在處理器的最高特權(quán)級(jí)(內(nèi)核態(tài))執(zhí)行的指令稱(chēng)之為特權(quán)指令,一般可讀寫(xiě)系統(tǒng)關(guān)鍵資源的指令(即敏感指令)決大多數(shù)都是特權(quán)指令(X86存在若干敏感指令是非特權(quán)指令的情況)。如果執(zhí)行特權(quán)指令時(shí)處理器的狀態(tài)不在內(nèi)核態(tài),通常會(huì)引發(fā)一個(gè)異常而交由系統(tǒng)軟件來(lái)處理這個(gè)非法訪問(wèn)(陷入)。經(jīng)典的虛擬化方法就是使用“特權(quán)解除”和“陷入-模擬”的方式,即將GuestOS運(yùn)行在非特權(quán)級(jí),而將VMM運(yùn)行于最高特權(quán)級(jí)(完全控制系統(tǒng)資源)。解除了GuestOS的特權(quán)級(jí)后,GuestOS的大部分指令仍可以在硬件上直接運(yùn)行,只有執(zhí)行到特權(quán)指令時(shí),才會(huì)陷入到VMM模擬執(zhí)行(陷入-模擬)?!跋萑?模擬”的本質(zhì)是保證可能影響VMM正確運(yùn)行的指令由VMM模擬執(zhí)行,大部分的非敏感指令還是照常運(yùn)行。因?yàn)閄86指令集中有若干條指令是需要被VMM捕獲的敏感指令,但是卻不是特權(quán)指令(稱(chēng)為臨界指令),因此“特權(quán)解除”并不能導(dǎo)致他們發(fā)生陷入模擬,執(zhí)行它們不會(huì)發(fā)生自動(dòng)的“陷入”而被VMM捕獲,從而阻礙了指令的虛擬化,這也稱(chēng)之為X86的虛擬化漏洞。 X86架構(gòu)虛擬化的實(shí)現(xiàn)方式可分為:1、X86“全虛擬化”(指所抽象的VM具有完全的物理機(jī)特性,OS在其上運(yùn)行不需要任何修改)Full派秉承無(wú)需修改直接運(yùn)行的理念,對(duì)“運(yùn)行時(shí)監(jiān)測(cè),捕捉后模擬”的過(guò)程進(jìn)行優(yōu)化。該派內(nèi)部之實(shí)現(xiàn)又有些差別,其中以VMWare為代表的基于二進(jìn)制翻譯(BT)的全虛擬化為代表,其主要思想是在執(zhí)行時(shí)將VM上執(zhí)行的GuestOS指令,翻譯成x86指令集的一個(gè)子集,其中的敏感指令被替換成陷入指令。翻譯過(guò)程與指令執(zhí)行交叉進(jìn)行,不含敏感指令的用戶(hù)態(tài)程序可以不經(jīng)翻譯直接執(zhí)行。2、X86“半虛擬化”(指需OS協(xié)助的虛擬化,在其上運(yùn)行的OS需要修改)Para派的基本思想是通過(guò)修改GuestOS的代碼,將含有敏感指令的操作,替換為對(duì)VMM的超調(diào)用Hypercall,類(lèi)似OS的系統(tǒng)調(diào)用,將控制權(quán)轉(zhuǎn)移到VMM,該技術(shù)因VMM項(xiàng)目而廣為人知。該技術(shù)的優(yōu)勢(shì)在于VM的性能能接近于物理機(jī),缺點(diǎn)在于需要修改GuestOS(如:Windows不支持修改)及增加的維護(hù)成本,關(guān)鍵修改GuestOS會(huì)導(dǎo)致操作系統(tǒng)對(duì)特定hypervisor的依賴(lài)性,因此很多虛擬化廠商基于VMM開(kāi)發(fā)的虛擬化產(chǎn)品部分已經(jīng)放棄了Linux半虛擬化,而專(zhuān)注基于硬件輔助的全虛擬化開(kāi)發(fā),來(lái)支持未經(jīng)修改的操作系統(tǒng)。3、X86“硬件輔助虛擬化”:其基本思想就是引入新的處理器運(yùn)行模式和新的指令,使得VMM和GuestOS運(yùn)行于不同的模式下,GuestOS運(yùn)行于受控模式,原來(lái)的一些敏感指令在受控模式下全部會(huì)陷入VMM,這樣就解決了部分非特權(quán)的敏感指令的“陷入-模擬”難題,而且模式切換時(shí)上下文的保存恢復(fù)由硬件來(lái)完成,這樣就大大提高了“陷入-模擬”時(shí)上下文切換的效率。以IntelVT-x硬件輔助虛擬化技術(shù)為例,該技術(shù)增加了在虛擬狀態(tài)下的兩種處理器工作模式:根(Root)操作模式和非根(Non-root)操作模式。VMM運(yùn)作在Root操作模式下,而GuestOS運(yùn)行在Non-root操作模式下。這兩個(gè)操作模式分別擁有自己的特權(quán)級(jí)環(huán),VMM和虛擬機(jī)的GuestOS分別運(yùn)行在這兩個(gè)操作模式的0環(huán)。這樣,既能使VMM運(yùn)行在0環(huán),也能使GuestOS運(yùn)行在0環(huán),避免了修改GuestOS。Root操作模式和Non-root操作模式的切換是通過(guò)新增的CPU指令(VMXON,VMXOFF等)來(lái)完成。硬件輔助虛擬化技術(shù)消除了操作系統(tǒng)的ring轉(zhuǎn)換問(wèn)題,降低了虛擬化門(mén)檻,支持任何操作系統(tǒng)的虛擬化而無(wú)須修改OS內(nèi)核,得到了虛擬化軟件廠商的支持。硬件輔助虛擬化技術(shù)已經(jīng)逐漸消除軟件虛擬化技術(shù)之間的差別,并成為未來(lái)的發(fā)展趨勢(shì)。vCPU機(jī)制vCPU調(diào)度機(jī)制對(duì)虛擬機(jī)來(lái)說(shuō),不直接感知物理CPU,虛擬機(jī)的計(jì)算單元通過(guò)vCPU對(duì)象來(lái)呈現(xiàn)。虛擬機(jī)只看到VMM呈現(xiàn)給它的vCPU。在VMM中,每個(gè)vCPU對(duì)應(yīng)一個(gè)VMCS(Virtual-MachineControlStructure)結(jié)構(gòu),當(dāng)vcpu被從物理CPU上切換下來(lái)的時(shí)候,其運(yùn)行上下文會(huì)被保存在其對(duì)應(yīng)的VMCS結(jié)構(gòu)中;當(dāng)vcpu被切換到pcpu上運(yùn)行時(shí),其運(yùn)行上下文會(huì)從對(duì)應(yīng)的VMCS結(jié)構(gòu)中導(dǎo)入到物理CPU上。通過(guò)這種方式,實(shí)現(xiàn)各vCPU之間的獨(dú)立運(yùn)行。從虛擬機(jī)系統(tǒng)的結(jié)構(gòu)與功能劃分可以看出,客戶(hù)操作系統(tǒng)與虛擬機(jī)監(jiān)視器共同構(gòu)成了虛擬機(jī)系統(tǒng)的兩級(jí)調(diào)度框架,如圖所示是一個(gè)多核環(huán)境下虛擬機(jī)系統(tǒng)的兩級(jí)調(diào)度框架??蛻?hù)操作系統(tǒng)負(fù)責(zé)第2級(jí)調(diào)度,即線程或進(jìn)程在vCPU上的調(diào)度(將核心線程映射到相應(yīng)的虛擬CPU上)。虛擬機(jī)監(jiān)視器負(fù)責(zé)第1級(jí)調(diào)度,即vCPU在物理處理單元上的調(diào)度。兩級(jí)調(diào)度的調(diào)度策略和機(jī)制不存在依賴(lài)關(guān)系。vCPU調(diào)度器負(fù)責(zé)物理處理器資源在各個(gè)虛擬機(jī)之間的分配與調(diào)度,本質(zhì)上即把各個(gè)虛擬機(jī)中的vCPU按照一定的策略和機(jī)制調(diào)度在物理處理單元上可以采用任意的策略來(lái)分配物理資源,滿足虛擬機(jī)的不同需求。vCPU可以調(diào)度在一個(gè)或多個(gè)物理處理單元執(zhí)行(分時(shí)復(fù)用或空間復(fù)用物理處理單元),也可以與物理處理單元建立一對(duì)一固定的映射關(guān)系(限制訪問(wèn)指定的物理處理單元)。內(nèi)存虛擬化圖3-6內(nèi)存虛擬化三層模型因?yàn)閂MM(VirtualMachineMonitor)掌控所有系統(tǒng)資源,因此VMM握有整個(gè)內(nèi)存資源,其負(fù)責(zé)頁(yè)式內(nèi)存管理,維護(hù)虛擬地址到機(jī)器地址的映射關(guān)系。因GuestOS本身亦有頁(yè)式內(nèi)存管理機(jī)制,則有VMM的整個(gè)系統(tǒng)就比正常系統(tǒng)多了一層映射:A.虛擬地址(VA),指GuestOS提供給其應(yīng)用程序使用的線性地址空間;B.物理地址(PA),經(jīng)VMM抽象的、虛擬機(jī)看到的偽物理地址;C.機(jī)器地址(MA),真實(shí)的機(jī)器地址,即地址總線上出現(xiàn)的地址信號(hào);映射關(guān)系如下:GuestOS:PA=f(VA)、VMM:MA=g(PA)VMM維護(hù)一套頁(yè)表,負(fù)責(zé)PA到MA的映射。GuestOS維護(hù)一套頁(yè)表,負(fù)責(zé)VA到PA的映射。實(shí)際運(yùn)行時(shí),用戶(hù)程序訪問(wèn)VA1,經(jīng)GuestOS的頁(yè)表轉(zhuǎn)換得到PA1,再由VMM介入,使用VMM的頁(yè)表將PA1轉(zhuǎn)換為MA1。頁(yè)表虛擬化技術(shù)普通MMU只能完成一次虛擬地址到物理地址的映射,在虛擬機(jī)環(huán)境下,經(jīng)過(guò)MMU轉(zhuǎn)換所得到的“物理地址”并不是真正的機(jī)器地址。若需得到真正的機(jī)器地址,必須由VMM介入,再經(jīng)過(guò)一次映射才能得到總線上使用的機(jī)器地址。如果虛擬機(jī)的每個(gè)內(nèi)存訪問(wèn)都需要VMM介入,并由軟件模擬地址轉(zhuǎn)換的效率是很低下的,幾乎不具有實(shí)際可用性,為實(shí)現(xiàn)虛擬地址到機(jī)器地址的高效轉(zhuǎn)換,現(xiàn)普遍采用的思想是:由VMM根據(jù)映射f和g生成復(fù)合的映射fg,并直接將這個(gè)映射關(guān)系寫(xiě)入MMU。當(dāng)前采用的頁(yè)表虛擬化方法主要是MMU類(lèi)虛擬化(MMUParavirtualization)和影子頁(yè)表,后者已被內(nèi)存的硬件輔助虛擬化技術(shù)所替代。1、MMUParavirtualization其基本原理是:當(dāng)GuestOS創(chuàng)建一個(gè)新的頁(yè)表時(shí),會(huì)從它所維護(hù)的空閑內(nèi)存中分配一個(gè)頁(yè)面,并向VMM注冊(cè)該頁(yè)面,VMM會(huì)剝奪GuestOS對(duì)該頁(yè)表的寫(xiě)權(quán)限,之后GuestOS對(duì)該頁(yè)表的寫(xiě)操作都會(huì)陷入到VMM加以驗(yàn)證和轉(zhuǎn)換。VMM會(huì)檢查頁(yè)表中的每一項(xiàng),確保他們只映射了屬于該虛擬機(jī)的機(jī)器頁(yè)面,而且不得包含對(duì)頁(yè)表頁(yè)面的可寫(xiě)映射。后VMM會(huì)根據(jù)自己所維護(hù)的映射關(guān)系,將頁(yè)表項(xiàng)中的物理地址替換為相應(yīng)的機(jī)器地址,最后再把修改過(guò)的頁(yè)表載入MMU。如此,MMU就可以根據(jù)修改過(guò)頁(yè)表直接完成虛擬地址到機(jī)器地址的轉(zhuǎn)換。2、內(nèi)存硬件輔助虛擬化內(nèi)存硬件輔助虛擬化技術(shù)原理圖內(nèi)存的硬件輔助虛擬化技術(shù)是用于替代虛擬化技術(shù)中軟件實(shí)現(xiàn)的“影子頁(yè)表”的一種硬件輔助虛擬化技術(shù),其基本原理是:GVA(客戶(hù)操作系統(tǒng)的虛擬地址)->GPA(客戶(hù)操作系統(tǒng)的物理地址)->HPA(宿主操作系統(tǒng)的物理地址)兩次地址轉(zhuǎn)換都由CPU硬件自動(dòng)完成(軟件實(shí)現(xiàn)內(nèi)存開(kāi)銷(xiāo)大、性能差)。以VT-x技術(shù)的頁(yè)表擴(kuò)充技術(shù)ExtendedPageTable(EPT)為例,首先VMM預(yù)先把客戶(hù)機(jī)物理地址轉(zhuǎn)換到機(jī)器地址的EPT頁(yè)表設(shè)置到CPU中;其次客戶(hù)機(jī)修改客戶(hù)機(jī)頁(yè)表無(wú)需VMM干預(yù);最后,地址轉(zhuǎn)換時(shí),CPU自動(dòng)查找兩張頁(yè)表完成客戶(hù)機(jī)虛擬地址到機(jī)器地址的轉(zhuǎn)換。使用內(nèi)存的硬件輔助虛擬化技術(shù),客戶(hù)機(jī)運(yùn)行過(guò)程中無(wú)需VMM干預(yù),去除了大量軟件開(kāi)銷(xiāo),內(nèi)存訪問(wèn)性能接近物理機(jī)。I/O設(shè)備虛擬化VMM通過(guò)I/O虛擬化來(lái)復(fù)用有限的外設(shè)資源,其通過(guò)截獲GuestOS對(duì)I/O設(shè)備的訪問(wèn)請(qǐng)求,然后通過(guò)軟件模擬真實(shí)的硬件,目前I/O設(shè)備的虛擬化方式主要有三種:設(shè)備接口完全模擬、前端/后端模擬、直接劃分。1、設(shè)備接口完全模擬:即軟件精確模擬與物理設(shè)備完全一樣的接口,GuestOS驅(qū)動(dòng)無(wú)須修改就能驅(qū)動(dòng)這個(gè)虛擬設(shè)備,Vmware即使用該方法。優(yōu)點(diǎn):沒(méi)有額外的硬件開(kāi)銷(xiāo),可重用現(xiàn)有驅(qū)動(dòng)程序;缺點(diǎn):為完成一次操作要涉及到多個(gè)寄存器的操作,使得VMM要截獲每個(gè)寄存器訪問(wèn)并進(jìn)行相應(yīng)的模擬,這就導(dǎo)致多次上下文切換;由于是軟件模擬,性能較低。2、前端/后端模擬:VMM提供一個(gè)簡(jiǎn)化的驅(qū)動(dòng)程序(后端,Back-End),GuestOS中的驅(qū)動(dòng)程序?yàn)榍岸?Front-End,FE),前端驅(qū)動(dòng)將來(lái)自其他模塊的請(qǐng)求通過(guò)與GuestOS間的特殊通信機(jī)制直接發(fā)送給GuestOS的后端驅(qū)動(dòng),后端驅(qū)動(dòng)在處理完請(qǐng)求后再發(fā)回通知給前端,VMM即采用該方法。優(yōu)點(diǎn):基于事務(wù)的通信機(jī)制,能在很大程度上減少上下文切換開(kāi)銷(xiāo),沒(méi)有額外的硬件開(kāi)銷(xiāo);缺點(diǎn):需要GuestOS實(shí)現(xiàn)前端驅(qū)動(dòng),后端驅(qū)動(dòng)可能成為瓶頸。3、直接劃分:即直接將物理設(shè)備分配給某個(gè)GuestOS,由GuestOS直接訪問(wèn)I/O設(shè)備(不經(jīng)VMM),目前與此相關(guān)的技術(shù)有IOMMU(IntelVT-d,PCI-SIG之SR-IOV等),旨在建立高效的I/O虛擬化直通道。優(yōu)點(diǎn):可重用已有驅(qū)動(dòng),直接訪問(wèn)減少了虛擬化開(kāi)銷(xiāo);缺點(diǎn):需要購(gòu)買(mǎi)較多額外的硬件。aSV的技術(shù)特性?xún)?nèi)存NUMA技術(shù)功能描述非統(tǒng)一內(nèi)存訪問(wèn)(NUMA)是服務(wù)器CPU和內(nèi)存設(shè)計(jì)的新架構(gòu)。傳統(tǒng)的服務(wù)器架構(gòu)下把內(nèi)存放到單一的存儲(chǔ)池中,這對(duì)于單處理器或單核心的系統(tǒng)工作良好。但是這種傳統(tǒng)的統(tǒng)一訪問(wèn)方式,在多核心同時(shí)訪問(wèn)內(nèi)存空間時(shí)會(huì)導(dǎo)致資源爭(zhēng)用和性能問(wèn)題。畢竟,CPU應(yīng)該可以訪問(wèn)所有的服務(wù)器內(nèi)存,但是不需要總是保持占用。實(shí)際上,CPU僅需要訪問(wèn)工作負(fù)載實(shí)際運(yùn)行時(shí)所需的內(nèi)存空間就可以了。因此NUMA改變了內(nèi)存對(duì)CPU的呈現(xiàn)方式。這是通過(guò)對(duì)服務(wù)器每個(gè)CPU的內(nèi)存進(jìn)行分區(qū)來(lái)實(shí)現(xiàn)的。每個(gè)分區(qū)(或內(nèi)存塊)稱(chēng)為NUMA節(jié)點(diǎn),而和該分區(qū)相關(guān)的處理器可以更快地訪問(wèn)NUMA內(nèi)存,而且不需要和其它的NUMA節(jié)點(diǎn)爭(zhēng)用服務(wù)器上的資源(其它的內(nèi)存分區(qū)分配給其它處理器)。NUMA的概念跟緩存相關(guān)。處理器的速度要比內(nèi)存快得多,因此數(shù)據(jù)總是被移動(dòng)到更快的本地緩存,這里處理器訪問(wèn)的速度要比通用內(nèi)存快得多。NUMA本質(zhì)上為每個(gè)處理器配置了獨(dú)有的整體系統(tǒng)緩存,減少了多處理器試圖訪問(wèn)統(tǒng)一內(nèi)存空間時(shí)的爭(zhēng)用和延遲。NUMA與服務(wù)器虛擬化完全兼容,而且NUMA也可以支持任意一個(gè)處理器訪問(wèn)服務(wù)器上的任何一塊內(nèi)存區(qū)域。某個(gè)處理器當(dāng)然可以訪問(wèn)位于不同區(qū)域上的內(nèi)存數(shù)據(jù),但是需要更多本地NUMA節(jié)點(diǎn)之外的傳輸,并且需要目標(biāo)NUMA節(jié)點(diǎn)的確認(rèn)。這增加了整體開(kāi)銷(xiāo),影響了CPU和內(nèi)存子系統(tǒng)的性能。NUMA對(duì)虛擬機(jī)負(fù)載不存在任何兼容性問(wèn)題,但是理論上虛擬機(jī)最完美的方式應(yīng)該是在某個(gè)NUMA節(jié)點(diǎn)內(nèi)。這可以防止處理器需要跟其它的NUMA節(jié)點(diǎn)交互,從而導(dǎo)致工作負(fù)載性能下降。的aSV支持NUMA技術(shù),使得hypervisor和上層OS內(nèi)存互連,這樣OS不會(huì)在CPU和NUMA節(jié)點(diǎn)之間遷移工作負(fù)載。SR-IOV功能描述:通常針對(duì)虛擬化服務(wù)器的技術(shù)是通過(guò)軟件模擬共享和虛擬化網(wǎng)絡(luò)適配器的一個(gè)物理端口,以滿足虛擬機(jī)的I/O需求,模擬軟件的多個(gè)層為虛擬機(jī)作了I/O決策,因此導(dǎo)致環(huán)境中出現(xiàn)瓶頸并影響I/O性能。aSV虛擬化平臺(tái)提供的SR-IOV是一種不需要軟件模擬就可以共享I/O設(shè)備I/O端口的物理功能的方法,主要利用iNIC實(shí)現(xiàn)網(wǎng)橋卸載虛擬網(wǎng)卡,允許將物理網(wǎng)絡(luò)適配器的SR-IOV虛擬功能直接分配給虛擬機(jī),可以提高網(wǎng)絡(luò)吞吐量,并縮短網(wǎng)絡(luò)延遲,同時(shí)減少處理網(wǎng)絡(luò)流量所需的主機(jī)CPU開(kāi)銷(xiāo)。技術(shù)原理:SR-IOV(SingleRootI/OVirtualization)是PCI-SIG推出的一項(xiàng)標(biāo)準(zhǔn),是虛擬通道(在物理網(wǎng)卡上對(duì)上層軟件系統(tǒng)虛擬出多個(gè)物理通道,每個(gè)通道具備獨(dú)立的I/O功能)的一個(gè)技術(shù)實(shí)現(xiàn),用于將一個(gè)PCIe設(shè)備虛擬成多個(gè)PCIe設(shè)備,每個(gè)虛擬PCIe設(shè)備如同物理PCIe設(shè)備一樣向上層軟件提供服務(wù)。通過(guò)SR-IOV一個(gè)PCIe設(shè)備不僅可以導(dǎo)出多個(gè)PCI物理功能,還可以導(dǎo)出共享該I/O設(shè)備上的資源的一組虛擬功能,每個(gè)虛擬功能都可以被直接分配到一個(gè)虛擬機(jī),能夠讓網(wǎng)絡(luò)傳輸繞過(guò)軟件模擬層,直接分配到虛擬機(jī),實(shí)現(xiàn)了將PCI功能分配到多個(gè)虛擬接口以在虛擬化環(huán)境中共享一個(gè)PCI設(shè)備的目的,并且降低了軟加模擬層中的I/O開(kāi)銷(xiāo),因此實(shí)現(xiàn)了接近本機(jī)的性能。如圖所示,在這個(gè)模型中,不需要任何透?jìng)?,因?yàn)樘摂M化在終端設(shè)備上發(fā)生,允許管理程序簡(jiǎn)單地將虛擬功能映射到VM上以實(shí)現(xiàn)本機(jī)設(shè)備性能和隔離安全。SR-IOV虛擬出的通道分為兩個(gè)類(lèi)型:1、PF(PhysicalFunction)是完整的PCIe設(shè)備,包含了全面的管理、配置功能,Hypervisor通過(guò)PF來(lái)管理和配置網(wǎng)卡的所有I/O資源。2、VF(VirtualFunciton)是一個(gè)簡(jiǎn)化的PCIe設(shè)備,僅僅包含了I/O功能,通過(guò)PF衍生而來(lái)好象物理網(wǎng)卡硬件資源的一個(gè)切片,對(duì)于Hypervisor來(lái)說(shuō),這個(gè)VF同一塊普通的PCIe網(wǎng)卡一模一樣。客戶(hù)價(jià)值:可滿足高網(wǎng)絡(luò)IO應(yīng)用要求,無(wú)需特別安裝驅(qū)動(dòng),且無(wú)損熱遷移、內(nèi)存復(fù)用、虛擬機(jī)網(wǎng)絡(luò)管控等虛擬化特性。Faik-raid一般情況下,當(dāng)主機(jī)系統(tǒng)有多塊硬盤(pán)時(shí),通過(guò)組建Raid以提升磁盤(pán)性能或提供磁盤(pán)冗余,往往成為人們的首選考量。當(dāng)今主流raid實(shí)現(xiàn)方案大致可分為三種:硬件raid(hardwareraid):通過(guò)購(gòu)買(mǎi)昂貴的raid卡實(shí)現(xiàn)。軟件raid(softwareraid):通過(guò)操作系統(tǒng)內(nèi)軟件創(chuàng)建陣列,raid處理開(kāi)銷(xiāo)由CPU負(fù)責(zé)。主板raid(fakeraid):通過(guò)主板內(nèi)建raid控制器創(chuàng)建陣列,由操作系統(tǒng)驅(qū)動(dòng)識(shí)別。相對(duì)于昂貴的硬件,主板raid(fakeraid)就成了我們不錯(cuò)的選擇。Fakeraid僅提供廉價(jià)的控制器,raid處理開(kāi)銷(xiāo)仍由CPU負(fù)責(zé),因此性能與CPU占用基本與softwareraid持平。如果只有單個(gè)linux系統(tǒng),使用softwareraid一般比f(wàn)akeraid更健壯,但是,在多啟動(dòng)環(huán)境中(例如windows與linux雙系統(tǒng)),為了使各個(gè)系統(tǒng)都能正確操作相同的raid分區(qū),就必須使用fakeraid了。Linux下最重要的raid管理程序?yàn)镸DRAID。MDRAID是過(guò)濾不同文件系統(tǒng)(比如說(shuō)ext2)和比較低級(jí)的磁盤(pán)驅(qū)動(dòng)(比如說(shuō)AHCI驅(qū)動(dòng)和SAS驅(qū)動(dòng))之間數(shù)據(jù)的塊設(shè)備驅(qū)動(dòng)程序。以Intel的主板為例,在BIOS中有一塊可選的只讀存儲(chǔ)器元件(或者光學(xué)只讀存儲(chǔ)器)可以創(chuàng)建Intel快速存儲(chǔ)RAID卷并且在啟動(dòng)之前的環(huán)境中提供管理Intel快速存儲(chǔ)RAID卷的界面。在BIOS把控制權(quán)交給系統(tǒng)啟動(dòng)引導(dǎo)程序之前,這個(gè)只讀存儲(chǔ)在系統(tǒng)內(nèi)存中留下自己支持的RAID類(lèi)型,比如RAID5。RAID管理程序MDRAID會(huì)讀到這份數(shù)據(jù),并決定當(dāng)創(chuàng)建Intel快速存儲(chǔ)RAID卷時(shí)該使用哪種RAID類(lèi)型。aSV3.7融入了對(duì)Fake-RAID的支持,現(xiàn)可支持Fake-RAID安裝與使用Fake-RAID存儲(chǔ),目前可以使用intel模式的raid0,raid1,raid5,raid10,LSI模式的raid0虛擬機(jī)生命周期管理aSV提供了虛擬機(jī)從創(chuàng)建至刪除整個(gè)過(guò)程中的全面管理,就像人類(lèi)的生命周期一樣,虛擬機(jī)最基本的生命周期就是創(chuàng)建、使用和刪除這三個(gè)狀態(tài)。當(dāng)然還包含如下幾個(gè)狀態(tài):創(chuàng)建虛擬機(jī)在虛擬機(jī)中安裝操作系統(tǒng)創(chuàng)建模板更新虛擬機(jī)硬件遷移虛擬機(jī)及/或虛擬機(jī)的存儲(chǔ)資源分析虛擬機(jī)的資源利用情況為虛擬機(jī)選擇數(shù)量合適的內(nèi)存或磁盤(pán)資源/調(diào)整資源數(shù)量虛擬機(jī)備份虛擬機(jī)恢復(fù)刪除虛擬機(jī)在虛擬機(jī)生命周期內(nèi),虛擬機(jī)可能會(huì)在某一個(gè)時(shí)間點(diǎn)經(jīng)歷上述這些狀態(tài)。aSV提供了完善的虛擬機(jī)生命周期管理工具,我們可以通過(guò)對(duì)虛擬機(jī)生命周期的規(guī)劃,想要最大化的發(fā)揮虛擬機(jī)的作用。虛擬交換機(jī)虛擬交換機(jī)是虛擬網(wǎng)絡(luò)和物理網(wǎng)絡(luò)的紐帶,虛擬交換機(jī)運(yùn)行在虛擬服務(wù)器的Hypervisor內(nèi)部,虛擬機(jī)之間的流量、虛擬機(jī)到物理網(wǎng)絡(luò)之間的流量均通過(guò)vSwitch轉(zhuǎn)發(fā)。如圖:aSV提供了完善的虛擬交換機(jī)功能,包括:虛擬交換機(jī)端口Vlan的劃分,二層端口的類(lèi)型切換,廣播風(fēng)暴的抑制,端口流量的統(tǒng)計(jì),端口的狀態(tài)監(jiān)控。動(dòng)態(tài)資源調(diào)度在虛擬化環(huán)境中,如果生產(chǎn)環(huán)境的應(yīng)用整合到硬件資源相對(duì)匱乏的物理主機(jī)上,虛擬機(jī)的資源需求往往會(huì)成為瓶頸,全部資源需求很有可能超過(guò)主機(jī)的可用資源,這樣業(yè)務(wù)系統(tǒng)的性能也無(wú)法保障。aSV虛擬化管理平臺(tái)提供的動(dòng)態(tài)資源調(diào)度特性引入一個(gè)自動(dòng)化機(jī)制,通過(guò)持續(xù)地動(dòng)態(tài)平衡資源能力,將虛擬機(jī)遷移到有更多可用資源的主機(jī)上,確保每個(gè)虛擬機(jī)在任何節(jié)點(diǎn)都能及時(shí)地調(diào)用相應(yīng)的資源。即便大量運(yùn)行對(duì)CPU和內(nèi)存占用較高的虛擬機(jī)(比如數(shù)據(jù)庫(kù)虛擬機(jī)),只要開(kāi)啟了動(dòng)態(tài)資源調(diào)度功能,就可實(shí)現(xiàn)全自動(dòng)化的資源分配和負(fù)載平衡功能,也可以顯著地降低數(shù)據(jù)中心的成本與運(yùn)營(yíng)費(fèi)用。aSV的動(dòng)態(tài)資源調(diào)度功能通過(guò)跨越集群之間的心跳機(jī)制,定時(shí)監(jiān)測(cè)集群內(nèi)主機(jī)的CPU和內(nèi)存等計(jì)算資源的利用率,并根據(jù)用戶(hù)自定義的規(guī)則來(lái)判斷是否需要為該主機(jī)在集群內(nèi)尋找有更多可用資源的主機(jī),以將該主機(jī)上的虛擬機(jī)遷移到另外一臺(tái)具有更多合適資源的服務(wù)器上,或者將該服務(wù)器上其它的虛擬機(jī)遷移出去,從而保證某個(gè)關(guān)鍵虛擬機(jī)的資源需求。aSV的特色技術(shù)快虛在實(shí)際的IT應(yīng)用系統(tǒng)在部署虛擬化的時(shí)候,會(huì)存在虛擬化遷移的需求,為了實(shí)現(xiàn)將windows主機(jī)系統(tǒng)下的應(yīng)用系統(tǒng)平滑的遷移至VM環(huán)境中,除了傳統(tǒng)的P2V、V2V工具,采用技術(shù)創(chuàng)新,基于Windows環(huán)境中,推出了獨(dú)有的快虛技術(shù)??焯摷夹g(shù)實(shí)現(xiàn)原理為:在Windows環(huán)境下,先創(chuàng)建一個(gè)虛擬磁盤(pán)文件,并使用Windows驅(qū)動(dòng)程序?qū)μ摂M磁盤(pán)進(jìn)行保護(hù),保證虛擬磁盤(pán)文件占用的物理扇區(qū)不會(huì)被移動(dòng).獲取虛擬磁盤(pán)文件所占的物理簇信息,并保存到當(dāng)前系統(tǒng)盤(pán)下的配置文件中,安裝aSV的引導(dǎo)程序以及內(nèi)核到當(dāng)前Windows系統(tǒng)盤(pán)下,安裝系統(tǒng)引導(dǎo)程序,并向系統(tǒng)引導(dǎo)中添加aSV的引導(dǎo)項(xiàng),默認(rèn)引導(dǎo)到aSV系統(tǒng).當(dāng)在aSV中向虛擬磁盤(pán)讀寫(xiě)數(shù)據(jù)時(shí),虛擬磁盤(pán)驅(qū)動(dòng)根據(jù)讀寫(xiě)的扇區(qū)位置重新定位到虛擬磁盤(pán)文件所對(duì)應(yīng)的物理扇區(qū),實(shí)現(xiàn)數(shù)據(jù)的存取,下次進(jìn)入aSV系統(tǒng)后仍然可以讀寫(xiě)已有數(shù)據(jù)。通過(guò)快虛技術(shù),既實(shí)現(xiàn)了將應(yīng)用環(huán)境遷移到了虛擬機(jī)環(huán)境中,同時(shí)在現(xiàn)有的物理主機(jī)服務(wù)器之上,快速的構(gòu)建了虛擬化底層的hypervisor。虛擬機(jī)熱遷移虛擬化環(huán)境中,物理服務(wù)器和存儲(chǔ)上承載更多的業(yè)務(wù)和數(shù)據(jù),設(shè)備故障時(shí)造成的影響更大。aSV虛擬化平臺(tái)提供虛擬機(jī)熱遷移技術(shù),降低宕機(jī)帶來(lái)的風(fēng)險(xiǎn)、減少業(yè)務(wù)中斷的時(shí)間。aSV虛擬機(jī)熱遷移技術(shù)是指把一個(gè)虛擬機(jī)從一臺(tái)物理服務(wù)器遷移到另一臺(tái)物理服務(wù)器上,即虛擬機(jī)保存/恢復(fù)(Save/Restore)。首先將整個(gè)虛擬機(jī)的運(yùn)行狀態(tài)完整保存下來(lái),同時(shí)可以快速的恢復(fù)到目標(biāo)硬件平臺(tái)上,恢復(fù)以后虛擬機(jī)仍舊平滑運(yùn)行,用戶(hù)不會(huì)察覺(jué)到任何差異。虛擬機(jī)的熱遷移技術(shù)主要被用于雙機(jī)容錯(cuò)、負(fù)載均衡和節(jié)能降耗等應(yīng)用場(chǎng)景。aSV虛擬化平臺(tái)熱遷移提供內(nèi)存壓縮技術(shù),使熱遷移效率提升一倍,可支持并發(fā)8臺(tái)虛擬機(jī)同時(shí)遷移。功能價(jià)值:1.在設(shè)備維護(hù)過(guò)程中,通過(guò)熱遷移手動(dòng)將應(yīng)用遷移至另一臺(tái)服務(wù)器,維護(hù)結(jié)束后再遷回來(lái),中間應(yīng)用不停機(jī),減少計(jì)劃內(nèi)宕機(jī)時(shí)間。2.可結(jié)合資源動(dòng)態(tài)調(diào)度策略,例如在夜晚虛擬機(jī)負(fù)荷減少時(shí),通過(guò)預(yù)先配置自動(dòng)將虛擬機(jī)遷移集中至部分服務(wù)器,減少服務(wù)器的運(yùn)行數(shù)量,從而降低設(shè)備運(yùn)營(yíng)能耗上的支出。虛擬磁盤(pán)加密在虛擬化環(huán)境中,虛擬機(jī)的磁盤(pán)文件是沒(méi)有加密的,磁盤(pán)中的業(yè)務(wù)數(shù)據(jù)會(huì)存在泄漏的威脅。而對(duì)于數(shù)據(jù)保密程度要求較高的場(chǎng)景,可采用磁盤(pán)加密技術(shù),保證即使磁盤(pán)文件被竊取了,也無(wú)法獲取其中的數(shù)據(jù)。aSV提供了磁盤(pán)加密技術(shù),保障用戶(hù)業(yè)務(wù)的磁盤(pán)數(shù)據(jù)的安全防泄漏。aSV環(huán)境中,虛擬機(jī)鏡像是Qcow2格式的,Qcow2自身就支持用戶(hù)數(shù)據(jù)加密功能,VMP在其加密功能的基礎(chǔ)上進(jìn)行了修改,使其更加健壯。Qcow2只支持AES加密算法,VMP為其添加了RC4加密算法。VMP環(huán)境中僅支持對(duì)Qcow2格式的鏡像文件進(jìn)行加密,加密算法選用RC4,且不可以更換。虛擬機(jī)鏡像文件的密鑰(以下簡(jiǎn)稱(chēng)密碼)由VDC管理,當(dāng)VDC通過(guò)VMP接口操作虛擬機(jī)時(shí),可以指定磁盤(pán)是否需要加密及對(duì)應(yīng)的密碼。如果一個(gè)虛擬機(jī)有多個(gè)磁盤(pán)需要加密,各磁盤(pán)可以分別指定密碼。虛擬機(jī)一旦創(chuàng)建成功,密碼不允許修改。VMP環(huán)境中使用密碼時(shí),會(huì)修改命令行參數(shù)中的密碼字符串為“*”,防止管理員通過(guò)ps命令查看到密碼。前面提到的保存在鏡像文件中的經(jīng)過(guò)加密的密鑰,為了防止使用密碼字典或窮舉等方式暴力破解加密的鏡像文件,要求加密函數(shù)的執(zhí)行時(shí)間不能太短,可以使用重復(fù)加密的方式來(lái)達(dá)到這個(gè)目的。虛擬機(jī)的HAHA全稱(chēng)是HighAvailability(高可用性)。在aSV環(huán)境中,HA虛擬機(jī)所連接的物理口網(wǎng)線被拔出、或存儲(chǔ)不能訪問(wèn)時(shí),會(huì)將此虛擬機(jī)切換到其他的主機(jī)運(yùn)行,保障虛擬機(jī)上的業(yè)務(wù)正常使用。aSV存在后臺(tái)進(jìn)程,通過(guò)輪詢(xún)的機(jī)制,每隔5s檢測(cè)一次虛擬機(jī)狀態(tài)是否異常,發(fā)現(xiàn)異常時(shí),切換HA虛擬機(jī)到其他主機(jī)運(yùn)行。下面任意一種情況發(fā)生,都會(huì)觸發(fā)HA虛擬機(jī)切換主機(jī),1、連續(xù)三次檢測(cè)到,虛擬機(jī)所連接的物理網(wǎng)卡被拔出(不包括網(wǎng)卡被禁用情況)2、連續(xù)兩次檢測(cè)到,虛擬機(jī)當(dāng)前主機(jī)無(wú)法訪問(wèn)虛擬機(jī)的存儲(chǔ)通過(guò)aSV的HA技術(shù),對(duì)業(yè)務(wù)系統(tǒng)提供了高可用性,極大縮短了由于各種故障引起的業(yè)務(wù)中斷時(shí)間。多USB映射當(dāng)物理服務(wù)器部署虛擬化之后。其中類(lèi)似金蝶等需要通過(guò)usbkey進(jìn)行應(yīng)用加密的服務(wù)器,轉(zhuǎn)化到虛擬化后,需要將插在虛擬化平臺(tái)上的硬件key,映射給虛擬機(jī),而且需要滿足虛擬機(jī)熱遷移、跨主機(jī)映射的需求。業(yè)界給出的方案有三種:一、采用主機(jī)映射:直接采用主機(jī)映射的方式來(lái)完成,缺點(diǎn)是不支持網(wǎng)絡(luò)映射,無(wú)法支持熱遷移、網(wǎng)絡(luò)映射的需求。二、采用UsbAnywhere:通過(guò)使用中間設(shè)備,將中間設(shè)備IP化,然后在虛擬機(jī)上安裝驅(qū)動(dòng)并配置對(duì)端設(shè)備的方式進(jìn)行的。缺點(diǎn)是需要guest虛擬機(jī)內(nèi)部進(jìn)行修改安裝特定軟件,與第三方應(yīng)用進(jìn)行配合才能完成。三、采用底層硬件虛擬化加網(wǎng)絡(luò)代理:支持熱遷移、網(wǎng)絡(luò)映射、無(wú)需修改guest機(jī)內(nèi)部。最終實(shí)現(xiàn),物理設(shè)備遷移到虛擬化平臺(tái)后,可以直接無(wú)縫的操作讀取原usb硬件設(shè)備。同時(shí)解決上述兩種方案中的缺陷,破除了在虛擬化推廣中外設(shè)映射造成的阻礙。熱遷移功能的實(shí)現(xiàn)機(jī)制:由于整體方案是基于網(wǎng)絡(luò)代理處理,所以在遷移到對(duì)端設(shè)備,進(jìn)行虛擬機(jī)切換時(shí),發(fā)送消息,觸發(fā)usb服務(wù)程序修改連接的目的端ip,然后發(fā)起網(wǎng)絡(luò)重連。隧道一旦重連成功,usb設(shè)備通信隨即恢復(fù),對(duì)于guest上層來(lái)說(shuō),是無(wú)感知的。aSV采用上述的第三種方案,融入了對(duì)多USB的支持,帶來(lái)的優(yōu)勢(shì)有:1、usb設(shè)備動(dòng)態(tài)插入提示2、guest虛擬機(jī)無(wú)需安裝插件;3、能支持熱遷移,跨主機(jī)映射,適應(yīng)VMP集群環(huán)境;4、虛擬機(jī)遷移完成可以自動(dòng)掛載上原usb設(shè)備;5、可以簡(jiǎn)化集成為類(lèi)似usbhub的小設(shè)備,與VMP配套,搭建usb映射環(huán)境;6、虛擬機(jī)故障重啟、目標(biāo)端usb設(shè)備網(wǎng)絡(luò)中斷等異常情況恢復(fù)后自動(dòng)重映射。aSAN存儲(chǔ)虛擬化存儲(chǔ)虛擬化概述虛擬后對(duì)存儲(chǔ)帶來(lái)的挑戰(zhàn)虛擬機(jī)技術(shù)給服務(wù)器帶來(lái)更高的利用率、給業(yè)務(wù)帶來(lái)更便捷的部署,降低了TCO,與此同時(shí),虛擬機(jī)應(yīng)用給存儲(chǔ)帶來(lái)以下挑戰(zhàn):第一,相比傳統(tǒng)的物理服務(wù)器方式,單個(gè)存儲(chǔ)系統(tǒng)承載了更多的業(yè)務(wù),存儲(chǔ)系統(tǒng)需要更強(qiáng)勁的性能來(lái)支撐;第二,采用共享存儲(chǔ)方式部署虛擬機(jī),單個(gè)卷上可能承載幾十或上百的虛擬機(jī),導(dǎo)致卷IO呈現(xiàn)更多的隨機(jī)特征,這對(duì)傳統(tǒng)的Cache技術(shù)提出挑戰(zhàn);第三,單個(gè)卷承載多個(gè)虛擬機(jī)業(yè)務(wù),要求存儲(chǔ)系統(tǒng)具備協(xié)調(diào)虛擬機(jī)訪問(wèn)競(jìng)爭(zhēng),保證對(duì)QoS要求高的虛擬機(jī)獲取到資源實(shí)現(xiàn)性能目標(biāo);第四,單個(gè)卷上承載較多的虛擬機(jī),需要卷具有很高的IO性能,這對(duì)傳統(tǒng)受限于固定硬盤(pán)的RAID技術(shù)提出挑戰(zhàn);第五,虛擬機(jī)的廣泛使用,需要更加高效的技術(shù)來(lái)提高虛擬機(jī)的部署效率,加快新業(yè)務(wù)的上線時(shí)間。分布式存儲(chǔ)技術(shù)的發(fā)展業(yè)界典型的分布式存儲(chǔ)技術(shù)主要有分布式文件系統(tǒng)存儲(chǔ)、分布式對(duì)象存儲(chǔ)和分布式塊設(shè)備存儲(chǔ)等幾種形式。分布式存儲(chǔ)技術(shù)及其軟件產(chǎn)品已經(jīng)日趨成熟,并在IT行業(yè)得到了廣泛的使用和驗(yàn)證,例如互聯(lián)網(wǎng)搜索引擎中使用的分布式文件存儲(chǔ),商業(yè)化公有云中使用的分布式塊存儲(chǔ)等。分布式存儲(chǔ)軟件系統(tǒng)具有以下特點(diǎn):第一,高性能:數(shù)據(jù)分散存放,實(shí)現(xiàn)全局負(fù)載均衡,不存在集中的數(shù)據(jù)熱點(diǎn),大容量分布式緩存;第二,高可靠:采用集群管理方式,不存在單點(diǎn)故障,靈活配置多數(shù)據(jù)副本,不同數(shù)據(jù)副本存放在不同的機(jī)架、服務(wù)器和硬盤(pán)上,單個(gè)物理設(shè)備故障不影響業(yè)務(wù)的使用,系統(tǒng)檢測(cè)到設(shè)備故障后可以自動(dòng)重建數(shù)據(jù)副本;第三,高擴(kuò)展:沒(méi)有集中式機(jī)頭,支持平滑擴(kuò)容,容量幾乎不受限制;第四,易管理:存儲(chǔ)軟件直接部署在服務(wù)器上,沒(méi)有單獨(dú)的存儲(chǔ)專(zhuān)用硬件設(shè)備,通過(guò)WebUI的方式進(jìn)行軟件管理,配置簡(jiǎn)單。aSAN概述在充分掌握了用戶(hù)需求的基礎(chǔ)上,的超融合架構(gòu)中,推出以aSAN分布式存儲(chǔ)軟件為核心的解決方案,虛擬存儲(chǔ)(簡(jiǎn)稱(chēng)aSAN)是基于分布式文件系統(tǒng)開(kāi)發(fā)的面對(duì)存儲(chǔ)虛擬化趨勢(shì)的一款產(chǎn)品。當(dāng)前aSAN集成在虛擬化管理平臺(tái)上面,通過(guò)網(wǎng)絡(luò)整合管理集群內(nèi)所有服務(wù)器的硬盤(pán)(系統(tǒng)盤(pán)除外)。aSAN屬于超融合解決方案中專(zhuān)門(mén)為云計(jì)算環(huán)境而設(shè)計(jì)、面向一體化市場(chǎng)應(yīng)用的新一代產(chǎn)品,融合分布式緩存、SSD緩存加速、全局負(fù)載均衡、及多重?cái)?shù)據(jù)保護(hù)等諸多存儲(chǔ)技術(shù),能夠滿足關(guān)鍵業(yè)務(wù)的需求,保證客戶(hù)業(yè)務(wù)高效穩(wěn)定運(yùn)行。aSAN技術(shù)原理aSAN通過(guò)主機(jī)管理、磁盤(pán)管理、緩存技術(shù)、存儲(chǔ)網(wǎng)絡(luò)、冗余副本等技術(shù),管理集群內(nèi)所有硬盤(pán),“池化”集群所有硬盤(pán)存儲(chǔ)的空間,通過(guò)向VMP提供訪問(wèn)接口,使得虛擬機(jī)可以進(jìn)行業(yè)務(wù)數(shù)據(jù)的保存、管理和讀寫(xiě)等整個(gè)存儲(chǔ)過(guò)程中的操作。主機(jī)管理aSAN需要基于VMP集群獲取集群內(nèi)主機(jī)信息,因此在構(gòu)建aSAN時(shí),首先會(huì)要求建立VMP集群,所以在aSAN的環(huán)境中,至少需要2臺(tái)節(jié)點(diǎn)來(lái)構(gòu)建aSAN主機(jī)。文件副本由于下一節(jié)磁盤(pán)管理的策略與副本設(shè)置有直接管理,因此在講解磁盤(pán)管理前,我們要先介紹文件副本技術(shù)。所謂文件副本,即將文件數(shù)據(jù)保存多份的一種冗余技術(shù)。aSAN副本顆粒度是文件級(jí)別。例如2副本,即把文件A同時(shí)保存到磁盤(pán)1和磁盤(pán)2上。并且保證在無(wú)故障情況下,2個(gè)副本始終保持一致。技術(shù)特點(diǎn):存儲(chǔ)池可用空間=集群全部機(jī)械磁盤(pán)空間/副本數(shù)(同構(gòu)情況),因此副本是會(huì)降低實(shí)際可用容量的。服務(wù)層是提供給上層服務(wù)的訪問(wèn)入口,以目錄掛載點(diǎn)的方式提供。服務(wù)層看到的文件A實(shí)際是個(gè)被底層管理轉(zhuǎn)化后的邏輯視圖。底層管理的副本對(duì)上層服務(wù)是透明的,上層無(wú)法感知副本的存在。磁盤(pán)管理、副本分布由底層服務(wù)負(fù)責(zé),副本顆粒度是文件級(jí)。在沒(méi)有故障等異常情況下,文件副本數(shù)據(jù)是始終一致的,不存在所謂主副本和備副本之分。如果對(duì)文件A進(jìn)行修改,如寫(xiě)入一段數(shù)據(jù),這段數(shù)據(jù)會(huì)被同時(shí)寫(xiě)到2個(gè)副本文件。如果是從文件A讀取一段數(shù)據(jù),則只會(huì)從其中一個(gè)副本讀取。磁盤(pán)管理aSAN磁盤(pán)管理服務(wù)根據(jù)集群內(nèi)主機(jī)數(shù)和aSAN初始化時(shí)所選擇的副本數(shù)決定集群內(nèi)所有受管磁盤(pán)的組織策略。在多主機(jī)集群下,采用2副本或3副本組建aSAN的磁盤(pán)管理,為了支持主機(jī)故障而不影響數(shù)據(jù)完整性的目標(biāo),復(fù)制卷的磁盤(pán)組的每個(gè)磁盤(pán)都必須是在不同主機(jī)上。即需要做到跨主機(jī)副本。跨主機(jī)副本的關(guān)鍵在于復(fù)制卷磁盤(pán)分組算法。注意:下面的例子討論的主機(jī)都屬于同構(gòu)情況,即可每臺(tái)主機(jī)的磁盤(pán)個(gè)數(shù)、磁盤(pán)容量是一樣的情況,主機(jī)磁盤(pán)數(shù)異構(gòu)場(chǎng)景后文再另外敘述。我們先從簡(jiǎn)單的場(chǎng)景開(kāi)始,當(dāng)主機(jī)數(shù)、集群磁盤(pán)數(shù)都可以被副本數(shù)整除時(shí)。如2主機(jī),每主機(jī)3個(gè)磁盤(pán)(共6個(gè))組建2副本aSAN為例:2副本下,2主機(jī),主機(jī)磁盤(pán)數(shù)相同時(shí)。主機(jī)間的磁盤(pán)會(huì)一一對(duì)應(yīng)組成復(fù)制卷。邏輯視圖如下:從邏輯視圖上,可以看出來(lái)和前文的單主機(jī)邏輯視圖并沒(méi)有本質(zhì)上的區(qū)別,只是最底層的磁盤(pán)分組時(shí),保證了復(fù)制卷內(nèi)下面的磁盤(pán)不在同一主機(jī)內(nèi),從而達(dá)到了文件跨主機(jī)副本的目標(biāo)。如果采用3主機(jī)建立3副本,分組方式也是類(lèi)似的。SSD讀緩存原理在aSAN里面,會(huì)默認(rèn)把系統(tǒng)內(nèi)的SSD磁盤(pán)作為緩存盤(pán)使用。在aSAN1.X版本,SSD磁盤(pán)只作為讀緩存使用,aSAN2.0開(kāi)始支持SSD寫(xiě)緩存。下面介紹aSANSSD讀緩存原理。首先需要區(qū)分aSAN客戶(hù)端和服務(wù)端概念。在aSAN里面,負(fù)責(zé)處理底層磁盤(pán)IO稱(chēng)為服務(wù)端;負(fù)責(zé)向上層提供存儲(chǔ)接口(如訪問(wèn)的掛載點(diǎn))稱(chēng)為客戶(hù)端。aSANSSD讀緩存工作在客戶(hù)端,而aSAN2.0的SSD寫(xiě)緩存則工作在服務(wù)端。邏輯視圖如下:下面拋開(kāi)底層的分布卷、復(fù)制卷、磁盤(pán)分組等概念,僅在客戶(hù)端上理解SSD讀緩存的原理。簡(jiǎn)單地看,SSD讀緩存模塊工作在文件訪問(wèn)入口和服務(wù)端通信層之間。所有對(duì)文件的IO動(dòng)作都會(huì)經(jīng)過(guò)SSD讀緩存模塊進(jìn)行處理。下面分別針對(duì)首次文件讀取、二次文件讀取、文件寫(xiě)入3個(gè)過(guò)程說(shuō)明工作流程。SSD讀緩存的緩存顆粒度是按文件數(shù)據(jù)塊緩存,不是文件整體。例如,A、B、C3個(gè)文件,可以分別各緩存讀過(guò)的一部分?jǐn)?shù)據(jù),沒(méi)讀過(guò)的部分不緩存。首次文件讀取未緩存數(shù)據(jù)塊的首次讀操作步驟說(shuō)明:從上層下來(lái)一個(gè)針對(duì)A文件的區(qū)間塊[A1,A2]的讀操作,由于該數(shù)據(jù)塊是首次讀取,沒(méi)命中SSD讀緩存。該讀操作會(huì)直接傳遞到下去,進(jìn)入流程2。[A1,A2]的讀操作繼續(xù)傳遞到服務(wù)端,進(jìn)行具體的讀操作,完成后返回,進(jìn)入流程3數(shù)據(jù)塊[A1,A2]在流程3里面返回到SSD讀緩存模塊,進(jìn)入流程4SSD讀緩存模塊會(huì)把數(shù)據(jù)塊[A1,A2]復(fù)制一份保存到SSD磁盤(pán)并建立相關(guān)索引,對(duì)應(yīng)4.1。原數(shù)據(jù)塊[A1,A2]繼續(xù)往上返回到上層響應(yīng)讀操作,對(duì)應(yīng)4.2。注意4.1、4.2是并發(fā)進(jìn)行,因此這個(gè)緩存動(dòng)作不會(huì)對(duì)原操作造成延時(shí)。至此,數(shù)據(jù)塊[A1,A2]就被保存到SSD磁盤(pán)內(nèi),以備下次讀取直接從SSD磁盤(pán)讀取。二次文件讀取針對(duì)已緩存數(shù)據(jù)塊的二次讀取步驟說(shuō)明:假設(shè)數(shù)據(jù)塊[A1,A2]已經(jīng)緩存到SSD磁盤(pán)內(nèi)。從上層下來(lái)一個(gè)同樣是針對(duì)A文件的區(qū)間塊[A1,A2]的讀操作由于該數(shù)據(jù)塊[A1,A2]已經(jīng)有緩存,在SSD讀緩存模塊里面命中索引,從而直接向SSD磁盤(pán)發(fā)起讀出緩存數(shù)據(jù)塊[A1,A2]的操作。緩存數(shù)據(jù)塊[A1,A2]從SSD磁盤(pán)返回到SSD讀緩存模塊,進(jìn)入流程4SSD讀緩存模塊把緩存數(shù)據(jù)塊[A1,A2]返回給上層至此,對(duì)緩存數(shù)據(jù)塊[A1,A2]的重復(fù)讀取直接在客戶(hù)端返回,避免了服務(wù)端通信的流程,從而減少了延時(shí)和減輕了底層磁盤(pán)的IO壓力。文件寫(xiě)入雖然當(dāng)前aSAN實(shí)現(xiàn)的讀緩存,但對(duì)于文件寫(xiě)入操作,也需要做相應(yīng)的處理,以保證緩存的內(nèi)容始終和底層磁盤(pán)一致,并且是最新的。但這個(gè)針對(duì)文件寫(xiě)入的處理并不是寫(xiě)緩存。aSAN讀緩存模塊對(duì)寫(xiě)操作進(jìn)行處理實(shí)質(zhì)是基于最近訪問(wèn)原則,即最近寫(xiě)入的數(shù)據(jù)在不久的將來(lái)被讀出的概率會(huì)比較高,例如文件共享服務(wù)器,某人傳到文件服務(wù)器的文件,很快會(huì)其他人讀出來(lái)下載。aSAN讀緩存對(duì)寫(xiě)操作的處理從實(shí)現(xiàn)上分為首次寫(xiě)預(yù)緩存、二次寫(xiě)更新緩存。文件塊首次寫(xiě)預(yù)緩存流程說(shuō)明:假設(shè)數(shù)據(jù)塊[A1,A2]是首次寫(xiě)入。寫(xiě)操作寫(xiě)來(lái)經(jīng)過(guò)SSD讀緩存模塊。由于是寫(xiě)操作,SSD讀緩存會(huì)直接PASS到下層寫(xiě)操作一直傳遞到服務(wù)端,寫(xiě)入到底層磁盤(pán),操作完成后會(huì)返回結(jié)果,進(jìn)入流程3返回結(jié)果經(jīng)過(guò)SSD讀緩存模塊,如果返回結(jié)果是成功的,表示底層數(shù)據(jù)已經(jīng)成功寫(xiě)入,則進(jìn)入流程4。如果返回結(jié)果是失敗,則不會(huì)進(jìn)入流程4,而是直接返回結(jié)果到上層。SSD讀緩存模塊會(huì)把數(shù)據(jù)塊[A1,A2]復(fù)制一份保存到SSD磁盤(pán)并建立相關(guān)索引,對(duì)應(yīng)4.1。原返回結(jié)果繼續(xù)往上返回到上層響應(yīng)讀操作,對(duì)應(yīng)4.2。注意4.1、4.2是并發(fā)進(jìn)行,因此這個(gè)緩存動(dòng)作不會(huì)對(duì)原操作造成延時(shí)。至此,數(shù)據(jù)塊[A1,A2]的寫(xiě)入也會(huì)保存到SSD磁盤(pán)上,以備下次訪問(wèn)。下次訪問(wèn)的流程與二次文件讀取流程相同。文件塊二次寫(xiě)更新緩存SSD讀緩存文件塊寫(xiě)更新是指對(duì)SSD讀緩存已緩存的數(shù)據(jù)塊進(jìn)行更新的動(dòng)作。假設(shè)數(shù)據(jù)塊[A1,A2]原來(lái)已經(jīng)有緩存了,現(xiàn)在上層再次對(duì)[A1,A2]來(lái)一次寫(xiě)操作(例如更新內(nèi)容)。寫(xiě)操作寫(xiě)來(lái)經(jīng)過(guò)SSD讀緩存模塊,由于是寫(xiě)操作,SSD讀緩存會(huì)直接PASS到下層寫(xiě)操作一直傳遞到服務(wù)端,寫(xiě)入到底層磁盤(pán),操作完成后會(huì)返回結(jié)果,進(jìn)入流程3返回結(jié)果經(jīng)過(guò)SSD讀緩存模塊,如果返回結(jié)果是成功的,表示底層數(shù)據(jù)已經(jīng)成功寫(xiě)入,可以更新SSD讀緩存數(shù)據(jù),進(jìn)入流程4。如果返回結(jié)果是失敗,則不會(huì)進(jìn)入更新流程。SSD讀緩存模塊會(huì)把數(shù)據(jù)塊[A1,A2]復(fù)制一份更新到SSD磁盤(pán)并建立相關(guān)索引,對(duì)應(yīng)4.1。原返回結(jié)果繼續(xù)往上返回到上層響應(yīng)讀操作,對(duì)應(yīng)4.2。注意4.1、4.2是并發(fā)進(jìn)行,因此這個(gè)緩存動(dòng)作不會(huì)對(duì)原操作造成延時(shí)。SSD寫(xiě)緩存原理SSD寫(xiě)緩存功能在aSAN2.0開(kāi)始支持。如前文所說(shuō),SSD寫(xiě)緩存工作在服務(wù)端。由于寫(xiě)緩存工作在服務(wù)端,也就是說(shuō)在每個(gè)副本上都有寫(xiě)緩存,即SSD寫(xiě)緩存也是多副本的。即使有SSD磁盤(pán)突然損壞,也能在副本數(shù)范圍內(nèi)保證數(shù)據(jù)的安全。SSD寫(xiě)緩存模塊結(jié)構(gòu)SSD寫(xiě)緩存原理是在機(jī)械硬盤(pán)上增加一層SSD寫(xiě)緩存層,見(jiàn)下圖:SSD寫(xiě)緩存數(shù)據(jù)流分成藍(lán)色和紅色兩部分。這兩部分是同時(shí)在運(yùn)行的,沒(méi)有先后關(guān)系。藍(lán)色部分是虛擬機(jī)有數(shù)據(jù)寫(xiě)入SSD緩存,紅色部分是從SSD緩存讀出數(shù)據(jù)回寫(xiě)到機(jī)械磁盤(pán)。流程如下:上層寫(xiě)入數(shù)據(jù)請(qǐng)求到達(dá)SSD寫(xiě)緩存模塊SSD寫(xiě)緩存模塊把數(shù)據(jù)寫(xiě)入到SSD磁盤(pán),并獲得返回值。SSD寫(xiě)緩存模塊在確定數(shù)據(jù)寫(xiě)入SSD磁盤(pán)后,即立即返回上層模塊寫(xiě)入成功SSD寫(xiě)緩存模塊在緩存數(shù)據(jù)累計(jì)到一定量后,從SSD磁盤(pán)讀出數(shù)據(jù)SSD寫(xiě)緩存把從SSD磁盤(pán)讀出的數(shù)據(jù)回寫(xiě)到機(jī)械磁盤(pán)。其中,第4、5步是在后臺(tái)自動(dòng)進(jìn)行的,不會(huì)干擾第1、2、3步的邏輯。SSD寫(xiě)緩存數(shù)據(jù)讀命中從SSD磁盤(pán)回寫(xiě)到機(jī)械磁盤(pán)是需要累積一定數(shù)據(jù)量后才會(huì)進(jìn)行觸發(fā)的。這時(shí)如果來(lái)了一個(gè)讀數(shù)據(jù)的請(qǐng)求,SSD寫(xiě)緩存模塊會(huì)先確認(rèn)該讀請(qǐng)求是否在SSD寫(xiě)緩存數(shù)據(jù)內(nèi),如果有則從SSD緩存內(nèi)返回;如果沒(méi)有則透到機(jī)械硬盤(pán)去讀取。流程說(shuō)明:上層下發(fā)讀請(qǐng)求SSD寫(xiě)緩存模塊先檢查數(shù)據(jù)是否還在緩存內(nèi)未回寫(xiě)命中緩存,返回?cái)?shù)據(jù)(如果不命中緩存,則會(huì)返回從底層數(shù)據(jù)盤(pán)讀?。┫蛏蠈臃祷?cái)?shù)據(jù)SSD寫(xiě)緩存寫(xiě)滿后處理如果上層持續(xù)對(duì)SSD寫(xiě)緩存進(jìn)行大量不間斷的數(shù)據(jù)寫(xiě)入,直到SSD寫(xiě)緩存空間用完。這時(shí)的上次繼續(xù)寫(xiě)入數(shù)據(jù)的速度就會(huì)下降至約等于寫(xiě)緩存回寫(xiě)機(jī)械盤(pán)的速度。當(dāng)SSD磁盤(pán)用滿時(shí)會(huì)出現(xiàn)寫(xiě)入數(shù)據(jù)流速度<=回寫(xiě)數(shù)據(jù)流速度。在虛擬機(jī)層面看,就是寫(xiě)入數(shù)據(jù)下降到機(jī)械盤(pán)速度。如果持續(xù)出現(xiàn)這種情況,說(shuō)明SSD磁盤(pán)容量不足以應(yīng)對(duì)業(yè)務(wù)IO寫(xiě)性能,需要增加SSD緩存盤(pán)解決。當(dāng)SSD磁盤(pán)故障或離線時(shí)的處理如前文所說(shuō),SSD寫(xiě)緩存工作于brick服務(wù)端,有多副本機(jī)制。在多主機(jī)多副本場(chǎng)景下,如果一個(gè)SSD磁盤(pán)損壞后,其他副本的SSD還正常情況下,對(duì)數(shù)據(jù)安全不會(huì)造成影響。但對(duì)寫(xiě)入性能會(huì)有影響。一旦SSD離線超過(guò)10分鐘,緩存數(shù)據(jù)就視作失效,進(jìn)入副本修復(fù)流程。由于所有數(shù)據(jù)都是被SSD接管的,這時(shí)的數(shù)據(jù)修復(fù)量會(huì)非常大。因此如果是誤拔出SSD硬盤(pán),需要在10分鐘內(nèi)插回來(lái),否則會(huì)認(rèn)為該副本數(shù)據(jù)全部需要重建磁盤(pán)故障處理機(jī)制人工介入替換故障磁盤(pán)當(dāng)磁盤(pán)出現(xiàn)故障后,在WEBUI上可以看到如下提示:(或顯示為磁盤(pán)損壞)這時(shí)拔出故障磁盤(pán),插入容量不低于故障磁盤(pán)的新磁盤(pán),點(diǎn)擊“更新磁盤(pán)”按步驟操作即可。更換故障磁盤(pán)的內(nèi)部過(guò)程:故障磁盤(pán)在出現(xiàn)故障時(shí),對(duì)應(yīng)磁盤(pán)的服務(wù)會(huì)先停止完成新磁盤(pán)替換后,服務(wù)會(huì)重新啟動(dòng)新磁盤(pán)對(duì)應(yīng)的服務(wù)啟動(dòng)后,發(fā)現(xiàn)其所在復(fù)制卷1上的另一個(gè)磁盤(pán)是A1,會(huì)根據(jù)A1的數(shù)據(jù)重建副本,即復(fù)制所有文件建立新副本。整個(gè)重建過(guò)程在線進(jìn)行,無(wú)需關(guān)停機(jī),副本重建過(guò)程不中斷業(yè)務(wù)。對(duì)比RAID系統(tǒng),需要關(guān)機(jī)中斷業(yè)務(wù)重建數(shù)據(jù)是一大優(yōu)勢(shì)。磁盤(pán)故障超時(shí)后aSAN自動(dòng)重建如果在磁盤(pán)故障后,超過(guò)了設(shè)置的超時(shí)時(shí)間依然沒(méi)有人工介入處理,aSAN將會(huì)自動(dòng)進(jìn)行數(shù)據(jù)重建,以保證數(shù)據(jù)副本數(shù)完備,確保數(shù)據(jù)可靠性。同時(shí)采用了熱備盤(pán)的保障機(jī)制。在aSAN1.2版本里面,在初始化階段會(huì)自動(dòng)配置至少把集群里副本數(shù)個(gè)磁盤(pán)作為熱備盤(pán)。注意不是每個(gè)主機(jī)一個(gè)熱備盤(pán),而是一個(gè)集群里面全局使用。熱備盤(pán)在初始化時(shí)不會(huì)納入aSAN復(fù)制卷內(nèi),只是作為一個(gè)不使用的磁盤(pán)帶電存在,因此熱備盤(pán)的空間不會(huì)反映到aSAN的空間里面。例如2副本時(shí)會(huì)至少保留2個(gè)熱備盤(pán),3副本時(shí)會(huì)至少保留3個(gè)熱備盤(pán)。這些熱備盤(pán)不會(huì)集中在一個(gè)主機(jī)上面,而是分布在不同主機(jī)上(符合副本跨主機(jī)原則)。下面以3主機(jī)2副本,每主機(jī)4個(gè)硬盤(pán)為例子。上圖是3主機(jī)2副本,每主機(jī)4磁盤(pán)的分組例子。其中磁盤(pán)A4、磁盤(pán)C3是作為熱備盤(pán)保留的,并沒(méi)有組成復(fù)制卷加入到aSAN存儲(chǔ)池內(nèi)。當(dāng)任何一個(gè)主機(jī)的任意一個(gè)硬盤(pán)發(fā)生故障時(shí),都可以按照跨主機(jī)副本原則自動(dòng)使用A4或者C3來(lái)替換。例1:C2損壞(C3或者A4均可以用作替換)例2:A3損壞(C3或者A4均可以用作替換)例3:B4損壞(注意:這時(shí)只能用A4替換,原因是C3和C4同主機(jī))在aSAN自動(dòng)使用熱備盤(pán)替換故障磁盤(pán)后,再去UI替換故障硬盤(pán)(或顯示為磁盤(pán)損壞)在aSAN自動(dòng)使用熱備盤(pán)替換故障磁盤(pán)后,UI上依然會(huì)顯示原來(lái)的故障磁盤(pán)損壞,可以進(jìn)行更換磁盤(pán)。這時(shí)新替換的硬盤(pán)會(huì)作為新熱備盤(pán)使用,不需要執(zhí)行數(shù)據(jù)回遷。這一點(diǎn)與前文沒(méi)有熱備盤(pán)會(huì)做數(shù)據(jù)回遷是不一樣的。以上面例子3為例,B4損壞后,熱備盤(pán)A4自動(dòng)替換B4和C4建成新復(fù)制卷5。然后人工介入,把損壞的B4用新磁盤(pán)替換,這時(shí)新B4會(huì)直接做熱備盤(pán)使用,不再由數(shù)據(jù)回遷。故障磁盤(pán)替換所有過(guò)程都可以帶業(yè)務(wù)進(jìn)行,不需要停機(jī)停止業(yè)務(wù),就可以完成故障磁盤(pán)的替換,數(shù)據(jù)重建,相比RAID系統(tǒng)停業(yè)務(wù)重建有更大的可用性。主機(jī)故障處理aSAN在多主機(jī)集群下,復(fù)制卷有個(gè)最高原則:跨主機(jī)建立復(fù)制卷。該原則的目的是為了達(dá)到在主機(jī)出現(xiàn)故障時(shí),數(shù)據(jù)依然可用。最簡(jiǎn)單例子如下:

主機(jī)主機(jī)A磁盤(pán)A1磁盤(pán)A2磁盤(pán)A3主機(jī)B磁盤(pán)B1磁盤(pán)B2磁盤(pán)B3復(fù)制卷1復(fù)制卷2復(fù)制卷3在2主機(jī)2副本模式下,當(dāng)主機(jī)B整個(gè)離線或,可以看到任何一個(gè)復(fù)制卷都依然有一個(gè)副本存在主機(jī)A上,數(shù)據(jù)依然可用,影響只是少了個(gè)副本。略為復(fù)雜的例子(先不考慮有熱備盤(pán)):主機(jī)C離線后,剩余在線的復(fù)制卷任何一個(gè)都依然保持至少一個(gè)副本在線,因此這時(shí)全局?jǐn)?shù)據(jù)依然可用。在主機(jī)故障后,在aSAN高級(jí)設(shè)備里面有這樣一個(gè)故障時(shí)間策略執(zhí)行相應(yīng)的處理:主機(jī)故障未超時(shí)人工介入處理當(dāng)主機(jī)故障未超時(shí)時(shí),人工介入處理是通過(guò)替換主機(jī)功能解決主機(jī)故障的。UI操作例子,點(diǎn)擊后按步驟進(jìn)行即可(詳見(jiàn)部署配置文件)。替換主機(jī)的硬件配置要求是新主機(jī)配置不可以低于故障主機(jī),包括CPU、內(nèi)存、磁盤(pán)個(gè)數(shù)、磁盤(pán)容量、網(wǎng)口個(gè)數(shù)。替換主機(jī)的內(nèi)部原理:

主機(jī)C主機(jī)主機(jī)C主機(jī)B主機(jī)A磁盤(pán)A1磁盤(pán)B1磁盤(pán)A1磁盤(pán)B1磁盤(pán)C1復(fù)制卷1磁盤(pán)A2磁盤(pán)B2磁盤(pán)磁盤(pán)A2磁盤(pán)B2磁盤(pán)C2復(fù)制卷2復(fù)制卷3復(fù)制卷3磁盤(pán)A3磁盤(pán)B3磁盤(pán)磁盤(pán)A3磁盤(pán)B3磁盤(pán)C3在aSAN層面,主機(jī)替換和磁盤(pán)替換并無(wú)差異,區(qū)別是主機(jī)替換是同時(shí)執(zhí)行多個(gè)磁盤(pán)替換。因?yàn)榍懊嬗行轮鳈C(jī)的硬件配置不低于故障主機(jī),因此磁盤(pán)數(shù)和容量是可以保證替換后足夠的。主機(jī)替換完成后,會(huì)根據(jù)新復(fù)制卷,在新主機(jī)的磁盤(pán)上重建文件副本。主機(jī)故障超時(shí)后aSAN自動(dòng)處理假如入主機(jī)故障后直到超過(guò)設(shè)定的故障時(shí)間依然沒(méi)有人工介入處理,那么aSAN會(huì)采取自動(dòng)替換動(dòng)作在其他主機(jī)上重建副本。例子:3主機(jī)2副本,主機(jī)C出現(xiàn)故障。對(duì)比上面2張圖,可以看出在主機(jī)C故障并超時(shí)后,aSAN會(huì)在集群范圍內(nèi)尋找最佳借用磁盤(pán)組建復(fù)制卷,從而重建副本。這里的主機(jī)副本自動(dòng)重建機(jī)制和單個(gè)故障硬盤(pán)的自動(dòng)重建機(jī)制并沒(méi)有本質(zhì)差別,只是同時(shí)做了多個(gè)故障盤(pán)的重建。如果其中有熱備盤(pán),這是會(huì)自動(dòng)使用熱備盤(pán)。注意,主機(jī)自動(dòng)重建是有代價(jià)的,會(huì)復(fù)用其他磁盤(pán)的空間和性能。因此在條件允許情況下,應(yīng)盡快替換主機(jī)。如果不想aSAN才超時(shí)自動(dòng)重建,可以到高級(jí)設(shè)置關(guān)閉主機(jī)自動(dòng)重建功能。副本修復(fù)副本修復(fù)是指當(dāng)某個(gè)磁盤(pán)出現(xiàn)離線再上線后,保存在上面的文件副本可能是舊數(shù)據(jù),需要按照其他在線的文件副本進(jìn)行修復(fù)的一個(gè)行為。典型的情況是主機(jī)短暫斷網(wǎng),導(dǎo)致副本不一致。在aSAN1.0、aSAN1.1版本,副本修復(fù)是整個(gè)文件進(jìn)行對(duì)比修復(fù),會(huì)占用比較大的IO。因此保證網(wǎng)絡(luò)穩(wěn)定性在aSAN里面是核心要求之一。在aSAN1.2版本里面,支持副本快速修復(fù),對(duì)于短暫離線的副本,可以做到只修復(fù)少量差異數(shù)據(jù),達(dá)到快速修改的目的。文件文件A磁盤(pán)2不一定是本地磁盤(pán),也可以是其他主機(jī)的磁盤(pán),由管理服務(wù)通過(guò)網(wǎng)絡(luò)訪問(wèn)磁盤(pán)2不一定是本地磁盤(pán),也可以是其他主機(jī)的磁盤(pán),由管理服務(wù)通過(guò)網(wǎng)絡(luò)訪問(wèn)磁盤(pán)2磁盤(pán)1文件A文件A(副本2)文件A(副本1)例如,上圖磁盤(pán)2和磁盤(pán)1不在一個(gè)主機(jī)上。由于網(wǎng)絡(luò)原因離線了1分鐘。這一分鐘內(nèi),虛擬鏡像文件A有修改,這時(shí)修改只會(huì)寫(xiě)入到副本1上。一分鐘后,磁盤(pán)2上線,aSAN會(huì)感知到副本1和副本2有差異并且副本1是在用副本,即啟動(dòng)副本修復(fù)流程,以副本1為源修復(fù)到副本2上。在修復(fù)過(guò)程中,任何讀動(dòng)作都是從副本1去讀取的,寫(xiě)動(dòng)作依然同時(shí)寫(xiě)到2個(gè)副本修復(fù)完成后,副本1、副本2會(huì)達(dá)到完全一致的狀態(tài)。在aSAN1.2以上版本,副本修復(fù)支持快速修復(fù)。aSAN會(huì)記錄副本離線時(shí)的數(shù)據(jù)更改記錄,短時(shí)間的副本離線,當(dāng)離線副本上線時(shí),直接修復(fù)差異部分?jǐn)?shù)據(jù)。同時(shí),aSAN對(duì)業(yè)務(wù)IO和修復(fù)IO做了優(yōu)先級(jí)控制,副本修復(fù)IO對(duì)業(yè)務(wù)IO的降低影響平均不超過(guò)20%。當(dāng)然,即使有快速修復(fù),數(shù)據(jù)校驗(yàn)和傳輸依然會(huì)占用CPU和網(wǎng)絡(luò)帶寬,因此建議盡量保證aSAN存儲(chǔ)網(wǎng)絡(luò)穩(wěn)定,減少副本修復(fù)的產(chǎn)生。aSAN功能特性存儲(chǔ)精簡(jiǎn)配置自動(dòng)精簡(jiǎn)配置(ThinProvisioning)是一種先進(jìn)的、智能的、高效的容量分配和管理技術(shù),它擴(kuò)展了存儲(chǔ)管理功能,可以用小的物理容量為操作系統(tǒng)提供超大容量的虛擬存儲(chǔ)空間。并且隨著應(yīng)用的數(shù)據(jù)量增長(zhǎng),實(shí)際存儲(chǔ)空間也可以及時(shí)擴(kuò)展,而無(wú)須手動(dòng)擴(kuò)展。一句話而言,自動(dòng)精簡(jiǎn)配置提供的是“運(yùn)行時(shí)空間”,可以顯著減少已分配但是未使用的存儲(chǔ)空間。如果采用傳統(tǒng)的磁盤(pán)分配方法,需要用戶(hù)對(duì)當(dāng)前和未來(lái)業(yè)務(wù)發(fā)展規(guī)模進(jìn)行正確的預(yù)判,提前做好空間資源的規(guī)劃。在實(shí)際中,由于對(duì)應(yīng)用系統(tǒng)規(guī)模的估計(jì)不準(zhǔn)確,往往會(huì)造成容量分配的浪費(fèi),比如為一個(gè)應(yīng)用系統(tǒng)預(yù)分配了5TB的空間,但該應(yīng)用卻只需要1TB的容量,這就造成了4TB的容量浪費(fèi),而且這4TB容量被分配了之后,很難再被別的應(yīng)用系統(tǒng)使用。即使是最優(yōu)秀的系統(tǒng)管理員,也不可能恰如其分的為應(yīng)用分配好存儲(chǔ)資源,而沒(méi)有一點(diǎn)的浪費(fèi)。根據(jù)業(yè)界的權(quán)威統(tǒng)計(jì),由于預(yù)分配了太大的存儲(chǔ)空間而導(dǎo)致的資源浪費(fèi),大約占總存儲(chǔ)空間的30%左右。aSAN采用了自動(dòng)精簡(jiǎn)配置技術(shù)有效的解決了存儲(chǔ)資源的空間分配難題,提高了資源利用率。采用自動(dòng)精簡(jiǎn)配置技術(shù)的數(shù)據(jù)卷分配給用戶(hù)的是一個(gè)邏輯的虛擬容量,而不是一個(gè)固定的物理空間,只有當(dāng)用戶(hù)向該邏輯資源真正寫(xiě)數(shù)據(jù)時(shí),才按照預(yù)先設(shè)定好的策略從物理空間分配實(shí)際容量。aSAN私網(wǎng)鏈路聚合aSAN的私網(wǎng)鏈路聚合是為了提高網(wǎng)絡(luò)可靠性和性能設(shè)置而提出的。使用aSAN私網(wǎng)鏈路聚合不需要交換機(jī)上配置鏈路聚合,由存儲(chǔ)私網(wǎng)負(fù)責(zé)鏈路聚合的功能,使用普通的二層交換機(jī),保證接線正確即可。傳統(tǒng)的鏈路聚合是按主機(jī)IP進(jìn)行均分,即每2臺(tái)主機(jī)間只能用1條物理鏈路。而aSAN私網(wǎng)鏈路聚合采用按照TCP連接進(jìn)行均分,兩臺(tái)主機(jī)間的不同TCP連接可使用不同物理鏈路。數(shù)據(jù)一致性檢查aSAN采用一致性復(fù)制協(xié)議來(lái)保證多個(gè)副本數(shù)據(jù)的一致性,即只有當(dāng)所有副本都寫(xiě)成功,才返回寫(xiě)入磁盤(pán)成功。正常情況下aSAN保證每個(gè)副本上的數(shù)據(jù)都是完全一致,從任一副本讀到的數(shù)據(jù)都是相同的。如果某個(gè)副本中的某個(gè)磁盤(pán)短暫故障,aSAN會(huì)暫時(shí)不寫(xiě)這個(gè)副本,等恢復(fù)后再恢復(fù)該副本上的數(shù)據(jù);如果磁盤(pán)長(zhǎng)時(shí)間或者永久故障,aSAN會(huì)把這個(gè)磁盤(pán)從群集中移除掉,并為副本尋找新的副本磁盤(pán),再通過(guò)重建機(jī)制使得數(shù)據(jù)在各個(gè)磁盤(pán)上的分布均勻。aNet網(wǎng)絡(luò)虛擬化網(wǎng)絡(luò)虛擬化概述網(wǎng)絡(luò)虛擬化是構(gòu)建超融合架構(gòu)中,非常重要的一部分,我們通過(guò)aSV實(shí)現(xiàn)了服務(wù)器虛擬化,aSAN實(shí)現(xiàn)了通過(guò)服務(wù)器節(jié)點(diǎn)構(gòu)建了存儲(chǔ)虛擬化,但還是存在沒(méi)有解決的問(wèn)題:一、如何保障虛擬機(jī)可以在我的物理網(wǎng)絡(luò)環(huán)境中進(jìn)行順利的遷移,虛擬化后的數(shù)據(jù)中心涉及業(yè)務(wù)眾多,對(duì)外部提供云接入服務(wù)時(shí),傳統(tǒng)的Vlan技術(shù)已經(jīng)無(wú)法滿足業(yè)務(wù)隔離的需求,怎么解決大規(guī)模租戶(hù)和租戶(hù)之間、業(yè)務(wù)和業(yè)務(wù)之間的安全隔離也是面臨的首要問(wèn)題。二、虛擬化后的數(shù)據(jù)中心的業(yè)務(wù)系統(tǒng)的構(gòu)建和上線對(duì)網(wǎng)絡(luò)功能的快速部署、靈活彈性甚至成本,提出了更高的要求。三、在傳統(tǒng)網(wǎng)絡(luò)中,不論底層的IT基礎(chǔ)設(shè)施還是上層的應(yīng)用,都由專(zhuān)屬設(shè)備來(lái)完成。這些設(shè)備成本高昂,能力和位置僵化,難以快速響應(yīng)新業(yè)務(wù)對(duì)網(wǎng)絡(luò)快速、靈活部署的需求。基于上述問(wèn)題,采用了業(yè)界成熟的SDN+NFV的解決方案,我們稱(chēng)之為aNet,通過(guò)Overylay的方式來(lái)構(gòu)建大二層和實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)之間的租戶(hù)隔離,通過(guò)NFV實(shí)現(xiàn)網(wǎng)絡(luò)中的所需各類(lèi)網(wǎng)絡(luò)功能資源(包括基礎(chǔ)的路由交換、安全以及應(yīng)用交付等)按需分配和靈活調(diào)度,從而實(shí)現(xiàn)超融合架構(gòu)中的網(wǎng)絡(luò)虛擬化。aNET網(wǎng)絡(luò)虛擬化技術(shù)原理SDNSDN(SoftwareDefinedNetwork,軟件定義網(wǎng)絡(luò))是一種創(chuàng)新性的網(wǎng)絡(luò)架構(gòu),它通過(guò)標(biāo)準(zhǔn)化技術(shù)(比如openflow)實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備的控制層面和數(shù)據(jù)層面的分離,進(jìn)而實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)流量的靈活化、集中化、細(xì)粒度的控制,從而為網(wǎng)絡(luò)的集中管理和應(yīng)用的加速創(chuàng)新提供了良好的平臺(tái),由此可獲得對(duì)網(wǎng)絡(luò)的前所未有的可編程性、自動(dòng)化和控制能力,使網(wǎng)絡(luò)很容易適應(yīng)變化的業(yè)務(wù)需求,從而建立高度可擴(kuò)展的彈性網(wǎng)絡(luò)。從SDN的實(shí)現(xiàn)方式來(lái)看,廣義和狹義兩種。在廣義的SDN下分為3個(gè)流派,分別是:網(wǎng)絡(luò)虛擬化NV(主要指的是Overlay),網(wǎng)絡(luò)功能虛擬化NFV。狹義的SDN主要指的是通過(guò)OpenFlow來(lái)實(shí)現(xiàn)。aNet中的SDN實(shí)現(xiàn)沒(méi)有采用上述的廣義的SDN的方案,但由于實(shí)現(xiàn)架構(gòu)上大同小異,用一副標(biāo)準(zhǔn)的SDN規(guī)范圖來(lái)說(shuō)明下:可以這幅圖看出實(shí)現(xiàn)SDN的重點(diǎn)在Dataplane和Controllerplane,SDN的核心思想就是數(shù)據(jù)面與控制面分離。NFV以開(kāi)放取代封閉,以通用替代專(zhuān)有——將原本專(zhuān)業(yè)的網(wǎng)元設(shè)備上的網(wǎng)絡(luò)功能提取出來(lái)虛擬化,運(yùn)行在通用的硬件平臺(tái)上,業(yè)界稱(chēng)這種變化為NFV。NFV(NetworkFunctionsVirtualisation網(wǎng)絡(luò)功能虛擬化)的目標(biāo)是希望通過(guò)廣泛采用的硬件承載各種各樣的網(wǎng)絡(luò)軟件功能,實(shí)現(xiàn)軟件的靈活加載,在數(shù)據(jù)中心、網(wǎng)絡(luò)節(jié)點(diǎn)和用戶(hù)端等各個(gè)位置靈活的配置,加快網(wǎng)絡(luò)部署和調(diào)整的速度,降低業(yè)務(wù)部署的復(fù)雜度及總體投資成本,提高網(wǎng)絡(luò)設(shè)備的統(tǒng)一化、通用化、適配性。NFV與SDN有很強(qiáng)的互補(bǔ)性,NFV增加了功能部署的靈活性,SDN可進(jìn)一步推動(dòng)NFV功能部署的靈活性和方便性。通過(guò)NFV技術(shù),將網(wǎng)絡(luò)功能資源進(jìn)行虛擬化,使得網(wǎng)絡(luò)資源升級(jí)為虛擬化、可流動(dòng)的流態(tài)資源,Overlay模型使流態(tài)網(wǎng)絡(luò)資源的流動(dòng)范圍跳出了物理網(wǎng)絡(luò)的束縛,可以在全網(wǎng)范圍內(nèi)按需流動(dòng),呈現(xiàn)出網(wǎng)絡(luò)資源的統(tǒng)一池化狀態(tài),最終實(shí)現(xiàn)了超融合架構(gòu)中網(wǎng)絡(luò)資源的靈活定義、按需分配、隨需調(diào)整。aNet底層的實(shí)現(xiàn)aNet的實(shí)現(xiàn)主要包含兩個(gè)層面:數(shù)據(jù)平面和控制平面。傳統(tǒng)數(shù)據(jù)平面:在典型的虛擬化網(wǎng)絡(luò)場(chǎng)景下,數(shù)據(jù)包將由網(wǎng)絡(luò)接口卡接收,然后進(jìn)行分類(lèi)并生成規(guī)定的動(dòng)作,并對(duì)數(shù)據(jù)包付諸實(shí)施。在傳統(tǒng)的Linux模式下,系統(tǒng)接收數(shù)據(jù)包和將數(shù)據(jù)包發(fā)送出系統(tǒng)的過(guò)程占了包處理中很大一部分時(shí)間,這可能會(huì)出乎有些人的預(yù)料。換句話說(shuō),即使用戶(hù)空間應(yīng)用程序什么都不做,而只是將數(shù)據(jù)包從接收端口傳送到發(fā)送端口,那么仍然會(huì)花費(fèi)大量的處理時(shí)間。當(dāng)網(wǎng)卡從網(wǎng)絡(luò)接收到一個(gè)數(shù)據(jù)幀后,會(huì)使用直接內(nèi)存訪問(wèn)(DMA)將數(shù)據(jù)幀傳送到針對(duì)這一目的而預(yù)先分配的內(nèi)核緩沖區(qū)內(nèi),更新適當(dāng)?shù)慕邮彰枋龇h(huán),然后發(fā)出中斷通知數(shù)據(jù)幀的到達(dá)。操作系統(tǒng)對(duì)中斷進(jìn)行處理,更新環(huán),然后將數(shù)據(jù)幀交給網(wǎng)絡(luò)堆棧。網(wǎng)絡(luò)堆棧對(duì)數(shù)據(jù)進(jìn)行處理,如果數(shù)據(jù)幀的目的地是本地套接字,那

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論