kvm共享存儲
㈠ kvm虛擬機為什麼共享內存技術
你好,一般默認情況下是利用C盤的剩餘空間來做虛擬內存的,因此C盤的剩餘空間越大對系統運行就越好,虛擬內存是隨著你的使用而動態地變化的,這樣C盤就容易產生磁碟碎片,影響系統運行速度,所以,最好將虛擬內存設置在其它分區,如D盤中。
1、右鍵點「我的電腦」,左鍵點「屬性」,點選「高級」選項卡,點「性能」里的「設置」按鈕,再選「高級」選項卡,點下面的「更改」按鈕,所彈出的窗口就是虛擬內存設置窗口,一般默認的虛擬內存是從小到大的一段取值范圍,這就是虛擬內存變化大小的范圍,最好給它一個固定值,這樣就不容易產生磁碟碎片了,具體數值根據你的物理內存大小來定,一般為物理內存的1.5到2倍,如內存為256M,那麼應該設置256*1.5=384M,或者乾脆512M。
2、設置方法如下:
假設內存為256M,虛擬內存放在D盤,先要將默認的清除,保持C盤為選中狀態,單選「無分頁文件(N)」再按「設置」按鈕,此時C盤旁的虛擬內存就消失了,然後選中D盤,單選「自定義大小」,在下面的「初始大小」和「最大值」兩個方框里都添上512,再點一下「設置」按鈕,會看到D盤的旁邊出現了「512-512」的字樣,這樣就說明設置好了,再一路確定,最終,系統會要重新啟動,重啟一下,便完成了設置。
3、注意:虛擬內存只能有一個,只放在一個盤中!
㈡ KVM實現動態遷移如何共享存儲池
kvm底層本身就自帶虛擬鎖機制,就類似機器文件系統的的鎖機制,所以能夠提供和vmware等商業虛擬化一樣的遷移功能。
㈢ 要做kvm的集群 用什麼分布式文件系統
一、 虛擬化集群介紹、設計思路及架構
使用虛擬化集群的目標是克服單機虛擬化的局限性,利用技術手段提高虛擬機可用性,最終達到業務不中斷或者減少中斷時間,確保業務數據更安全的目標。
1. 虛擬化集群介紹
1)什麼是虛擬化集群
虛擬機集群最顯著的特徵是有共享存儲,因為有了共享存儲,虛擬機就可以實現非常快速的在線遷移,並在虛擬化層配置高可用。筆者在生產環境使用的集群有兩種存儲方式,基於商業存儲和基於開源分布式文件系統。
2)虛擬化集群的高可用和基於應用層高可用的區別
高可用是經常用到的運維技術,在系統、網路、資料庫、Web業務等各個應用層面都有使用。高可用技術是指至少有主備兩個節點,當主節點故障的時候,迅速切換到備用節點。為了避免備用節點誤判,有時候還有第三個節點,或者主節點和備用節點共同能訪問到的存儲空間,用於做仲裁判斷。應用層面的高可用還有一個特點,就是一般都有浮動IP,當切換發生的時候,IP從主節點漂移到備用節點。應用層面的高可用一般切換時間比較快,從幾毫米到幾秒中,同時應用層面的高可用一般需要專用軟體,比如常用的Keepalived,Heartbeat等。
虛擬化層面的高可用是虛擬機系統層面的高可用,即當一台計算節點故障的時候,在另外一台計算節點上自動將故障節點上的虛擬機啟動起來。注意如果虛擬機上的業務不能做到開機自啟動,即使虛擬機自動啟動了,並不能保證業務層面的自動恢復!
另外還有一個問題,就是即使虛擬機啟動起來了,當啟動到一半虛擬機的系統卡住了,也不能及時恢復業務!
虛擬化層的高可用一般業務恢復實際是系統重啟的時間,加上業務開機自啟動的時間,通常是分鍾級別。
雖然虛擬化層高可用有業務不能恢復的風險,業務恢復時間也相對比較長,但是虛擬化層高可用有個非常巨大的優勢,就是不需要在應用層面配置,大大的拓寬了高可用的適用范圍,使原來在應用層難以使用高可用技術的應用,也能做到高可用,尤其是在某些專用的軟體領域。
其實虛擬機層高可用和應用層面高可用並不矛盾,在虛擬機的系統裡面,也可以配置應用層面的高可用,做這樣的配置的時候,注意主備節點放置到不同宿主機上!
3)虛擬化集群後端存儲的使用
最早的時候,筆者在生產環境使用的集群都是以機櫃為單位的小集群,主要因為筆者一直搭建的是私有雲,在IDC機房裡面機櫃都是要計算費用的,為了充分利用資源,合理節省成本,筆者私有雲一個設計思想就是能夠按照機櫃,靈活擴展或者伸縮。
後來隨著虛擬化的規模擴大,也進行了一些基於開源分布式文件系統集群的搭建,基於開源分布式文件系統的集群,規模可以更大,擴展性更好,適用於KVM的開源分布式文件系統在第9章、第10章都有詳細的介紹。開源的虛擬化管理平台,本書第11章、第12章、第13章有詳細介紹,所以本章不再介紹開源分布式文件系統及管理平台。
2. 使用虛擬化集群的優勢
虛擬化集群相對於單機虛擬化,有以下幾點優勢:
q 快速的在線遷移(Live Migration),設備、系統維護造成的業務計劃內停機時間減少到零。
q 高可用(HA),一台計算節點故障,上面的虛擬機可以很快在其他計算節點上啟動運行起來,極大縮短計劃外停機時間。
q 動態資源調度,業務負載發生變化引起計算節點壓力分布不均勻時,可手動或者自動平衡物理機負載。也可在整體壓力較低的時間段,將虛擬機集中在部分計算節點上,將不用的計算節點臨時關閉,達到節能的目標。
q 業務快速部署,集群將資源池化,通過和管理平台結合,在集群的容量范圍內,業務部署的速度非常快。
q 數據更安全,後端存儲採用冗餘度更高的商業存儲,或者分布式文件系統,數據可靠性可以達到99.99%以上。
q 網路速度、可靠性更高,集群網路採用冗餘架構,網路設備、網路連接都是雙冗餘,網路速度更高,可靠性也更高,單台網路設備、單根網線、單個網卡故障都不會引起網路中斷。
提示:
1)什麼是計劃內停機與計劃外停機
計劃內停機是指可預期可計劃的停機,比如定期的維護,提前通告的維護。計劃外停機是指突發事件引起的停機事件,比如硬體故障,網路DDOS攻擊等。一般計劃內停機因為是提前預知的,會做好預防措施,不會有數據丟失,對業務的損失是比較小的。計劃外停機則因為是突發事件,對業務的損失要大很多。運維的重要職責之一就是通過技術手段減少計劃外和計劃內停機時間,對虛擬化來說,虛擬化集群能夠做到在線虛擬機遷移,並且是全冗餘設計,需要計劃內硬體和軟體維護的時候,可以做到計劃內停機時間為零。當宿主機發生緊急硬體故障的時候,虛擬機可以很快在其他宿主機上開起來,所以虛擬化集群也能有效降低計劃外停機。
2)在線遷移並不是災備手段
在線遷移實際遷移的是虛擬機的內存,當宿主機發生故障的時候,虛擬機的內存信息已經丟失了,這時候是不能再去做虛擬機的在線遷移的。所以在線遷移解決的是有計劃的維護問題,比如要升級宿主機內存,可以將宿主機上的虛擬機在線遷移到其他宿主機上,內存升級完成後,在將虛擬機在線遷移回來。
3. 集群設計及架構
1)虛擬化集群設計
為保證虛擬機的盡量的在線時間,靈活的擴展,虛擬化集群的設計需要滿足以下要求:
q 有共享存儲,虛擬機能夠在線遷移;
q 通過增加計算節點、存儲、網路設備可以橫向擴展;
q 沒有單點故障,計算節點有多個,商業存儲為雙控制器,分布式文件系統鏡像寫多份,網路設備冗餘;
q 性能滿足要求,並且通過增加設備,性能可以擴展
2)虛擬化集群的架構
一套虛擬化集群體系包括以下組成部分:
q 若干計算節點,承載虛擬機的計算、內存、網路資源;
q 管理節點及管理平台,管理虛擬機的鏡像,虛擬機生成、維護、銷毀的生命周期,虛擬機的調度;
q 後端存儲,存儲虛擬機鏡像存放;
q 網路設備。
二、虛擬化集群技術方案
1. 前端計算
虛擬化集群前端計算節點可以使用普通機架式伺服器,也可以使用刀片伺服器。
1)機架式伺服器做為計算節點的優缺點
機架式伺服器做為計算節點的優點是:
q 架構簡單,安裝配置方便;
q 擴展節點數量和升級較為容易;
q 成本有一定的優勢。
缺點是:
q 隨著節點數量的增多,佔用的機櫃空間也在增大,單機櫃伺服器密度低;
q 網路結構復雜,每台伺服器有公網、私網、存儲網;
q 交換機埠數量多,接線容易出錯。
2)刀片伺服器做為計算節點的優缺點
使用刀片伺服器作為計算節點的優點是:
q 刀片伺服器內置交換機,可以靈活的配置網路;
q 刀片伺服器連線簡單,佔有交換機埠數量少,網路非常簡潔;
q 單位機櫃伺服器密度大;
q 功耗低;
q 刀片伺服器冗餘電源和風扇,冗餘交換模塊,是全冗餘的架構。
使用刀片伺服器的缺點是:
q 成本較高;
q 配置復雜,安裝配置需要專業的知識;
q 往往需要改造機櫃電源,並受限於機櫃最高電流。
另外目前還有一種多節點伺服器,就是在1U或者2U的空間裡面,能夠容納2到4台伺服器,這些伺服器很像是刀片伺服器,共享電源和機框,但是網路介面獨立。多節點伺服器密度介於機架式伺服器和刀片伺服器之間,使用上和機架式伺服器完全一樣。
伺服器的配置選型,根據筆者的經驗,選擇比較高的配置,雖然初期投入高,但是長遠看,因為能夠容納更多的虛擬機,其實是節省成本的。宿主機在運行一段時間後,往往會發現內存是瓶頸,所以一開始配置的時候,內存盡量配置大一些。具體宿主機如何選型在第15章已經有詳細的介紹,本章就不重復介紹了。
3. 後端存儲技術方案
虛擬化集群的後端存儲可以使用商業存儲和分布式文件系統,商業存儲有三類:NAS、IP SAN、FC SAN。
1)NAS共享存儲
NAS(NETWORK ATTACHED STORAGE )即網路附加存儲,網路上直接掛接的存儲設備,相當於一個網路文件共享伺服器。
測試環境可以用一台普通的主機模擬NAS,只要這台主機有自己的磁碟和文件系統,並且對外提供訪問文件系統的介面。最常見的NAS有linux下的NFS和windows下的CIFS。
2)IP SAN共享存儲
SAN(STORAGE AREA NETWORK)即存儲區域網路,主要是基於TCP/IP的網路來實現數據存取,即傳輸介質為IP網路。通過IP網路將計算計算節點和存儲設備連接起來,計算節點通過發送Block I/O的請求到存儲設備,最常見的就是用ISCSI技術,計算節點通過SCSI協議發出讀取數據的請求,並用TCP/IP包封裝SCSI包,就可以再TCP/IP網路中進行傳輸,即SCSI over TCP/IP。
測試環境也可以用普通伺服器模擬ISCSI存儲。
3)FC存儲
FC(Fibre Channel 光纖通道)SAN類似於IP SAN,只是以光纖作為傳輸介質,性能較高,目前使用最廣。計算節點上安裝光纖介面的HBA(Host BusAdapter,提供伺服器內部的I/O通道與存儲系統的I/O通道之間的物理連接)卡,為了冗餘HBA卡一般有兩塊,分別接兩台光纖交換機,存儲一般有兩個控制器,也分別接兩台光纖交換機,達到全容易的目標。FC SAN計算節點直接將I/O請求通過FC網路發送到存儲設備,性能非常高。
4)生產環境如何選擇存儲類型
在實際部署的生產環境中,選擇存儲類型,取決於以下幾個因素:
q 業務性能及可靠性需求
q 預算
q 運維對技術熟悉程度
一般來說,對性能要求非常高的業務,使用FC SAN存儲,FC SAN存儲也是成本最高的一種方案。如果業務性能需要稍低,可以使用NAS、IP SAN的存儲,NAS、IP SAN的存儲是性價比比較高的方式。如果業務主要是CPU消耗型的,可以考驗使用分布式文件系統,本書第9章介紹的DRBD、GlusterFS,第10章介紹的CEPH,工作都很穩定,但是性能相對比較低,很適合CPU消耗型的虛擬機。
關於NFS和ISCSI,業內一直有爭論,NFS配置簡單,但是因為是應用層的協議,有人認為性能低,其實商業存儲做了許多優化,性能也不見得比ISCSI差。如何選擇主要取決於預算、運維的技術習慣、具體的存儲品牌型號,筆者生產環境喜歡使用ISCSI存儲。
㈣ 華為虛擬化(kvm)平台,如何在宿主機上底層查看到虛擬機在共享存儲上存放位置和模板文件格式謝謝!
在linux上玩過kvm的朋友基本都曉得,在宿主機上運行了虛擬主機以後,我們無法直接看到某一個虛擬主機IP地址。比如:
[root@21yunwei /]$virsh list --all
Id 名稱 狀態
----------------------------------------------------
3 geoip running
4 tomcat running
5 jenkins running
18 gitlab running
19 win7 running
如果我們想知道gitlab這個虛擬機的IP地址,那麼是無法直接看到的。這里就需要一個小方法做排查,很簡單的,就兩步驟:
1,編輯虛擬主機配置文件。
[root@21yunwei /]$virsh edit gitlab
進去以後直接查找mac 可以定位到如下地址信息,記錄下mac後退出:
<mac address='52:54:00:FA:61:75'/>
2,通過arp -a判定虛擬機器IP地址。
[root@21yunwei /]$arp -a | grep -i 52:54:00:FA:61:75
? (192.168.1.101) at 52:54:00:fa:61:75 [ether] on br1
注意這里一定要加上-i 忽略大小寫。不然因為大小寫問題有可能查不到。
說明:這里只根據通信緩存記錄的mac 、IP地址手段做排查。也有可能找不到。最好的辦法是自己寫一個腳本跟網段內的所有伺服器都ping一次,記錄下mac、ip地址以後再查找就沒問題。
㈤ 如何在KVM HA集群中增加虛擬機
使用KVM虛擬化配置高可用性集群不僅成本低,而且還能確保工作負載在主機發生故障的情況下正常運行。然而對於某些不熟悉相關流程的人來說,配置高可用集群可能很困難。
之前我們在《如何以有限預算構建KVM HA集群》文章中介紹了如何創建一個基礎集群並配置OCFS2共享文件系統。本文將介紹如何安裝虛擬機,將虛擬機添加到集群中並確保集群配置正常運行。
安裝KVM虛擬機
為安裝KVM虛擬機,虛擬主機需要運行libvirt服務。可以使用如下命令運行libvirt服務:systemctl start libvirtd; systemctl enable libvirtd。
開啟安裝有兩種方式,可以使用虛擬機管理器圖形工具或者virt-install命令行。如果能夠使用圖形環境,那麼virt-manager工具將非常有用,你也可以使用腳本創建虛擬機。
該命令指定了新虛擬機的所有屬性,虛擬機名為smallcent,虛擬機的名字非常重要,因為在你為虛擬機創建集群資源時會用到。示例為虛擬機分配了512MB的內存,4GB的硬碟位於/shared目錄下。請記住我們假定該目錄位於我們之前創建的OCFS2數據卷上。
上述步驟要用到互動式安裝。如果沒有終端連接到虛擬主機,那麼無法使用上述安裝類型而只能使用自動化安裝。你需要查閱相關文檔,了解如何配置AutoYast或Kickstart伺服器來完成自動化安裝。
為KVM虛擬機配置集群資源
為將虛擬機添加到集群中,你需要使集群能夠識別虛擬機配置。為實現該目標必須將虛擬機的XML配置mp為文本文件。首先,使用 virt-installvirsh list --allvirt-install命令確認虛擬機的名字。我們使用的虛擬機的名字為smallcent。因為集群需要訪問包含虛擬機定義的XML文件,所以你必須將其mp到共享存儲上。通過輸入命令vvirsh mpxml smallcent > /shared/smallcent.xml可以實現。
這時,你可以在集群中為虛擬機創建資源。VirtualDomain資源代理可以實現該目的。可以使用crm configure edit命令增加如下配置:
為使集群能夠管理資源,集群中的所有節點都必須能夠訪問XML配置文件。因此你需要將XML文件存放在共享存儲上。在之前的命令中已經使用 VirtualDomain 資源代理創建了一個名為smallcent的資源。為告知資源代理在哪兒查找hypervisor,我們在資源定義中包括了如下內容:hypervisor="qemu://system"。為使該配置生效,主機需要被配置為允許通過其他主機自動登錄。接下來,你需要表明集群能夠在哪兒查找用於管理資源的XML配置。
現在你可以使用crm_mon命令確認配置正在運行。如果所有配置都是正確的,現在應該擁有一個可操作的KVM高可用集群了。