分布式存储Ceph最佳实践 部署rook operator Rook是一个开源的云原生存储编排工具,提供平台、框架和对各种存储解决方案的支持,以和云原生环境进行本地集成。 Rook 利用扩展功能将其深度地集成到云原生环境中,并为调度、生命周期管理、资源管理、安全性、监控等提供了无缝的体验。Rook 目前支持 Ceph、NFS、Minio Object Store 和 CockroachDB。 plaintext 部署rook operator cd rook/deploy/charts/rookceph/ helm install createnamespace namespace rookceph rookceph . 创建rook ceph集群 plaintext 创建rook ceph集群 cd rook/deploy/examples kubectl apply f cluster.yaml 镜像列表 registry.k8s.io/sigstorage/csiattacher:v4.8.1 registry.k8s.io/sigstorage/csinodedriverregistrar:v2.13.0 registry.k8s.io/sigstorage/csiprovisioner:v5.2.0 registry.k8s.io/sigstorage/csiresizer:v1.13.2 registry.k8s.io/sigstorage/csisnapshotter:v8.2.1 quay.io/ceph/ceph:v19.2.2 quay.io/cephcsi/cephcsi:v3.14.0 rook/ceph:v1.17.2 kubectl get cephcluster A NAMESPACE NAME DATADIRHOSTPATH MONCOUNT AGE PHASE MESSAGE HEALTH EXTERNAL FSID rookceph rookceph /var/lib/rook 3 136m Ready Cluster created successfully HEALTHWARN 40a66dd669ed4401b97fef1edaae17b2 部署rook ceph工具 plaintext cd rook/deploy/examples kubectl apply f toolbox.yaml 通过cephtool工具查看ceph集群状态,正常需要3个OSD(准备三个节点,每个节点至少有一块盘) kubectl exec it kubectl get pods n rookcephgrep rookcephtoolsawk '{print $1}' n rookceph bash bash5.1$ ceph s cluster: id: e7abf175ad9c420a92051328f8097a75 health: HEALTHWARN mon b is low on available space services: mon: 3 daemons, quorum a,b,c (age 12h) mgr: a(active, since 12h), standbys: b mds: 1/1 daemons up, 1 hot standby osd: 3 osds: 3 up (since 12h), 3 in (since 13h) data: volumes: 1/1 healthy pools: 4 pools, 81 pgs objects: 34 objects, 639 KiB usage: 203 MiB used, 120 GiB / 120 GiB avail pgs: 81 active+clean io: client: 1.2 KiB/s rd, 2 op/s rd, 0 op/s wr OSD 可用存储设备满足条件: 设备必须没有分区。 设备不得具有任何 LVM 状态。 不得安装设备。 该设备不得包含文件系统。 该设备不得包含 Ceph BlueStore OSD。 设备必须大于 5 GB。 使用Ceph