最近项目组需要ceph环境,第一次搭建ceph,各种不顺,装了卸,卸了装,一遍又一遍地按照官网的操作进行。最气人的是网速差,从官网取包太慢。一轮尝试就浪费一上午。

因此想到本地新建yum源。

首先,按照官网http://docs.ceph.com/docs/master/start/搭建,(自恃高明的开发人员肯定是把防火墙全部关掉,搭建环境一律用root用户,暂且不提)

当走到STEP 2: STORAGE CLUSTER中

“ceph-deploy install node1 node2 node3”命令的时候就非常慢了,甚至还会报错,

不过网上有大神说直接:yum -y install ceph ceph-radosgw(回头想想,确实没有问题,问题是还是不够快)。

安装完成node1之后,用ceph --version查看,原来centos7上官网给适配的是“10.2.9”的版本。

二话不说,下载“10.2.9”版本的源码http://download.ceph.com/tarballs/ceph-10.2.9.tar.gz,安装各种编译命令。

[root@lh ceph-10.2.9]#yum install -y make automake autoconf boost-devel fuse-devel gcc-c++ libtool libuuid-devel libblkid-devel keyutils-libs-devel cryptopp-devel fcgi-devel libcurl-devel expat-devel gperftools-devel libedit-devel libatomic_ops-devel snappy-devel leveldb-devel libaio-devel xfsprogs-devel git libudev-devel libcrypto++-dev libcrypto++-utils

然后解压包:

[root@lh ceph-10.2.9]#tar -zxvf ceph-10.2.9.tar.gz
[root@lh ceph-10.2.9]#cd ceph-10.2.9

修改spec文件

[root@lh ceph-10.2.9]# vim ceph.spec
#%if %{with lowmem_builder}
#%if 0%{?jobs} > 8
#%define _smp_mflags -j8
#%endif
#%endif
%define _smp_mflags -j24

 找到这几行代码注释掉,并在此处添加红色部分的代码。其中-24j表示用24个cpu超线程编译。这要看你的cpu是几核的,可以用top 1查看。

还有把source0:改为源码包所在的路径。

开始编译rpm包

[root@lh ceph-10.2.9]rpmbuild -bb ceph.spec

用top 1查看时,看到它居然真的把所有核都跑成了100%,持续20多分钟,rpm包就在“~/rpmbuild/RPMS/x86_64”目录下。

此时生成yum源

[root@lh ceph-10.2.9]yum install createrepo
[root@lh ceph-10.2.9]cd ~/rpmbuild/RPMS/x86_64
[root@lh ceph-10.2.9]createrepo .

然后布一个nginx,指向这个rpm包的目录,添加“autoindex on;”配置项,这就是一个完美的yum源了。

在ceph的部署节点中修改ceph的yum源,把红色的部分baseurl配置成nginx的访问地址,nginx的root配置为"~/rpmbuild/RPMS/",红色部分gpgcheck=0禁止掉校验。

[root@lh ceph-10.2.9]vim /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=http://192.168.0.2:8022/$basearch
enabled=
gpgcheck=0
type=rpm-md
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
priority=

然后yum update后,再按照官网的做法做,一切都很顺利。耗时也少了。

当然最后折腾了好几遍,主要问题不在于安装,在于配置和部署。之前不成功是因为只布了1个osd,建的pool size大于1,导致不成功,说多了都是泪。

  

