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}
posted @ 2020-03-11 16:33  zh_Revival  阅读(1633)  评论(0编辑  收藏  举报