1. 程式人生 > >ProxmoxVE V5.2叢集安裝圖解

ProxmoxVE V5.2叢集安裝圖解

以前找了一臺物理伺服器直接安裝了一個proxmox VE 環境(VE是虛擬化環境的意思),後續又看了官方的admin文件,對整個系統架構有了一定的瞭解,接下來,準備好好研究一下具體能夠落在生產環境上的系統設計。官方文件可以在官網下載,也可以在安裝pve之後在web介面上直接檢視或者下載,如下圖:

設計思路:

基本想法是,3個以上物理節點的叢集環境,組成HA,具體設想如下:

    1.網路方面需要內部叢集管理(corosync)網路,業務網路,ceph儲存網路,3個網路,需要強調的是,內部叢集網路需要獨立出來,因為叢集網路對延時的要求很苛刻,具體詳見官方文件。如果有條件,每個網路都做bond。bond型別的選擇,叢集管理網路直接使用active-backup,其他的最好使用LACP(802.3ad)鏈路聚合,但是這種方式需要在交換機側做配置,兩個交換機之間也要做級聯,鏈路聚合的好處是一穩定,二頻寬不浪費,三高可用 。

    2.儲存方面,除了系統盤之外,每臺物理機使用2塊硬碟貢獻出來作為ceph儲存池使用,1塊硬碟作為本地lvm儲存並掛載給映象和備份目錄使用,這樣可以比較靈活,需要實現HA功能虛擬機器可以放在ceph儲存池,lvm儲存池主要存放模板映象檔案,也可以給其他虛擬機器使用,lvm儲存池的虛擬機器在相應速度上理論上要比ceph的要高,這裡具體不闡述。ceph儲存池使用3mon,3副本。

    3.CPU和記憶體方面根據實際需求確定,這裡不贅述。

操作記錄:

一.環境準備:

    基於以上考慮,在這臺pve環境上面,建立3個虛擬機器,3vcpu/12G記憶體/4塊硬碟/2塊網絡卡 ,其中硬碟方面1塊硬碟為系統盤31G,2塊30G的ceph盤,1塊32G的lvm盤,網絡卡方面1塊網絡卡同時給叢集和虛擬機器使用(192.168.1.0/24網段),1塊網絡卡作為ceph儲存網路(192.168.170.0/24網段)使用。建立虛擬機器如下:

   

    剩下2臺測試虛擬機器,直接克隆,分別為pve-2,pve-3 .

    接下來分別啟動pve-1,pve-2,pve-3 進行proxmox VE的安裝,如下圖:

安裝步驟都很簡單,傻瓜式的,其中選擇硬碟會預設第一塊硬碟安裝系統,然後是設定root密碼等等,網路配置步驟:

這裡hostname要求寫成FQDN格式,我試了直接使用pve-2,不行,最後是使用pve-2.ywb.com 。

    3臺虛擬機器同時安裝,非常快,不到10分鐘,居然就安裝完了!感覺比裝vmware的ESXI也更快啊。

點右下角的Reboot重啟。

第一階段搞定,後面就可以建叢集,配網路,建儲存之類的後續操作了。

    通過輸入網址:

    https://192.168.1.51:8006

    https://192.168.1.52:8006

    https://192.168.1.53:8006

    分別可以管理這3臺pve。

二.配置網路

    先將第二塊網絡卡的網路配上,系統安裝過程中配置了第一塊網絡卡作為內部管理叢集網路,網段是192.168.1.0/24 ,登陸系統後可以發現這個地址是配置在網橋上的,網橋上搭一塊網絡卡進行橋接,因此新建一個網橋並配置192.168.170.0/24網段的地址給它,搭另一塊網絡卡進行橋接,如下圖:

   

    注意第一塊網絡卡設定了閘道器是192.168.1.1,這塊網絡卡就不能設定網關了 。這個比較好理解,其實就是在主機上設定了預設閘道器,只能有一個。

    增加完網橋之後,需要重啟pve節點生效配置。(網路更改都需要重啟節點才能生效。)