自建yum源解决Ceph搭建过程中从官网取包慢的问题的更多相关文章

  1. 自建yum源及分组安装

    最近在研究一套自动化运维方向的框架,在想到远程安装软件包的时候,觉得有yum支持会更方便一些.主要思路是把程序员写的代码或程序打包成rpm,然后提交到自建yum源,并实现按组安装,本地yum源实现步骤 ...

  2. ELK搭建过程中出现的问题与解决方法汇总

    搭建过程中出现的问题 elasticsearch启动过程中报错[1] ERROR: [1] bootstrap checks failed [1]: the default discovery set ...

  3. Hadoop完全分布式搭建过程中遇到的问题小结

    前一段时间,终于抽出了点时间,在自己本地机器上尝试搭建完全分布式Hadoop集群环境,也是借助网络上虾皮的Hadoop开发指南系列书籍一步步搭建起来的,在这里仅代表hadoop初学者向虾皮表示衷心的感 ...

  4. 解决SQL订阅过程中找不到已经创建的订阅

    原文:解决SQL订阅过程中找不到已经创建的订阅 之前有写过一篇博客,主要是图解SQL复制技术:图解SQL 2008数据库复制,当时的测试环境是在我本地同一个服务器上面,所以测试的时候可谓是一帆风顺,最 ...

  5. 自建YUM源以及相关维护

    yum相关概念我这里就不做详细的讲解了,就是一个软件包管理工具.在企业中,很多时候进行编译了自己的RPM包,在搭建YUM的时候,希望将自定义的RPM加入到YUM源中,从而出现了下列方法. 一.配置私有 ...

  6. mongodb副本集搭建过程中的问题和解决技巧

    在我以往的认知中,一个系统一旦正式上线,多半不会轻易的迁移服务器,尤其是那种涉及到多个关联应用,涉及到多台硬件服务器的系统,因为这种迁移将是牵一发而动全身的. 但是,却仍然有这种情况存在,就如我这几天 ...

  7. CentOS7系统局域网内配置本地yum源解决cannot find a valid baseurl for repo

    一.     问题详情 因为服务器无法连接外网,所有直接用yum安装某些功能将受到影响,报错如下: Error: Cannot find a valid baseurl for repo: base ...

  8. 自建 yum 源

    生产环境需要大规模的安装部署rpm包,每次安装,更新,都需要上传,安装,比较麻烦,可以在生产环境中自建一个yum源. 1.http安装 yum -y install httpd systemctl s ...

  9. 关于自建yum源拾遗

    yum参数解释[updates]--->源name=CentOS-$releasever - Updates --->源的名字baseurl=http://mirror.centos.or ...

随机推荐

  1. Linux let 命令

    命令:let let 命令是 BASH 中用于计算的工具,用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量.如果表达式中包含了空格或其他特殊字符,则必须引起来. 语法格式 let arg ...

  2. _event_active

    EventId 事件ID GUID 对应creature或gameobject表中 guid,正数为生物,负数为物体 ActiveFlag 生物或物体激活时的flag,通常为0 NoticeText ...

  3. python测试框架&&数据生成&&工具最全资源汇总

    xUnit frameworks 单元测试框架frameworks 框架unittest - python自带的单元测试库,开箱即用unittest2 - 加强版的单元测试框架,适用于Python 2 ...

  4. SpringBoot整合+logback日志配置

    本次演示的代码结构如下,基于maven,整合SpringBoot.Spring.Mybaits的SSM框架.同时测试logback日志框架的使用及配置. 1.创建maven工程,修改pom.xml文件 ...

  5. python+unittet在linux与windows使用的区别

    使用python的unittest编写单元测试框架,批量运行测试用例时,如果使用discover时,windows环境下和linux环境下的代码不一样 Windows环境的run.py代码: case ...

  6. vue2总结

    1.ref可跨页面取.vue文件的所有内容: <!--echart图自定义公用模板--> <echar-tem ref="echar"> </echa ...

  7. react点滴

    1.<SubSubComp {...this.props } /> 传递属性,{...props}的方式为组件传递了这两个属性,这就是JSX中的延展属性,"..."成为 ...

  8. C#清除HTML样式

    C#清除HTML样式 需求说明: 网站开发时我们经常用一个富文本控件让用户自己编辑新闻内容和新闻格式,然后将HTML代码一并保存到数据库中. 然后显示文章列表的时候只需要显示一个文章摘要,所以我们就计 ...

  9. jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第三话):创建一个自由风格的项目(非maven),实现自动打war包

    上一节把git和ant安装在虚拟机,并在jenkins上做了相关配置,接下来就可以真正开始构建一个项目了 1.新建一个自由风格的项目,因为是用ant打包,所以不要选择构建maven项目 2.配置源码管 ...

  10. makefile 里的 := , = , +=

    := 是在这行代码的时候,直接展开右边的变量. = 是在最终左边变量被使用的时候,才把右边的变量展开. https://stackoverflow.com/questions/10227598/wha ...