本文介绍如何创建一个ProxmoxVE集群,并使用内部集成的Ceph作为存储

集群包含5台主机,其中3台安装ceph作为存储节点,为剩下作为计算节点2台提供存储。

这里,5台主机均位于同一个集群中。

本文使用到的软件版本:

VMware-Workstation 15.5

pve(proxmox VE)6.0.1

ceph:ceph nautilus 最新版

ssh连接工具:xshell 6

1环境配置

我们需要建立如下包含5台pve主机的集群:

存储节点:

pve-store1:cpu 4核 内存2g 硬盘20g+500g 桥接网络 IP地址 10.8.20.241

pve-store2: cpu 4核 内存2g 硬盘20g+500g 桥接网络 IP地址 10.8.20.242

pve-store3 :cpu 4核 内存2g 硬盘20g+500g 桥接网络 IP地址 10.8.20.243

计算节点:

pve-compute1 :cpu 4核 内存4g 硬盘20g 桥接网络 IP地址 10.8.20.244

pve-compute2 :cpu 4核 内存4g 硬盘20g 桥接网络 IP地址 10.8.20.245

2、存储节点的安装配置

先建立存储节点,并以 pve-store1为mgr建立pve集群

(1)建立虚拟机

cpu记得开虚拟化

搭建ProxmoxVE+Ceph集群(图文版)_第1张图片

虚拟机属性


(2)安装pve

搭建ProxmoxVE+Ceph集群(图文版)_第2张图片

系统安装在20g的硬盘上面

搭建ProxmoxVE+Ceph集群(图文版)_第3张图片

安装摘要


(3)配置pve

使用xshell6连接刚安装好的这台主机,执行下面的任务:

安装vim

apt update
apt install vim -y

安装阿里云的源

cd /etc/apt
vim sources.list.d/pve-enterprise.list

修改为
deb http://download.proxmox.wiki/debian/pve buster pve-no-subscription

cd /etc/apt/
vim 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

去除webui的订阅提示

sed -i "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

重启系统

init 6

按照上述方法安装 pve-store2、pve-store3 ,再继续进行下面的操作


(4)建立pve集群

