创建profile
ceph osd erasure-code-profile set $profile_name k=$k m=$m crush-failure-domain=host crush-root=$group_name
创建规则
ceph osd crush rule create-erasure $rule_name $profile_name
根据profile和rule创建ec-pool
ceph osd pool create $pool_name $pg_num $pg_num erasure $profile_name $rule_name
设置ec overwrite特性
ceph osd pool set $pool_name allow_ec_overwrites 1 --yes-i-really-mean-it
查看及删除profile命令:
ceph osd erasure-code-profile ls
ceph osd erasure-code-profile rm
给池设置规则
ceph osd pool set $pool_name crush_rule $rule_name
给资源池重新指定根
ceph osd pool set $pool_name crush_rule $rule_name
创建规则
ceph osd crush rule create-simple $rule_name $group_name host firstn
创建池
ceph osd pool create $pool_name $pg_num $rule_name
设置副本数
ceph osd pool set $pool_name size $type_size
设置最小副本数
ceph osd pool set $pool_name min_size $type_min_size
重命名pool
ceph osd pool rename {now_name} {new_name}
展示pool统计
rados df
获取pool参数的值:
ceph osd pool get ram all
获取osd的详细配置信息项
ceph osd metadata osd.1
如果磁盘灾难性失败,则标记为lost
ceph osd lost xxx
查看故障详细信息
ceph health detail
查看当前osd速度
ceph tell osd.0 bench
列出身份验证信息
ceph auth list
创建根
ceph osd crush add-bucket $group_name root
创建host
ceph osd crush add-bucket $host host
将host移入根
ceph osd crush move $host root=$group_name
给host添加osd
ceph osd crush add osd.$osd_id $weight root=$group_name host=$host
添加给host添加osd
ceph osd crush add osd.0 1 root=hci_default host=node1
设置配额
ceph osd pool set-quota pool1 (max_bytes|max_objects) 0
修改权重
ceph osd reweight osd.1 0.8(修改的是第二个,影响的是host内的数据重构)
ceph osd crush reweight osd.1 1.5 (修改的是第一个,影响的是host间的数据重构)
查看当前系统下osd是否有卡顿
ceph osd perf
设置ecpool的覆盖写特性
ceph osd pool set ec_pool allow_ec_overwrites true
刷tier层数据
rados -p ram1 cache-flush-evict-all
删除tier
ceph osd tier remove-overlay $pool_name
ceph osd tier remove $pool_name tier_"$pool_name"
ceph osd pool rm tier_"$pool_name" tier_"$pool_name" --yes-i-really-really-mean-it
创建tier
设置缓存池,绑定存储池作为缓存池
ceph osd tier add $data_pool_name $tier_pool_name 设置缓存池模式,模式有writeback 和 read-only两种
ceph osd tier cache-mode $reppool_name writeback把标准池中的所有客户端请求转到缓存池
ceph osd tier set-overlay $ecpool_name $reppool_name缓存池相关参数配置:
1. 为缓存池启用hit set tracking,生产级别用的缓存层,通常使用bloom过滤器
ceph osd pool set $reppool_name hit_set_type bloom2.启用hit_set_count,为缓存池存储的命中集数量
ceph osd pool set $reppool_name hit_set_count 1 3.启用hit_set_period,这个是hit set在缓存池中的有效期,以秒为单位
ceph osd pool set $reppool_name hit_set_period 600 4.缓存分层代理开始从缓存池中将对象写回后端存储或者删除前,允许存放的最大字节数
ceph osd pool set $reppool_name target_max_bytes 0 5.缓存分层代理开始从缓存池中将对象写回后端存储或者删除前,允许存放的最大对象数
ceph osd pool set $reppool_name target_max_objects 1000006.设置一个脏对象刷新到后端存储的最小时间
ceph osd pool set $reppool_name cache_min_flush_age 607.指定一个对象多久没有访问后从缓存池中移除
ceph osd pool set $reppool_name cache_min_evict_age 608.当缓存池中包含了一个确定百分比的脏数据时,缓存代理会刷新这些对象到后端存储池
ceph osd pool set $reppool_name cache_target_dirty_ratio 0.49.当脏对象达到一个确定百分比时,代理将会以一个相对较快的速度进行刷新
ceph osd pool set $reppool_name cache_target_dirty_high_ratio 0.510.当缓存池达到一个具体的百分比时,缓存代理会移除未被修改过的对象,来保持最够的可用空间
ceph osd pool set $reppool_name cache_target_full_ratio 0.6
文章目录1. 解决问题2. 应用场景3. 实现方式C++实现C语言实现4. 缺点5. 和其他三种创建模式的对比(单例,工厂,建造者) 1. 解决问题 如果对象的创建成本较大,而同一个类的不同对象之间的差别不大(大部分字段相同),在这种情况下,我们可以利用已有对象(原型)进行赋值(拷贝)的方式,创建新的对象,从而达到节省对象创...
混合osd的部署 先部署所有的ssd 在/etc/ceph.conf中最后添加ssd做osd的block大小如下: 比如部署中有两个ssd,则添加 [osd.0] bluestore_block_size = xxxx [osd.1] bluestore_block_size = xxx 如上的size大小计算如下,如ssd容量...
文章目录简介使用OSD相关操作PG相关操作对象相关操作总结 简介 ceph-objectstore-tool工具,能够操作到ceph最底层的数据,包括pg,对象层级。它能够对底层pg以及对象相关数据进行获取、修改。并能够对一些问题pg和对象进行简单修复。所以使用该工具进行操作的时候需要谨慎(涉及到修改的操作最好备份一份数据)...
文章目录ceph版本:环境配置:异常问题:问题解决:总结 ceph版本: ceph 12.2.1 环境配置: tier_pool 16个分区大小800G 的osd容量 3副本 data_pool 32个4T盘 3副本 异常问题: ps:在分布式存储中遇到任何问题都不要先去通过重设存储节点,清除磁盘数据来解决,一定要...
本文主要是在梳理cephfs内核方式挂载的内核代码逻辑所做的准备 环境:Centos 7.5 内核源码版本:3.10.0-862.el7.x86_64 打开ceph模块的debug信息 单独编译ceph模块的.ko文件 ceph在内核的通用模块主要有三个: ceph.ko 模块路径:/usr/src/kernels/3.10....
文章目录安装使用使用`ceph tell`产生堆栈信息文使用`pprof`工具分析内存及`ceph tell`释放内存火焰图`FlameGraph`可视化进程堆栈信息 pprof是一个google开发的支持可视化、且可分析profile文件而达到对内存的分析。并且能够输出文本和图像来支持分析过程,pprof源码 安装...
目前有两种动态修改的方式来让ceph中各个组件的配置生效,所以介绍如下两种方式方便我们进行功能或者代码的调试 使用ceph daemon方式修改 ceph daemon osd.0 help用于osd的daemon服务ceph daemon mon.ceph-node1 help用于mon的admin socket命令、ceph...
我们内核挂载的前提是:看到centos7.5 中默认内核3.10.0-862.11.6.el7.x86_64的挂载fs执行文件读写性能更优良,所以尝试将3.10.0-862.11.6.el7.x86_64模块中与ceph fs挂载相关的ceph.ko,libceph.ko,dns_resolver.ko,libcrc32c.ko拷贝...
引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 这是第三部分,完成效果如下 图1 建图和导航 三、使用RTAB-Map进行建图和导航 1. rtab...
引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 由于之前的虚拟机性能限制,我在这个项目中使用了新的ubantu 16.04环境,虚拟机配置 内存 8GCPU...
[{name:1},{name:2}].forEach((v,i,ar) => {console.log(v,i,ar)});//基础遍历[{name:1},{name:2}].map((v) => v.name);//[1,2]返回对象数组中指定字段值的一位数组(不改变原始数组)[{name:1},{name:2},{name:3}...
体验内容 使用gmapping方法利用turtlebot底盘移动信息和激光雷达数据进行建图。 1. 安装一些依赖包 sudo apt-get install ros-melodic-move-base* sudo apt-get install ros-melodic-map-server* sudo apt-get insta...
前言 我们知道Java/Python这种语言能够很好得 支持反射。反射机制 就是一种用户输入的字符串到对应实现方法的映射,比如http接口中 用户传入了url,我们需要调用该url对应的方法/函数对象 从而做出对应的操作。 而C++ 并没有友好得支持这样的操作,而最近工作中需要通过C++实现http接口,这个过程想要代码实现得优雅...