pve方式标准化部署ceph集群

A、总体规划

A1、设备规划

主机名 业务管理网 存储网 硬盘
pve-ceph01 10.15.11.198/24 10.99.99.1/24 3SSD+4HDD
pve-ceph02 10.15.11.109/24 10.99.99.2/24 3SSD+4HDD
pve-ceph03 10.15.11.78/24 10.99.99.3/24 3SSD+4HDD
pve-ceph04 10.15.11.137/24 10.99.99.4/24 3SSD+4HDD

A2、pve7.3系统安装要求(系统分区-默认分区-FQDN不能一样)

A3、网卡起bond mode 4(lacp 802.3ad)

#交换机要起lacp

#下面是服务器网卡起bond mode=4
root@pve-ceph01:~# apt install ifenslave -y

root@pve-ceph01:/etc/network# cat interfaces
iface enp161s0f0np0 inet manual
iface enp161s0f1np1 inet manual

auto bond4
iface bond4 inet manual
        bond-slaves enp161s0f0np0 enp161s0f1np1
        bond-miimon 100
        bond-mode 4
        bond-lacp-rate 1
        address 10.99.99.1/24
        bond-xmit-hash-policy layer3+4
        #注意这里用的layer3+4  当只有两台机器iperf测试时 能够很明显的看到负载效果;你也可以用layer2 或者layer2+3

B、主机名配置(/etc/hosts文件非常关键)

1、设置主机名(主机名的记录文件 /etc/hostname)
        hostnamectl set-hostname pve-ceph01

2、检查并设置/etc/hosts文件(这个文件内容不对无法组件pve集群)
        cat /etc/hosts
10.15.11.198 pve-ceph01.localhost pve-ceph01

3、检查/etc/postfix/main.cf 这个文件(不重要,可以忽略,甚至可以卸载postfix)
        cat /etc/postfix/main.cf
myhostname=pve-ceph01.localhost

C、配置软件源+安装必要辅助软件

C1、国外服务器(无需更换软件源)

sed -i 's/^deb/#deb/g' /etc/apt/sources.list.d/pve-enterprise.list    #关闭企业订阅(不关闭会破坏环境)

#添加pve-no-subscription 源
cat >> /etc/apt/sources.list << EOF
deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription
EOF

apt update ; apt dist-upgrade -y
apt install net-tools sysstat -y        #包含了ifconfig 和netstat iostat工具命令,后期维护可能用得上

C2、国内服务器(使用中科大源)

sed -i 's/^deb/#deb/g' /etc/apt/sources.list.d/pve-enterprise.list        #关闭企业订阅
cat > /etc/apt/sources.list << EOF
deb https://mirrors.ustc.edu.cn/debian bullseye main contrib
deb https://mirrors.ustc.edu.cn/debian bullseye-updates main contrib
deb https://mirrors.ustc.edu.cn/debian-security bullseye-security main contrib
deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bullseye pve-no-subscription
EOF

sed -i.bak "s#http://download.proxmox.com/debian#https://mirrors.ustc.edu.cn/proxmox/debian#g" /usr/share/perl5/PVE/CLI/pveceph.pm     #中科大源,一定要修改这里,不然每次面板安装ceph时他会根据这里的配置生成 ceph.list 源文件

apt update ; apt dist-upgrade -y
apt install net-tools sysstat -y

# 若是使用其他的源,可能需要添加key
    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E84AC2C0460F3994

D、配置时区和时间同步(chrony和chronyd在pve7默认安装了,且是开机自启的)

题外话,经测试,仅仅需要mon角色的时间一致即可,这里的时间是unix时间一致,不区分时区问题(其他非mon的节点时间可以随便,但是这是非常不标准的,实际应该时区和时间全部一致才规范)

D1、时间同步服务端-即同步时间服务器配置

1、时区设置
    #timedatectl        #查看系统的当前的时区
    timedatectl set-timezone Asia/Shanghai    #如果当前时区不是亚洲/上海时区,可以用如下命令设置

2、用一台存储作为主时间服务器,给其他存储节点提供时间同步服务
    #apt install chrony chronyd -y

cat > /etc/chrony/chrony.conf << EOF
server ntp.aliyun.com iburst
server ntp.ntsc.ac.cn iburst
allow 0.0.0.0/0
local stratum 10
EOF

    #chrony就是chronyd的命令。对于pve而言只需要 systemctl enable chrony 就会自动创建 chronyd服务的systemd服务文件
    systemctl enable chrony; systemctl restart chrony; 

D2、时间同步客户端-(在其他存储节点上配置)

#其他存储节点只需安装客户端chrony即可
cat > /etc/chrony/chrony.conf << EOF
#server ntp.aliyun.com iburst
server 10.15.11.198 iburst
rtcsync
EOF

    #chrony就是chronyd的命令。对于pve而言只需要 systemctl enable chrony 就会自动创建 chronyd服务的systemd服务文件
    systemctl enable chrony; systemctl restart chrony; 

