飞行的蜗牛

vuePress-theme-reco 极客学长    2013 - 2025
飞行的蜗牛 飞行的蜗牛

Choose mode

  • dark
  • auto
  • light
首页
分类
  • 技术杂谈
  • Database
  • Docker
  • PHP
  • 随笔杂谈
  • 前端开发
  • FunnyTools
  • Jekyll
  • 读书笔记
  • Java
  • SpringBoot
  • 区块链技术
  • IPFS
  • C/C++
  • Filecoin
  • Golang
  • Sharding-JDBC
  • 分布式存储
  • Lotus-源码系列
  • Lotus
  • 框架源码系列
  • Spring-源码系列
  • AI
  • ChatGPT
  • Stable Diffusion
  • DeepSeek-R1
  • DeepSeek-V3
标签
时间抽
关于作者
开源项目
GeekAI (opens new window)
author-avatar

极客学长

154

文章

151

标签

首页
分类
  • 技术杂谈
  • Database
  • Docker
  • PHP
  • 随笔杂谈
  • 前端开发
  • FunnyTools
  • Jekyll
  • 读书笔记
  • Java
  • SpringBoot
  • 区块链技术
  • IPFS
  • C/C++
  • Filecoin
  • Golang
  • Sharding-JDBC
  • 分布式存储
  • Lotus-源码系列
  • Lotus
  • 框架源码系列
  • Spring-源码系列
  • AI
  • ChatGPT
  • Stable Diffusion
  • DeepSeek-R1
  • DeepSeek-V3
