004 ceph存储池
介绍:前面已经使用deploy和ansble部署了ceph集群,现在对集群的池进行简单介绍和简单操作
一、部分概念
池是ceph存储集群的逻辑分区,用于存储对象
对象存储到池中时,使用CRUSH规则将该对象分配到池中的一个PG,PG根据池的配置和CRUSH算法自动映射一组OSD池中PG数量对性能有重要影响。通常而言,池应当配置为每个OSD包含的100-200个归置组
创建池时。ceph会检查每个OSD的PG数量是否会超过200.如果超过,ceph不会创建这个池。ceph3.0安装时不创建存储池。
二、存储池(复制池)
2.1 创建复制池
- ceph osd pool create <pool-name> <pg-num> [pgp-num] [replicated] [crush-ruleset-name] [expected-num-objects]
pool-name 存储池的名称
pg-num 存储池的pg总数
pgp-num 存储池的pg的有效数,通常与pg相等
replicated 指定为复制池,即使不指定,默认也是创建复制池
crush-ruleset-name 用于这个池的crush规则的名字,默认为osd_pool_default_crush_replicated_ruleset
expected-num-objects 池中预期的对象数量。如果事先知道这个值,ceph可于创建池时在OSD的文件系统上准备文件夹结构。否则,ceph会在运行时重组目录结构,因为对象数量会有所增加。这种重组一会带来延迟影响
[root@ceph2 ceph]# ceph osd pool create testpool 128
没有写的参数即使用默认值
[root@ceph2 ceph]# ceph -s
查询集群有哪些pool
[root@ceph2 ceph]# ceph osd pool ls
[root@ceph2 ceph]# ceph osd lspools
[root@ceph2 ceph]# ceph df
注:创建了池后,无法减少PG的数量,只能增加
如果创建池时不指定副本数量,则默认为3,可通过osd_pool_default_size参数修改,还可以通过如下命令修改:ceph osd pool set pool-name size number-of-replicas osd_pool_default_min_size参数可用于设置最对象可用的最小副本数,默认为2
查看pool属性
[root@ceph2 ceph]# ceph osd pool get testpool all
2.2 为池启用ceph应用
创建池后,必须显式指定能够使用它的ceph应用类型:(ceph块设备 ceph对象网关 ceph文件系统)
如果不显示指定类型,集群将显示HEALTH_WARN状态(使用ceph health detail命令查看)
为池关联应用类型:
- ceph osd pool application enable pool-name app
指定池为块设备
- [root@ceph2 ceph]# ceph osd pool application enable testpool rbd
- enabled application 'rbd' on pool 'testpool'
- [root@ceph2 ceph]#
- [root@ceph2 ceph]# ceph osd pool ls detail
- pool 'testpool' replicated size min_size crush_rule object_hash rjenkins pg_num pgp_num last_change flags hashpspool stripe_width application rbd
[root@ceph2 ceph]# ceph osd pool stats
[root@ceph2 ceph]# ceph osd pool stats testpool
2.3 设置配额
- [root@ceph2 ceph]# ceph osd pool set-quota testpool max_bytes
- set-quota max_bytes = for pool testpool
- [root@ceph2 ceph]#
- [root@ceph2 ceph]# ceph osd pool set-quota testpool max_bytes
- set-quota max_bytes = for pool testpool
2.4 池的重命名
- [root@ceph2 ceph]# ceph osd pool rename testpool mytestpool
- pool 'testpool' renamed to 'mytestpool'
- [root@ceph2 ceph]# ceph osd pool ls
- mytestpool
2.5 数据处理
[root@ceph2 ceph]# rados -p mytestpool put test /root/anaconda-ks.cfg
查看数据
[root@ceph2 ceph]# rados -p mytestpool ls
查看数据内容,只能下载下来,进行源文件对比
[root@ceph2 ceph]# rados -p mytestpool get test /root/111
[root@ceph2 ceph]# diff /root/111 /root/anaconda-ks.cfg
命名修改后,不影响数据
- [root@ceph2 ceph]#ceph osd pool rename mytestpool testpool
- pool 'mytestpool' renamed to 'testpool'
- [root@ceph2 ceph]#rados -p testpool ls
- test
上传与下载数据
- [root@ceph2 ceph]# echo "" >> /root/
- [root@ceph2 ceph]# rados -p testpool put test /root/
- [root@ceph2 ceph]# rados -p testpool ls
- test
- [root@ceph2 ceph]# rados -p testpool get test /root/
- [root@ceph2 ceph]# diff /root/ /root/anaconda-ks.cfg
- 240d239
- <
2.6 池的快照
创建池快照
- [root@ceph2 ceph]# ceph osd pool mksnap testpool testpool-snap-
- created pool testpool snap testpool-snap-
- [root@ceph2 ceph]# rados lssnap -p testpool
- testpool-snap- 2019.03. ::
- snaps
再上传一个数据
- [root@ceph2 ceph]# rados -p testpool put test2 /root/anaconda-ks.cfg
- [root@ceph2 ceph]# rados -p testpool ls
- test2
- test
使用快照的场景:(防止误删除,防止误修改,防止新增错误文件)
ceph针对文件回退
- [root@ceph2 ceph]# ceph osd pool mksnap testpool testpool-snap-
- created pool testpool snap testpool-snap-
- [root@ceph2 ceph]# rados lssnap -p testpool
- testpool-snap- 2019.03. ::
- testpool-snap- 2019.03. ::
- snaps
文件删除并恢复
- root@ceph2 ceph]# rados -p testpool rm test
- [root@ceph2 ceph]# rados -p testpool get test /root/
- error getting testpool/test: () No such file or directory
- [root@ceph2 ceph]# rados -p testpool -s testpool-snap- get test /root/
- selected snap 'testpool-snap-2'
- [root@ceph2 ceph]# ll /root/444 #可以直接从444恢复test文件
- -rw-r--r-- root root Mar : /root/
- [root@ceph2 ceph]# rados -p testpool rollback test testpool-snap-2 从快照中还原
- rolled back pool testpool to snapshot testpool-snap-
- [root@ceph2 ceph]# rados -p testpool get test /root/
- [root@ceph2 ceph]# diff /root/ /root/ #对比文件没有区别,还原成功
2.7 配置池属性
- [root@ceph2 ceph]# ceph osd pool get testpool min_size
- min_size:
- [root@ceph2 ceph]# ceph osd pool set testpool min_size
- set pool min_size to
- [root@ceph2 ceph]# ceph osd pool get testpool min_size
- min_size:
- [root@ceph2 ceph]# ceph osd pool set testpool min_size
- set pool min_size to
- [root@ceph2 ceph]# ceph osd pool get testpool min_size
- min_size:
三、存储池(纠删码池)
3.1 纠删码池的特性
纠删码池使用纠删码而非复制来保护对象数据
相对于复制池,纠删码池会节约存储空间,但是需要更多的计算资源
纠删码池只能用于对象存储
纠删码池不支持快照
3.2 创建纠删码池
3.2.1 语法
- ceph osd pool create <pool-name> <pg-num> [pgp-num] erasure [erasure-code-profile] [cursh-ruleset-name] [expected_num_objects]
erasure用于指定创建一个纠删码池
erasure-code-profile是要使用的profile的名称,可以使用ceph osd erasure-code-profile set 命令创建新的profile。profile定义使用的插件类型以及k和m的值。默认情况下,ceph使用default profile
查看默认profile
[root@ceph2 ceph]# ceph osd erasure-code-profile get default
- k=
- m=
- plugin=jerasure
- technique=reed_sol_van
3.2.2 自定义一个profile
[root@ceph2 ceph]# ceph osd erasure-code-profile set EC-profile k=3 m=2
[root@ceph2 ceph]# ceph osd erasure-code-profile get EC-profile
- crush-device-class=
- crush-failure-domain=host
- crush-root=default
- jerasure-per-chunk-alignment=false
- k=
- m=
- plugin=jerasure
- technique=reed_sol_van
- w=
3.2.3 创建一个纠删码池
- [root@ceph2 ceph]# ceph osd pool create EC-pool erasure EC-profile
- pool 'EC-pool' created
- [root@ceph2 ceph]# ceph osd pool ls
- testpool
- EC-pool
- [root@ceph2 ceph]# ceph osd pool ls detail
- pool 'testpool' replicated size min_size crush_rule object_hash rjenkins pg_num pgp_num last_change flags hashpspool stripe_width application rbd
- snap 'testpool-snap-20190316' -- ::34.150433
- snap 'testpool-snap-2' -- ::15.430823
- pool 'EC-pool' erasure size min_size crush_rule object_hash rjenkins pg_num pgp_num last_change flags hashpspool stripe_width
3.3 关于纠删码池的其他操作
列出现有的配置:ceph osd erasure-code-profile ls
- [root@ceph2 ceph]# ceph osd erasure-code-profile ls
- EC-profile
- default
删除现有的配置:ceph osd erasure-code-profile rm profile-name
查看纠删码池状态:ceph osd dump |grep -i EC-pool
- [root@ceph2 ceph]# ceph osd dump |grep -i EC-pool
- pool 'EC-pool' erasure size min_size crush_rule object_hash rjenkins pg_num pgp_num last_change flags hashpspool stripe_width
添加数据到纠删码池:rados -p EC-pool ls,rados -p EC-pool put object1 hello.txt
查看数据状态:ceph osd map EC-pool object1
读取数据:rados -p EC-pool get object1 /tmp/object1
博主声明:本文的内容来源主要来自誉天教育晏威老师,由本人实验完成操作验证,需要的博友请联系誉天教育(http://www.yutianedu.com/),获得官方同意或者晏老师(https://www.cnblogs.com/breezey/)本人同意即可转载,谢谢!
004 ceph存储池的更多相关文章
- ceph存储池基本管理
一,设置默认存储池的pg或pgp的值(推荐100左右),在ceph.conf文件里增加: osd pool default pg num = osd pool default pgp num = 二, ...
- [故障]ceph存储池权限修改错误,导致存储池的业务hang住
描述: 记录一次重大事故:根据IaaS资源业务要求,需要增加某些功能,所以要修改部署代码.修改后重推部署代码,检查发现没有什么异常. 但是一段时间后就收到用户的报障反馈,接连一个电话.2个电话.3个电 ...
- 004.Ceph块设备基础使用
一 基础准备 参考<002.Ceph安装部署>文档部署一个基础集群: 新增节点主机名及IP在deploy节点添加解析: [root@deploy ~]# echo "172.24 ...
- ceph 存储池PG查看和PG存放OSD位置
1. 查看PG (ceph-mon)[root@controller /]# ceph pg stat 512 pgs: 512 active+clean; 0 bytes data, 1936 MB ...
- 分布式存储系统之Ceph集群存储池、PG 与 CRUSH
前文我们了解了ceph集群状态获取常用命令以及通过ceph daemon.ceph tell动态配置ceph组件.ceph.conf配置文件相关格式的说明等,回顾请参考https://www.cnbl ...
- 部署ceph
前提:因为ceph部署时要去国外源下载包,导致下载安装时会卡住,因此我们只需通过国内的源找到对应的rpm下载安装. 一.环境准备 4台机器,1台机器当部署节点和客户端,3台ceph节点,ceph节点配 ...
- 002.RHCS-配置Ceph存储集群
一 前期准备 [kiosk@foundation0 ~]$ ssh ceph@serverc #登录Ceph集群节点 [ceph@serverc ~]$ ceph health #确保集群状态正常 H ...
- k8s对接ceph存储
前提条件:已经部署好ceph集群 本次实验由于环境有限,ceph集群是部署在k8s的master节点上的 一.创建ceph存储池 在ceph集群的mon节点上执行以下命令: ceph osd pool ...
- Ceph PG介绍及故障状态和修复
1 PG介绍pg的全称是placement group,中文译为放置组,是用于放置object的一个载体,pg的创建是在创建ceph存储池的时候指定的,同时跟指定的副本数也有关系,比如是3副本的则会有 ...
随机推荐
- 查看JAVA占用CPU高的线程日志
# . 查看主进程占用cpu高 top # java # . 按照线程占用cpu由高到低进行排查: -o THREAD,tid, # USER %CPU PRI SCNT WCHAN USER SYS ...
- JS 的私有成员为什么钦定了 #?
翻译自 tc39/proposal-class-fields 译者按:社区一直以来有一个声音,就是反对使用 # 声明私有成员.但是很多质疑的声音过于浅薄.人云亦云.其实 TC39 早就对此类呼声做过回 ...
- js+canvas黑白棋
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- @bzoj - 4922@ [Lydsy1706月赛]Karp-de-Chant Number
目录 @description@ @solution@ @accepted code@ @details@ @description@ 卡常数被称为计算机算法竞赛之中最神奇的一类数字,主要特点集中于令 ...
- Freeware Tools For Linux, http://www.debianhelp.co.uk/tools.htm
Freeware Tools For Linux, http://www.debianhelp.co.uk/tools.htm Freeware Tools For Linux DNS related ...
- Shell 基本运算符 1
Shell 和其他编程语言一样,支持多种运算符,包括: 算术运算符 关系运算符 字符串运算符 文件测试运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr ...
- mysql 字段名和关键字冲突
用"(`)"将有冲突的字段框起来,,键盘上1边上那个键. 例: SELECT * FROM yun_roleright WHERE right LIKE '%{13}%'; 上面s ...
- iptables SNAT与伪装
Source NAT(SNAT)的主要應用,是让同一內部網路上的多部主机,可共用同一条Internet实体连線.直接与Internet相连的闸道器,可使用SNAT(搭配连線追蹤)来来改写內部网络与In ...
- 微信小程序封装自定义弹窗
最近在做小程序的登录,需要同时获取用户手机号和头像昵称等信息,但是小程序又不支持单个接口同时获取两种数据,因此想到自定义一个弹窗,通过弹窗按钮触发获取手机号事件.记录一下. 具体代码如下: 业务代码中 ...
- H3C 常用接口和线缆