目录

集群状态

存储性能分析相关:

用户管理

dashboard相关

存储池相关:

mon相关:

mgr相关:

osd相关:

rgw相关

文件系统相关:

crushtool相关:

rados相关:

块相关:

回收站功能:

一致性组快照:

集群清理:

集群部署:

iscsi服务配置

iscsi客户端连接:


  • 集群状态

查看集群状态 ceph health detail

ceph -s

关闭自动重平衡 ceph osd set noout

恢复自动重平衡 ceph osd unset noout

查看集群策略 ceph osd crush rule ls

ceph osd crush rule dump replicated_rule

json格式输出 ceph -s -f json

查看配置 ceph config dump

查看mon集群状态 ceph mon dump

所有 Pool 的状态和所有 OSD 的状态 ceph osd dump

查看存储池信息 ceph osd pool ls detail

设置存储池应用类型 ceph osd pool application disable rbdpool cephfs

ceph osd pool application disable rbdpool cephfs --yes-i-really-mean-it

存储性能分析相关:

显示文件系统空闲空间 df -h

iostat命令识别I/O相关问题 iostat -x

诊断信息 dmesg | grep scsi 将dmesg与less、more、grep或tail联合使用,有助于更有效的获取有价值诊断信息。

检查网络统计 netstat -s

查看内存情况 free -h

看CPU使用情况 sar 1 3 或 sar -u 1 3

设置配置文件临时生效 ceph daemon mgr.terry-1 config set debug_mgr 0

查看mgr服务 ceph mgr services

"dashboard": "http://ceph1429:8080/"

config set mgr mgr/dashboard/server_addr ceph-node2

rados get gateway.conf gateway.conf -p rbd

rados put gateway.conf gateway.conf -p rbd

删除所有部署时创建的mon信息 monmaptool --rm server01 /var/lib/ceph/mon/monmap

  • 用户管理

创建bruce的用户 ceph auth get-or-create client.bruce mon 'allow r' mds 'allow r, allow rw path=/terry1' osd 'allow rw pool=datapool'

(这个用户只能访问目录/bruce,数据存储在 pool datapool1 中)

[client.bruce]

key = AQCtFc9g/CmyERAAzi7ORpEWIxlMiiFC1GK7nA==

删除bruce的用户 ceph auth del client.bruce

获取用户的key ceph auth get-key client.bruce

用户列表 ceph auth list

  • dashboard相关

设置NFS配置保存在存储池metapool中 ceph dashboard set-ganesha-clusters-rados-pool-namespace metapool

创建存储池 ceph osd pool create rbdpool 256 256

删除存储池 ceph osd pool delete rbdpool rbdpool --yes-i-really-really-mean-it

查看存储池 ceph osd pool ls

ceph osd pool ls detail

设置存储池副本数 ceph osd pool set default.rgw.log size 2

  • mon相关:

开启MON服务 systemctl start ceph-mon@terry-3

查看ceph-mon状态 ceph quorum_status --format json-pretty

  • mgr相关:

开启MGR服务 systemctl start ceph-mgr@terry-3

ceph service status

  • osd相关:

重启所有OSD systemctl restart ceph-osd@*

osd服务状态 systemctl status ceph-osd.target

down掉osd systemctl stop ceph-osd@56

查看pg信息 ceph pg dump

osd占用情况 ceph osd df

手动out osd ceph osd out 16

手动in osd ceph osd in 16

查看存储池对象列表 rados -p rbd ls

查看归置组 ceph osd map rbd rbd_data.1218c9a95f837.000000000000035c

  • rgw相关

重启网关 systemctl restart ceph-radosgw@rgw.server02.service

创建用户 radosgw-admin user create --uid="terry183-2" --display-name="zt"

授权用户,允许 terry183-2读写 users 信息 radosgw-admin caps add --uid=terry183-2 --caps="users=*"

允许 radosgw 读写所有的usage信息 radosgw-admin caps add --uid=terry183-2 --caps="usage=read,write"

创建子用户,做为后面 swift 客户端访问时使用 radosgw-admin subuser create --uid=terry183-2 --subuser=terry183-2:swift --access=full

创建子用户密钥 radosgw-admin key create --subuser=terry183-2:swift --key-type=swift --gen-secret

查看集群所有rgw用户 radosgw-admin metadata list user

查看某一用户桶列表 radosgw-admin bucket list --uid=terry1

