Rook Ceph浅谈

问题解决

1)查看mon的日志
2)osd有问题的话

ceph osd tree
ceph auth get osd.1 # 查看 OSD 的认证密钥
ceph auth del osd.1 # 删除旧的 OSD 认证实体

完事等一会儿应该就行了,这次用的rook-ceph 版本是1.11.3的,而且让ceph自己找盘的

下面的不知是否有用
#如果 OSD 已经不再使用,确保它从集群中被移除:
ceph osd out osd.1
ceph osd crush remove osd.1
ceph osd rm osd.1

部署rook-ceph

 git clone --single-branch --branch v1.9.2 https://github.com/rook/rook.git

Network

1、osd的三个 ip 分别是
容器组ip,也就是pod ip
与 Client & monitors 对话
与其他 OSD 通信
The Ceph monitors only need access to the public network. The OSDs needs access to both public and cluster networks.

Rook framework

博文源地址
在这里插入图片描述
最下层 Kubelet :即 Rook 的组件是运行与 Kubelet 组件之上,以 Pod 的形式存在于 k8s 集群中;

中间层次 :这一层是逻辑实现层,运行在 k8s 集群中的 Ceph 存储节点上,包括 Ceph Daemons 、 Rook-discover 、 Ceph CSI Driver 这三种组件。Ceph Daemons 包括 Ceph 的 OSD 、 Mon 、 MGR 等组件, Rook-discover 用于存储节点上的磁盘设备发现,而 Ceph CSI Driver 组件是 k8s 存储卷管理的插件;

管理层 :即 Rook Operator for Ceph , Operator 是基于 Kubernetes 的资源和控制器概念之上构建,借助自定义的 CRD (自定义资源)来实现创建、配置和管理 Ceph ;

最上层 Client Pods:即存储资源的消费层, Client Pods 调用 Ceph CSI Driver 来实现持久化存储卷的添加 / 挂载等操作。

在这里插入图片描述
MON 采用主备模式( leader/follower ),即使系统中有多个 MON 角色,实际工作的也只有一个 MON ,其它 MON 都处于 standby 状态,当 Ceph 失去了 Leader MON 后,其它 MON 会基于 PaxOS 算法,投票选出新的 Leader

osd 依托于 bluestore 来管理裸设备,并在 bluestore 的基础上创建 bluefs, 再依托于 bulefs 构建 rocksdb

mgr

在Rook-Ceph中,mgr代表管理器(Manager)。mgr是一个运行在Ceph集群中的守护进程,负责监控Ceph集群的状态和性能,并提供集群管理和监控功能。

mgr可以通过REST API和命令行工具提供以下功能:

集群状态和性能监控:mgr可以提供有关Ceph集群中各种组件的实时信息,例如存储池,OSD和PG的状态,I/O操作和网络流量的性能指标等。

集群配置和管理:mgr可以管理Ceph集群的配置,例如存储池,网络配置和安全设置。管理员可以使用mgr通过REST API或命令行工具来创建,修改或删除这些配置。

群集监控:mgr可以提供有关Ceph集群的健康状况的警报和通知,并跟踪群集事件并将它们记录下来。

Dashboard:mgr提供了一个Web界面,称为Ceph Dashboard,可以显示Ceph集群的实时状态,性能指标和配置信息。管理员可以使用Ceph Dashboard来监控和管理Ceph集群。

Cleanup

官网教程地址
注意 rm -rf /var/lib/rook 和 sgdisk --zap-all $DISK

# add the cleanupPolicy
kubectl -n rook-ceph patch cephcluster rook-ceph --type merge -p '{"spec":{"cleanupPolicy":{"confirmation":"yes-really-destroy-data"}}}'
kubectl -n rook-ceph delete cephcluster rook-ceph
kubectl delete -f operator.yaml
kubectl delete -f common.yaml
kubectl delete -f crds.yaml

删除集群所有机器的 /var/lib/rook 目录

问题

kubectl logs -f rook-ceph-osd-prepare-m1-llrkv -n rook-ceph
提示 cephosd: skipping device “sdd”: [“Has GPT headers”].
确定它是否是ssd

lsblk -d -o name,rota  
# 返回0代表是ssd
dnf -y install gdisk
DISK="/dev/sdX"

这些代码用于清洁磁盘以备重用。首先,使用sgdisk命令将磁盘清除为一个全新可用状态,这是非常重要的,因为MBR必须是干净的。然后,使用dd命令清除磁盘的开始部分,以去除可能存在的更多LVM元数据。对于SSD,可以使用blkdiscard命令来清理磁盘,而不是使用dd命令。最后,使用partprobe命令通知操作系统有关分区表更改。

sgdisk --zap-all $DISK
# Wipe a large portion of the beginning of the disk to remove more LVM metadata that may be present
# dd if=/dev/zero of="$DISK" bs=1M count=100 oflag=direct,dsync
blkdiscard $DISK
partprobe $DISK
# 下面这条命令用起来没啥用
# ls /dev/mapper/ceph-* | xargs -I% -- dmsetup remove %
rm -rf /dev/ceph-*
rm -rf /dev/mapper/ceph--*

Multus 双网络

vim ceph-cluster-nad.yaml

apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
  name: rook-cluster-nw
spec:
  config: '{
   
      "cniVersion": "0.3.0",
      "name": "cluster-nad",
      "type": "macvlan",
      "master": "eno2",
      "mode"
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值