暂未分类
未读前言对于IPV6实在是非常的陌生,所以本篇开始会讲一下最基本的网络配置,首先让网络能通起来,最开始就是因为不熟悉IPV6,而直接使用了link local地址,造成了mon部署的时候进程无法绑定到IP,从而端口没有启动,这个是在ceph社区群友 ceph-长沙-柠檬 同学的帮助下才发现问题的
IPV6是会有个link local地址的,在一个接口可以配置很多IPv6地址,所以学习路由就有可能出现很多下一跳。所以出现Link Local地址唯一标识一个节点。在本地链路看到下一跳都是对端的Link Local地址。这个地址一般是以fe80开头的,子网掩码为64,这个地方需要给机器配置一个唯一的全局单播地址
However, with IPv6, all (IPv6) interfaces will have a link local address. This address is intended to allow communications over the attached links and so is defined to be usable only on that li ...
前言之前跟一个朋友沟通一个其他的问题的时候,发现了有一个参数 mon osd down out subtree limit 一直没有接触到,看了一下这个参数还是很有作用的,本篇将讲述这个参数的作用和使用的场景
测试环境准备首先配置一个集群环境,配置基本参数
1mon_osd_down_out_interval = 20
调整这个参数为20s,默认为300s,默认一个osd,down超过300s就会标记为out,然后触发迁移,这个是为了方便尽快看到测试的效果,很多测试都是可以这样缩短测试周期的
本次测试关心的是这个参数 mon osd down out subtree limit参数,那么这个参数做什么用的,我们来看看
12[root@lab8106 ceph]# ceph --show-config|grep mon_osd_down_out_subtree_limitmon_osd_down_out_subtree_limit = rack
首先解释下这个参数是做什么的,这个是控制标记为out的最小子树(bucket),默认的这个为rack,这个可能我们平时感知不到这个有什么作用,大 ...
前言这里有个条件,系统环境是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
方法三:根据对象统计的方法进行统计这个是本篇着重介绍的一点,在集群非常大的时候,再去按上面的一个个的查询,需要花很长的时间,并且需要时不时的跟集群进行交互,这里采用的方法是把统计数据一次获取下来,然后进行数据的统计分析,从而获取结果,获取的粒度是以存储池为基准的
...