Proxmox高可用方案
用proxmox做伺服器虛擬化已經很長一段時間了,不過全玩的是單伺服器,最多也就弄三臺整個叢集,因為沒有共享儲存,無法實現高可用(僱主捨不得投入,還欠俺很多工錢呢)。近期給人出了一個方案,計劃用proxmox高可用的方案,虛擬出n多虛擬機器,然後把業務系統部署上去。方案討論了很多次,發現共享儲存的方式,費錢又費磁碟。考慮效能的話,得用15000轉的sas盤,但這種規格sas盤的容量最大是600G,而且單盤價格很高。用容量的sata盤吧,解決了容量問題,但效能又會成為瓶頸。回來對方說,有人用ceph做儲存,掛接之,再建立做伺服器虛擬化。
以前做過分散式儲存moosefs、Hadoop dfs等,都有一個軟肋,即存在控制節點(或者叫命名節點一類),控制節點是關鍵,一死全死。最近檢視moosefs官網,新版的商業版本,整出兩個master來,死掉一個,其他節點選舉剩下的那個節點做master。這樣整出來,光儲存就是好大一堆伺服器了。當然,有錢的可以買商業儲存,解決效能和可用性問題。既然有人推薦,那就去了解一下ceph,嘿嘿,是去中心化的架構,這一點有優勢了。
雖然有人用ceph做儲存,但與伺服器虛擬化是單獨使用,我的意圖是能不能整合到proxmox裡?官網一看,好傢伙,proxmox5.x 集成了ceph啊,天意!
本來就有很長時間的proxmox使用和維護經驗,花點時間看看官網英文文件,大概就明白怎麼一個情況。弄桌上型電腦來虛擬三個節點的proxmox,誰知配置不行,卡的要死無法往下進行測試。正好北京有人要做虛擬化,讓我過去做個諮詢,哈哈,有了物理機,測試有著落了。
建議的方案是,用四臺物理伺服器,配置完全相同,劃分兩個網段,一個是網段用於儲存,另一個用於虛擬機器等。儲存分配上,ssd安裝proxmox,大概200G的ssd。剩下的盤位,插3塊以上的10000轉的sas大容量盤(單盤1.2T-1.8T)。我只在電話裡大致說了一下建議,等我到現場的時候,他們已經配置得差不多了。在ha那步卡住了,我給點撥了一下,暴力關機,執行其上的虛擬機器狀態顯示正常,本打算用手工方式遷移到其他節點,沒想到片刻自動漂移了,大喜過望!
看到管理介面有那個spice協議,實驗了一把。關閉某個虛擬機器,編輯其硬體屬性,顯示器一項改成spice,然後啟動此虛擬機器,真的可以呢!
遺憾的是,只能通過瀏覽器,點控制檯下拉選單spice才可以。
而我希望用virt-viewer客戶端訪問,這樣如果能成功,就可以採購雲終端盒子進行連線。把伺服器虛擬化與桌面虛擬化整合在一個proxmox上邊,遠勝於其它商業解決方案。
檢視宿主伺服器的程序及網路,只發現spice代理程序spiceproxy。
監聽tcp 3128埠,試著telnet 該埠,可以連線。如果虛擬機器顯示器選定了spice,啟動後,附帶啟動一個61000埠的服務,程序名為kvm。再啟動一個選擇spice顯示的虛擬機器,宿主機就再起一個tcp 60001的埠。監聽地址是127.0.0.1,程序名還是那個kvm。由此可以判斷,以瀏覽器操作管理介面的下拉選單spice,代理程式把這個請求傳遞給127.0.0.1:61000埠,於是可以彈出視窗。
直接用客戶端連3128埠,不靈;換61000埠,還是不靈。查了很多資料,也問了一些人,無果。這段時間,甚至走路都在想這個怎麼突破。後來,查到一種方法,用qm showcmd vmid 查指定虛擬機器的整個kvm 指令所帶的全部引數和選項,這些引數和選項,到現在還不知道藏哪個配置檔案裡?當我們用web管理介面建立虛擬機器的時候,應該會去讀某個檔案,但肯定不是虛擬機器那個配置檔案,配置檔案我查了,引數值很少的。比如我的某個虛擬機器的id是100,我就執行 qm shoucmd 100>/root/vm100.sh,執行完畢,就去修改這個檔案,找到spice那行,改“127.0.0.1”為本地網絡卡實際地址,注意這個檔案就是一整行,不要回車換行喲。不能確定會不會有作用,執行一把再說,如果不對,也不會有什麼影響(再次重啟虛擬機器後,這些配置是不會不儲存和載入的)。執行此指令碼無報錯,看管理介面,虛擬機器是啟動起來了。到宿主機看看網路監聽,61000埠繫結到實際網路介面,而不是先遷的127.0.0.1.看來有戲。遠端telnet這個61000,嘿嘿,能連呢。現在,可以試試客戶端,小心翼翼輸入"spice://172.16.35.99:61000",等待中....,哇塞!真出windows登入介面了呢!
化緣網購的盒子到了好幾天,客戶端連線正常,那麼拿盒子也是不在話下了。
設定好盒子的值,猛戳連線。
到這裡,總算有前進了一步。不過有問題,如果把這個交付給別人,不能讓人編輯指令碼,再執行這個指令碼吧?並且,虛擬機器每次重啟以後,這些設定就沒有了。這個問題需要解決,繼續查資料,問人。有開發虛擬平臺的兄弟說可能有類似xml這樣的檔案存在,宿主機搜吧,沒有。差不多把目錄都翻遍了,沒找到有用的資訊。暫且擱置吧,後邊再搞。
這遠端windows用spice協議連上以後,滑鼠有兩個,點選起來特別費勁。用盒子連或者用客戶端連,都是這個尿性,直接問賣盒子那個傑雲廠家售後,答覆說需要在虛擬機器裡邊安裝vgaent,可以從spice-space.org官網下載。這好辦,進去點download,真有這玩意,仔細看發現一個spice-guest-tools包,包含了vgaent等,就是你了,下載到虛擬機器並安裝,還真可以,滑鼠只有一個指標,完全正常。
後邊還有問題,沒有音效卡、u盤識別。繼續回去折騰spice,今天騎摩托到山上,突然想到,能不能直接改虛擬機器配置檔案呢?咋老司機,改之前備份一下。回來後,立馬動手,檢視官方文件,可以在配置檔案裡寫引數.
改完,重啟虛擬機器,還真有效。下一步,怎麼給加個介面,在web介面建立虛擬機器的時候,把監聽地址、監聽埠、使用者密碼等,通過某種方式傳遞到虛擬機器配置檔案就完美了。
基本思路:弄個指令碼,等建立好虛擬機器配合檔案後執行,取得其id,以610+id號做埠,並接受密碼輸入。互動後,輸出文字檔案,記錄監聽ip、埠、密碼,交給使用者使用。
具體如何修改虛擬機器配置檔案?能調試出spice連線、音效卡、usb等,請訂閱俺的專欄,猛戳此處直達。
最後,來總結一下私有云通殺神器proxmox的強大之處:
1、去中心化,死掉哪個節點都無大礙。vmware有vcenter,這個死翹翹以後,有些功能不能用了,一比見高低。
2、超融合。虛擬化平臺、儲存融合;伺服器虛擬化、桌面虛擬化融合。據瞭解,大部分的商業方案,伺服器虛擬化與桌面虛擬化各幹各的,管理成本和採購成本,那是槓槓的高。
3、超低成本。不需外掛共享儲存,光這個就省老鼻子了。商業解決方案,動不動一個cpu core報價就以萬為單位,不過是openstack改改,價格殼殼嘛。
4、部署簡單快捷。proxmox本身就是iso檔案,燒錄到u盤,引導後一路回車,分分鐘搞定一臺;建立叢集,每節點僅僅執行一條命令列指令,後邊的配置都在瀏覽器進行了。試問其它方案,不管商業的還是開源的,誰能這麼便捷?別的不說,試試openstack,老司機都得猶豫。
來幾張圖,看看土豪公司的資源。
六個節點物理伺服器組成的小叢集。
176個執行緒,除以2就是88個核心,捨得投入啊。
Linux公社的RSS地址: ofollow,noindex" target="_blank">https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址: https://www.linuxidc.com/Linux/2018-09/154117.htm