文章目录
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集群,并指定业务管理网段
E2、添加成员节点(经测试pve6和pve7可以混合添加)
点击“加入集群”,“复制信息”
分别在另外 三台 服务器上,点击“加入集群”,输入"对端密码",选择"集群网络"就是规划的业务管理网络,点击“加入LT-CEPH"集群
注意:当出现加入无法加入集群的时候,您需要检测下,/etc/hosts文件内容是否正确,集群信息是根据这个信息来生成的,比如您可以把内网的地址,写在hosts文件里面
F、pve 节点安装ceph存储套件
若是考虑用命令行安装指定版本(好像不会自动初始化,要手动,当然解决这个也很容易,最好还是面板安装吧),若是不指定版本,默认pacific(ceph16)
pveceph install --version=quincy #可用版本<octopus | pacific | quincy>
F1、安装ceph套件(默认装最新版,pve宣称为17版本是稳定版)
F2、初始化集群网络
G、清除非系统盘的数据,保证磁盘是可用状态
G1、方式一:pve 面板进行 "擦除磁盘"
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信息
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
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论