首页 > 其他分享 >ceph运维操作

ceph运维操作

时间:2022-12-11 14:55:33浏览次数:73  
标签:set 运维 -- db ceph 操作 osd block

1. 官方文档

2. 基本命令

2.1 查看ceph使用状态

ceph df

2.2 指定mon查看状态

ceph -s --mon-host 192.168.88.10

2.3 指定配置文件查看状态

ceph -s -c /etc/ceph/ceph.conf 

2.4 配置文件

2.4.1 cephadm集群文件目录

ll /var/lib/ceph/

# 注意修改配置了重启相关容器

2.4.2 集群日志文件

ll /var/log/ceph

2.4.3 开启debug

docker exec -it ceph-3104ac28-72bc-11ed-85c7-8d65cf0dc0c6-mon-ceph01 bash

# 自定义配置值
vim /etc/ceph/ceph.conf
'''
[global]
debug ms = 0

[osd]
debug ms = 1

[osd.1]
debug.ms = 10

[osd.2]
debug ms = 10
'''

3. 获取集群信息

3.1 显示整个集群的数据库信息

ceph config dump

3.2 显示某个守护进程的配置

  • get值主要取决于 ceph config dump 输出中的 who 值
ceph config get mon

3.3 设置数据库

ceph config set mon.ceph01 debug_ms 5

3.4 显示ceph守护进程的详细信息

ceph config show osd.0

3.5 查看帮助

ceph config help mon_host

3.6 查看信息配置

ceph daemon osd.3 config help mon_host

ceph config help log_file -f json-pretty

3.7 临时修改选项值

  • 当前有此进程
ceph tell osd.1 config set debug_osd 30

ceph daemon mon.ceph01 config set debug_osd 30

3.8 查看当前节点所有选项值

ceph config show-with-defaults osd.0

4. ceph通用配置

4.1 mon

vim /etc/ceph/ceph.conf
[global]
        fsid = 3104ac28-72bc-11ed-85c7-8d65cf0dc0c6
        mon_host = [v2:192.168.88.10:3300/0,v1:192.168.88.10:6789/0] [v2:192.168.88.11:3300/0,v1:192.168.88.11:6789/0] [v2:192.168.88.12:3300/0,v1:192.168.88.12:6789/0]

4.2 osds

vim /etc/ceph/ceph.conf
# 定义osd日志大小
[global]
osd_journal_size = 10000

[osd.0]
host = [hostname] # manual deployments only

4.3 定义网络

  • 不需要重启整个集群
[global]
public network = {public-network/netmask}

# 建议是内部网络
cluster network = {cluster-network/netmask}

5. 认证配置

5.1 安全协议

  • 默认是配置好的,更改为None将没有认证功能,需要重启集群
[global]
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

5.2 证书导出

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

ceph auth get-or-create mgr.ceph01 mon 'allow profile mgr' mds 'allow *' osd 'allow *' -o mgr_keyring

ceph auth get-or-create osd.0 -o osd-4.keyring

ceph auth get-or-create mds.ceph01 mon 'allow rwx' osd 'allow *' mds 'allow *' mgr 'allow profile mds' -o mds.keyring

5.3 停用安全协议

  • 需要重启集群
[global]
auth_cluster_required = none
auth_service_required = none
auth_client_required = none

6. Bluestore

  • WAL设置适合SSD硬盘使用,主要预留日志,有一定程度提高ceph效率
  • DB存储内部的元数据
ceph-volume lvm prepare --bluestore --data <device>

ceph-volume lvm prepare --bluestore --data <device> --block.wal <wal-device> --block.db <db-device>
  • 范例
vgcreate ceph-block-0 /dev/sda
vgcreate ceph-block-1 /dev/sdb
vgcreate ceph-block-2 /dev/sdc
vgcreate ceph-block-3 /dev/sdd
  • 创建逻辑卷
