ceph学习二之基本操作

 

 

 ceph-volume lvm list

 通过clusterid 和cluster的fsid可以知道他不属于这个集群,这个盘是不干净的

 

查看rbd image在哪里节点上:

rbd status ssdpool/kubernetes-dynamic-pvc-bb02f1ff-a832-4bf0-be28-8cae66c0cf76
Watchers:
watcher=10.210.141.95:0/24607170 client.54111 cookie=18446462598732840975

 

 

vgdisplay命令用于显示LVM卷组的信息;

ceph osd lspools     # 来查看当前存储的存储池

ceph pg stat            # pg的状态

ceph osd tree         osd的分布

ceph osd pool create {pool-name} {pg-num} {pgp-num}     # 创建存储池

ceph df     # 查看存储池统计信息

ceph osd df     # 查看osd使用情况

rados lspools #查看有哪些pool

rbd ls poolname #查看pool里有哪些image

rbd snap create --snap mysnap ssdpool/image_name 备份

rbd snap ls ssdpool/image_name查看

ceph osd pool set {pool-name} {key} {value}     # 调整存储池的选项值

有关image创建和查看的操作:

rbd create pool/image1 --size 1024 --image-format 2     # 在pool存储池中创建1GB大小的image

rbd ls pool-name     # 查看pool-name存储池中的image

rbd info pool-name/image1     # 查看image1的详细信息

rbd rm pool-name/image1     # 删除image1

查看pool中对象

rados -p ${poolname} ls

删除OSD:

systemctl list-units|grep ceph # 查看服务

systemctl stop ceph-osd@5.service

ceph osd out 5

ceph osd crush remove osd.5

ceph auth del osd.5

ceph osd rm 5

 

# 批量删除脚本

loop=0; while [ "$loop" -lt 7 ]; do

systemctl stop ceph-osd@${loop}.service

ceph osd out ${loop}

ceph osd crush remove osd.${loop}

ceph auth del osd.${loop}

ceph osd rm ${loop}

echo "finsh $loop "

loop=$((loop + 1))

done

 

想看刚才删除的OSD对应的哪个盘符,并且格式化磁盘:

lvs

 

 

 

 

 

记录下VGID a12开头

 

 

 

 

 

可以看到对应的就是sdb
然后用vgremove 删掉vg就可以完成硬盘的格式化

 

创建完pool,记得enable rbd

ceph osd pool application enable images rbd

ceph osd pool application enable compute rbd

ceph osd pool application enable volumes rbd

 

 

导出编辑测试crush map

 ceph osd getcrushmap -o /home/ttt.x # 导出二进制crushmap

crushtool -d ttt.t -o ttt.txt # 反编译crushmap为文本

crushtool -c ttt.txt -o ttt.x # 编译crushmap

crushtool -i ttt.x --test --min-x 0 --max-x 9 --num-rep 3 --ruleset 0 --show_mappings # 测试

crushtool -i ttt.x --test --min-x 0 --max-x 100000 --num-rep 3 --ruleset 0 --show_utilization # 测试分布

ceph osd setcrushmap -i ttt.x # 注入集群crushmap,使之生效

 

 

删除pool

首先打开ceph.conf中:
[mon]
mon allow pool delete = true
执行
ceph osd pool delete test test --yes-i-really-really-mean-it

 

向ceph中放入数据

 

echo {Test-data} > testfile.txt

rados put test-object-1 testfile.txt --pool=images

ceph osd map images test-object-1

 

 

移除缓冲池

 ceph osd tier remove-overlay images

ceph osd tier remove images images-cache

 

 

查看object位置

 ceph osd map images test-object-1

 

 

尝试刷新缓存区到数据区

 rados -p images-cache cache-try-flush-evict-all

 


强制刷新缓存区到数据区

 rados -p images-cache cache-flush-evict-all

 

 

批量插入数据脚本

 

touch /home/file

dd if=/dev/zero of=/home/file bs=1M count=128

 

loop=0; while [ "$loop" -lt 40 ]; do

rados put objectx2-${loop} /home/file --pool=images

loop=$((loop + 1))

echo "finsh $loop "

done

 

 

新加入一个OSD

 # 这里以sdb举例

ceph-volume lvm zap /dev/sdb

ceph-volume lvm create --data /dev/sdb

ceph-volume lvm activate --all

# 新加入的osd一般不在crushmap中,请按照实际情况重新编辑导入crushmap,使之生效

 

 参考:https://blog.csdn.net/u014706515/article/details/100586141

posted on 2020-08-23 23:27  星星眨着眼  阅读(772)  评论(0编辑  收藏  举报

导航