查看桶对象列表 radosgw-admin bucket list --bucket=bkt1

查看用户已经消耗多少配额 radosgw-admin user stats --uid=admin

获取配额信息 radosgw-admin user info --uid=admin

查看全局配额 radosgw-admin global quota get

trim可以为所有用户和特定用户修剪使用日志,也可以指定修剪操作的日期范围:

radosgw-admin usage trim --start-date=2010-01-01 --end-date=2010-12-31

radosgw-admin usage trim --uid=johndoe

radosgw-admin usage trim --uid=johndoe --end-date=2013-12-31

  • 文件系统相关:

本地挂载NFS文件系统客户端 ceph-fuse /mnt/cephfs/

远程挂载文件系统 mount -t nfs 192.168.202.183:/terry5 /mnt/ceph

启用了 cephx 认证 mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs -o name=admin,secret=AQATSKdNGBnwLhAAnNDKnH65FmVKpXZJVasUeQ==

从文件读密码 mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs -o name=admin,secretfile=/etc/ceph/admin.secret

查看文件挂载 mount

卸载文件系统 umount /mnt/mycephfs

文件系统配额设置

首先挂载 ceph-fuse /mnt/cephfs/

设置文件夹大小限额100 MB setfattr -n ceph.quota.max_bytes -v 100000000 /mnt/cephfs/terry2

设置文件夹文件个数限额1000 setfattr -n ceph.quota.max_files -v 1000 /mnt/cephfs/terry2

getfattr -n ceph.quota.max_bytes /mnt/cephfs/terry2

getfattr -n ceph.quota.max_files /mnt/cephfs/terry2

setfattr -n ceph.quota.max_bytes -v 0 /mnt/cephfs/terry2

setfattr -n ceph.quota.max_files -v 0 /mnt/cephfs/terry2

查看cephfs 信息 ceph fs ls

文件系统状态 ceph fs status

删除mds文件系统 ceph fs rm dmfs --yes-i-really-mean-it

重启ganesha服务 systemctl restart nfs-ganesha

用户空间挂载 CEPH 文件系统

sudo mkdir -p /etc/ceph

sudo scp {user}@{server-machine}:/etc/ceph/ceph.conf /etc/ceph/ceph.conf

sudo scp {user}@{server-machine}:/etc/ceph/ceph.keyring /etc/ceph/ceph.keyring

sudo ceph-fuse -m 192.168.0.1:6789 /home/username/cephfs

 MDS 会话列表中客户端 ceph daemon mds.terry-1 session ls 或 ceph tell mds.terry-1 session ls

客户端加入黑名单 ceph osd blacklist add 172.16.79.251:0/3271

黑名单列表

ceph osd blacklist ls

驱逐客户端 ceph tell mds.server02 client evict id=2309084

恢复剔除的客户端 ceph osd blacklist rm 192.168.1.2:0/1285681097

把目录$dir 固定到MDS的rank值为$rankd上 setfattr -n ceph.dir.pin -v $rank $dir

  • crushtool相关:

获取当前crushmap以crushfile的二进制文件导出 ceph osd getcrushmap -o crushmap

将二进制文件转文本 crushtool -d crushmap -o real_crushmap

调整树状层次结构以及规则

compile 修改后的real_crushmap crushtool -c real_crushmap -o new_crushmap

将encode后的new_crushmap导入系统 ceph osd setcrushmap -i new_crushmap

测试文件导入后pg分布情况 crushtool -i c-d-crushfile --test --min-x 0 --max-x 10 --num-rep 2 --ruleset 0 --show_mappings

  • rados相关:

查询对应存储池对象 rados ls -p default.rgw.buckets.data (查看桶对象)

删除资源池 rados rmpool pool1 pool1 --yes-i-really-really-mean-it

清除资源池数据 rados purge pool1 --yes-i-really-really-mean-it

查看资源池信息 rados df -p pool1  -p参数是指定具体资源池,如果不加,则显示所有

列出资源池对象编号 rados ls -p poo1 同样指定列出pool1资源池对象,否则列出所有

修改资源池的用户编号 rados chown auid 即auid

获取对象内容get rados -p data get 10000006b70.00000005 test.txt 该命令需要指定资源池以及对象内容的输出文件,对象名称可以通过rados ls命令获取

将指定文件作为对象写入到资源池 put rados -p test_rep_pool put obj_name test.txt 将test.txt以obj_name为名称

