1. Proxmox VE 简介
pve-web 页面概述
Proxmox VE(以下简称 PVE)是一个完整的开源企业级虚拟化服务器管理平台。它将 KVM 虚拟机管理程序和 Linux 容器(LXC)、软件定义存储和网络功能紧密集成在一个平台上。借助基于 Web 的集成用户界面,您可以轻松管理虚拟机和容器、集群、高可用性,并且还集成了灾难恢复工具。
纵观运维圈内所有可用的虚拟化软件,最有用的基本都是商业的。开源的kvm、openstack等要么维护一个mysql数据库复杂繁琐,要么管理功能不完善,运维成本也高昂。对于pve用户来说,只需要保证集群多播通讯正常,pve-cluster就能自动保证所有服务器状态信息一致,无需用户额外维护。另外pve没有主节点概念,每个节点都可以控制集群,这其实大大提高了机器的利用率。想要做虚拟化的团队其实只是想最大化利用有限的服务器资源。所以,pve绝对是个不错的选择。
当然这款软件也有它的不足之处。如上文所说,PVE 集群之间的通信依赖于多播通信,因此存在网络拥塞,并且拥塞程度会随着节点的增加而呈几何级数增长。当我们团队测试 15 个节点的 PVE 时,开始出现各种问题,包括存储问题、集群状态问题等。建议节点数最好小于 12 个。
2.proxmox的安装
从官网下载pve镜像,刻录到CD或者USB驱动器,然后像正常安装操作系统一样进行安装。
后续主机名都需要按照FQDN的形式来写(截图并非实际配置):
实际配置(根据你实际的IP地址填写):
网卡1-外网:111.222.xx gw:111.222.0.1
网卡2-内网:192.168.201.xxx/24
FQDN:pv[num].pve.com
然后一路确认
用户名:root,密码:xxxxx
:8006/(该IP地址可以替换成任意节点地址进行访问)
3.更改pve源(默认是订阅版源,需要改为开源非订阅版)
# 删除企业源
rm -rf /etc/apt/sources.list.d/pve-enterprise.list
#下载秘钥
wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg
# 添加社区源
echo "deb http://download.proxmox.wiki/debian/pve stretch pve-no-subscription" >/etc/apt/sources.list.d/pve-install-repo.list
apt update&&apt dist-upgrade
配置主机
#cat /etc/hosts
192.168.201.52 pve1.pve.com pve1
192.168.201.53 pve2.pve.com pve2
192.168.201.54 pve3.pve.com pve3
192.168.201.55 pve4.pve.com pve4
192.168.201.56 pve5.pve.com pve5
192.168.201.57 pve6.pve.com pve6
192.168.201.58 pve7.pve.com pve7
192.168.201.77 pve8.pve.com pve8
4.pve-cluster集群创建
4.1 创建集群
进入任意主机,这里我们以:8006/为例(测试环境),点击Cluster-Create Cluster,输入集群信息。
4.2 加入集群
如上图,集群创建完成后,就可以看到加入信息了,将加入信息复制下来,登录到:8006/,:8006/(其他服务器也同样操作),在集群页面粘贴并输入密码,pve会自动完成免密登录配置,并将两个节点加入到集群中。
5. 删除 Proxmox 集群中的节点
#首先在待隔离节点上停止 pve-cluster 服务:
#systemctl stop pve-cluster.service
#systemctl stop corosync.service
#然后将待隔离节点的集群文件系统设置为本地模式:
#pmxcfs -l
#接下来删除 corosync 配置文件:
#rm /etc/pve/corosync.conf
#rm -rf /etc/corosync/*
#最后重新启动集群文件系统服务:
#killall pmxcfs
#systemctl start pve-cluster.service
#最后如果想把该节点重新加入集群重新执行步骤二即可。
#如果因前面的隔离操作,原集群中剩余节点已经不满足多数票,节点删除命令就会失败。你可以将期望的多数票数量设置为 1,如下:
#pvecm expected 1
6.配置存储(这里用的是ceph软件虚拟化技术,当然如果不熟悉ceph的话也可以用本地硬盘存储做raid)
pve内置了pve-ceph分布式存储系统,可以自行搭建ceph,也可以直接通过pve ceph页面自动安装pve版本的ceph(如果对ceph不熟悉,建议通过pve web安装)。
PS:这里给使用Ceph的运维同学一个建议,如果你计划有10个节点,那么不要在10个节点上都安装Ceph节点,因为Ceph本身需要单独添加一块硬盘作为Ceph的一个OSD。维护一个OSD节点会消耗系统内存,这个内存大小由配置项“bluestore_cache_size_hdd”和“bluestore_cache_size_ssd”决定,HDD默认内存为1G,SSD默认内存为3G。因此,如果你一个节点有10块7.2kr硬盘,10个OSD,那么内存消耗就已经是10G了,可能就没有多余的内存来跑VM了。
6.1 pve ceph 安装
我先简单介绍一下ceph,ceph集群的组成部分:
多个 Ceph OSD(对象存储守护进程)至少需要一个 Ceph Monitor(1、3、5、7……),还需要两个或更多个 Ceph 管理器以及一个高可用性 Ceph 元数据服务器来运行 Ceph 文件系统客户端。
RADOS集群:由多台主机存储服务器组成的ceph集群
OSD(Object Storage Daemon):各存储服务器的磁盘组成的存储空间
Mon(Monitor):Ceph 监视器,维护 OSD 和 PG 的集群状态。一个 Ceph 集群必须至少有一个 mon,可以是奇数比如一、三、五、七等。
Mgr(管理器):负责跟踪运行时指标和 Ceph 集群的当前状态,包括存储利用率、当前性能指标和系统负载。
具体安装很简单,只需三步
6.2系统会自动安装,安装完成后进入ceph->configuration
将硬盘添加为osd,配置monitor和metaserver,在osd页面就可以看到当前ceph集群状态
7.通过pve web创建虚拟机
镜像选择:有两种方式,一种是本地镜像(local),一种是通过nfs挂载共享存储
我们先来谈谈本地:
优点:如果使用pve的本地镜像,也就是我们将镜像上传到本地镜像/var/lib/vz/template/iso,那么下图中在本地就可以看到这个目录下的所有镜像
缺点:只能在本地节点使用,不能与其他pve节点共享
nfs存储:
优点:统一维护一定的镜像目录,通过nfs共享,在pve数据中心-存储中挂载nfs类型的存储,选择ISO镜像作为内容,这样数据中心内所有节点都可以使用存储中的所有镜像
缺点:具有nfs的所有缺点,但不影响集群的使用,建议使用NFS存储。
选择图片后,确认即可。
8.pve配置双虚拟网卡
目的是为虚拟机配置内网和外网卡
以双网卡pv1配置为例
配置文件是:/etc/network/interfaces
然后重新启动 pve 或者 /etc/init.d/networking restart
9.安全配置
如果pve配置了公网权限的话,必须要考虑安全性,所以这一步就是给pve配置防火墙
9.1. 防火墙介绍:
PVE 有 3 种类型的防火墙:
a. 面向数据中心的防火墙处理进出数据中心的流量。
b.面向节点服务器,处理进出主机的流量。
c. 面向虚拟机的防火墙处理进出虚拟机的流量。
事实上,它们之间是独立的,互不干扰,但又相互联系。
当我们进入pve-webgui面板的时候我们会看到三个模块:数据中心------节点------vm
9.1.1 数据中心防火墙:
数据中心是由节点组成的集群。
可以说数据中心防火墙就是专门处理集群流量的防火墙。
只有开启数据中心防火墙,集群内的防火墙才可以开启,否则单独开启VM防火墙是没有意义的。
9.1.2 主机防火墙
主机防火墙只负责保存本地的流量,这台防火墙的开关不会影响虚拟机防火墙软件虚拟化技术,所以如果要开启虚拟机防火墙,不需要开启这台防火墙。
9.2 防火墙配置文件
#pve的防火墙配置文件路径
#数据中心防火墙配置文件路径
/etc/pve/firewall/cluster.fw
主机防火墙
/etc/pve/nodes//host.fw
##虚拟机防火墙
/etc/pve/firewall/.fw
9.3 配置防火墙
9.4 安全组
9.5 启用防火墙
9.6 启用虚拟机防火墙
9.7 配置虚拟机防火墙