D3、客户端手动查看、校验、同步时间

chronyc tracking          #校准时间服务器
chronyc clients           #在服务器端,看有哪些客户端
chronyc sources -v        #查看时间同步源,验证时间是否同步
chronyc sourcestats -v    #查看时间同步源状态
chronyc -a makestep       #手动同步

hwclock --show          #查询当前硬件时间
hwclock --systohc       #用当前系统时间同步当前硬件时间

#附加timedatectl命令用法
    timedatectl                                #查看系统的当前的时区
    timedatectl set-timezone Asia/Shanghai     #如果当前时区不是亚洲/上海时区,可以用如下命令设置
    #ls -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    timedatectl set-ntp no                     #关闭ntp同步    (当您运行着chrony时,你要关闭ntp同步,那么你就可以修改本地时间)
    timedatectl set-time "2023-03-22 17:58:49" #设置本地时间
    timedatectl set-ntp yes                    #打开ntp同步    (当您运行着chrony时,你要打开ntp同步,那么你就不能修改本地时间)

    date -s "2023-03-22 09:32"        #修改时间

D4附、额外另一种时间同步systemd-timesyncd

安装
    root@pve-ceph01:~# apt install systemd-timesyncd

修改配置文件
    root@pve-ceph01:~# cat /etc/systemd/timesyncd.conf 
    [Time]
    NTP=123.123.123.123

重启服务
    systemctl restart systemd-timesyncd
    systemctl daemon-reload

E、创建pve集群并添加成员节点

E1、创建pve集群,并指定业务管理网段

file

E2、添加成员节点(经测试pve6和pve7可以混合添加)

点击“加入集群”,“复制信息”
file
分别在另外 三台 服务器上,点击“加入集群”,输入"对端密码",选择"集群网络"就是规划的业务管理网络,点击“加入LT-CEPH"集群
file
注意:当出现加入无法加入集群的时候,您需要检测下,/etc/hosts文件内容是否正确,集群信息是根据这个信息来生成的,比如您可以把内网的地址,写在hosts文件里面

F、pve 节点安装ceph存储套件

若是考虑用命令行安装指定版本(好像不会自动初始化,要手动,当然解决这个也很容易,最好还是面板安装吧),若是不指定版本,默认pacific(ceph16)
     pveceph install --version=quincy       #可用版本<octopus | pacific | quincy>

F1、安装ceph套件(默认装最新版,pve宣称为17版本是稳定版)

file
file

F2、初始化集群网络

file

G、清除非系统盘的数据,保证磁盘是可用状态

G1、方式一:pve 面板进行 "擦除磁盘"

file

G2、方式二:pve shell中 命令行进行 "擦除磁盘"(其实不用清理,因为后面创建osd时会自动清理)

#-a 是擦除全部,-f是强制擦除
#vgremove -f ceph-25f54b61-1aee-4a40-84dc-065c71873d0b    #若lvm残留,可直接删除vg(pvscan得到的),不用逐步lv,vg,pv
wipefs -af /dev/vdc
wipefs -af /dev/vdd
wipefs -af /dev/vde

#pve的擦除磁盘就是这个命令
dd if=/dev/zero of=/dev/vdb bs=1M conv=fdatasync count=200
dd if=/dev/zero of=/dev/vdc bs=1M conv=fdatasync count=200
dd if=/dev/zero of=/dev/vdd bs=1M conv=fdatasync count=200

G3、注意:面板无法清除时的解决办法

磁盘之前运行过ceph还有残留的话,面板是擦除不掉的,请先清除磁盘上的lvm信息
file

H、创建OSD

H1、没有日志盘的情况

pveceph osd create /dev/vdb
pveceph osd create /dev/vdc
pveceph osd create /dev/vdd --crush-device-class ssd        #创建时可以指定osd_class

H2、有日志盘的情况

pveceph osd create /dev/sdb -db_dev /dev/nvme0n1 -db_dev_size 286
pveceph osd create /dev/sdc -db_dev /dev/nvme0n1 -db_dev_size 286
pveceph osd create /dev/sdd -db_dev /dev/nvme0n1 -db_dev_size 286

pveceph osd create /dev/sdd -wal_dev /dev/nvme0n1 -wal_dev_size 286

I、创建MON和MGR

保证mon是大于3的奇数个,mgr就三个就可以了

J、部署完了要全部重启一次,模拟故障

参考文章一

K、附:pve如何销毁osd

1、先out对应osd
    ceph osd out 0    #out id为0的osd

2、再stop对应osd
    systemctl stop ceph-osd@0        #仅停止osd.0的进程
    #systemctl stop ceph-osd.target  #停止该host上所有的osd进程

3、再destroy对应的osd
    pveceph osd destroy 0 -cleanup
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/1083.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2023/5/15作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何? 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录