登录pve-store1(https://10.8.20.241:8006)的web管理平台,建立名为pve-cluster的集群,并将另外2台主机加进来。具体方法可以参考本博客的第一篇文章中的相关内容。

搭建ProxmoxVE+Ceph集群(图文版)_第4张图片

建立好的pve集群


(5)建立ceph集群

1、在 pve-store1、pve-store2、pve-store3上都执行以下命令安装ceph

pveceph install (不带版本号安装的是最新的nautilus版)

稍等片刻,提示如下则表示安装成功

ceph安装成功

注意:计算节点不需要安装ceph。

2、建立ceph集群网络,3个存储节点上面均执行

pveceph init -network 10.8.20.0/24

3、 创建ceph集群存储Mon监控, 3个存储节点上面均执行

pveceph createmon

创建监视器mon

Ceph Monitor:由该英文名字可以知道它是一个监视器,负责监视Ceph集群,维护Ceph集群的健康状态,同时维护着Ceph集群中的各种Map图,比如OSD Map、Monitor Map、PG Map和CRUSH Map,这些Map统称为Cluster Map,Cluster Map是RADOS的关键数据结构,管理集群中的所有成员、关系、属性等信息以及数据的分发,比如当用户需要存储数据到Ceph集群时,OSD需要先通过Monitor获取最新的Map图,然后根据Map图和object id等计算出数据最终存储的位置。

4、 创建ceph集群存储OSD服务, 3个存储节点上面均执行,事先为3个存储节点添加了一块200G的新硬盘。

pveceph createosd /dev/sdb

创建osd

Ceph OSD:OSD的英文全称是Object Storage Device,它的主要功能是存储数据、复制数据、平衡数据、恢复数据等,与其它OSD间进行心跳检查等,并将一些变化情况上报给Ceph Monitor。一般情况下一块硬盘对应一个OSD,由OSD来对硬盘存储进行管理,当然一个分区也可以成为一个OSD。

5、 创建集群存储资源池,将上面3个OSD结合在一起对外提供存储服务

只在作为mgr的pve-store1上面执行

ceph osd pool create pve-pool 128 128

其中的128(pg_num)的设置:
少于 5 个 OSD 时,可把 pg_num 设置为 128
OSD 数量在 5 到 10 个时,可把 pg_num 设置为 512
OSD 数量在 10 到 50 个时,可把 pg_num 设置为 4096

创建存储池pve-pool


6、创建RBD块设备存储

RBD块存储是ceph提供的3种存储类型中使用最广泛,最稳定的存储类型。RBD块类似于磁盘,可以挂载到物理机或虚拟机中。这里是挂载到pve主机上,作为pve主机的存储(共享存储)。

登录pve-store1的web管理页面,依次打开:数据中心->存储->添加->选择RBD

搭建ProxmoxVE+Ceph集群(图文版)_第5张图片

打开添加RBD对话框

ID:填写为pve-rbd RBD设备的id

资源池:pve-pool,所属的资源池

Monitor: pve-store1 pve-store2 pve-store3,监视器

节点:暂时添加pve-store1, pve-store2, pve-store3,表示集群中哪些主机可以使用该块设备。

内容:存放的内容,选择磁盘镜像和容器,这样ceph就可以存放虚拟机的镜像和下载的LXC容器了。

搭建ProxmoxVE+Ceph集群(图文版)_第6张图片

添加后,可以看到集群主机下会增加一个存储

搭建ProxmoxVE+Ceph集群(图文版)_第7张图片

rbd块设备存储


可以查看整个ceph的状态信息

搭建ProxmoxVE+Ceph集群(图文版)_第8张图片

ceph集群状态


(6)ceph的相关操作

1、赋予应用相关权限

在pve-store1上执行

ceph osd pool application enable pve-pool rgw rbd

2、查看ceph有哪些存储池

ceph osd lspools

3、查看ceph的空间大小及可用大小

ceph df

搭建ProxmoxVE+Ceph集群(图文版)_第9张图片

可以看到目前3块500G硬盘组成的ceph存储集群,最大可用空间为473G≈500G。

4、查看ceph的副本数

ceph osd pool get pve-pool size

默认情况下是3,即存放在ceph集群中的数据会有3个副本,所以整个ceph集群的可用空间大约是(500*3(osd数目))/3(副本数)=500G(里面的算法很复杂,所以要少于500G,这里实际上是473G)

ceph副本数


设置新的副本数为2

ceph osd pool set pve-pool size 2

设置过后,可能需要很长时间的配置,ceph集群才会自动恢复正常。不是必要请不要进行该操作。

5、 为集群安装ceph Dashboard

在pve-store1上执行

apt install ceph-mgr-dashboard -y
ceph mgr module enable dashboard
ceph dashboard create-self-signed-cert
ceph dashboard ac-user-create admin admin123 administrator
(其中 admin是用户名 admin123是密码 administrator指定用户是管理员
systemctl restart [email protected]

访问https://10.8.20.241:8443,使用用户名admin密码admin123登录即可。

搭建ProxmoxVE+Ceph集群(图文版)_第10张图片

ceph Dashboard登录界面


搭建ProxmoxVE+Ceph集群(图文版)_第11张图片

ceph Dashboard主界面


搭建ProxmoxVE+Ceph集群(图文版)_第12张图片

ceph Dashboard -Hosts(主机)


搭建ProxmoxVE+Ceph集群(图文版)_第13张图片

ceph Dashboard -存储池,可以看到有3个副本


搭建ProxmoxVE+Ceph集群(图文版)_第14张图片

编辑存储池,增加另外2个应用


总之,使用这个Dashboard,可以单独管理ceph(其实一般不用)。


3、计算节点的安装配置

建立虚拟机

虚拟机名称:pve-compute1

cpu:4核,开虚拟化

内存:4g

硬盘:20g

网络:桥接模式

搭建ProxmoxVE+Ceph集群(图文版)_第15张图片

计算节点虚拟机配置


然后安装和配置pve,设置其主机名为: pve-compute1,ip地址设置为:10.8.20.244/24,然后更改为国内源,最后更新系统。

搭建ProxmoxVE+Ceph集群(图文版)_第16张图片

更新系统成功


将这台主机加入到上面的集群中

点击pve-store1的web管理平台中数据中心→集群→上面的加入信息按钮,拷贝加入信息

搭建ProxmoxVE+Ceph集群(图文版)_第17张图片

集群的加入信息


打开pve-compute1的web管理平台,点击数据中心→集群→上面的加入集群按钮,在对话框中粘贴集群加入信息,输入 pve-store1 的root密码加入集群

搭建ProxmoxVE+Ceph集群(图文版)_第18张图片

加入集群


在pve-store1的web管理平台中可以看到新加入的主机

搭建ProxmoxVE+Ceph集群(图文版)_第19张图片


在pve-store1上,选择数据中心→存储→pve-rbd,再点击上面的编辑按钮

搭建ProxmoxVE+Ceph集群(图文版)_第20张图片

在节点处仅保留pve-compute1这台主机

搭建ProxmoxVE+Ceph集群(图文版)_第21张图片

修改好之后,在左边就可以在pve-compute1节点下面多出了一个存储

搭建ProxmoxVE+Ceph集群(图文版)_第22张图片

说明计算节点 pve-compute1可以使用ceph存储了。

用同样的方法创建第二个计算节点 pve-compute2,并按照上面的方法zaipve-brd的节点那加入这台主机

搭建ProxmoxVE+Ceph集群(图文版)_第23张图片

最后在 pve-compute1 或者 pve-compute2 上面创建、安装虚拟机测试集群,记得虚拟机的磁盘要使用pve-rbd这个存储。