lvcreate -l 100%FREE -n block-0 ceph-block-0
lvcreate -l 100%FREE -n block-1 ceph-block-1
lvcreate -l 100%FREE -n block-2 ceph-block-2
lvcreate -l 100%FREE -n block-3 ceph-block-3
  • 创建卷组(固态盘,给wal使用)
vgcreate ceph-db-0 /dev/sdx

lvcreate -L 50GB -n db-0 ceph-db-0
lvcreate -L 50GB -n db-0 ceph-db-0
lvcreate -L 50GB -n db-0 ceph-db-0
lvcreate -L 50GB -n db-0 ceph-db-0
  • 创建osd
ceph-volume lvm create --bluestore --data ceph-block-0/block-0 --block.db ceph-db-0/db-0

ceph-volume lvm create --bluestore --data ceph-block-0/block-1 --block.db ceph-db-0/db-1

ceph-volume lvm create --bluestore --data ceph-block-0/block-2 --block.db ceph-db-0/db-2

ceph-volume lvm create --bluestore --data ceph-block-0/block-3 --block.db ceph-db-0/db-3

7. ceph健康管理

7.1 关闭mon告警

ceph health detail

ceph config set mon mon_warn_on_insecure_global_id_reclaim_allowed false

7.2 启动osd

cephadm deploy --name osd.2  --fsid 3104ac28-72bc-11ed-85c7-8d65cf0dc0c6 --osd-fsid 3104ac28-72bc-11ed-85c7-8d65cf0dc0c6

7.3 移除osd

ceph osd crush rm osd.<id>
  • 范例
    • 注意对应id
# 停止osd
docker stop ceph-3104ac28-72bc-11ed-85c7-8d65cf0dc0c6-osd-2

# 踢出集群
ceph osd out 2

# 从CRUSH删除
ceph osd crush remove osd.2

# 删除osd集群密钥,从集群中移除该osd
ceph auth del osd.2
ceph osd rm 2

# 解除目录挂载(由于是容器化的,可以忽略),可以对磁盘进行格式化以及目录删除
cephadm ceph-volume lvm zap /dev/sdb --destroy

7.4 添加osd

ceph osd out osd.$N

while ! ceph osd safe-to-destroy osd.$N; do sleep 1m; done

ceph-volume lvm zap /path/to/device

ceph-volume lvm create --osd-id $N --data /path/to/device

7.5 设置osd阈值

ceph osd set-backfillfull-ratio <ratio>

ceph osd set-nearfull-ratio <ratio>

ceph osd set-full-ratio <ratio>
  • 可以查看默认比例
ceph osd dump | grep full_ratio

7.6 配置osd状态

full   群集被标记为已满,无法执行写入操作

pauserd,pausewr   暂停的读取或写入

noup   不允许启动OSD

nodown   OSD故障报告被忽略,因此监视器不会将OSD标记为关闭

noin   以前标记的OSD在开始时不会被标记

noout   在配置的间隔之后,不会自动标记出关闭的OSD

nobackfill,norecover,norebalance   恢复或数据重新平衡已暂停

noscrub,nodeep_scrub   已禁用清理

notieragent   缓存分层活动已挂起
  • 设置或移除
ceph osd set <flag>

ceph osd unset <flag>

7.7 详细osd信息

ceph df detail

7.8 存储池限额

# 最大对象数
ceph osd pool set-quota <poolname> max_objects <num-objects>

ceph osd pool set-quota <poolname> max_bytes <num-bytes>

7.9 修复osd

ceph-bluestore-tool repair --path /var/lib/ceph/3104ac28-72bc-11ed-85c7-8d65cf0dc0c6/osd.2/ceph_fsid 

7.10 关闭bluestore告警

ceph config set global bluestore_warn_on_legacy_statfs false

7.11 pool缓存最大配置

# 目标最大缓存字节
ceph osd pool set <cache-pool-name> target_max_bytes <bytes>

# 目标最大缓存字节数
ceph osd pool set <cache-pool-name> target_max_objects <bytes>

7.12 pg计算公式

Total PGs = (osds * 100) / pool size

7.13 pool的pg设置

