记得在很久很久以前,ceph当时的版本是有提供使用内存做journal的配置的,当时是使用的tmpfs,但是现在的版本在搜资料的时候,发现关于这个的没怎么找到资料,邮件列表里面有人有提到怎么做,看了下大致的原理,然后还是自己来实践一次
预备知识:首先需要知道的是什么是内存盘,内存盘就是划分了一个内存空间来当磁盘使用来进行加速的,这个在某些操作系统里面会把/tmp/分区挂载到tmpfs下,来达到加速的目的,这样就是重启后,会清空/tmp的内容,centos7 默认的分区方式也使用了tmpfs来加速,df -h可以看下那个tmpfs就是内存盘了
本文使用的不是tmpfs,这个是因为tmpfs不是我们常见意义上的那种文件系统,它不能格式化,ceph 在进行日志创建的时候会去检查journal 所在分区的 uuid, 而tmpfs在检测的时候 会返回一个全0的字符串,这个在校验的时候显示的无效的,所以也就部署起来有问题,下面开始介绍我的做法,这个里面做法很多,步骤也可以自己去变化,这里只是提供了我的一种思路
我使用的是ramdisk,关于怎么做ramdisk这个也 ...
暂未分类
未读ceph默认情况下是以主机名来作为mon的识别的,所以这个情况下用部署工具是无法创建多个mon的,这个地方使用手动的方式可以很方便的创建多个mon
1、创建mon的数据存储目录1mkdir /var/lib/ceph/mon/ceph-1
2、获取当前的monmap1ceph mon getmap -o /tmp/monmap
3、根据当前的monmap生成mon的数据1ceph-mon -i 1 --mkfs --monmap /tmp/monmap
4、启动进程(后面指定端口)1ceph-mon -i 1 --public-addr 192.168.8.106:6791
现在mon就加进去了
然后去写配置文件相关的信息即可,操作还是很便捷的,这个地方可以防止单mon的情况下的数据盘的损坏的情况,增加一点安全系数,当然最好是多主机的mon
在找这个资料的时候,基本没几个能用的或者过时了的,或者是换了概念,做的不是需要的那种盘,只有少数文章有提到关键部分应该怎么去操作,现在还是自己总结一下
内存盘tmpfs和ramdisk的区别这个在网上的很多资料里面都有提到,很多文章去写怎么做ramdisk的时候,都是去做的tmpfs,两者虽然都是使用的内存来存储东西,但是是完全有区别的
tmpfs这个只需要mount挂载就可以分配一个目录使用内存了,只是一个目录
ramdisk这个是真的分配一个空间,这个分区是可以格式化的(这个格式化是关键)
tmpfs卸载再挂载数据会消失,ramdisk卸载再挂载数据还在
二者共同点是,系统重启后,里面的东西会消失
本文章主要是讲怎么去做ramdisk
ramdisk是依赖于内核模块brd的,首先可以查看下这个模块的信息
12345678910111213[root@lab8106 src]# modinfo brdfilename: /lib/modules/3.10.0-229.el7.x86_64/kernel/drivers/block/brd.koalias: ...
暂未分类
未读在ceph的集群当中关于节点的替换的问题,一直按照以前的方式进行的处理,处理的步骤如下:
停止osd进程1/etc/init.d/ceph stop osd.0
这一步是停止osd的进程,让其他的osd知道这个节点不提供服务了
将节点状态标记为out1ceph osd out osd.0
这个一步是告诉mon,这个节点已经不能服务了,需要在其他的osd上进行数据的恢复了
从crush中移除节点1ceph osd crush remove osd.0
从crush中删除是告诉集群这个点回不来了,完全从集群的分布当中剔除掉,让集群的crush进行一次重新计算,之前节点还占着这个crush weight,会影响到当前主机的host crush weight
删除节点1ceph osd rm osd.0
这个是从集群里面删除这个节点的记录
删除节点认证(不删除编号会占住)1ceph auth del osd.0
这个是从认证当中去删除这个节点的信息
这个一直是我处理故障的节点osd的方式,其实这个会触发两次迁移,一次是在节点osd以后,一个是在crush remove以后,两次迁移对于集群来 ...
ceph在部署过程中是先进行部署,再去写配置文件的,而一些新手在部署完了后,并没有写配置文件,在重启服务器后,因为挂载点没有挂载,所以服务无法启动,所以需要写好配置文件还有一种情况是集群有几百个osd,在新加入或者修改的时候,再去进行变更配置文件就是一个很麻烦的事情,所以写配置文件这个如果脚本来处理,就可以节约很多时间,所以写了一个脚本如下,这个地方如果熟悉python的可以用python写,我这个是自己使用,并且使用的频率不会太高,因此,怎么方便怎么来
脚本里面用了一个二进制文件是解析json用的,这个拷贝到运行的机器上就可以了
解析的二进制文件在这里下载:http://stedolan.github.io/jq/
备用下载地址:http://pan.baidu.com/s/1pKgefmr
下载后拷贝到linux机器的/sbin/下面,为了方便重命名为 /sbin/jq
后面的输出可以方便的修改,原理是获取当前的osd状态,然后去osd上获取信息
1234567891011121314151617#! /bin/sh#注意要配合js使用htt ...
安装操作系统首先安装操作系统centos6,安装过程选择的是base server,这个不相同不要紧,出现缺少包的时候去iso找出来安装就可以了
calamari的简单介绍首先简单的介绍下calamari的这个软件系统的组成,主要是calamari-server,romana,salt-minion,salt-server,diamond,
这些模块各自的作用:
calamari-server这个是提供一个与集群进行交互,并且自己封装了一个自己的API,做集中管理的地方,这个只需要在集群当中的某一台机器上安装,也可以独立安装
romana就是原来的calamari-client,这个叫client,其实是一个web的界面,这个叫calamari-web更好,现在已经更名为romana,这个也是只需要在集群当中的某一台机器上安装,也可以独立安装,这个需要跟calamari-server安装在一台机器上
salt-server是一个管理的工具,可以批量的管理其他的机器,可以对安装了salt-minion的机器进行管理,在集群当中,这个也是跟calamari-server安装在一起的
sa ...
首先安装的xenserver6.5的环境,看到有地方有提到这个上面可以安装rbd的支持,网上有一种方式是libvirt+kvm方式,因为ceph对libviet是原生支持的,但是xenserver底层是xen的,这个就不去研究太多,这个用最简单的方式最好
https://github.com/mstarikov/rbdsr这个是个第三方的插件,最近才出来的
实现原理是ssh到ceph的机器上获取到可以使用的rbd信息,然后在xenserver的图形界面上通过配置iscsi的方式去配置rbd,里面套用了iscsi的界面,实际去xenserver机器后台同样做的是map的操作这个试了下,界面的操作都可以实现,都可以获取到rbd的信息,但是在最后提交的一下的时候,后台会报错误的信息,这个有可能才出来,还有点问题这个地方可以用其他的方式实现,xenserver在添加硬盘的时候本来就支持的命令行模式,下面为实现方式
先检查内核的信息,这个有rbd模块,并且用的是3.10的,这个是用的centos7同等的内核,问题不大
1234567891011[root@xenserver ]# modinfo ...
本篇主题在mon无法启动,或者所有的mon的数据盘都损坏的情况下,如何把所有的数据恢复如初
写本章的缘由在ceph中国的群里有看到一个技术人员有提到,在一次意外机房掉电后,三台mon的系统盘同时损坏了,这个对于熟悉ceph的人都知道这意味着什么,所有的集群数据将无法访问,关于这个的解决办法目前没有在哪里有看到,这个对于大多数人是用不上的,但是一旦出现了,这个损失将是无法估量的,当然谁都不希望这个情况的发生
所以在研究了下ceph的一些操作后,自己尝试去找了一些关于集群的故障修复的,目前看到了一个是关于单个rbd镜像的恢复的文章,那个需要将数据映射本地的loop设备后重新读取,这个我曾经验证过一遍,确实可以实现,在周末的时候我尝试了另外一个办法,实现了在mon完全失效的情况下全集群的完整数据的恢复,并且保留了原来的数据结构和数据信息,当然这中间需要进行一定的操作去完成它,这个我准备写成一个标准的操作流程,并用视频的方式来记录这个恢复的流程
暂未分类
未读本篇主题:
1、怎样配置ssh免登陆访问
2、为什么搭建集群要关闭防火墙和selinux,如何关闭
3、从哪里获取ceph的安装包,怎样安装才是快速正确的
4、为什么要配置时间同步服务,怎样配置
5、怎样创建集群
6、怎样使用不同的方式增加osd(这里我总结了五种)
默认方式
磁盘journal
目录配置方式
btrfs文件系统
disk+ssd方式
7、怎样配置文件系统
8、怎样配置块设备系统
9、怎样配置S3服务
10、如何干净的将集群清理到初始状态
(本篇基于centos7,其他系统除了安装方式其他通用)
本篇资源:包括了视频,操作文档,相关安装包资源,S3的windows客户端
付费资源有需要联系
暂未分类
未读能够动态的进行系统参数的调整是一个很重要并且有用的属性ceph的集群提供两种方式的调整,使用tell的方式和daemon设置的方式
一、tell方式设置调整配置使用命令:
调整mon的参数1#ceph tell mon.* injectargs '--{tunable value_to_be_set}'
调整osd的参数1#ceph tell osd.* injectargs '--{tunable value_to_be_set}'
调整mds的参数1#ceph tell mds.* injectargs '--{tunable value_to_be_set}'
例子:
12[root@lab5134 ~]# ceph tell mon.* injectargs '--mon_osd_report_timeout 400'injectargs:mon_osd_report_timeout = '400'
除了上面的tell的 ...