一、集群搭建
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中新建虚拟机,
最后将pve的镜像挂载上,启动进入pve安装配置基本信息;其他两台机器同理。
启动后可通过webUI进入管理界面。https://192.168.189.157:8006
1.3、准备工作
1.3.1、配置国内源【所有节点】
#安装后系统后,vi编辑器上下左右有事可能不好使。进行配置下
vi /etc/vim/vimrc.tiny
"set compatible"
set nocompatible
set backspace=2
#配置阿里云的源
vi /etc/apt/sources.list.d/pve-enterprise.list 修改为
deb http://download.proxmox.wiki/debian/pve buster pve-no-subscription
vi /etc/apt/sources.list 修改为
deb http://mirrors.aliyun.com/debian buster main contrib
deb http://mirrors.aliyun.com/debian buster-updates main contrib
#安全更新
deb http://mirrors.aliyun.com/debian-security/ buster/updates main contrib
#更新系统
apt update
apt upgrade -y
apt install vim -y
1.3.2、去除web管理平台的订阅提示
vi /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
搜索data.status,将if(…)条件改为if(false)
最后执行:systemctl restart pveproxy
需要将源码缓存删除,才可以看不到订阅信息,注意:在那个节点上去除了,登录web界面只有在该节点才有效,其他节点还是能看到信息的。除非在所有节点上修改
1.3.3、配置免密登录【所有节点】
在虚拟机在线迁移时需要用到免密登录,否则不能迁移成功
可以跳过
#修改hosts文件
vi /etc/hosts
192.168.189.157 pve1.domain pve1
192.168.189.158 pve2.domain pve2
192.168.189.159 pve3.domain pve3
#分发密钥
ssh-copy-id pve1
ssh-copy-id pve2
ssh-copy-id pve3
1.3.4、配置时间同步
注意:systemd-timesyncd只能作为客户端,不能作为NTP服务器,要成为NTP服务器,可以安装chrony、ntpd,或者open-ntp。推荐chrony。
1.4、创建集群
#在pve1上创建集群,PveGroup为集群名字
pvecm create PveGroup
#在pve2 、pve3上执行
pvecm add 192.168.189.157
1.5、验证
pvecm status
pvecm nodes
二、存储方案
2.1、ceph集群存储
2.1.1、安装ceph【所有节点上执行】
#安装(默认版本为nautilus)
pveceph install -version nautilus
installed ceph nautilus successfully
#出现以上字样表示安装成功,不过有时缺包时,也会安装成功,但初始化的时候又会提示pveceph install
#感觉这是pve的一个bug
注意:如果是内网环境,需要配置下域名映射。执行pveceph install 命令,这会在/etc/apt/sources.list.d/ceph.list中建立一个apt包存储库。并安装所需的软件。需要将ceph.list文件中的域名配置成内网的ip192.100.3.221 download.proxmox.com
2.1.2、初始化集群【所有节点上执行】
#这里我采用的是一个网络,即osd数据网和通信网是同一个,如果有多个网卡可以配置不同网络
pveceph init -network 192.168.189.0/24
pveceph init -cluster-network <集群网络> -network <公共网络>
2.1.3、创建集群mon监视【所有节点上执行】
pveceph createmon
#新版本
pveceph mon create
2.1.4、创建osd【所有节点上执行】
命令行创建
#需要单独配置一个磁盘/dev/sdb作为osd
pveceph createosd /dev/sdb
# 新版本命令
pveceph osd create /dev/sdb
web创建
2.1.5、创建CephFS
2.1.5.1、先创建元数据服务器mds
命令行创建
# 三个节点上执行
pveceph mds create
2.1.5.2、创建cephfs
创建好后我们可以看到在“数据中⼼”的“存储”界⾯已经出现了⼀个挂载好的cephfs类别是CephFS内容是VZ备份、ISO映像、容器模板。我们可以把需要⽤到的ISO⽂件上传进去,并且下载容器模板。
2.1.6、创建集群存储资源池
ceph osd pool create ceph-vm 128 128(只在pve1上面执行,pve-pool 是存储池名)
128(pg_num)的由来:
少于 5 个 OSD 时可把 pg_num 设置为 128
OSD 数量在 5 到 10 个时,可把 pg_num 设置为 512
OSD 数量在 10 到 50 个时,可把 pg_num 设置为 4096
#默认为3个副本
ceph osd pool get ceph-vm size
#可以设置副本个数
ceph osd pool set ceph-vm size 2
web 创建
注意:每个osd上的pg数量不能超过250,我这里因为已经创建cephfs,所以默认创建了两个资源池,cephfs_data和
cephfs_metadata,分别使用128和64的pg,而我每个节点上只有一个osd,所以现在不能创建128pg的资源池,可以将资源池pg数量设置为64
2.1.7、添加RBD集群存储
【登录web管理界面】:
【id】:标识、名称,可以任意填,不要重复即可
【资源池】;ceph可用的资源池,这里我的资源池名字叫vnm-dis
【内容】:存储的数据类型
【使用Proxmox VE管理的超融合ceph池】:需要勾上,表示使用pve节点上的ceph集群,不勾选,则使用外部的ceph集群
添加即可
2.2、NFS共享存储
NFS共享存储适合用来存储集群中的iso镜像文件,保证各节点共享同一份iso文件,减少数据的冗余
2.2.1、NFS服务器搭建
2.2.2、创建NFS存储
【登录web界面】:
【id】:标识、名称。唯一即可
【服务器】:NFS服务地址
【Export】:共享目录的路径
【内容】:存储数据的类型,一般存储iso镜像,容器模板,备份文件等
添加即可
2.3、目录
以节点上的某个目录作为存储,各节点上的数据不共享,不适合集群使用
pve默认会创建一个local目录为所有节点存储iso镜像文件,容器模板、vzdump备份文件。目录路径默认为/var/lib/vz。