ceph osd set <pool-name> pg_num <value>
  • 可以使用禁用此健康
ceph config set global mon_warn_on_pool_pg_num_not_power_of_two false

7.14 关闭pg数过多告警

  • 也是不允许集群自动调整pg数
ceph osd pool set <pool-name> pg_autoscale_mode off

7.15 允许集群自动调整pg数

ceph osd pool set <pool-name> pg_autoscale_mode on

7.16 初始化存储池

rbd pool init <poolname>

ceph osd pool application enable <poolname>

7.17 查看osd吞吐速率

docker exec -it ceph-3104ac28-72bc-11ed-85c7-8d65cf0dc0c6-mon-ceph01 bash

ceph daemon osd.5 ops

7.18 查看osd详细信息

ceph osd find osd.5

docker exec -it ceph-3104ac28-72bc-11ed-85c7-8d65cf0dc0c6-mon-ceph01 bash

ceph daemon osd.5 dump_historic_ops

7.19 关闭进程有异常的警告信息

ceph crash ls-new

# 设置开启
ceph config set mgr mgr/crash/warn_recent_interval 10

# 关闭
ceph config set mgr mgr/crash/warn_recent_interval 0

ceph config show mgr.ceph01.rrwcxs

标签:set,运维,--,db,ceph,操作,osd,block
From: https://www.cnblogs.com/wsxier/p/16973695.html

相关文章

  • 【Java】【LeetCode】字符串操作
    将空格替换成"%20"Stringa=s.replace("","%20");//注意replace不是直接在s上做修改,而是返回了一个字符串StringBuilderStringBuildersb=newStringBuilder("1234a......
  • c语言表达式求值和操作符属性
    一、表达式求值表达式求值顺序一部分是由操作符的优先级和结合性决定。同样,有些表达式的操作数在求值的过程中可能需要转化为其他类型1.隐式类型转换表达式中的字符和短整型......
  • 1827. 最少操作使数组递增 ----- 贪心算法
    给你一个整数数组 nums (下标从0开始)。每一次操作中,你可以选择数组中一个元素,并将它增加 1 。比方说,如果 nums=[1,2,3] ,你可以选择增加 nums[1] 得到 nums=......
  • 力扣每日一题2022.12.11---1827. 最少操作使数组递增
    给你一个整数数组 nums (下标从0开始)。每一次操作中,你可以选择数组中一个元素,并将它增加 1 。   比方说,如果 nums=[1,2,3] ,你可以选择增加 nums[1] 得到 n......
  • Linux笔记03: Linux常用命令_3.3文件操作命令
     3.3文件操作命令 3.3.1stat命令●命令名称:stat。●英文原意:displayfileorfilesystemstatus。●所在路径:/usr/bin/stat。●执行权限:所有......
  • 通过Hook拦截Windows 睡眠及休眠操作
    之前写过一篇通过Hook拦截Windows用户注销。现在尝试通过Hook拦截Windows睡眠及休眠操作,测试在Windows虚拟机中进行,而虚拟机中没有休眠按钮,只有睡眠操作,但是不管是睡眠......
  • 操作系统学习笔记-用户级线程和核心级线程
    (一)绪论1.多进程多进程并发结构,即将多个进程同时放在内存中启动执行,然后在这些进程之间来回切换交替执行,这样的结构可以让CPU的工作效率大幅提升,也提高了整个计算机硬......
  • 第 4 章 Git 分支操作 & 第 5 章 Git 团队协作机制
    第4章Git分支操作4.1什么是分支  在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开......
  • 第 6 章 GitHub 操作
    第6章GitHub操作GitHub网址:https://github.com/6.1创建远程仓库成功之后6.2远程仓库操作命令名称作用gitremote-v查看当前所有远程地址别......
  • 操作系统如何更新dns缓存?
    1、window环境:hosts文件位置:C:\windows\system32\drivers\etc刷新方式:win+r,输入CMD,回车在命令行执行:ipconfig/flushdns#清除DNS缓存内容。ps:ipconfig/displa......