pve搭建ceph集群

发布时间 2023-08-30 16:51:30作者: whtjyt

文章参考

https://zhuanlan.zhihu.com/p/617024637

http://www.taodudu.cc/news/show-4270751.html?action=onClick

pve 版本 8.0.2

配置建议:机器最好是8C16G以上的配置

硬盘最好有三块,一块用作pve的系统盘,一块用作ceph的数据盘(大SSD),一块用作ceph的数据数磁盘和WAL磁盘(小SSD)

两个网卡,一个用于pve管理,一个用于ceph通信
image

1、机器配置

机器ip(单ip) cpu/内存 硬盘1(系统盘) 硬盘2(ceph盘)
172.17.68.160 16C32G 100G 100G
172.17.68.161 16C32G 100G 100G
172.17.68.162 16C32G 100G 100G

2、修改源

root@wht-pve01:~# cat > /etc/apt/sources.list <<EOF
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
EOF

#修改ceph源
root@wht-pve01:~# rm -rf /etc/apt/sources.list.d/*
root@wht-pve01:~# cat > /etc/apt/sources.list.d/ceph.list <<EOF
deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription
EOF

root@wht-pve01:~# cat > /etc/apt/sources.list.d/pve-no-subscription.list <<EOF
deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/pve bookworm pve-no-subscription
EOF

#更新源
root@wht-pve01:~# apt clean
root@wht-pve01:~# apt update 
root@wht-pve01:~# apt upgrade

3、安装时间同步服务器

apt install chrony
systemctl start --now chronyd
#编辑/etc/chrony/chrony.conf,将pool修改为
root@wht-pve03:~# cat /etc/chrony/chrony.conf |grep ^pool
pool ntp1.aliyun.com iburst
#重启
systemctl restart chronyd
systemctl status chronyd
#修改时间为24小时制
date
echo 'LANG=zh_CN.UTF-8' > /etc/default/locale
source /etc/default/locale
date

4、pve集群搭建

1、创建集群

image

image

2、加入集群

在上一步的页面上执行

image

image

登入要加入上述集群的pve管理页面

image

粘贴上面复制的信息,等待即可,可在160机器上查看节点加入详情

image

三台机器都加入集群后页面如下

image

5、安装ceph集群

1、安装ceph

在三台主机上均执行apt install ceph (在页面执行时源总是不对,无法安装成功)

apt install ceph

返回页面
image

选择网络地址,然后下一步-->完成

image

2、配置monitor(监听)

image

3、磁盘分区

#查看磁盘
root@wht-pve03:~# lsblk 
NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                  8:0    0  100G  0 disk 
├─sda1               8:1    0 1007K  0 part 
├─sda2               8:2    0  512M  0 part 
└─sda3               8:3    0 99.5G  0 part 
  ├─pve-swap       253:0    0    8G  0 lvm  [SWAP]
  ├─pve-root       253:1    0 34.9G  0 lvm  /
  ├─pve-data_tmeta 253:2    0    1G  0 lvm  
  │ └─pve-data     253:4    0 42.2G  0 lvm  
  └─pve-data_tdata 253:3    0 42.2G  0 lvm  
    └─pve-data     253:4    0 42.2G  0 lvm  
sdb                  8:16   0  100G  0 disk 
sr0                 11:0    1  1.1G  0 rom

#磁盘分区
root@wht-pve02:~# fdisk /dev/sdb 

Welcome to fdisk (util-linux 2.38.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS (MBR) disklabel with disk identifier 0x1e80a315.

Command (m for help): n		#这里输入n开始划分磁盘,后面一路回车
......
Command (m for help): w		#这里输入w写入

#格式话磁盘
root@wht-pve02:~# mkfs.xfs /dev/sdb1 
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=6553536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=26214144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none
#清理分区
root@wht-pve02:~# wipefs -af /dev/sdb1

4、创建OSD

下面步骤三台pve都执行一次

image

在三台pve上均执行创建OSD,选择刚擦除的/dev/sdb1

DB Disk和WAL Disk中的数据都属于临时数据。

  • 磁盘(Data Disk):磁盘存储实际的对象数据,也就是Ceph集群中存储的文件、块或对象等数据。这些数据会在Ceph存储集群中分布和复制,提供高可靠性和冗余性。
  • 数据库磁盘(DB Disk):数据库磁盘存储Ceph集群的元数据。这些元数据包括对象位置、映射、快照和其他关键信息。数据库磁盘帮助Ceph系统快速定位和访问存储的对象。
  • WAL磁盘(WAL Disk):WAL磁盘存储Ceph对象的Write-Ahead Log(预写日志)。预写日志是对象写入期间的临时存储区域,用于记录对象的变更日志。这种方式可以提供更好的数据一致性和可靠性,同时也提高写入性能。
  • DB Disk和WAL Disk一般大小可以在几百兆字节(MB)到几个千兆字节(GB)之间,较大的WAL Disk可以处理更多的写入并提供更好的性能,特别是在高负载的情况下。

我这里由于只有一块磁盘,都选择了默认设置

image

6、创建rule

找一个pve机器,ssh登录,执行

root@wht-pve01:~# ceph osd crush rule create-replicated hdd_rule default host hdd

7、创建资源池

root@wht-pve01:~# ceph osd pool create hdd_data hdd_rule

8、创建cephFS

这里点击创建后依次选择三个节点

image

创建cephFS,使用默认配置即可

image

9、创建RBD

”数据中心“ — ”存储“ — ”添加“ — ”RBD“。

如果存在则不需要创建

image

如果存储池未激活,可使用如下命令激活

ceph osd pool application enable hdd_data cephfs

取消激活

ceph osd pool application disable hdd_data cephfs --yes-i-really-mean-it

10、创建资源池

数据中心-权限-资源池-创建(名称+备注)

image

创建之后左边会出现标签,点击成员,添加-存储- 加入对应的Ceph pool
image

6、上传iso镜像

image

等待几分钟,会同步到其他节点的cephfs上

image

7、创建虚拟机

image

选择上一步创建的资源池

image

使用ceph的备份文件位置在/mnt/pve/cephfs/dump/下