CentOS 5.5 上安装 Ceph

为了实验的简单性,本实验就是在一台虚拟的CentOS-5.5 i386上进行。 

准备:

centos5.5 下yum库扩展工具链接:

ftp://ftp.univie.ac.at/systems/linux/dag/RedHat/el5/en/x86_64/dag/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

ftp://ftp.univie.ac.at/systems/linux/dag/redhat/el5/en/i386/dag/RPMS/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

 

# yum install rpm-build fuse-devel libtool libtool-ltdl-devel boost-devel libedit-devel git

openssl-devel gcc-c++ btrfs-progs

 


步骤1、因为光盘上的内核版本不是最新,所有第一步就是编译内核,本实验选择的是2.6.37。

# make mrproper && # make menuconfig 认真查找将与btrfs和Ceph相关的选项多选择上,保存退出

# make bzImage && # make modules && # make modules_install && # make install

(注意其中会出现两个错误,请参照本博客的另外两篇博文)

 

步骤2、安装btrfs和创建btrfs文件系统

下载源码包:btrfs-progs-0.19.tar.gz ,注意步骤1中我们已经将btrfs编入内核,就无需源码包btrfs-0.xx。

tar -zxvf XXXX && make && make install

可以实验一下: fdisk /dev/sdb ...&& mkdir /mnt/btrfs && mkfs.btrfs /dev/sdb1

&& mount -t btrfs /dev/sdb1 /mnt/sdb1 && df 一下就能看到结果 ,记得umount掉。

 

步骤3、安装ceph

进入源码包ceph-0.24 , ./autogen && ./configure && make &&make install

在这个过程中会出现一些问题

(1)要求安装libcrypto++:下载源码包cryptopp561.zip,&& mkdir cryptopp561 &&cd &&unzip ../cryptopp561.zip && vim GNUmakefile ,CXXFLAGS += -fPIC && make

&& make libcryptopp.so && make install

(2)要求安装libedit:因为本系统是i386系列,

rpm -Uvh

rpm -Uvh

 

步骤4、

 

# mkcephfs -c /usr/local/etc/ceph/ceph.conf --allhosts --mkbtrfs -k /etc/ceph/keyring.bin

# mkcephfs -c /etc/ceph/ceph.conf --allhosts --mkbtrfs -k /etc/ceph/keyring.bin

这两条命令有点混。

# /etc/init.d/ceph -a start

 

步骤5、ceph挂载,出现了问题:

# mount -t ceph 10.65.1.86:/ /mnt/ceph

mount: wrong fs type, bad option, bad superblock on 10.65.1.87:/,

missing codepage or other error

In some cases useful info is found in syslog - try

dmesg | tail or so

 

查看错误:

[root@ceph86 src]# dmesg | tail

libceph: no secret set (for auth_x protocol)

libceph: error -22 on auth protocol 2 init

问题解决了

ceph-0.24卸载掉后,重装最新的ceph-0.25.1即可。

 

附录1 修改hostname

这里主要涉及 /etc/sysconfig/network文件, hostname命令, /etc/hosts文件

附录2 无需密码ssh访问

原理就是公私钥机制,我要向让别人访问我,那么就要把自己的公钥发给别人,这样他就可以凭该公钥来访问我了.

$ ssh-keygen –d
#该命令会在~/.ssh下面生成几个文件,这里有用的是id_dsa.pub,为该节点(甲)的公钥,然后把里面的内容添加到对方节点(乙)
#~/.ssh/目录下的authorized_keys文件中,如果没有则创建一个,这样就从乙节点不需要密码ssh登陆到甲上了.

 

 

附录3 请记住一定要关闭 selinux

setenforce 0

vim /etc/sysconfig/selinux

不然在客户端对新加进来的设备操作,会出现错误:XXXXXPermission denied

为了排除干扰:servcie iptabes stop

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/fd25109fb0efcf66c243d7e66ec127b1.html