指定具体的偏移量 rados -p test_rep_pool put obj_name test.txt --offset 1048576 从起始地址偏移1M

向指定对象追加内容append rados -p test_rep_pool append obj_name ceph-osd.16.log

删除指定长度对象内容truncate rados -p test_rep_pool truncate obj_name 524288 删除obj_name 对象512kb的容量

创建对象create rados -p test_rep_pool create obj_name2 这里是创建了一个空对象

显示对象信息,包括所在资源池。修改修改时间,大小 rados -p rbd stat gateway.conf

删除指定对象rm rados -p test_rep_pool rm obj_name2 加--force-full时强制删除一个对象,不在乎对象此时状态

拷贝对象cp rados -p test_rep_pool cp obj_name test_cp_obj

查看对象的属性 listxattr rados -p data listxattr obj_name

获取对象指定属性getxattr rados -p data getxattr obj_name attr

设置对象属性值setxattr rados -p data setxattr obj_name attr val

删除对象指定属性rmxattr rados -p data rmxattr obj_name attr

设置对象头部内容 setomapheader rados -p test_rep_pool setomapheader obj_name 1

获取对象头部内容getomapheader rados -p test_rep_pool getomapheader obj_name

设置对象的键值属性 setomapval rados -p test_rep_pool setomapval obj_name key val

列出omap的键listomapkeys rados -p test_rep_pool listomapkeys obj_name key val

列出omap的键listomapvals rados -p test_rep_pool listomap obj_name keys

显示包含信息 rados -p rbd listomapvals rbd_directory

rados -p mypool listomapvals rbd_directory rbd_data.1218c9a95f837.000000000000035c (pool 将 RBD 镜像的ID和name等基本信息保存在 rbd_directory 中)

获取对象的指定键的值 getomap val rados -p test_rep_pool getomapval obj_name key

删除对象的指定键和值 rmomapkey rados -p test_rep_pool rmomapkey obj_name key

监控对象操作,并且向监控者发送消息 rados -p test_rep_pool watch obj_name 有点类似与局域网通信

rados -p test_rep_pool notify obj_name message 发送消息到终端一的该对象监听者

查看有多少个对象监控者 rados -p test_rep_pool listwatchers obj_name

设置一个对象的大小以及写粒度 rados -p test_rep_pool set-alloc-hint 4194304 4194304 大小为4M ,写粒度为4M

将资源池内容输出或者写入指定文件 rados -p rbd export rbdpool.txt vim进入一般模式输入:%!xxd 从而将该文件转换为16进制可读文件

文件原始上传至存储池  ceph osd pool create mypool 32 32

pool 'mypool' created

ceph osd pool ls

ceph pg ls-by-pool mypool | awk '{print $1,$2,$15}' #验证 PG 与 PGP 组合

ceph osd tree #osd对应关系

上传文件:sudo rados put msg /var/log/syslog --pool=mypool #上传文件

rados ls --pool=mypool #查看上传结果

msg

ceph osd map mypool msg #文件信息查看

osdmap e82 pool 'mypool' (3) object 'msg' -> pg 3.e4c81fc1 (3.1) -> up ([0,8], p0) acting ([0,8], p0)

下载文件:sudo rados get msg --pool=mypool /opt/a.txt #下载

删除文件:sudo rados rm msg1 --pool=mypool

  • 块相关:

日志位置:/var/log/rbd-target-api/rbd-target-api.log

查看rbd api状态 systemctl status rbd-target-api

创建逻辑卷 rbd create --image img1 --size 10 --pool rbdpool

删除逻辑卷 rbd rm --image terry1 --pool rbd

查询卷列表 rbd ls rbdpool

查看存储池内卷信息 rbd ls -p rbd-data -l

查看卷使用情况 rbd du terry1

创建快照 rbd snap create pool/image@snapshot

保护快照 rbd snap protect pool/image@snapshot

查看快照列表 rbd snap ls rbd/terry1

查看快照信息 rbd du rbd/terry-3@snap1

快照创建克隆卷 rbd clone pool/imagename@snapshotname pool/clonename

快照回滚 rbd snap rollback rbd/terry1@snap1

删除快照 rbd snap rm rbd/terry1@snap1

清空卷下的快照 rbd snap purge rbd/terry1

克隆快照 rbd snap protect image02@image02_snap01

