ceph常用命令使用详细教程

1)添加新节点

ceph orch host add local-168-182-131
ceph orch host add local-168-182-132

#第一次部署新节点时直接用上边的命令即可:
#但是之后的节点新增有可能上述命令出错:
ceph orch host add local-168-182-131 192.168.182.133  #后边跟上对应的IP

# 查看节点
ceph orch host ls

2)使用 ceph 安装软件

### 1、部署监视器(monitor)
# ceph orch apply mon *<number-of-monitors>*
# 确保在此列表中包括第一台(引导)主机。
ceph orch apply mon local-168-182-130,local-168-182-131,local-168-182-132

### 2、部署 osd
# 查看
ceph orch device ls
# 开始部署
# 【第一种方式】告诉Ceph使用任何可用和未使用的存储设备:
ceph orch apply osd --all-available-devices

# 【第二种方式】或者使用下面命令指定使用的磁盘(推荐使用这种方式吧)
# ceph orch daemon add osd *<host>*:*<device-path>*
#例如:
#从特定主机上的特定设备创建OSD:
ceph orch daemon add osd local-168-182-130:/dev/sdb
ceph orch daemon add osd local-168-182-130:/dev/sdc

ceph orch daemon add osd local-168-182-131:/dev/sdb
ceph orch daemon add osd local-168-182-131:/dev/sdc

ceph orch daemon add osd local-168-182-132:/dev/sdb
ceph orch daemon add osd local-168-182-132:/dev/sdc

### 3、部署mds
# ceph orch apply mds *<fs-name>* --placement="*<num-daemons>* [*<host1>* ...]"
ceph orch apply mds myfs --placement="3 local-168-182-130 local-168-182-131 local-168-182-132"

### 4、部署RGW
# 为特定领域和区域部署一组radosgw守护程序:
# ceph orch apply rgw *<realm-name>* *<zone-name>* --placement="*<num-daemons>* [*<host1>* ...]"
ceph orch apply rgw myorg us-east-1 --placement="3 local-168-182-130 local-168-182-131 local-168-182-132"

###说明:
#myorg : 领域名  (realm-name)
#us-east-1: 区域名 (zone-name)myrgw

### 5、部署ceph-mgr
ceph orch apply mgr local-168-182-130,local-168-182-131,local-168-182-132

删除OSD节点

### 1.停止osd进程
ceph osd stop x  //(x 可以通过ceph osd ls 查看)
#停止osd的进程,这个是通知集群这个osd进程不在了,不提供服务了,因为本身没权重,就不会影响到整体的分布,也就没有迁移

### 2.将节点状态标记为out
ceph osd out osd.x
#停止到osd的进程,这个是通知集群这个osd不再映射数据了,不提供服务了,因为本身没权重,就不会影响到整体的分布,也就没有迁移

### 3. 从crush中移除节点
ceph osd crush remove osd.x
# 这个是从crush中删除,

### 4. 删除节点
ceph osd rm osd.x
# 这个是从集群里面删除这个节点的记录ls

### 5. 删除节点认证(不删除编号会占住)
ceph auth del osd.x
#这个是从认证当中去删除这个节点的信息

#【注意】
#比如卸载了node3的某osd,(osd.x 即: node:/dev/sdb),在node3上执行以下操作,可以后继续使用node3:/dev/sdb

#1. lvremove /dev/ceph-3f728c86-8002-47ab-b74a-d00f4cf0fdd2/osd-block-08c6dc02-85d1-4da2-8f71-5499c115cd3c  // dev 后的参数可以通过lsblk查看
#2. vgremove  ceph-3f728c86-8002-47ab-b74a-d00f4cf0fdd2

查看服务

# 其实可以通过docker ps查看,但是不太直观,所以既然有ceph命令,肯定是用ceph查看更为详细直观了。
ceph orch ps 
ceph orch ps --daemon-type alertmanager
ceph orch ps --daemon-type osd
# ceph orch ps --daemon-type [alertmanager|crash|grafana|mds|mgrmon|node-exporter|osd|prometheus|rgw]
图片[1]-ceph常用命令使用详细教程-不念博客

3)主机操作

1、列出主机

# ceph orch host ls [--format yaml] [--host-pattern <name>] [--label <label>] [--host-status <status>]
ceph orch host ls