三.儲存設定

    接下來處理儲存,進去看pve節點的儲存,安裝的時候安裝程式會預設在安裝盤上建立一個vg,名稱是pve,在這個vg上建立swap/root/data三個lv ,其中root這個lv上掛載/根目錄。 安裝完成之後直接預設有兩個儲存ID,一個是local,對應的是目錄型儲存,掛載目錄是/var/lib/vz ,一個是local-lvm,掛載的是data這個lv,這個lv的型別是lvm-thin ,lvm-thin這種型別很適合虛擬機器使用,具體如何建立後面再介紹。另外,pve的各種儲存型別主要有目錄型/lvm/lvm-thin/zfs/nfs/ceph等等,具體可以參考官網的admin文件。

    我當初的設計是需要將最後一塊32G的盤/dev/sdb作為目錄/var/lib/vz的掛載盤,這個目錄下面存放映象檔案,備份檔案,也可以直接存放本機虛擬機器檔案和容器檔案。這一塊工作需要先在後臺將sdb這塊盤劃分了lvm才能給系統使用。因此,    首先通過ssh登陸pve伺服器,執行:

    pvcreate /dev/sdb   
    ---注意,我這裡沒有分割槽,直接使用整塊硬碟,使用分割槽其實也是可以的
    vgcreate vg-sdb /dev/sdb
    lvcreate --thin -L 30G -n lvm-sdb vg-sdb  
      注:不能使用32G,提示空間不夠,--thin表示型別是lvm-thin ,如果建立的時候沒有加這個引數,可以事後執行lvconvert --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節點的local儲存池為共享池,這樣可以只上傳映象到這個儲存池,其他節點也可以共享使用,如下圖:

   

上傳第一個ISO映象,通過scp程式,我用的是winscp,直接從本機上傳到pve-1的/var/lib/vz/templates/iso/目錄中,如下圖:

當然,也可以使用web管理介面直接上傳,如下圖:

四.建立叢集:

    在其中一臺pve伺服器的web管理介面上首先建立一個叢集,如下圖:

   

接下來,通過ssh登陸其他2個pve節點,執行 pvecm add 192.168.1.51 (這個地址是上面建立叢集的pve節點的IP)命令加入叢集cluster1,如下圖:

加入完成之後,可以通過命令 pvecm status 在任何一個節點上檢視叢集情況,如下圖:

如果要檢視叢集日誌,可以看檔案/var/log/daemon.log 。

叢集建立完成之後,任何一個pve節點的web管理介面檢視都可以管理整個叢集,如下圖:

五.ceph安裝配置

    參考官網這個網址:

    https://www.proxmox.com/en/training/video-tutorials/item/install-ceph-server-on-proxmox-ve

    這是一個詳細的視訊教程,基本的設計思路和我這個環境差不多,都是3個節點,只有網路是真正的3個網路,我是因為條件限制,將叢集管理和虛擬機器業務網絡合二為一了,其他的都差不多。

    首先在每一個節點安裝ceph軟體包:

    pveceph install --version luminous   

    注意,官網視訊裡面用的jewel版本,我們安裝的pve版本是5.2對應的ceph版本已經是luminous版本了。

    執行過程中提示軟體包相關錯誤,如下:

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
 

    需要執行這個命令進行確認:

    touch '/please-remove-proxmox-ve'
    再次執行install命令,最後還是有一個報錯:
    cp: cannot stat '/usr/share/doc/pve-manager/examples/ceph.service': No such file or directory
    could not install ceph.service

    然後發現pveceph命令找不到了!!!! 應該是在上面安裝過程中軟體包錯誤處理的時候將這個軟體包解除安裝了。咋辦?另外,在web管理介面,建立虛擬機器啟動虛擬機器連線虛擬機器失敗,說明上面命令解除安裝了部分或者大部分關鍵軟體包,嗝屁了。通過在網上查相關資訊,只看到全真道長sery那裡就在幾天前也發現了這個問題,確認就是沒有訂閱造成的,被一家公司控制的開源產品,缺陷出來了。道長sery那邊的訊息是,如果訂閱,是249.9歐元每CPU每年,這算下來與vmware的授權也差不多了,那我還用個毛的開源軟體啊。下圖是官網的報價:

    看來只有自己手動安裝ceph叢集了。

 

總結:

    本篇博文嘗試搭建一套3節點的Proxmox VE 叢集,安裝過程非常快,概念也很清晰,web管理介面非常好用,但是在進行到儲存ceph安裝的時候出現了訂閱問題。

    安裝到這裡,反正也已經基本摸了一遍叢集的實際落地操作,並踩到了一個大坑,那就是ceph的安裝配置5.2版本需要訂閱官方授權才能使用。具體如何解決,初步2個辦法,第一個是測試歷史版本,據說歷史版本可以使用,第二個是手動安裝ceph叢集,然後在pve中做一些簡單配置連線使用這個ceph叢集,第二個辦法的缺點是沒有辦法統一整合管理pve和ceph,只能分開管理,但是對於大規��的應用場景,可能反倒是一個優點。我的想法是,兩個辦法都要去踩一遍,對於小規模使用場景使用第一個用歷史版本的辦法,對大規模場景,都可以。

    注:至今天(2018年9月23日)為止,官網上能下載的版本有5.2-1,   5.1-3,   5.0-5ab26bc-5 三個版本,三個版本我都測試過了,pveceph工具install之後都不正常。更老的版本現在暫時未找到。