ceph安装配置说明
一、环境说明:
注:在配置系统环境时,需要指定各结点的机器名,关闭iptables、关闭selinux(重要)。
相关软件包:
ceph-0.61.2.tar.tar
libedit0-3.0-1.20090722cvs.el6.x86_64.rpm
libedit-devel-3.0-1.20090722cvs.el6.x86_64.rpm
snappy-1.0.5-1.el6.rf.x86_64.rpm
snappy-devel-1.0.5-1.el6.rf.x86_64.rpm
leveldb-1.7.0-2.el6.x86_64.rpm
leveldb-devel-1.7.0-2.el6.x86_64.rpm
btrfs-progs-0.19.11.tar.bz2
$src为安装包存放目录
二、内核编译及配置:
cp /boot/config-2.6.32-279.el6.x86_64 /usr/src/linux-2.6.34.2/.config make menuconfig #选择把ceph编译成模块和加载btrfs文件系统
make all #若是多核处理器,则可以使用make -j8命令,以多线程方式加速构建内核makemodules_install
make install
修改/etc/grub.conf文件,把新编译的linux-2.6.34.2版本内核做为默认启动内核。
三、Ceph安装配置:
先安装相关依赖包:
rpm -ivh libedit0-3.0-1.20090722cvs.el6.x86_64.rpm --force
rpm -ivh libedit-devel-3.0-1.20090722cvs.el6.x86_64.rpm
rpm -ivh snappy-1.0.5-1.el6.rf.x86_64.rpm
rpm -ivh snappy-devel-1.0.5-1.el6.rf.x86_64.rpm
rpm -ivh leveldb-1.7.0-2.el6.x86_64.rpm
rpm -ivh leveldb-devel-1.7.0-2.el6.x86_64.rpm
编译安装ceph:
./autogen.sh
./configure --without-tcmalloc --without-libatomic-ops
make
make install
配置ceph:
cp $src/ceph-0.61.2/src/sample.ceph.conf /usr/local/etc/ceph/ceph.conf
cp $src/ceph-0.61.2/src/init-ceph /etc/init.d/ceph
mkdir /var/log/ceph #建立存放ceph日志目录。
修改ceph配置文件,除客户端外,其它的节点都需一个配置文件ceph.conf,并需要是完全一样的。
这个文件要位于/etc/ceph下面,如果在./configure时没有修改prefix的话,则应该是在/usr/local/etc/ceph下:
vimceph.conf
[global]
max open files = 131072
log file = /var/log/ceph/$name.log
pid file = /var/run/ceph/$name.pid
keyring = /etc/ceph/keyring.admin
auth supported = none #取消挂载时的认证
auth cluster required = none #取消挂载时的认证
auth service required = none #取消挂载时的认证
auth client required = none #取消挂载时的认证
[mon]
mon data = /data/$name
[mon.0]
host = mm
monaddr = 1.1.1.12:6789
[mds]
keyring = /data/keyring.$name
[mds.0]
host = mm
[osd]
osd data = /data/$name
osd journal = /data/$name/journal
osd journal size = 1000 ; journal size, in megabytes
keyring = /data/keyring.$name
osdmkfs type = btrfs
osd mount options btrfs = rw,noatime
; working with ext4
;filestorexattr use omap = true
; solve rbd data corruption
;filestorefiemap = false
[osd.0]
host = osd0
devs = /dev/sda5
[osd.1]
host = osd1
devs = /dev/sda5
注:配置时加入取消挂载时的认证,否则启动ceph时会提示“ERROR: missing keyring, cannot use cephx for authentication”的错误。
Ceph有两种认证模式:一种是none模式,允许任意用户不需要认证就可访问数据;另一种是cephx模式,ceph需要类似于kerberos的用户认证。
对象存储结点(osd)上,除了要加载btrfs模块,还要安装btrfs-progs,这样才有mkfs.btrfs 命令。
另外就是要在osd节点上创建分区或逻辑卷供ceph使用:可以是磁盘分区(如
/dev/sda2),也可以是逻辑卷(如/dev/mapper/VolGroup-lv_ceph),只要与配置文件ceph.conf中写的一致即可。
修改各节点的hostname,使能够通过hostname来互相访问,并且各节点能够ssh互相访问而不输入密码。
建立配置文件中指定的相关结点目录:
mkdir /etc/ceph #元数据结点和对象存储结点建立
mkdir -p /data/mon.0 #元数据结点建立
mkdir–p /data/osd.0 #元数据结点和对象存储结点建立
mkdir–p /data/osd.1 #元数据结点和对象存储结点建立
osd结点上格式化分区并挂载:
mkfs.btrfs /dev/sda5
mount /dev/sda5 /data/osd.0 #osd0
mount /dev/sda5 /data/osd.1 #osd1
拷贝配置文件到各结点:
scp /usr/local/etc/ceph/ceph.conf root@osd0:/usr/local/etc/ceph/ceph.conf
scp /usr/local/etc/ceph/ceph.conf root@osd0:/etc/ceph/ceph.conf
scp /usr/local/etc/ceph/ceph.conf root@osd1:/usr/local/etc/ceph/ceph.conf
scp /usr/local/etc/ceph/ceph.conf root@osd1:/etc/ceph/ceph.conf
创建ceph文件系统:
元数据结点执行:
mkcephfs -a -c /usr/local/etc/ceph/ceph.conf -k /etc/ceph/keyring.admin
启动ceph并查看ceph状态:
/etc/init.d/ceph–a start
health HEALTH_OK
monmap e1: 1 mons at {0=1.1.1.12:6789/0}, election epoch 2, quorum 0 0
osdmap e5: 2 osds: 2 up, 2 in
pgmap v21: 576 pgs: 576 active+clean; 9518 bytes data, 2010 MB used, 99930 MB / 103 GB avail mdsmap e4: 1/1/1 up {0=0=up:active}
客户端挂载:
客户端安装完ceph后使用命令挂载分区:
mount.cephmm:/ /mnt/ceph
四、总结:
ceph是对象存贮,文件服务是通过cephfs转换完成的,但此部件稳定性不佳,查阅资料表明不建议使用,只能用于实验与研究环境。
但是ceph block storage相对较稳定,可以用于生产系统。