以前找了一臺物理服務器直接安裝了一個proxmox VE 環(huán)境(VE是虛擬化環(huán)境的意思),后續(xù)又看了官方的admin文檔,對整個系統(tǒng)架構有了一定的了解,接下來,準備好好研究一下具體能夠落在生產環(huán)境上的系統(tǒng)設計。官方文檔可以在官網下載,也可以在安裝pve之后在web界面上直接查看或者下載,如下圖:
設計思路:
基本想法是,3個以上物理節(jié)點的集群環(huán)境,組成HA,具體設想如下:
1.網絡方面需要內部集群管理(corosync)網絡,業(yè)務網絡,ceph存儲網絡,3個網絡,需要強調的是,內部集群網路需要獨立出來,因為集群網絡對延時的要求很苛刻,具體詳見官方文檔。如果有條件,每個網絡都做bond。bond類型的選擇,集群管理網絡直接使用active-backup,其他的最好使用LACP(802.3ad)鏈路聚合,但是這種方式需要在交換機側做配置,兩個交換機之間也要做級聯(lián),鏈路聚合的好處是一穩(wěn)定,二帶寬不浪費,三高可用 。
2.存儲方面,除了系統(tǒng)盤之外,每臺物理機使用2塊硬盤貢獻出來作為ceph存儲池使用,1塊硬盤作為本地lvm存儲并掛載給鏡像和備份目錄使用,這樣可以比較靈活,需要實現(xiàn)HA功能虛擬機可以放在ceph存儲池,lvm存儲池主要存放模板鏡像文件,也可以給其他虛擬機使用,lvm存儲池的虛擬機在相應速度上理論上要比ceph的要高,這里具體不闡述。ceph存儲池使用3mon,3副本。
3.CPU和內存方面根據實際需求確定,這里不贅述。
操作記錄:
一.環(huán)境準備:
基于以上考慮,在這臺pve環(huán)境上面,創(chuàng)建3個虛擬機,3vcpu/12G內存/4塊硬盤/2塊網卡 ,其中硬盤方面1塊硬盤為系統(tǒng)盤31G,2塊30G的ceph盤,1塊32G的lvm盤,網卡方面1塊網卡同時給集群和虛擬機使用(192.168.1.0/24網段),1塊網卡作為ceph存儲網絡(192.168.170.0/24網段)使用。創(chuàng)建虛擬機如下:
剩下2臺測試虛擬機,直接克隆,分別為pve-2,pve-3 .
接下來分別啟動pve-1,pve-2,pve-3 進行proxmox VE的安裝,如下圖:
安裝步驟都很簡單,傻瓜式的,其中選擇硬盤會默認第一塊硬盤安裝系統(tǒng),然后是設置root密碼等等,網絡配置步驟:
這里hostname要求寫成FQDN格式,我試了直接使用pve-2,不行,最后是使用pve-2.ywb.com 。
3臺虛擬機同時安裝,非常快,不到10分鐘,居然就安裝完了!感覺比裝vmware的ESXI也更快啊。
點右下角的Reboot重啟。
第一階段搞定,后面就可以建集群,配網絡,建存儲之類的后續(xù)操作了。
通過輸入網址:
https://192.168.1.51:8006
https://192.168.1.52:8006
https://192.168.1.53:8006
分別可以管理這3臺pve。
二.配置網絡
先將第二塊網卡的網絡配上,系統(tǒng)安裝過程中配置了第一塊網卡作為內部管理集群網絡,網段是192.168.1.0/24 ,登陸系統(tǒng)后可以發(fā)現(xiàn)這個地址是配置在網橋上的,網橋上搭一塊網卡進行橋接,因此新建一個網橋并配置192.168.170.0/24網段的地址給它,搭另一塊網卡進行橋接,如下圖:
注意第一塊網卡設置了網關是192.168.1.1,這塊網卡就不能設置網關了 。這個比較好理解,其實就是在主機上設置了默認網關,只能有一個。
增加完網橋之后,需要重啟pve節(jié)點生效配置。(網絡更改都需要重啟節(jié)點才能生效。)
三.存儲設置
接下來處理存儲,進去看pve節(jié)點的存儲,安裝的時候安裝程序會默認在安裝盤上建立一個vg,名稱是pve,在這個vg上建立swap/root/data三個lv ,其中root這個lv上掛載/根目錄。 安裝完成之后直接默認有兩個存儲ID,一個是local,對應的是目錄型存儲,掛載目錄是/var/lib/vz ,一個是local-lvm,掛載的是data這個lv,這個lv的類型是lvm-thin ,lvm-thin這種類型很適合虛擬機使用,具體如何創(chuàng)建后面再介紹。另外,pve的各種存儲類型主要有目錄型/lvm/lvm-thin/zfs/nfs/ceph等等,具體可以參考官網的admin文檔。
我當初的設計是需要將最后一塊32G的盤/dev/sdb作為目錄/var/lib/vz的掛載盤,這個目錄下面存放鏡像文件,備份文件,也可以直接存放本機虛擬機文件和容器文件。這一塊工作需要先在后臺將sdb這塊盤劃分了lvm才能給系統(tǒng)使用。因此, 首先通過ssh登陸pve服務器,執(zhí)行:
pvcreate /dev/sdb ---注意,我這里沒有分區(qū),直接使用整塊硬盤,使用分區(qū)其實也是可以的 vgcreate vg-sdb /dev/sdb lvcreate --thin -L 30G -n lvm-sdb vg-sdb 注:不能使用32G,提示空間不夠,--thin表示類型是lvm-thin ,如果創(chuàng)建的時候沒有加這個參數,可以事后執(zhí)行l(wèi)vconvert --type thin-pool vg-sdb/lvm-sdb 命令轉化類型,如果是為掛載目錄使用,可以不使用thin類型。 mkfs.ext4 /dev/vg-sdb/lvm-sdb 更改local存儲目錄/var/lib/vz的掛載點為/dev/vg-sdb/lvm-sdb : mount /dev/vg-sdb/lvm-sdb /var/lib/vz 在/etc/fstab文件中寫入下面這行,使開機自動掛載: /dev/vg-sdb/lvm-sdb /var/lib/vz ext4 defaults 1 2
調整pve-1節(jié)點的local存儲池為共享池,這樣可以只上傳鏡像到這個存儲池,其他節(jié)點也可以共享使用,如下圖:
上傳第一個ISO鏡像,通過scp程序,我用的是winscp,直接從本機上傳到pve-1的/var/lib/vz/templates/iso/目錄中,如下圖:
當然,也可以使用web管理界面直接上傳,如下圖:
四.創(chuàng)建集群:
在其中一臺pve服務器的web管理界面上首先創(chuàng)建一個集群,如下圖:
接下來,通過ssh登陸其他2個pve節(jié)點,執(zhí)行 pvecm add 192.168.1.51 (這個地址是上面建立集群的pve節(jié)點的IP)命令加入集群cluster1,如下圖:
加入完成之后,可以通過命令 pvecm status 在任何一個節(jié)點上查看集群情況,如下圖:
如果要查看集群日志,可以看文件/var/log/daemon.log 。
集群建立完成之后,任何一個pve節(jié)點的web管理界面視圖都可以管理整個集群,如下圖:
五.ceph安裝配置
參考官網這個網址:
https://www.proxmox.com/en/training/video-tutorials/item/install-ceph-server-on-proxmox-ve
這是一個詳細的視頻教程,基本的設計思路和我這個環(huán)境差不多,都是3個節(jié)點,只有網絡是真正的3個網絡,我是因為條件限制,將集群管理和虛擬機業(yè)務網絡合二為一了,其他的都差不多。
首先在每一個節(jié)點安裝ceph軟件包:
pveceph install –version luminous
注意,官網視頻里面用的jewel版本,我們安裝的pve版本是5.2對應的ceph版本已經是luminous版本了。
執(zhí)行過程中提示軟件包相關錯誤,如下:
W: (pve-apt-hook) !! WARNING !! W: (pve-apt-hook) You are attempting to remove the meta-package 'proxmox-ve'! W: (pve-apt-hook) W: (pve-apt-hook) If you really you want to permanently remove 'proxmox-ve' from your system, run the following command W: (pve-apt-hook) touch '/please-remove-proxmox-ve' W: (pve-apt-hook) and repeat your apt-get/apt invocation. W: (pve-apt-hook) W: (pve-apt-hook) If you are unsure why 'proxmox-ve' would be removed, please verify W: (pve-apt-hook) - your APT repository settings W: (pve-apt-hook) - that you are using 'apt-get dist-upgrade' or 'apt full-upgrade' to upgrade your system E: Sub-process /usr/share/proxmox-ve/pve-apt-hook returned an error code (1) E: Failure running script /usr/share/proxmox-ve/pve-apt-hook
需要執(zhí)行這個命令進行確認:
touch '/please-remove-proxmox-ve' 再次執(zhí)行install命令,最后還是有一個報錯: cp: cannot stat '/usr/share/doc/pve-manager/examples/ceph.service': No such file or directory could not install ceph.service
然后發(fā)現(xiàn)pveceph命令找不到了?。。。?應該是在上面安裝過程中軟件包錯誤處理的時候將這個軟件包卸載了。咋辦?另外,在web管理界面,創(chuàng)建虛擬機啟動虛擬機連接虛擬機失敗,說明上面命令卸載了部分或者大部分關鍵軟件包,嗝屁了。通過在網上查相關信息,只看到全真道長sery那里就在幾天前也發(fā)現(xiàn)了這個問題,確認就是沒有訂閱造成的,被一家公司控制的開源產品,缺陷出來了。道長sery那邊的消息是,如果訂閱,是249.9歐元每CPU每年,這算下來與vmware的授權也差不多了,那我還用個毛的開源軟件啊。下圖是官網的報價:
看來只有自己手動安裝ceph集群了。
總結:
本篇博文嘗試搭建一套3節(jié)點的Proxmox VE 集群,安裝過程非??欤拍钜埠芮逦?,web管理界面非常好用,但是在進行到存儲ceph安裝的時候出現(xiàn)了訂閱問題。
安裝到這里,反正也已經基本摸了一遍集群的實際落地操作,并踩到了一個大坑,那就是ceph的安裝配置5.2版本需要訂閱官方授權才能使用。具體如何解決,初步2個辦法,第一個是測試歷史版本,據說歷史版本可以使用,第二個是手動安裝ceph集群,然后在pve中做一些簡單配置連接使用這個ceph集群,第二個辦法的缺點是沒有辦法統(tǒng)一集成管理pve和ceph,只能分開管理,但是對于大規(guī)??的應用場景,可能反倒是一個優(yōu)點。我的想法是,兩個辦法都要去踩一遍,對于小規(guī)模使用場景使用第一個用歷史版本的辦法,對大規(guī)模場景,都可以。
注:至今天(2018年9月23日)為止,官網上能下載的版本有5.2-1, 5.1-3, 5.0-5ab26bc-5 三個版本,三個版本我都測試過了,pveceph工具install之后都不正常。更老的版本現(xiàn)在暫時未找到。
注,上面說的“手動安裝ceph集群,然后在pve中做一些簡單配置連接使用這個ceph集群” ,已經驗證可以實現(xiàn),參考下面的文章:http://www.sfodin.cn/Linux/2018-12/155769.htm