2、添加主机

要将每个新主机添加到群集,请执行以下步骤:

  • 【1】在新主机的根用户的 authorized_keys 文件:
# ssh-copy-id -f -i /etc/ceph/ceph.pub root@*<new-host>*
ssh-copy-id -f -i /etc/ceph/ceph.pub root@192.168.182.133
  • 【2】告诉 Ceph 新节点是集群的一部分:
# ceph orch host add *<newhost>* [*<ip>*] [*<label1> ...*]
ceph orch host add local-168-182-130 192.168.182.130
# 最好显式提供主机 IP 地址。 如果 IP 是 未提供,则主机名将立即通过 将使用该 DNS 和该 IP。

还可以包含一个或多个标签以立即标记 新主机。

ceph orch host add local-168-182-130 192.168.182.130 --labels _admin

3、删除主机

删除所有守护程序后,可以安全地从集群中移除主机 从它。

  • 【1】要从主机中排出所有守护程序,请运行以下形式的命令:
# ceph orch host drain *<host>*
ceph orch host drain local-168-182-130

#将计划删除主机上的所有 osd。您可以通过以下方式检查 osd 删除进度:
ceph orch osd rm status

# 可以使用以下命令检查主机上是否没有守护程序:
# ceph orch ps <host>
ceph orch ps local-168-182-130
  • 【2】删除所有守护程序后,可以使用以下命令删除主机:
# ceph orch host rm <host>
ceph orch host rm local-168-182-130

如果主机处于脱机状态且无法恢复,仍可以通过以下方法将其从群集中移除:

# ceph orch host rm <host> --offline --force
ceph orch host rm local-168-182-130 --offline --force

4、主机标签

业务流程协调程序支持将标签分配给主机。标签 是自由形式的,本身和每个主机都没有特定的含义 可以有多个标签。它们可用于指定放置 的守护进程。

  • 【1】添加标签
# ceph orch host add my_hostname --labels=my_label1
ceph orch host add local-168-182-130 --labels=my_label1,my_label2

# 也可以,ceph orch host label add my_hostname my_label
ceph orch host label add local-168-182-130 my_label
  • 【2】删除标签
# ceph orch host label rm my_hostname my_label
ceph orch host label rm local-168-182-130 my_label

特殊主机标签

以下宿主标签对头孢具有特殊含义。 一切始于 _.

  • _no_schedule: 不要在此主机上调度或部署守护程序.

此标签可防止 cephadm 在此主机上部署守护程序。 如果它被添加到 已经包含 Ceph 守护进程的现有主机,将导致 cephadm 移动 其他位置的守护程序(OSD 除外,不会自动删除)。

  • _no_autotune_memory: 不自动调整此主机上的内存.

此标签将阻止守护程序内存被调整,即使 osd_memory_target_autotune 或为一个或多个守护程序启用类似选项 在该主机上。

  • _admin: 将 client.admin 和 ceph.conf 分发到此主机.

默认情况下,一个_admin标签应用于群集中的第一个主机(其中 引导程序最初是运行的),并且 client.admin 密钥设置为分发 到该主机通过 功能。 添加此标签 到其他主机通常会导致 CEPHADM 部署配置和密钥环文件 在 .从版本 16.2.10和 17.2.1 开始 添加到默认位置 Cephadm 还存储配置和密钥环 文件中的文件 目录。ceph orch client-keyring …/etc/ceph/etc/ceph//var/lib/ceph/<fsid>/config

4)维护模式

将主机置于维护模式和退出维护模式(停止主机上的所有 Ceph 守护进程):

# 进入维护模式
# ceph orch host maintenance enter <hostname> [--force]
ceph orch host maintenance enter local-168-182-130

# 退出维护模式
# ceph orch host maintenance exit <hostname>
ceph orch host maintenance exit local-168-182-130

5)查看服务状态

查看一个的状态 在 Ceph 集群中运行的服务中,执行以下操作:

# ceph orch ls [--service_type type] [--service_name name] [--export] [--format f] [--refresh]

# 查看所有服务
ceph orch ls
# 查看指定服务
ceph orch ls alertmanager
ceph orch ls  --service_name crash

6)查看守护进程状态

首先,打印业务流程协调程序已知的所有守护程序的列表:

