Proxmox集羣網絡配置

    用過vmwarevirtualbox的人大概都知道虛擬機是怎麼回事兒,這種虛擬化軟件一般裝在windows環境下,並且是單機環境。那麼隨着雲計算與大數據的發展,虛擬化技術也是獲得了極大的發展,好比分佈式的虛擬化軟件OpenStackProxmox VE等。node

    對於這4種經常使用的虛擬化軟件個人使用感覺就是在windows上virtualbox比vmware好用,服務器上Proxmox比OpenStack好用。windows上的不說了,本文重點說一下服務器上的虛擬軟件使用感覺,以前用過windows server服務器上裝的virtualbox,而後再開各類各樣的虛擬機,整體感覺就是很慢,在相同的環境下跑相同的程序結果很慢得多。可能與這種virtualbox是半裸的虛擬化技術有關(寄居虛擬化),vmware也是這種技術。python

說到虛擬化技術,下面的圖更加解釋得直觀:linux

 

 

    而在服務器上Proxmox和OpenStack則表現更加穩定。OpenStack配置要求高,安裝配置過程複雜,可是能夠用Fuel進行一鍵安裝,整體來講沒有Proxmox易用。而Proxmox只須要30分鐘就能安裝系統,還有不少操做系統的模版可使用。Proxmox比較穩定,咱們實驗室和我以前實習的公司都是用的Proxmox集羣來做爲生成環境,基本上沒有出什麼大問題。web

    接下來講說應用:Proxmox主要是建立KVM虛擬機和lxc容器,KVM虛擬機須要iso鏡像(幾個G),lxc容器須要tar.gz模版(100M左右)。ubuntu

  首先安裝系統,去官網下載Proxmox iso鏡像,最新版是5.3.我前段時間裝的是5.2,但基本上沒有差異,咱們實驗室的集羣是4.2,也沒有很大的區別。Proxmox 是基於debian的系統(ubuntu也是基於debian的系統),我以爲他是裸機虛擬機技術(可能理解不許確,它集成了多種虛擬化技術),但這不重要,重要的是Proxmox 的安裝就和普通linux系統如出一轍,並且比裝一個centos或者ubuntu更簡單,更快!!!windows

安裝教程不少,服務器上裝須要作個U盤系統,也能夠在vmware和virtualbox上裝,以下圖,按照提示一步一步走便可,ip配置那一步先用默認的配置!!!centos

本文要重點說的是proxmox的集羣模式和網絡模式!!!服務器

安裝好以後proxmox 登錄命令行界面有一個鏈接:網絡

https://192.168.1.100:8006,注意是https,不是http。分佈式

這是網頁端的管理界面,經過網頁上點點鼠標能夠省去不少複雜的操做命令。

下面將proxmox ve簡稱爲pve,對與pve集羣,他不是傳統的主控集羣(一個主節點幾個從節點)由於主控集羣容易產生單點故障如hadoop集羣、spark集羣等。pve集羣的每一個節點徹底是對等的,沒有主從之分,也就是掛了某個節點,其他節點不受影響,只是掛了那個節點上的虛擬機有影響。而虛擬機只是pve某個節點上的一個進程而已,可是虛擬機的存儲能夠共享,也就是說每一個pve節點的硬盤能夠共享給其餘節點。


  集羣搭建過程:

首先分別把每臺服務器的pve系統裝好,而後經過web UI能夠看到是這種的:

單機:         ,集羣:

pve1是系統的主機名,能夠經過 vi /etc/hostname修改,主機名修改後重啓生效。


1、網絡配置

1.規劃網絡:  

  192.168.1.125   pve1

  192.168.1.126   pve2

  網上說搭建集羣要在交換機上開多播,其實不開也能夠。

 2.在每一個機器上修改ip地址: 

 經過命令修改 vi  /etc/network/interfaces,若是經過網頁端修改ip也能夠,但修改是保存在臨時文件/etc/network/interfaces.new裏,都是重啓生效。

這裏要重點說一下有不少中網絡方案,常見的有2種網絡模式:

a.只有一個網卡

這種方式下虛擬機使用10.10.10.x網段,宿主機集羣的通訊和虛擬機的通訊都走一個網卡,虛擬機經過nat轉發。

b.有兩個網卡:

這種模式下就宿主機集羣走網卡1,而虛擬機之間的通訊走網卡2。這種模式下多個服務的網卡2之間要走單獨的網線,也就是雙網卡雙網線,這樣每一個節點上的虛擬機都能互通。

3.在宿主機上爲虛擬機開啓轉發規則:(這一步先跳過,建立虛擬機時再作)

重點說明:

1 開啓IP轉發
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward

恢復規則:iptables-restore > /etc/iptables.up.rules
開機自動恢復規則,把恢復命令添加到啓動腳本:
echo '/sbin/iptables-restore /etc/iptables.up.rules' >>/etc/rc.d/rc.local
宿主機重啓後規則會失效,最好設置開機自動恢復規則!

4.而後按照這種配置規則把每一個服務器的ip都改好:

/etc/init.d/networking restart

reboot

2、建立集羣

經過命令:

systemctl start corosync

由於沒有開多播會corosync會啓動失敗,須要手動生成authkey:corosync-keygen

systemctl start pvedaemon

systemctl start pve-cluster

而後:

1.在主服務器pve1上建立集羣:名字爲abc

   pvecm create abc

2.分別在其他服務器上加入到該集羣abc:

   pvecm add 192.168.1.125 

3.查看狀態:

  pvecm status 或  pvecm nodes

(重點)若是報錯,意外說明:

單機版默認會集羣pvedaemon和pve-cluster,而不會啓動corosync。

建立集羣最核心的就是集羣同步服務corosync,corosync成功後會生成配置文件corosync.conf,,若是啓動失敗後須要手動修改配置文件:

logging {

  debug: off

  to_syslog: yes

}

nodelist {

  node {

    name: pve1

    nodeid: 1

    quorum_votes: 1

    ring0_addr: 192.168.1.125

  }

  node {

    name: pve2

    nodeid: 2

    quorum_votes: 1

    ring0_addr: 192.168.1.126

  }

}

quorum {

  provider: corosync_votequorum

}

totem {

  cluster_name: abc

  config_version: 2

  interface {

    bindnetaddr: 192.168.1.125

    ringnumber: 0

  }

  ip_version: ipv4

  secauth: on

  version: 2

}

這是集羣賴以成功的關鍵因素!!!


3、文件目錄說明:

/etc/pve 是文件系統掛載

這個目錄是隻讀的,只有當pve-cluster啓動後纔會有內容,pve-cluster關掉服務後, 這個目錄會被清空!!!他是屬於www-data 用戶組,就是web UI的文件目錄,所以不能修改!關掉pve-cluster服務後,web UI也就關掉了,/etc/pve也就清空了。

/etc/corosync 是集羣通訊服務(corosync)所在的本地目錄

注意!

咱們配置是隻關注/etc/corosync//etc/pve/目錄,但它會自動關聯一些目錄

經過如下查看相關的目錄:

find / -name"pve"

find / -name"corosync"

若是配置出錯了,須要將相關的配置所有刪除乾淨,再從新配置:

官方文檔說須要重裝系統,其實不用,刪除這些配置便可,親測成功!

rm -rf  /var/lib/pve-cluster/*

rm -rf  /var/lib/corosync/*

rm -rf  /var/lib/rrdcached/db/*

rm -rf  /etc/pve/*

rm -rf  /etc/corosync/*

因爲/etc/corosync/和/etc/pve/是隻讀的,所以修改corosync.conf的時候須要先把只讀權限去掉,修改後再恢復:


4、啓動過程:

單機版:開機默認先啓pvedaemon服務,再啓pve-cluster服務。

集羣版:開機默認先啓pvedaemon服務,再啓pve-cluster服務,最後啓動corosync服務。

前提是保證/etc/pve/爲空,若是不爲空則第二步的pve-cluster服務就會啓動失敗。

啓動corosync的過程:就是將本地目錄的/etc/corosync/corosync.conf複製到集羣目錄/etc/pve/下面。

這三個步驟對應着三個重要命令:

systemctl start pvedaemon

systemctl start pve-cluster

systemctl start corosync

報錯authkey不存在,須要手動生成authkey,命令爲:       corosync-keygen

單機版的服務說明

systemctl start pvedaemon     默認開機啓動pvedaemon. service服務

systemctl startpve-cluster   默認開機啓動pve-cluster. service服務

pve-cluster啓動後會在/etc/pve下面生成文件,/etc/pv/下的全部文件和目錄都屬於 root 用戶和www-data 用戶組。systemctl stop pve-cluster關掉服務後, /etc/pve目錄會清空!!!


若是要搭建集羣還須要另外啓動corosync服務:

systemctl start corosync        

corosync-keygen

默認不會啓動,建立一個集羣時纔會啓動它!


相關命令

systemctl stoppvedaemon

systemctl stoppve-cluster

systemctl stopcorosync

systemctl statuspvedaemon

systemctl statuspve-cluster

systemctl statuscorosync

systemctl status

systemctl statuscorosync.service

pvecm status   查看集羣節點狀態詳細

pvecm nodes   查看集羣節點狀態簡單

5、經過web UI點點鼠標來建立集羣:

若是以爲上述經過命令建立集羣比較繁瑣,能夠用過經過web UI點點鼠標來建立集羣。

而後在彈出框輸入集羣名字如abc,彈框輸出TASK OK表示成功:

能夠看到建立集羣的步驟爲:

2.再其餘節點上輸入命令加入建立好的集羣中去:

這些信息來自於:pve1的網頁上的Join Information:

這一步也能夠直接輸入命令:

 pvecm add pve1

  pvecm add pve1 –force       強制添加

即在pve2節點上輸入命令pvecm add pve1,pve1是集羣abc中已經存在的節點名。

添加節點成功輸出TASK OK表示成功!

而後刷新網頁便可看到:這是登錄pve1和pve2都是同樣的頁面了!!!

這時經過任意一個節點的ip登錄看到的效果都是同樣的!!!

https://192.168.1.125:8006

https://192.168.1.126:8006


因爲篇幅緣由本文只介紹集羣建立過程,後面再接着將若是配置存儲和建立虛擬機模版等等內容。最後能夠打開[支付寶]首頁輸入 578968162 ,能夠領取紅包哦,通常仍是能領個兩三塊的,may be more than that!!!

感謝您的支持,快去領花唄紅包吧:578968162