目录
-
集群状态
查看集群状态 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