标签
时间抽
关于作者
开源项目
GeekAI (opens new window)
  • Ceph-07 Ceph 运维常用指令

    • 环境说明
      • 集群操作
        • MON 操作
          • OSD 操作
            • MDS 操作
              • 存储池操作
                • PG 操作

                Ceph-07 Ceph 运维常用指令

                vuePress-theme-reco 极客学长    2013 - 2025

                Ceph-07 Ceph 运维常用指令


                极客学长 2020-05-12 0 Ceph

                神啊,
                请赐予我宁静,好让我能接受,我无法改变的事情;
                请赐予我勇气,好让我能改变,我能去改变的事情;
                请赐予我睿智,好让我能区别,以上这两者的区别。

                本文总结一些 Ceph 的常用运维命令

                # 环境说明

                • 操作系统: Ubuntu 18.04 LTS
                • Ceph 版本: 12.2.12 Luminous (stable)
                • 节点架构: 1 mon(ceph1), 1 mgr(ceph1), 1 mds(ceph1), 3 osd(ceph1, ceph2, ceph3)

                # 集群操作

                (1) 启动集群

                # 启动 mon 服务
                sudo service ceph-mon@ceph1 start
                # 启动 mgr 服务 
                sudo service ceph-mgr@ceph1 start
                # 启动指定的 OSD 服务
                sudo service ceph-osd@0 start 
                # 启动所有的 OSD 服务
                sudo service ceph-osd@* start
                # 启动 MDS 服务
                sudo service ceph-mds@ceph1 start
                

                (2) 查看 ceph 的实时运行状态

                ceph -w
                  cluster:
                    id:     0862c251-2970-4329-b171-53a77d52b2d4
                    health: HEALTH_OK
                 
                  services:
                    mon: 1 daemons, quorum ceph1
                    mgr: ceph1(active)
                    osd: 6 osds: 6 up, 6 in
                 
                  data:
                    pools:   2 pools, 128 pgs
                    objects: 5 objects, 198B
                    usage:   6.11GiB used, 53.3GiB / 59.4GiB avail
                    pgs:     128 active+clean
                
                

                (3) 查看ceph存储空间

                ceph df
                GLOBAL:
                    SIZE        AVAIL       RAW USED     %RAW USED 
                    59.4GiB     53.3GiB      6.11GiB         10.29 
                POOLS:
                    NAME       ID     USED     %USED     MAX AVAIL     OBJECTS 
                    rbd        1      198B         0       25.2GiB           5 
                    ecpool     2        0B         0       33.6GiB           0 
                

                (4) 卸载某个节点所有的 ceph 数据包

                ceph-deploy purge node1 # 删除所有软件和数据
                ceph-deploy purgedata node1 # 只删除数据
                

                (5) 为ceph创建一个 admin 用户并为 admin 用户创建一个密钥,把密钥保存到 /etc/ceph 目录下

                ceph auth get-or-create client.admin mds 'allow *' osd 'allow *' mon 'allow *' mgr 'allow *' \
                -o /etc/ceph/ceph.client.admin.keyring
                

                (6) 为 osd.0 创建一个用户并创建一个key

                ceph auth get-or-create osd.0 mon 'allow profile osd' osd 'allow *' mgr 'allow profile osd' \
                		-o /var/lib/ceph/osd/ceph-0/keyring
                

                (7) 为 mds.node1 创建一个用户并创建一个key

                ceph auth get-or-create mds.ceph1 mon 'allow profile mds' osd 'allow rwx' mds 'allow *' \
                		 -o /var/lib/ceph/mds/ceph-node1/keyring
                

                (8) 查看 ceph 集群中的认证用户及相关的 key

                ceph auth list
                

                (9) 查看集群的详细配置

                ceph daemon mon.ceph1 config show | more
                

                (10) 查看集群健康状态细节

                ceph health detail
                HEALTH_OK # 如果有故障或者警告的话,这里会输出很多。
                

                # MON 操作

                (1) 查看 MON 的状态信息

                ceph mon stat
                e1: 1 mons at {ceph1=172.31.5.182:6789/0}, election epoch 57, leader 0 ceph1, quorum 0 ceph1
                

                (2) 查看 MON 的选举状态

                ceph quorum_status
                
                {"election_epoch":57,"quorum":[0],"quorum_names":["ceph1"],"quorum_leader_name":"ceph1","monmap":{"epoch":1,"fsid":"0862c251-2970-4329-b171-53a77d52b2d4","modified":"2020-05-07 02:16:50.749480","created":"2020-05-07 02:16:50.749480","features":{"persistent":["kraken","luminous"],"optional":[]},"mons":[{"rank":0,"name":"ceph1","addr":"172.31.5.182:6789/0","public_addr":"172.31.5.182:6789/0"}]}}
                

                (3) 查看 MON 的映射信息

                ceph mon dump
                
                dumped monmap epoch 1
                epoch 1
                fsid 0862c251-2970-4329-b171-53a77d52b2d4
                last_changed 2020-05-07 02:16:50.749480
                created 2020-05-07 02:16:50.749480
                0: 172.31.5.182:6789/0 mon.ceph1
                

                (4) 删除一个 MON 节点

                ceph mon remove ceph1
                # 如果是部署节点,也可以使用 ceph-deploy 删除 
                ceph-deploy mon remove ceph1
                

                (5) 获得一个正在运行的 mon map,并保存在指定的文件中

                ceph mon getmap -o mon.txt
                
                got monmap epoch 1
                

                (6) 查看上面获得的 map

                monmaptool --print mon.txt
                
                monmaptool: monmap file mon.txt
                epoch 1
                fsid 0862c251-2970-4329-b171-53a77d52b2d4
                last_changed 2020-05-07 02:16:50.749480
                created 2020-05-07 02:16:50.749480
                0: 172.31.5.182:6789/0 mon.ceph1
                

                这其实跟 ceph mon dump 输出的结果是一样的

                (7) 把上面的mon map注入新加入的节点

                ceph-mon -i ceph1 --inject-monmap mon.txt
                

                (8) 查看 MON 的 amin socket

                ceph-conf --name mon.ceph1 --show-config-value admin_socket
                
                /var/run/ceph/ceph-mon.ceph1.asok
                

                (9) 查看 MON 的详细状态

                ceph daemon mon.ceph1 mon_status
                

                # OSD 操作

                (1) 查看 ceph osd 运行状态

                ceph osd stat
                6 osds: 6 up, 6 in
                

                (2) 查看 osd 映射信息

                ceph osd dump
                

                (3) 查看 osd 的目录树

                ceph osd tree
                

                (4) 删除 OSD

                # 1. down 掉 OSD
                ceph osd down osd.0
                # 2. 踢出集群
                ceph osd out osd.0
                # 3. 移除 OSD 
                ceph osd rm osd.0
                # 4. 删除授权
                ceph auth rm osd.0
                # 5. 删除 crush map 
                ceph osd crush rm osd.0
                

                (5) 设置 OSD 最大个数

                # 获取 OSD 最大个数
                ceph osd getmaxosd
                # 设置 OSD 最大个数
                ceph osd setmaxosd 10 
                

                (6) 设置OSD crush 的权重

                ceph osd crush set 3 3.0 host=ceph2
                
                set item id 3 name 'osd.3' weight 3 at location {host=ceph2} to crush map
                

                (7) 查看集群中某个 osd 的配置参数

                ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show | less
                # 另一种方式
                ceph -n osd.0 --show-config |grep objectstore
                

                (8) 动态设置集群中 osd 的参数配置

                # 设置单个 osd
                ceph tell osd.0 injectargs "--osd_recovery_op_priority 63"
                # 设置所有的 osd
                ceph tell osd.* injectargs "--osd_recovery_op_priority 63"
                

                # MDS 操作

                (1) 查看 MDS 状态

                ceph mds stat
                

                (2) 查看 MDS 的映射信息

                ceph mds dump
                

                (3) 删除 MDS 节点

                # 删除第一个 MDS 节点
                ceph mds rm 0
                
                mds gid 0 dne
                

                # 存储池操作

                (1) 查看ceph集群中的pool数量

                ceph osd lspools
                

                (2) 创建存储池

                ceph osd pool create testpool 128 128 # 128 指 PG 数量
                

                (3) 为一个 ceph pool 配置配额

                ceph osd pool set-quota testpool max_objects 10000
                

                (4) 在集群中删除一个 pool

                首先要在 ceph.conf 文件中配置允许删除集群:

                mon_allow_pool_delete = true
                

                然后重启 MON 进程

                sudo service ceph-mon@ceph1 restart
                

                在删除存储池

                ceph osd pool delete testpool testpool  --yes-i-really-really-mean-it
                

                # PG 操作

                # 查看PG状态
                ceph pg stat
                # 查看pg组的映射信息
                ceph pg dump
                # 查看pg中stuck的状态 
                ceph pg dump_stuck unclean
                ceph pg dump_stuck inactive
                ceph pg dump_stuck stale
                
                # 获取 pg_num / pgp_num
                ceph osd pool get mytestpool pg_num
                ceph osd pool get mytestpool pgp_num
                
                # 设置 pg_num
                ceph osd pool set mytestpool pg_num 512
                ceph osd pool set mytestpool pgp_num 512
                
                # 恢复一个丢失的pg
                ceph pg {pg-id} mark_unfound_lost revert
                
                # 修复 pg 数据 
                ceph pg crush repair {pg_id}
                ceph pg repair {pg_id}
                # 显示非正常状态的pg 
                ceph pg dump_stuck inactive|unclean|stale
                

                本站博文如非注明转载则均属作者原创文章,引用或转载无需申请版权或者注明出处,如需联系作者请加微信: geekmaster01

                spring-boot-devtools ClassCastException Filecoin 二阶段测试(2) - AMD CPU 的胜利