Ceph基础命令总结
Ceph基础命令总结
命令总结
参考:https://blog.51cto.com/michaelkang/1698287
# 集群 ###################################################################
ceph -s # 查看ceph集群状态
ceph df # 查看存储空间使用情况
# monitor ################################################################
ceph mon stat # 查看 monitor状态
ceph mon dump # 查看mon的映射信息
ceph quorum_status -f json-pretty # 查看 mon 的法定人数状态
# osd ###################################################################
ceph osd tree # 查看osd列表
ceph osd perf # 查看数据延迟
ceph osd df # 列出集群每块磁盘的使用情况,包括大小、权重、使用多少空间、使用率等等
ceph osd down 0 # down掉一个osd硬盘
ceph osd rm 0 # 在集群中删除一个osd硬盘
ceph osd reweight 3 0.5 或 ceph osd crush reweight osd.1 1.0 # 设置osd的权重
ceph osd out osd.3: # 把一个osd节点逐出集群
ceph osd in osd.3 # 把逐出的osd加入集群
# pool ##################################################################
ceph osd lspools # 列出osd存储池
ceph osd pool ls # 列出osd存储池
rados df # 查看存储池统计信息
ceph osd pool create {pool-name} {pg-num} {pgp-num} # 创建osd存储池
ceph osd pool set-quota {pool-name} [max_objects {objects-counts}] [max_bytes {bytes}]#osd存储池配额
ceph osd pool mksnap {pool-name} {snap-name} # 创建pool 存储池快照
rados lssnap -p {poolname} # 查看pool 存储池快照
ceph osd pool rmsnap {pool-name} {snap-name} # 删除pool 存储池快照
# mds ####################################################################
ceph mds add_data_pool <poolname> # 创建mds存储池
mds cluster_down # 关闭mds集群
mds cluster_up # 启动mds集群
ceph mds set max_file_size 1024000000000 # 设置cephfs文件系统存储方式最大单个文件尺寸
ceph fs rm <fsname> --yes-i-really-mean-it # 删除mds文件系统
# auth ####################################################################
ceph auth ls # 查看ceph集群中的认证用户及相关的key
ceph auth get-or-create client.admin mds 'allow' osd 'allow *' mon 'allow *' > /etc/ceph/ceph.client.admin.keyring # 为ceph创建一个admin用户并为admin用户创建一个密钥,把密钥保存到/etc/ceph目录下
ceph auth get-or-create client.kube mon 'allow r' osd 'allow class-read object_prefix rbd_children,allow rwx pool=mypool' # 创建用户
ceph auth get-or-create osd.0 mon 'allow rwx' osd 'allow *' -o /var/lib/ceph/osd/ceph-0/keyring # 为osd.0创建一个用户并创建一个key
ceph auth get-or-create mds.nc3 mon 'allow rwx' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mds/ceph-cs1/keyring # 为mds.nc3创建一个用户并创建一个key
ceph auth import /var/lib/ceph/mds/ceph-cs1/keyring # 导入key信息
ceph auth del osd.0 # 删除集群中的一个认证用户
# rbd #########################################################################
rbd create -p test --size 10000 kjh # 在test池中创建一个命名为kjh的10000M的镜像
rbd ls -p <poolname> # 查看指定pool的所有镜像
rbd info -p <poolname> <imagename> # 查看指定池的指定image信息
rbd rm -p <poolname> <imagename> # 删除指定pool的指定image
rbd resize -p <poolname> --size 20000 <imagename> # 调整一个镜像的尺寸
rbd snap create <poolname>/<imagename>@snapname # 创建快照
rbd snap ls <poolname>/<imagename> # 查看快照
rbd snap rollback <poolname>/<imagename>@<snapname> # 回滚快照
rbd snap rm <poolname>/<imagename>@<snapname> # 删除快照
报(rbd: snapshot 'snapshot-xxxx' is protected from removal.)写保护 ,使用 rbd snap unprotect volumes/snapshot-xxx 解锁,然后再删除
rbd export <poolname>/<imagename> /tmp/xxx.img # 导出镜像
rbd import /tmp/xxx.img <poolname>/<imagename> --image-format 2 # 导入镜像
# rados #######################################################################
rados lspools 同 ceph osd pool ls # 查看ceph集群中有多少个pool
rados mkpool <poolname> # 创建一个pool
rados create <objectname> -p <poolname> # 创建一个对象object
rados -p <poolname> ls # 查看对象文件
rados rm <objectname> -p <poolname> # 删除一个对象
rados rmpool <poolname> <poolname> –yes-i-really-really-mean-it # 删除foo池 (和它所有的数据)
rados ls -p <poolname> | more # 查看ceph pool中的ceph object (这里的object是以块形式存储的)
rados -p <poolname> mksnap <snapname> # 为poolname 创建快照
rados -p <poolname> lssnap # 列出指定池的快照
rados -p <poolname> rmsnap <snapname> # 删除快照
###使用rados 进行性能测试########################################################
rados bench 600 write rand -t 100 -b 4K -p datapool
选项解释:
测试时间 :600
支持测试类型:write/read ,加rand就是随机,不加就是顺序
并发数( -t选项):100
pool的名字是:datapool
一、集群
查看ceph集群状态
[root@ceph-1 ceph]# ceph -s
cluster:
id: 746cd5aa-feb3-4676-9203-783792f72da3
health: HEALTH_WARN
application not enabled on 1 pool(s)
services:
mon: 3 daemons, quorum ceph-1,ceph-2,ceph-3
mgr: ceph-2(active), standbys: ceph-3, ceph-1
osd: 4 osds: 3 up, 3 in
rgw: 1 daemon active
data:
pools: 5 pools, 40 pgs
objects: 273 objects, 141MiB
usage: 3.41GiB used, 11.6GiB / 15.0GiB avail
pgs: 40 active+clean
查看存储空间使用情况
[root@ceph-1 ceph]# ceph df
GLOBAL:
SIZE AVAIL RAW USED %RAW USED
15.0GiB 11.6GiB 3.41GiB 22.77
POOLS:
NAME ID USED %USED MAX AVAIL OBJECTS
.rgw.root 1 1.09KiB 0 3.61GiB 4
default.rgw.control 2 0B 0 3.61GiB 8
default.rgw.meta 3 0B 0 3.61GiB 0
default.rgw.log 4 0B 0 3.61GiB 207
mypool 8 141MiB 3.67 3.61GiB 54
二、monitor
查看 monitor状态
[root@ceph-1 ceph]# ceph mon stat
e3: 3 mons at {ceph-1=192.168.1.50:6789/0,ceph-2=192.168.1.51:6789/0,ceph-3=192.168.1.52:6789/0}, election epoch 74, leader 0 ceph-1, quorum 0,1,2 ceph-1,ceph-2,ceph-3
查看mon的映射信息
[root@ceph-1 ceph]# ceph mon dump
dumped monmap epoch 3
epoch 3
fsid 746cd5aa-feb3-4676-9203-783792f72da3
last_changed 2020-04-10 00:32:27.725764
created 2020-04-09 03:28:02.213868
0: 192.168.1.50:6789/0 mon.ceph-1
1: 192.168.1.51:6789/0 mon.ceph-2
2: 192.168.1.52:6789/0 mon.ceph-3
查看 mon 的法定人数状态
[root@ceph-1 ceph]# ceph quorum_status -f json-pretty
{
"election_epoch": 74,
"quorum": [
0,
1,
2
],
"quorum_names": [
"ceph-1",
"ceph-2",
"ceph-3"
],
"quorum_leader_name": "ceph-1",
"monmap": {
"epoch": 3,
"fsid": "746cd5aa-feb3-4676-9203-783792f72da3",
"modified": "2020-04-10 00:32:27.725764",
"created": "2020-04-09 03:28:02.213868",
"features": {
"persistent": [
"kraken",
"luminous"
],
"optional": []
},
"mons": [
{
"rank": 0,
"name": "ceph-1",
"addr": "192.168.1.50:6789/0",
"public_addr": "192.168.1.50:6789/0"
},
{
"rank": 1,
"name": "ceph-2",
"addr": "192.168.1.51:6789/0",
"public_addr": "192.168.1.51:6789/0"
},
{
"rank": 2,
"name": "ceph-3",
"addr": "192.168.1.52:6789/0",
"public_addr": "192.168.1.52:6789/0"
}
]
}
}
三、Pool
列出存储池
[root@ceph-1 ceph]# ceph osd lspools
1 .rgw.root,2 default.rgw.control,3 default.rgw.meta,4 default.rgw.log,8 mypool,
[root@ceph-1 ceph]# ceph osd pool ls
.rgw.root
default.rgw.control
default.rgw.meta
default.rgw.log
mypool
查看存储池统计信息
[root@ceph-1 ceph]# rados df
POOL_NAME USED OBJECTS CLONES COPIES MISSING_ON_PRIMARY UNFOUND DEGRADED RD_OPS RD WR_OPS WR
.rgw.root 1.09KiB 4 0 12 0 0 0 27 18KiB 4 4KiB
default.rgw.control 0B 8 0 24 0 0 0 0 0B 0 0B
default.rgw.log 0B 207 0 621 0 0 0 56639 55.1MiB 37700 0B
default.rgw.meta 0B 0 0 0 0 0 0 0 0B 0 0B
mypool 141MiB 54 0 162 0 0 0 696 2.57MiB 95 130MiB
total_objects 273
total_used 3.41GiB
total_avail 11.6GiB
total_space 15.0GiB
创建存储池
[root@ceph-1 ceph]# ceph osd pool create {pool-name} {pg-num} [{pgp-num}] [replicated] [crush-ruleset-name] [expected-num-objects]
[root@ceph-1 ceph]# ceph osd pool create {pool-name} {pg-num} {pgp-num} erasure [erasure-code-profile] [crush-ruleset-name] [expected_num_objects]
参数含义:
● {pool-name} :存储池名称,必须唯一。
● {pg_num} : 存储池的 PG 数目。
● {pgp_num} : 存储池的 PGP 数目,此值应该和 PG 数目相等。
● {replicated | erasure} :存储池类型,可以是副本池(保存多份对象副本,以便从丢失的 OSD 恢复)或纠删池(获得类似 RAID5 的功能)。多副本存储池需更多原始存储空间,但已实现所有 Ceph 操作;纠删存储池所需原始存储空间较少,但目前仅实现了部分 Ceph 操作。● [crush-ruleset-name] :此存储池所用的 CRUSH 规则集名字。指定的规则集必须存在。对于多副本( replicated )存储池来说,其默认规则集由 osd pool default crush replicated ruleset 配置决定,此规则集必须存在。 对于用 erasure-code 编码的纠删码( erasure )存储池来说,不同的 {pool-name} 所使用的默认( default )纠删码配置是不同的,如果它不存在的话,会显式地创建它。
● [erasure-code-profile=profile] :仅用于纠删存储池。指定纠删码配置文件,此配置必须已由 osd erasure-code-profile set 定义。
● [expected-num-objects] :为这个存储池预估的对象数。设置此值(要同时把 filestore merge threshold 设置为负数)后,在创建存储池时就会拆分PG 文件夹,以免运行时拆分文件夹导致延时增大。
存储池配额
存储池配额可设置最大字节数、和/或每个存储池最大对象数。
ceph osd pool set-quota {pool-name} [max_objects {objects-counts}] [max_bytes {bytes}]
如:
ceph osd pool set-quota data max_objects 10000
# 取消配额,设置为 0 即可
创建pool 存储池快照
ceph osd pool mksnap {pool-name} {snap-name}
查看pool 存储池快照
rados lssnap -p {poolname}
删除pool 存储池快照
ceph osd pool rmsnap {pool-name} {snap-name}