Proxmox集群网络配置

    用过vmwarevirtualbox的人大概都知道虚拟机是怎么回事儿,这种虚拟化软件通常装在windows环境下,而且是单机环境。那么随着云计算与大数据的发展,虚拟化技术也是得到了极大的发展,比如分布式的虚拟化软件OpenStackProxmox VE等。

    对于这4种常用的虚拟化软件我的使用感受就是在windows上virtualbox比vmware好用,服务器上Proxmox比OpenStack好用。windows上的不说了,本文重点说一下服务器上的虚拟软件使用感受,之前用过windows server服务器上装的virtualbox,然后再开各种各样的虚拟机,总体感受就是很慢,在相同的环境下跑相同的程序结果很慢得多。可能与这种virtualbox是半裸的虚拟化技术有关(寄居虚拟化),vmware也是这种技术。

说到虚拟化技术,下面的图更加解释得直观:

Proxmox集群网络配置_第1张图片

Proxmox集群网络配置_第2张图片

 

 

    而在服务器上Proxmox和OpenStack则表现更加稳定。OpenStack配置要求高,安装配置过程复杂,但是可以用Fuel进行一键安装,总体来说没有Proxmox易用。而Proxmox只需要30分钟就能安装系统,还有很多操作系统的模版可以使用。Proxmox比较稳定,我们实验室和我之前实习的公司都是用的Proxmox集群来作为生成环境,基本上没有出什么大问题。

    接下来说说应用:Proxmox主要是创建KVM虚拟机和lxc容器,KVM虚拟机需要iso镜像(几个G),lxc容器需要tar.gz模版(100M左右)。

  首先安装系统,去官网下载Proxmox iso镜像,最新版是5.3.我前段时间装的是5.2,但基本上没有差别,我们实验室的集群是4.2,也没有很大的区别。Proxmox 是基于debian的系统(ubuntu也是基于debian的系统),我觉得他是裸机虚拟机技术(可能理解不准确,它集成了多种虚拟化技术),但这不重要,重要的是Proxmox 的安装就和普通linux系统一模一样,而且比装一个centos或者ubuntu更简单,更快!!!

安装教程很多,服务器上装需要做个U盘系统,也可以在vmware和virtualbox上装,如下图,按照提示一步一步走即可,ip配置那一步先用默认的配置!!!

Proxmox集群网络配置_第3张图片

本文要重点说的是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.规划网络:  

  192.168.1.125   pve1

  192.168.1.126   pve2

  网上说搭建集群要在交换机上开多播,其实不开也可以。

 2.在每个机器上修改ip地址: 

 通过命令修改 vi  /etc/network/interfaces,如果通过网页端修改ip也可以,但修改是保存在临时文件/etc/network/interfaces.new里,都是重启生效。

这里要重点说一下有很多中网络方案,常见的有2种网络模式:

a.只有一个网卡

Proxmox集群网络配置_第4张图片

这种方式下虚拟机使用10.10.10.x网段,宿主机集群的通信和虚拟机的通信都走一个网卡,虚拟机通过nat转发。

b.有两个网卡:

Proxmox集群网络配置_第5张图片

这种模式下就宿主机集群走网卡1,而虚拟机之间的通信走网卡2。这种模式下多个服务的网卡2之间要走单独的网线,也就是双网卡双网线,这样每个节点上的虚拟机都能互通。

3.在宿主机上为虚拟机开启转发规则:(这一步先跳过,创建虚拟机时再做)

重点说明:

1 开启IP转发
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward

Proxmox集群网络配置_第6张图片

恢复规则: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

二、创建集群

通过命令:

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

}

这是集群赖以成功的关键因素!!!


三、文件目录说明:

/etc/pve 是文件系统挂载

这个目录是只读的,只有当pve-cluster启动后才会有内容,pve-cluster关掉服务后, 这个目录会被清空!!!他是属于www-data 用户组,就是web UI的文件目录,因此不能修改!关掉pve-cluster服务后,web UI也就关掉了,/etc/pve也就清空了。

Proxmox集群网络配置_第7张图片

/etc/corosync 是集群通信服务(corosync)所在的本地目录

Proxmox集群网络配置_第8张图片

注意!

我们配置是只关注/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的时候需要先把只读权限去掉,修改后再恢复:

Proxmox集群网络配置_第9张图片


四、启动过程:

单机版:开机默认先启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   查看集群节点状态简单

五、通过web UI点点鼠标来创建集群:

如果觉得上述通过命令创建集群比较繁琐,可以用过通过web UI点点鼠标来创建集群。

Proxmox集群网络配置_第10张图片

然后在弹出框输入集群名字如abc,弹框输出TASK OK表示成功:

Proxmox集群网络配置_第11张图片

可以看到创建集群的步骤为:

Proxmox集群网络配置_第12张图片

2.再其他节点上输入命令加入创建好的集群中去:

Proxmox集群网络配置_第13张图片

这些信息来自于:pve1的网页上的Join Information:

Proxmox集群网络配置_第14张图片

这一步也可以直接输入命令:

 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 

你可能感兴趣的:(大数据,proxmox,虚拟,Proxmox)