# ceph orch ps [--hostname host] [--daemon_type type] [--service_name name] [--daemon_id id] [--format f] [--refresh]
ceph orch ps

# 然后查询特定服务实例的状态(mon、osd、mds、rgw)。 对于 OSD,ID 是数字 OSD ID。对于 MDS 服务,id 是文件 系统名称:
ceph orch ps --daemon_type osd --daemon_id 0

7)OSD 服务

1、列出设备

ceph-volume 按顺序不时扫描群集中的每个主机 确定存在哪些设备以及它们是否有资格 用作 OSD。

查看列表,运行以下命令:

# ceph orch device ls [--hostname=...] [--wide] [--refresh]
ceph orch device ls

# 使用 --wide 选项提供与设备相关的所有详细信息, 包括设备可能不符合用作 OSD 条件的任何原因。
ceph orch device ls --wide
图片[2]-ceph常用命令使用详细教程-不念博客

在上面的示例中,您可以看到名为“运行状况”、“标识”和“故障”的字段。 此信息通过与 libstoragemgmt.默认情况下, 此集成已禁用(因为 libstoragemgmt 可能不是 100% 与您的硬件兼容)。 要使 cephadm 包括这些字段, 启用CEPHADM的“增强设备扫描”选项,如下所示;

ceph config set mgr mgr/cephadm/device_enhanced_scan true

2、创建新的 OSD

有几种方法可以创建新的 OSD:

  • 【1】告诉 Ceph 使用任何可用和未使用的存储设备:
# 如果将新磁盘添加到群集,它们将自动用于 创建新的 OSD。
ceph orch apply osd --all-available-devices
  • 【2】从特定主机上的特定设备创建 OSD:
# ceph orch daemon add osd *<host>*:*<device-path>*
ceph orch daemon add osd local-168-182-133:/dev/sdb
ceph orch daemon add osd local-168-182-133:/dev/sdc

# 或者
# ceph orch daemon add osd host1:data_devices=/dev/sda,/dev/sdb,db_devices=/dev/sdc,osds_per_device=2
ceph orch daemon add osd local-168-182-133:data_devices=/dev/sdb,/dev/sdc

# 使用lvm
# ceph orch daemon add osd *<host>*:*<lvm-path>*
ceph orch daemon add osd host1:/dev/vg_osd/lvm_osd1701
  • 【3】试运行,不是真正的执行
# 这 --dry-run 标志使业务流程协调程序显示内容的预览 将在不实际创建 OSD 的情况下发生。

ceph orch apply osd --all-available-devices --dry-run

3、移除 OSD

从集群中删除 OSD 涉及两个步骤:

  • 从集群中撤出所有归置组 (PG)
  • 从集群中删除无 PG 的 OSD

以下命令执行这两个步骤:


# ceph orch osd rm <osd_id(s)> [--replace] [--force]
ceph orch osd rm 0

4、监控 OSD 删除的状态

ceph orch osd rm status

5、停止删除 OSD

# ceph orch osd rm stop <osd_id(s)>
ceph orch osd rm stop 4

6、激活现有 OSD

如果重新安装主机的操作系统,则需要激活现有的 OSD 再。对于此用例,cephadm 提供了一个包装器 激活 那 激活主机上的所有现有 OSD。

# ceph cephadm osd activate <host>...
ceph cephadm osd activate local-168-182-133

7、查看数据延迟

ceph osd perf 

8、详细列出集群每块磁盘的使用情况

ceph osd df 

8)pool相关操作

1、查看ceph集群中的pool数量

ceph osd lspools
#或者 
ceph osd pool ls

2、在ceph集群中创建一个pool

#这里的100指的是PG组:
ceph osd pool create rbdtest 100

9)PG 相关

PG =“放置组”。当集群中的数据,对象映射到编程器,被映射到这些PGS的OSD。

1、查看pg组的映射信息

ceph pg dump
# 或者
# ceph pg ls

2、查看一个PG的map

ceph pg map 7.1a

3、查看PG状态

ceph pg stat

4、显示一个集群中的所有的pg统计

ceph pg dump --format plain

这里只是列举了一些常用的操作命令,更多的命令可以查看帮助或者查看官方文档。

© 版权声明
THE END