前言这里有个条件,系统环境是Centos 7 ,Ceph 的版本为Jewel版本,因为这个组合下是由systemctl来进行服务控制的,所以需要做稍微的改动即可实现
准备工作部署mon的时候需要修改这个几个文件
1234/usr/lib/systemd/system/[email protected]/usr/lib/systemd/system/[email protected]/usr/lib/systemd/system/[email protected]/usr/lib/systemd/system/[email protected]
将 Environment=CLUSTER=ceph 改成 Environment=CLUSTER=myceph 后面的myceph可以为你自定义的名称
简单的创建过程创建mon
1ceph-deploy --cluster myceph mon create lab8107
获取部署密钥
1ceph-deploy --cluster myceph gatherkeys lab8107 ...
前言因为项目上的需要,需要用到php,一般来说,用默认的版本和配置就可以满足大多数的场景,因为需要加入多线程,所以需要自己编译一个包
一般来说,发行的包的版本的配置选项和代码都是最稳定的,所以在大多数情况下,我都不会直接去拿原始的源码做编译,这里我的经验是用别人发布版本的源码包,然后根据自己的需要,做修改,然后打包,这次的处理方法还是一样
获取源码地址:
1https://uk.repo.webtatic.com/yum/el7/SRPMS/RPMS/
这个是webtatic发行的php版本,做了一些修改和优化
选择需要的版本
1[root@lab8106 myphp]# wget https://uk.repo.webtatic.com/yum/el7/SRPMS/RPMS/php56w-5.6.26-1.w7.src.rpm
解压安装包
1[root@lab8106 myphp]# rpm2cpio php56w-5.6.26-1.w7.src.rpm |cpio -div
解压完成了后,当前目录下面会有很多文件修改当前目录下面的php56.spec在编译相关的configure后 ...
前言在Linux下面用python进行数据处理,然后输出为csv格式,如果没有中文一切正常,但是如果有中文,就会出现乱码的问题,本篇将讲述怎么处理这个问题
处理过程原始代码123456789#!/usr/bin/env python# -*- coding: UTF-8 -*-import csv#import codecswith open('test.csv', 'wb') as csvfile:# csvfile.write(codecs.BOM_UTF8) spamwriter = csv.writer(csvfile, dialect='excel') spamwriter.writerow(['测试'] * 5 + ['Baked Beans']) spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
运行以后:Linux ...
前言如果你是新手,应该出现过敲盘符的时候,敲错的情况,有些操作可能没什么问题,查询类的操作都没问题,但是写入的情况,就可能比较麻烦了,当然老手也可能有误操作,本篇将讲述在误操作把分区表给弄丢了的情况,来看看我们应该如何恢复
实践过程我们现在有一个正常的集群,我们假设这些分区都是一致的,用的是默认的分区的方式,我们先来看看默认的分区方式是怎样的
破坏环境123456[root@lab8106 ceph]# ceph-disk list···/dev/sdb : /dev/sdb1 ceph data, active, cluster ceph, osd.0, journal /dev/sdb2 /dev/sdb2 ceph journal, for /dev/sdb1···
查看分区情况
12345678910[root@lab8106 ceph]# parted -s /dev/sdb printModel: SEAGATE ST3300657SS (scsi)Disk /dev/sdb: 300GBSector size (logical/physical): 512B/512BP ...
关于mon的数据的问题,一般正常情况下都是配置的3个mon的,但是还是有人会担心 Mon 万一三个同时都挂掉了怎么办,那么集群所有的数据是不是都丢了,关于后台真实数据恢复,有去后台取对象,然后一个个拼接起来的方案,这个是确定可以成功的,但是这个方法对于生产的集群耗时巨大,并且需要导出数据,然后又配置新的集群,工程比较耗大,考虑到这个问题,Ceph 的中国(Redhat)的一位开发者 tchaikov 就写了一个新的工具,来对损坏的MON的数据进行原集群的重构,这个比起其他方案要好很多,本篇将讲述怎么使用这个工具,代码已经合并到 Ceph 的master分支当中去了
关于这个工具相关的issue
打包一个合进新代码的master版本的ceph包从github上面获取代码默认的分支就是master的直接去clone就可以了
1[root@lab8106 ~]# git clone https://github.com/ceph/ceph.git
检查是否是master分支123[root@lab8106 ~]# cd ceph[root@lab8106 ceph]# git branch ...
暂未分类
未读前言之前有写过一篇删除OSD的正确方式,里面只是简单的讲了下删除的方式怎样能减少迁移量,本篇属于一个扩展,讲述了 Ceph 运维当中经常出现的坏盘提换盘的步骤的优化
基础环境两台主机每台主机8个 OSD,一共 16 个 OSD,副本设置为2,PG 数设置为800,计算下来平均每个 OSD 上的 P G数目为100个,本篇将通过数据来分析不同的处理方法的差别
开始测试前先把环境设置为 noout,然后通过停止 OSD 来模拟 OSD 出现了异常,之后进行不同处理方法
测试三种方法首先 out 一个 OSD,然后剔除 OSD,然后增加 OSD
停止指定 OSD 进程
out 指定 OSD
crush remove 指定 OSD
增加一个新的 OSD
一般生产环境会设置为 noout,当然不设置也可以,那就交给程序去控制节点的 out,默认是在进程停止后的五分钟,总之这个地方如果有 out 触发,不管是人为触发,还是自动触发数据流是一定的,我们这里为了便于测试,使用的是人为触发,上面提到的预制环境就是设置的 noout
开始测试前获取最原始的分布
1[root@lab8106 ~]# ...
前言本篇介绍了centos7下jewel版本的radosgw配置,这里的配置是指将服务能够正常起来,不涉及到S3的配置,以及其他的更多的配置,radosgw后面的gw就是gateway的意思,也就是我们说的网关的意思,本篇中所提及的实例也就是网关的意思,说实例是将每个单独的网关更细化一点的说法
很多人不清楚在centos7下面怎么去控制这个radosgw网关的服务的控制,这个地方是会去读取配置文件的,所以配置文件得写正确
预备环境一个完整的集群拥有一个正常的集群是需要提前准备好的,ceph -s检查正确的输出
关闭各种auth这个地方也可以不关闭,注意配置好用户认证就可以了,这里关闭了,配置起来方便,我是从来不开的,也避免了新手不会配置用户造成认证的各种异常关闭认证就是在ceph.conf里面添加下面字段
123auth_cluster_required = noneauth_service_required = noneauth_client_required = none
安装ceph-radosgw的包这个因为默认不会安装,所以要安装好
1yum install ceph-ra ...
前言ceph的rbd一直有个问题就是无法清楚的知道这个分配的空间里面到底使用了多少,这个在Jewel里面提供了一个新的接口去查询,对于老版本来说可能同样有这个需求,本篇将详细介绍如何解决这个问题
查询的各种方法目前已知的有三种方法
1、使用rbd du查询(Jewel才支持)
2、使用rbd diff
3、根据对象统计的方法进行统计
详细介绍
方法一:使用rbd du查询这个参考我之前的文章:查询rbd的使用容量
方法二:使用rbd diff12[root@lab8106 ~]# rbd diff rbd/zp | awk '{ SUM += $2 } END { print SUM/1024/1024 " MB" }'828.844 MB
方法三:根据对象统计的方法进行统计这个是本篇着重介绍的一点,在集群非常大的时候,再去按上面的一个个的查询,需要花很长的时间,并且需要时不时的跟集群进行交互,这里采用的方法是把统计数据一次获取下来,然后进行数据的统计分析,从而获取结果,获取的粒度是以存储池为基准的
...
前言copyset运用好能带来什么好处
降低故障情况下的数据丢失概率(增加可用性)
降低资源占用,从而降低负载
copyset的概念首先我们要理解copyset的概念,用通俗的话说就是,包含一个数据的所有副本的节点,也就是一个copyset损坏的情况下,数据就是全丢的如上图所示,这里的copyset就是:{1,5,6},{2,6,8} 两组
如果不做特殊的设置,那么基本上就是会随机的去分布
最大copyset如上图的所示,一般来说,最终组合将是一个最大的随机组合,比如这样的一个9个node随机组合3个的,这样的组合数有:从 n个元素中取出 k个元素, k个元素的组合数量为:9个随机3个的组合为84如果3个节点down掉,那么有数据丢失概率就是100%
最小copyset如果存在一种情况,分布是这样的那么copyset为{1,5,7},{2,4,9},{3,6,8}如果3个节点down掉,只有正好是上面的3种组合中的一种出现的时候,才会出现数据丢失那么数据丢失的概率为 3/84
最小copyset可能带来的不好的地方
真出现丢失的时候(概率极低),丢失的数据量将是最大化 ...
暂未分类
未读前言每一次做ftp的配置都要弄半天,找文档,各种权限控制的坑,折腾半天,这次还是准备记录下来,以备不时之需,这里不配置什么高级的功能,就去实现一个最简单的配置
匿名用户的上传和下载
配置proftp过程 配置过程尽量少的动原配置文件,需要共享的为/share/a目录,首先修改默认的目录
1DefaultRoot ~ !adm
修改为:
1DefaultRoot /share
让默认的根目录为 /share,默认的为用户的根目录,匿名用户对应的ftp用户的根目录
修改匿名用户的目录
1<Anonymous ~ftp>
修改为
1<Anonymous /share>
修改原匿名用户ftp的用户目录为/share
修改默认屏蔽权限WRITE
123<Limit WRITE SITE_CHMOD> DenyAll</Limit>
改成
123<Limit SITE_CHMOD> DenyAll</Li ...