一、集群搭建

1.1、说明

本次在vmware中搭建pve集群,所有配置较低,在生产环境可以配置多个网卡,以及多个硬盘来存储磁盘文件,pve集群中没有主从节点之分,所有节点的地位是相等的

节点名称 网络 配置
pve1 单网卡:192.168.189.157 2C/4G/20G
pve2 单网卡:192.168.189.158 2C/4G/20G
pve3 单网卡:192.168.189.159 2C/4G/20G

1.2、节点安装pve

在vmware中新建虚拟机,
image.png
image.png
image.png
image.png
image.png
最后将pve的镜像挂载上,启动进入pve安装配置基本信息;其他两台机器同理。
启动后可通过webUI进入管理界面。https://192.168.189.157:8006

1.3、准备工作

1.3.1、配置国内源【所有节点】

  1. #安装后系统后,vi编辑器上下左右有事可能不好使。进行配置下
  2. vi /etc/vim/vimrc.tiny
  3. "set compatible"
  4. set nocompatible
  5. set backspace=2
  6. #配置阿里云的源
  7. vi /etc/apt/sources.list.d/pve-enterprise.list 修改为
  8. deb http://download.proxmox.wiki/debian/pve buster pve-no-subscription
  9. vi /etc/apt/sources.list 修改为
  10. deb http://mirrors.aliyun.com/debian buster main contrib
  11. deb http://mirrors.aliyun.com/debian buster-updates main contrib
  12. #安全更新
  13. deb http://mirrors.aliyun.com/debian-security/ buster/updates main contrib
  14. #更新系统
  15. apt update
  16. apt upgrade -y
  17. apt install vim -y

1.3.2、去除web管理平台的订阅提示

vi /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
image.png
搜索data.status,将if(…)条件改为if(false)
最后执行:systemctl restart pveproxy
需要将源码缓存删除,才可以看不到订阅信息,注意:在那个节点上去除了,登录web界面只有在该节点才有效,其他节点还是能看到信息的。除非在所有节点上修改

1.3.3、配置免密登录【所有节点】

在虚拟机在线迁移时需要用到免密登录,否则不能迁移成功
可以跳过

  1. #修改hosts文件
  2. vi /etc/hosts
  3. 192.168.189.157 pve1.domain pve1
  4. 192.168.189.158 pve2.domain pve2
  5. 192.168.189.159 pve3.domain pve3
  6. #分发密钥
  7. ssh-copy-id pve1
  8. ssh-copy-id pve2
  9. ssh-copy-id pve3

1.3.4、配置时间同步

参考

注意:systemd-timesyncd只能作为客户端,不能作为NTP服务器,要成为NTP服务器,可以安装chrony、ntpd,或者open-ntp。推荐chrony。

1.4、创建集群

  1. #在pve1上创建集群,PveGroup为集群名字
  2. pvecm create PveGroup
  3. #在pve2 、pve3上执行
  4. pvecm add 192.168.189.157

1.5、验证

  1. pvecm status
  2. pvecm nodes

二、存储方案

2.1、ceph集群存储

2.1.1、安装ceph【所有节点上执行】

  1. #安装(默认版本为nautilus)
  2. pveceph install -version nautilus
  3. installed ceph nautilus successfully
  4. #出现以上字样表示安装成功,不过有时缺包时,也会安装成功,但初始化的时候又会提示pveceph install
  5. #感觉这是pve的一个bug

注意:如果是内网环境,需要配置下域名映射。执行pveceph install 命令,这会在/etc/apt/sources.list.d/ceph.list中建立一个apt包存储库。并安装所需的软件。需要将ceph.list文件中的域名配置成内网的ip
192.100.3.221 download.proxmox.com

2.1.2、初始化集群【所有节点上执行】

  1. #这里我采用的是一个网络,即osd数据网和通信网是同一个,如果有多个网卡可以配置不同网络
  2. pveceph init -network 192.168.189.0/24
  3. pveceph init -cluster-network <集群网络> -network <公共网络>

2.1.3、创建集群mon监视【所有节点上执行】

  1. pveceph createmon
  2. #新版本
  3. pveceph mon create

2.1.4、创建osd【所有节点上执行】

命令行创建

  1. #需要单独配置一个磁盘/dev/sdb作为osd
  2. pveceph createosd /dev/sdb
  3. # 新版本命令
  4. pveceph osd create /dev/sdb

web创建
image.png

2.1.5、创建CephFS

2.1.5.1、先创建元数据服务器mds

命令行创建

  1. # 三个节点上执行
  2. pveceph mds create

web 界面也可以创建
image.png

2.1.5.2、创建cephfs

image.png
image.png

创建好后我们可以看到在“数据中⼼”的“存储”界⾯已经出现了⼀个挂载好的cephfs类别是CephFS内容是VZ备份、ISO映像、容器模板。我们可以把需要⽤到的ISO⽂件上传进去,并且下载容器模板。
image.png

2.1.6、创建集群存储资源池

  1. ceph osd pool create ceph-vm 128 128(只在pve1上面执行,pve-pool 是存储池名)
  2. 128(pg_num)的由来:
  3. 少于 5 OSD 时可把 pg_num 设置为 128
  4. OSD 数量在 5 10 个时,可把 pg_num 设置为 512
  5. OSD 数量在 10 50 个时,可把 pg_num 设置为 4096
  6. #默认为3个副本
  7. ceph osd pool get ceph-vm size
  8. #可以设置副本个数
  9. ceph osd pool set ceph-vm size 2

web 创建
注意:每个osd上的pg数量不能超过250,我这里因为已经创建cephfs,所以默认创建了两个资源池,cephfs_data和
cephfs_metadata,分别使用128和64的pg,而我每个节点上只有一个osd,所以现在不能创建128pg的资源池,可以将资源池pg数量设置为64
image.png
image.png

2.1.7、添加RBD集群存储

【登录web管理界面】:
image.png

image.png
【id】:标识、名称,可以任意填,不要重复即可
【资源池】;ceph可用的资源池,这里我的资源池名字叫vnm-dis
【内容】:存储的数据类型
【使用Proxmox VE管理的超融合ceph池】:需要勾上,表示使用pve节点上的ceph集群,不勾选,则使用外部的ceph集群
添加即可
image.png

2.2、NFS共享存储

NFS共享存储适合用来存储集群中的iso镜像文件,保证各节点共享同一份iso文件,减少数据的冗余

2.2.1、NFS服务器搭建

NFS安装

2.2.2、创建NFS存储

【登录web界面】:
image.png

image.png
【id】:标识、名称。唯一即可
【服务器】:NFS服务地址
【Export】:共享目录的路径
【内容】:存储数据的类型,一般存储iso镜像,容器模板,备份文件等
添加即可

2.3、目录

以节点上的某个目录作为存储,各节点上的数据不共享,不适合集群使用
pve默认会创建一个local目录为所有节点存储iso镜像文件,容器模板、vzdump备份文件。目录路径默认为/var/lib/vz。
image.png