最近学校项目组需求,要进行Ceph存储的固化,以便将来存储不会随着其他软件的升级而失效。
参考了ceph官方的文档:http://docs.ceph.org.cn/install/ 在虚拟机上进行小实验。
一、系统安装
虚拟机设置:1G内存,2核,50G硬盘(后面会报错,需要进行更改)
Ubuntu14.04 Server(具体安装,这里不多说了,Ubuntu按照还是很便捷的,我这里基本上都是选择默认选项进行的)
获取Root权限
配置ssh etc/ssh/sshd_config 这个主要是为了使用putty或者SecureCRT进行连接使用的,毕竟虚拟机操作会有点不方便。
然后更新源。
Sudo apt-get update
Sudo apt-get upgrade
之后就开始正式进入ceph固化过程。
二、安装git和克隆ceph源码(参考文档)
1. sudo apt-get install git
2. 克隆源码:git clone --recursive https://github.com/ceph/ceph.git
3. 确保你获取到的源码库之内的各子模块都是最新的,运行 git status 确认
cd ceph
git status
4. 如果你的子模块过时了,运行:(这里建议无论过时还是不过时,都运行一下,以防万一)
git submodule update --force --init --recursive
三、选择分支
克隆完源码和子模块后,你的源码库将默认位于 master 分支上,这是个不稳定开发分支,你也可以切换到其他分支上。
查看远程分支:git branch -a
查看本地分支:git branch
切换分支:git checkout 分支名
通过查看分支会发现有许多ceph分支
这里选择切换到分支rh-jewel:git checkoutrh-jewel (据说比较稳定)
四、构建依赖
安装几个库和工具:./install-deps.sh
五、构建 Ceph
Ceph 用 automake 和 configure 脚本简化构建过程。先进入刚克隆的 Ceph 源码库,执行下列命令开始构建:
cd ceph
./autogen.sh
./configure
make
卡在 CXX osd/libosd_a-ReplicatedPG.o两个小时左右
报错:g++: internal compiler error: Killed。。。。。。
原因:
内存不足,因为第一次配置,配的太快也没多想,只有1G内存。
更改配置。换成内存4G,双核,80G硬盘,编译成功。
编译过程具体几个小时没有计算,因为是睡前开始编译,到第二天编译成功,但5、6个小时肯定是要的。
六、构建 Ceph 安装包
文档中有两种打包方式,根据需求选择,我这里选择第一种APT的方式。
高级打包工具( APT )
创建 .deb 安装包:sudo apt-get installdebhelper
装好 debhelper之后,开始构建安装包:
sudo dpkg-buildpackage
在多核 CPU 上构建时,用参数 -j 、再加上核心数的 2 倍数,例如在双核处理器上用 -j4 来加速构建。
sudo dpkg-buildpackage -j4
打包完成:
打包完成后的虚拟机文件大小:大概50个G左右。
以上是ceph的源码编译打包过程,后续会继续研究如何在固化版本上进行安装ceph。