proxmox+ceph集群安装笔记

1、创建3台vmware虚拟机
cpu:2x2 4核 开虚拟化
内存:2G
硬盘1:20G,系统盘
硬盘2:200G,ceph存储盘
网络:桥接模式
IP:10.8.20.11/12/13
主机名:pve1.abc.com/pve2.abc.com/pve3.abc.com


2、在pve1虚拟机上安装proxmox,安装在20g的硬盘上,默认安装即可


3、系统配置

1)更改为国内源
安装vim
apt update
apt install vim -y

安装阿里云的源
cd /etc/apt
vi sources.list.d/pve-enterprise.list
修改为
deb http://download.proxmox.wiki/debian/pve buster pve-no-subscription

vi 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
init 6

2)去除web管理平台的订阅提示
sed -i "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

最后再执行:systemctl restart pveproxy

3)不使用lvm-thin,将local也就是根分区扩展
pve默认安装时,会建立local和local-lvm 大小分别为4.61G(根分区的lvm,存放iso)和8G(存放虚拟机)
下面要把8g的删除,合并到4.61g

就是要把逻辑卷data删除,逻辑卷root扩展

修改pve的存储配置
vi /etc/pve/storage.cfg
修改成:
dir: local
path /var/lib/vz
content rootdir,iso,vztmpl,backup

(删除lvm-thin段)

删除data所在的lv
lvremove /dev/pve/data(pve是卷组名 data是逻辑卷名)

查看卷组信息
vgs
VG #PV #LV #SN Attr VSize VFree
pve 1 2 0 wz--n- <19.50g 12.37g
还剩下12.37g

扩展root逻辑卷
lvextend -L +12.37G /dev/pve/root
resize2fs /dev/pve/root

到web管理页面上查看可以看到只剩下一个local,大小为16.79g。

4)登录web管理页面修改主机名与ip地址的对应(这步可以不做)
pve1->系统->主机,添加以下2行
10.8.20.12 pve2.abc.com pve2
10.8.20.13 pve3.abc.com pve3

以上就安装配置好了pve1的主机。

在pve2和pve3上重复以上操作即可。


4、建立pve集群
pve1上执行:
pvecm create pve-cluster(pve-cluster是集群名)

pve2、pve3执行:
pvecm add 10.8.20.11

在pve1上查看集群状态
pvecm status
pvecm nodes


5、建立ceph存储集群(存放虚拟机镜像,另外iso的存储使用nfs)

1)安装ceph(所有节点上面均执行)
pveceph install (后面不加版本号是安装最新的nautilus版)
出现以下字样表示安装成功
installed ceph nautilus successfully

2)建立ceph集群网络,为了简便,这里和管理网络共用(所有节点上面均执行)
pveceph init -network 10.8.20.0/24

3)创建ceph集群存储Mon监控(所有节点上面均执行)
pveceph createmon

4)创建ceph集群存储OSD服务(所有节点上面均执行)
pveceph createosd /dev/sdb

5)创建集群存储资源池
ceph osd pool create pve-pool 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

6)登录pve1的web管理页面,添加RBD集群存储
数据中心->存储->添加->选择RBD
ID:填写为pve-ceph
资源池:pve-pool
Monitor:10.8.20.11 10.8.20.12 10.8.20.13 (注意添加多个Mon以空格隔开)
添加节点:pve1,pve2,pve3

添加好后,查看rbd集群存储配置信息
cat /etc/pve/storage.cfg
dir: local
path /var/lib/vz
content vztmpl,images,backup,iso,rootdir

rbd: pve-ceph
content rootdir,images
krbd 1
nodes pve3,pve2,pve1
pool pve-pool

7)检查相关密钥是否存在
cd /etc/pve/priv
看有没有ceph目录,没有的话就创建,并复制密钥进来
mkdir ceph
cp /etc/ceph/ceph.client.admin.keyring /etc/pve/priv/ceph/ceph.keyring
一般来说是存在的:
root@pve1:/etc/pve/priv# cd ceph
root@pve1:/etc/pve/priv/ceph# ls
pvecluster-ceph.keyring

8)赋予应用相关权限
ceph osd pool application enable pve-pool rgw rbd

9)安装ceph Dashboard
pve1上执行
apt install ceph-mgr-dashboard
ceph mgr module enable dashboard
ceph dashboard create-self-signed-cert
ceph dashboard ac-user-create admin admin123 administrator(admin是用户名,admin123是密码,administrator是指定该用户是管理员)
systemctl restart ceph-mgr@pve1.service
访问https://10.8.20.11:8443,使用用户名admin密码admin123登录即可

至此,ceph安装完成

6、安装nfs服务器,提供iso存储
安装一台centos服务器,启用nfs服务
假设nfs的输出目录是这台centos上的/data/nfs目录
yum install rpcbind nfs-utils -y
vi /etc/exports
加入:
/data/nfs 10.8.20.0/24(rw,sync,no_root_squash)

启动nfs服务

systemctl enable rpcbind nfs-server

systemctl start rpcbind nfs-server(centos7)

查看共享目录
exportfs
激活配置
exportfs -rav

最后在pve集群上添加nfs存储

pve1web管理页面:数据中心->存储->添加->选择nfs

添加好后可以上传iso文件,会存放在centos服务器的/data/nfs/template/iso目录下

7、安装虚拟机测试集群,虚拟机硬盘选择存放在pve-ceph存储下才可以使用迁移和HA功能

我的技术博客:秋天的回忆