自建yum源解决Ceph搭建过程中从官网取包慢的问题
最近项目组需要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搭建过程中从官网取包慢的问题的更多相关文章
- 自建yum源及分组安装
最近在研究一套自动化运维方向的框架,在想到远程安装软件包的时候,觉得有yum支持会更方便一些.主要思路是把程序员写的代码或程序打包成rpm,然后提交到自建yum源,并实现按组安装,本地yum源实现步骤 ...
- ELK搭建过程中出现的问题与解决方法汇总
搭建过程中出现的问题 elasticsearch启动过程中报错[1] ERROR: [1] bootstrap checks failed [1]: the default discovery set ...
- Hadoop完全分布式搭建过程中遇到的问题小结
前一段时间,终于抽出了点时间,在自己本地机器上尝试搭建完全分布式Hadoop集群环境,也是借助网络上虾皮的Hadoop开发指南系列书籍一步步搭建起来的,在这里仅代表hadoop初学者向虾皮表示衷心的感 ...
- 解决SQL订阅过程中找不到已经创建的订阅
原文:解决SQL订阅过程中找不到已经创建的订阅 之前有写过一篇博客,主要是图解SQL复制技术:图解SQL 2008数据库复制,当时的测试环境是在我本地同一个服务器上面,所以测试的时候可谓是一帆风顺,最 ...
- 自建YUM源以及相关维护
yum相关概念我这里就不做详细的讲解了,就是一个软件包管理工具.在企业中,很多时候进行编译了自己的RPM包,在搭建YUM的时候,希望将自定义的RPM加入到YUM源中,从而出现了下列方法. 一.配置私有 ...
- mongodb副本集搭建过程中的问题和解决技巧
在我以往的认知中,一个系统一旦正式上线,多半不会轻易的迁移服务器,尤其是那种涉及到多个关联应用,涉及到多台硬件服务器的系统,因为这种迁移将是牵一发而动全身的. 但是,却仍然有这种情况存在,就如我这几天 ...
- CentOS7系统局域网内配置本地yum源解决cannot find a valid baseurl for repo
一. 问题详情 因为服务器无法连接外网,所有直接用yum安装某些功能将受到影响,报错如下: Error: Cannot find a valid baseurl for repo: base ...
- 自建 yum 源
生产环境需要大规模的安装部署rpm包,每次安装,更新,都需要上传,安装,比较麻烦,可以在生产环境中自建一个yum源. 1.http安装 yum -y install httpd systemctl s ...
- 关于自建yum源拾遗
yum参数解释[updates]--->源name=CentOS-$releasever - Updates --->源的名字baseurl=http://mirror.centos.or ...
随机推荐
- File操作-将txt里的内容写入到数据库表
package com.Cristin.File;//将txt里的内容写入到数据库表 import com.Cristin.MySQL.AddDataToDB;import org.testng.an ...
- 项目Alpha冲刺——代码规范、冲刺任务与计划
作业要求 这个作业属于哪个课程 软件工程1916-W(福州大学) 这个作业要求在哪里 项目Alpha冲刺 团队名称 基于云的胜利冲锋队 项目名称 云评:高校学生成绩综合评估及可视化分析平台 这个作业的 ...
- 前端单页面富应用(SPA)的实现
一. 什么是单页面富应用? 单页面应用:Single Page Application 概念:Web应用即使不刷新也在不同的页面间切换,解决浏览器前进.后退等机制被破坏等问题.并且页面访问会被浏览器保 ...
- 【测试工程师面试】面试官热衷询问的N个问题
1. 数据库中左连接右连接的区别 2.JAVA中continue和break的区别 3.Linux中查看某一个进程并且杀死 1.数据库中多表连接,根据不同的表的某一个字段进行关联, 左连接是将左边表全 ...
- link 和 import的区别
二者区别: link属于html标签,而@import是css提供的. 页面被加载时,link因为是HTM标签, 把认会同时被加载,而@import引用的css会等到页面加载结束后加载. link是h ...
- 如何完整卸载Mysql数据库
mysql数据库首次安装失败,后来多次安装均失败,原因就是没有完全卸载mysql数据库 那么如何完整卸载MYSQL数据库呢? 介绍mysql数据库完整卸载的方法 完美卸载MYSQL 在管理工具-服务里 ...
- 关于编码:Unicode/UTF-8/UTF-16/UTF-32
关于编码,绕不开下面这些概念 ①Unicode/UTF-8/UTF-16/UTF-32 ②大小端字节序(big-endian/little-endian) ③BOM(Byte Order Mark) ...
- C# 定时调用方法
private void button1_Click(object sender, EventArgs e) { System.Timers.Timer timer = new System.Time ...
- C语言逗号运算符和逗号表达式基础总结
逗号运算符的作用: 1,起分隔符的作用: 定义变量用于分隔变量:int a,b输入或输出时用于分隔输出表列 printf("%d%d",a,b) 2,用于逗号表达式的顺序运算符 语 ...
- Linux中怎么通过PID号找到对应的进程名及所在目录
有时候通过top命令可以看到有个别进程占用的内存比较大,但是top无法直接查看到进程名以及进程所在的目录.所以我们可以通过以下方法来定位. 首先需要知道PID号,可以通过top命令获取. ps -au ...