rbd clone rbd/image02@image02_snap01 kube/image02_clone01

查看克隆子卷 rbd children pool101/image1@snap1

查看快照的children rbd children image02 或者rbd children rbd/my-image@my-snapshot

去掉快照的parent(快照展开) rbd flatten kube/image02_clone01

rbd bench使用 rbd bench-write test_index/LUN --io-size 512K --io-pattern seq --io-threads 16 --io-total 1T

rbd bench --io-type write rbd/terry1 --io-size 4K --io-pattern seq --io-threads 1 --io-total 1T

设置监控rbd性能 ceph config set mgr mgr/prometheus/rbd_stats_pools glance,cinder,nova

rbd服务状态 systemctl status rbd-target-api

rbd性能查看 rbd perf image iotop rbd perf image iostat

修改卷大小 rbd resize test/myrbd1 --size 51200 --allow-shrink

设置卷格式 rbd create test/myrbd3 --size 102400 --image-format 2

导出RBD镜像 rbd export image02 /tmp/image02

导入RBD镜像 rbd import /tmp/image02 rbd/image02 --image-format 2

回收站功能:

查看回收站列表 rbd trash list

查看回收站单个存储池列表 rbd trash ls -p rbd-data

通过回收接口删除rbd rbd trash move (trash mv)

删除回收站里面的rbd rbd trash remove (trash rm)

还原回收站的单个rbd rbd trash restore --image data-img2 -p rbd-data --image-id 1770c07622f6

还原回收站的所有rbd rbd trash restore

清空回收站 rbd trash purge

一致性组快照:

列表显示一致性组 rbd group ls

创建一致性组 rbd group create -p rbd --group group1

删除一致性组 rbd group rm rbd/group1

列表显示一致性组卷 rbd group image list -p rbd --group group1 或 rbd group image ls rbd/group1

向一致性组添加卷 rbd group image add --group-pool rbd --group group1 rbd/terry1

从一致性组移除卷 rbd group image rm rbd/terry1 --group group1 --group-pool rbd

重命名一致性组 rbd group rename rbd/group1 rbd/group1

创建一致性组快照 rbd group snap create -p rbd --group group1 --snap snap1

列表显示一致性组快照 rbd group snap ls rbd/group1

删除一致性组快照 rbd group snap rm rbd/group1@snap1

一致性组快照回滚 rbd group snap rollback gpool/group1@snap1

一致性组快照重命名 rbd group snap rename rbd/group1@snap1 --dest-snap snap2

  • 集群清理:

清除集群 clear-cluster comleader2-1 comleader2-2

  • 集群部署:

快速部署集群 ceph-deploy new cluster comleader2-1 comleader2-2

设置界面用户 ceph dashboard ac-user-set-password cmpadmin cmpadmin

查看注册信息 ceph license info

  • iscsi服务配置

在配置iscsi服务之前,DM版本请确保已创建名为rbd的存储

iscsi日志位置:/var/log/rbd-target-api/rbd-target-api.log

1.创建iSCSI服务配置文件,路径为/etc/ceph/iscsi-gateway.cfg,其中trusted_ip_list字段的值为所有iSCSI服务节点的IP,以逗号分隔,所有节点同步;

2.所有节点执行 systemctl enable rbd-target-api

systemctl start rbd-target-api

systemctl enable rbd-target-gw

systemctl start rbd-target-gw

3.添加网关 ceph dashboard set-iscsi-api-ssl-verification false

ceph dashboard iscsi-gateway-add http://admin:admin@192.168.202.21:5000

4.删除网关 ceph dashboard iscsi-gateway-rm http://admin:admin@192.168.202.21:5000

或者 ceph dashboard iscsi-gateway-rm terry-1

iscsi客户端连接:

发现target iscsiadm -m discovery -t st -p 192.168.202.21

发现所有target iscsiadm -m node (更新有问题)

连接target iscsiadm -m node -T iqn.2001-07.com.ceph:1616654959413 -p 192.168.202.22 -l

查询已建立的所有连接 iscsiadm -m session

断开连接 iscsiadm -m node -T target.ceph.1 -p 192.168.221.2 -u

断开所有连接 iscsiadm -m node --logout

格式化磁盘 mkfs.ext4 /dev/sda

挂载磁盘 mount /dev/sda /mnt/test -o sync

查看挂载 lsscsi

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