活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 出海产品促销专区 NEW 爆款云主机低至2折,高性价比,不限新老速来抢购!
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      分布式容器云平台

      分布式容器云平台

        • 产品动态
        • 产品简介
        • 产品定义
        • 产品优势
        • 产品功能
        • 应用场景
        • 使用限制
        • 计费说明
        • 计费项及计费方式
        • 价格
        • 计费FAQ
        • 快速入门
        • 入门指引
        • 用户指南
        • 授权管理
        • 授权概述
        • 资源委托协议
        • 注册集群
        • 注册集群概述
        • 本地注册集群
        • 天翼云注册集群
        • 三方云注册集群
        • 单集群控制台
        • 其他类型注册集群控制台
        • 运维管理
        • Prometheus 监控
        • 容器舰队
        • 容器舰队概述
        • 创建容器舰队
        • 集群联邦
        • 集群联邦概述
        • 创建集群联邦
        • 平台服务
        • 权限配置
        • 权限配置概述
        • IAM 授权
        • RBAC 授权
        • 生态中心
        • 容器迁移
        • 容器迁移概述
        • 集群元数据备份与恢复
        • 跨集群跨地域容灾迁移
        • 应用迁移
        • 本地IDC集群->天翼云CCE
        • 三方云集群->天翼云CCE
        • 天翼云CCE同资源池迁移
        • 天翼云CCE跨资源池迁移
        • 孤岛集群->天翼云CCE
        • 最佳实践
        • 基于集群联邦进行多集群应用分发与管理
        • 使用集群联邦实现应用多活容灾
        • 打通注册集群与联邦实例之间的联通网络
        • Pod 水平自动伸缩
        • 分布式存储Ceph最佳实践
        • API参考
        • API使用说明
        • 常见问题
        • 注册集群
        • 集群联邦
        • 故障修复
        • 常见故障
        • 相关协议
        • 服务协议
        • 服务等级协议
          无相关产品

          本页目录

          帮助中心分布式容器云平台最佳实践分布式存储Ceph最佳实践
          分布式存储Ceph最佳实践
          更新时间 2025-06-19 15:41:48
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2025-06-19 15:41:48
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本节介绍了分布式存储Ceph最佳时间。

          简介

          Ceph在一个统一的系统中提供块、文件和对象存储。Ceph 高度可靠、易于管理且免费,提供了可扩展性——数以千计的客户端访问 PB 到 EB 的数据。

           

          一个 Ceph 存储集群至少需要一个 Ceph Monitor、Ceph Manager 和 Ceph OSD。

          Monitors(监视器)

          Ceph Monitor ( ceph-mon) 维护集群状态的映射,包括监视器映射、管理器映射、OSD 映射、MDS 映射和 CRUSH 映射。监视器还负责管理守护进程和客户端之间的身份验证。冗余和高可用性通常需要至少三个监视器。

          Managers(管理)

          Ceph Manager守护进程 ( ceph-mgr) 负责跟踪运行时指标和 Ceph 集群的当前状态,包括存储利用率、当前性能指标和系统负载。高可用性通常需要至少两个管理器。

          Ceph OSD(对象存储守护进程)

          一个Ceph OSD(ceph-osd)存储数据、处理数据复制、恢复、重新平衡,并通过检查其他 Ceph OSD 守护进程的心跳来向 Ceph 监视器和管理器提供一些监视信息。冗余和高可用性通常需要至少三个 Ceph OSD。

          MDS

          Ceph 元数据服务器(MDS ceph-mds) 代表Ceph 文件系统存储元数据(即 Ceph 块设备和 Ceph 对象存储不使用 MDS)。Ceph 元数据服务器允许 POSIX 文件系统用户执行基本命令(如 ls、find等),而不会给 Ceph 存储集群带来巨大负担

           

          Ceph 在 k8s 中用做共享存储还是非常方便的,所以接下来就详细讲解如何在 k8s 使用 ceph。

          部署Ceph集群

          部署rook operator

          Rook是一个开源的云原生存储编排工具,提供平台、框架和对各种存储解决方案的支持,以和云原生环境进行本地集成。

          Rook 利用扩展功能将其深度地集成到云原生环境中,并为调度、生命周期管理、资源管理、安全性、监控等提供了无缝的体验。Rook 目前支持 Ceph、NFS、Minio Object Store 和 CockroachDB。

          # 部署rook operator # cd rook/deploy/charts/rook-ceph/
          helm install --create-namespace --namespace rook-ceph rook-ceph .

          创建rook ceph集群

          # 创建rook ceph集群 # cd rook/deploy/examples
          kubectl apply -f cluster.yaml 
          
          # 镜像列表
          registry.k8s.io/sig-storage/csi-attacher:v4.8.1
          registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0
          registry.k8s.io/sig-storage/csi-provisioner:v5.2.0
          registry.k8s.io/sig-storage/csi-resizer:v1.13.2
          registry.k8s.io/sig-storage/csi-snapshotter: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
          rook-ceph   rook-ceph   /var/lib/rook     3          136m   Ready   Cluster created successfully   HEALTH_WARN              40a66dd6-69ed-4401-b97f-ef1edaae17b2

          部署rook ceph工具

          # cd rook/deploy/examples
          kubectl apply -f toolbox.yaml
          
          
          # 通过ceph-tool工具查看ceph集群状态,正常需要3个OSD(准备三个节点,每个节点至少有一块盘)
          kubectl exec -it `kubectl get pods -n rook-ceph|grep rook-ceph-tools|awk '{print $1}'` -n rook-ceph -- bash
          bash-5.1$ ceph -s
            cluster:
              id:     e7abf175-ad9c-420a-9205-1328f8097a75
              health: HEALTH_WARN
                      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

          块存储

          创建存储池、Storageclass和块存储PVC

          # 创建rbd pool和创建storageclass # cd rook/deploy/example/csi/rbd/
          ---
          apiVersion: ceph.rook.io/v1
          kind: CephBlockPool
          metadata:
            name: replicapool
            namespace: rook-ceph # namespace:cluster
          spec:
            failureDomain: host
            replicated:
              size: 3
          ---
          apiVersion: storage.k8s.io/v1
          kind: StorageClass
          metadata:
            name: rook-ceph-block
          provisioner: rook-ceph.rbd.csi.ceph.com # csi-provisioner-name
          parameters:
            clusterID: rook-ceph # namespace:cluster
            pool: replicapool
            imageFormat: "2"
            imageFeatures: layering
          
            csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner 连接ceph集群admin用户密码
            csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph # namespace:cluster
            csi.storage.k8s.io/controller-expand-secret-name: rook-csi-rbd-provisioner
            csi.storage.k8s.io/controller-expand-secret-namespace: rook-ceph # namespace:cluster
            csi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-node
            csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph # namespace:cluster
            csi.storage.k8s.io/fstype: ext4
          allowVolumeExpansion: true
          reclaimPolicy: Delete
          
          
          kubectl apply -f storageclass.yaml # 创建storageclass
          
          
          kubectl get CephBlockPool -A
          NAMESPACE   NAME          PHASE     TYPE         FAILUREDOMAIN   AGE
          rook-ceph   replicapool   Ready     Replicated   host            6m57s
          
          
          # 创建 pvc
          kubectl apply -f pvc.yaml
          ---
          apiVersion: v1
          kind: PersistentVolumeClaim
          metadata:
            name: rbd-pvc
          spec:
            accessModes:
              - ReadWriteOnce
            resources:
              requests:
                storage: 1Gi
            storageClassName: rook-ceph-block

          应用挂载块存储使用

          # pod挂载pvc
          ---
          apiVersion: v1
          kind: Pod
          metadata:
            name: csirbd-demo-pod
          spec:
            containers:
              - name: web-server
                image: registry-huadong1.crs-internal.ctyun.cn/open-source/nginx:1.25-alpine # nginx
                volumeMounts:
                  - name: mypvc
                    mountPath: /var/lib/www/html
            volumes:
              - name: mypvc
                persistentVolumeClaim:
                  claimName: rbd-pvc
                  readOnly: false
          
          
          # kubectl exec -it csirbd-demo-pod -- sh
          / # df -h /var/lib/www/html
          Filesystem                Size      Used Available Use% Mounted on
          /dev/rbd0               973.4M     24.0K    957.4M   0% /var/lib/www/html

          cephfs文件系统

          创建storageclass和文件系统

          # 创建storageclass # csi/cephfs/storageclass.yaml
          ---
          apiVersion: storage.k8s.io/v1
          kind: StorageClass
          metadata:
            name: rook-cephfs
          provisioner: rook-ceph.cephfs.csi.ceph.com # csi-provisioner-name
          parameters:
            clusterID: rook-ceph # namespace:cluster
            fsName: myfs
            pool: myfs-replicated
          
            csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisioner
            csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph # namespace:cluster
            csi.storage.k8s.io/controller-expand-secret-name: rook-csi-cephfs-provisioner
            csi.storage.k8s.io/controller-expand-secret-namespace: rook-ceph # namespace:cluster
            csi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-node
            csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph # namespace:cluster
          
          reclaimPolicy: Delete
          allowVolumeExpansion: true
          mountOptions:
            # uncomment the following line for debugging
            #- debug
          
          
          # 创建文件系统 deploy/example/filesystem.yaml
          ---
          apiVersion: ceph.rook.io/v1
          kind: CephFilesystem
          metadata:
            name: myfs
            namespace: rook-ceph # namespace:cluster
          spec:
            # The metadata pool spec. Must use replication.
            metadataPool:
              replicated:
                size: 3
                requireSafeReplicaSize: true
              parameters:
                compression_mode:
                  none
            dataPools:
              - name: replicated
                failureDomain: host
                replicated:
                  size: 3
                  requireSafeReplicaSize: true
                parameters:
                  # Inline compression mode for the data pool
                  # Further reference: https://docs.ceph.com/docs/master/rados/configuration/bluestore-config-ref/#inline-compression
                  compression_mode:
                    none
            # Whether to preserve filesystem after CephFilesystem CRD deletion
            preserveFilesystemOnDelete: true
            # The metadata service (mds) configuration
            metadataServer:
              # The number of active MDS instances
              activeCount: 1
              activeStandby: true
              # The affinity rules to apply to the mds deployment
              placement:
                podAntiAffinity:
                  requiredDuringSchedulingIgnoredDuringExecution:
                    - labelSelector:
                        matchExpressions:
                          - key: app
                            operator: In
                            values:
                              - rook-ceph-mds
                      topologyKey: kubernetes.io/hostname
                  preferredDuringSchedulingIgnoredDuringExecution:
                    - weight: 100
                      podAffinityTerm:
                        labelSelector:
                          matchExpressions:
                            - key: app
                              operator: In
                              values:
                                - rook-ceph-mds
                        topologyKey: topology.kubernetes.io/zone
              priorityClassName: system-cluster-critical
              livenessProbe:
                disabled: false
              startupProbe:
                disabled: false
          
          
          ---
          # create default csi subvolume group
          apiVersion: ceph.rook.io/v1
          kind: CephFilesystemSubVolumeGroup
          metadata:
            name: myfs-csi # lets keep the svg crd name same as `filesystem name + csi` for the default csi svg
            namespace: rook-ceph # namespace:cluster
          spec:
            name: csi
            filesystemName: myfs
            pinning:
              distributed: 1 # distributed=<0, 1> (disabled=0)
          
          
          kubectl get CephFileSystem -A
          NAMESPACE   NAME   ACTIVEMDS   AGE   PHASE
          rook-ceph   myfs   1           2m10s   Ready
          
          
          kubectl get CephFilesystemSubVolumeGroup -A
          NAMESPACE   NAME       PHASE         FILESYSTEM   QUOTA   AGE
          rook-ceph   myfs-csi   Ready         myfs                 2m13s

          创建PVC并挂载使用cephfs

          # 创建pvc
          ---
          apiVersion: v1
          kind: PersistentVolumeClaim
          metadata:
            name: cephfs-pvc
            labels:
              group: snapshot-test
          spec:
            accessModes:
              - ReadWriteOnce
            resources:
              requests:
                storage: 1Gi
            storageClassName: rook-cephfs
          
          
          
          # pod挂载pvc
          ---
          apiVersion: v1
          kind: Pod
          metadata:
            name: csicephfs-demo-pod
          spec:
            containers:
              - name: web-server
                image: registry-huadong1.crs-internal.ctyun.cn/open-source/nginx:1.25-alpine # nginx
                volumeMounts:
                  - name: mypvc
                    mountPath: /var/lib/www/html
            volumes:
              - name: mypvc
                persistentVolumeClaim:
                  claimName: cephfs-pvc
                  readOnly: false
          
          
          # 查看挂载情况
          # kubectl exec -it csicephfs-demo-pod -- sh
          / # df -h /var/lib/www/html
          Filesystem                Size      Used Available Use% Mounted on
          10.96.36.10:6789,10.96.102.212:6789,10.96.135.99:6789:/volumes/csi/csi-vol-ffa040c1-c81b-44ba-87d0-a7cd8bfc0055/66004596-55c9-4315-81aa-d7c094ce93f1
                                    1.0G         0      1.0G   0% /var/lib/www/html
          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  Pod 水平自动伸缩
          下一篇 :  API参考
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明