环境要求
确认具备以下条件:
- CentOS6,可以访问Internet;
- 一个空白的磁盘分区;
- 一个SSH工具(推荐使用Xshell);
- 有root用户的登陆权限;
- 足够多的CPU内核(加速编译的速度)
- 足够多的内存(如果你有16GB内存,就可以在内存中编译Ceph了)
具备以上条件,就可以按照如下步骤在5分钟之内搭建完成一个单节点的Ceph集群了。
准备磁盘空间
这一步我们使用逻辑卷(lvm)进行操作。
1、假设你准备的空闲分区(空闲磁盘也可以)为 :/dev/sda2
2、创建PV:pvcreate /dev/sdb
3、创建VG:vgcreate ceph /dev/sdb
4、创建三个LV,分别用于创建三个osd,每个逻辑卷大小5GB(如果你的分区或磁盘更大,这个可值可以相应增大):
lvcreate -n osd.0 -L 10G ceph
lvcreate -n osd.1 -L 10G ceph
lvcreate -n osd.2 -L 10G ceph
5、创建Ceph集群需要用到的目录:mkdir /data/
编译Ceph
1、Google搜索epel-release-6-8.noarch.rpm,下载到CentOS主机上,使用命令:
rpm -ivh epel-release-6-8.noarch.rpm
完成安装。
该RPM负责安装epel的源,epel源提供许多Ceph需要的包。
2、安装编译Ceph所需的依赖包:
yum install -y autoconf automake make gcc-c++ libtool libedit-devel libatomic_ops-devel snappy-devel leveldb-devel libaio-devel boost-devel gperftools-devel cryptopp-devel fuse-devel libuuid-devel keyutils-libs-devel python-argparse
3、从http://ceph.com/resources/downloads/下载ceph-0.72.2.tar.gz源码包,上传到CentOS主机上的 /root/目录下。
4、使用命令:tar -zxvf ceph-0.72.tar.gz 解包代码后,cd ceph-0.72.2。
5、执行 ./autogen.sh
6、执行./configure --with-debug
7、执行make 完成代码编译,如果你有更多的CPU,可以这样:make -j24 提高编译的并行度。
8、执行 make install完成安装。
搭建Ceph集群
1、查询你的主机名(命令:hostname)、IP地址(命令:ifconfig),并配置主机名与IP地址的映射关系到/etc/hosts文件中。
这里举例主机名为:ceph-one,IP地址为:192.168.0.2
配置/etc/hosts文件的命令如下:echo “192.168.0.2 ceph-one” >>/etc/hosts
2、编辑你的ceph配置文件,配置文件路径为:/etc/ceph/ceph.conf
文件内容如下:
[global]
auth supported = none
max open files = 131072
log file = /var/log/ceph/$name.log
pid file = /var/run/ceph/$name.pid
[mon]
mon data = /data/$name
[mon.0]
host = ceph-one
mon addr = 192.168.0.2:6789
[mds]
[mds.0]
host = ceph-one
[osd]
osd data = /data/$name
osd journal = /data/$name/journal
osd journal size = 1000
osd mkfs type = xfs
devs = /dev/ceph/$name
osd crush update on start = 0
[osd.0]
host = ceph-one
[osd.1]
host = ceph-one
[osd.2]
host = ceph-one
3、执行 cd /root/ceph-0.72.2/src/
4、开始做集群,命令:./mkcephfs -a -c /etc/ceph/ceph.conf --mkfs
5、启动集群,命令:./init-ceph -a start
6、观测集群的状态,命令:watch ./ceph -s 2>/dev/null
集群很快会达到如下的稳态:
cluster b97e0d2a-4ac9-430d-b167-4be9d107cb4c
health HEALTH_OK
monmap e1: 1 mons at {0=192.168.0.2:6789/0}, election epoch 2, quorum 0 0
mdsmap e4: 1/1/1 up {0=0=up:active}
osdmap e4: 3 osds: 3 up, 3 in
pgmap v11: 768 pgs, 3 pools, 9470 bytes data, 21 objects
3111 MB used, 12218 MB / 15330 MB avail
768 active+clean
挂载Ceph文件系统
只要是和你的CentOS主机在同一个局域网的机器(包括本机)都可以安装ceph-fuse后按照如下步骤访问Ceph文件系统。
1、先准备好一个空的挂载目录:mkdir /mnt/ceph
2、挂载Ceph文件系统:ceph-fuse -c /etc/ceph/ceph.conf /mnt/ceph
3、挂载完成后执行命令:mount,检测是否有ceph挂载点。
4、然后就可以享受Ceph啦。
[global]
auth supported = none
ax open files = 131072
log file = /var/log/ceph/$name.log
pid file = /var/run/ceph/$name.pid
osd pool default size = 2
osd pool default min_size = 1
osd pool default pg num = 100
osd pool default pgp num = 100
[mon]
mon data = /data/$name
[mon.0]
host = ceph1
mon addr = 192.168.122.1:6789
;[mds]
;[mds.0]
;host = ceph1
[osd]
osd data = /data/$name
osd journal = /data/$name/journal
osd journal size = 1000
osd mkfs type = xfs
devs = /dev/ceph/$name
osd crush update on start = 0
[osd.0]
host = ceph1
[osd.1]
host = ceph2
[osd.2]
host = ceph3
;[osd.3]
; host = ceph-one
;[osd.4]
; host = ceph-one
;[osd.5]
; host = ceph-one
;[osd.6]
; host = ceph-one
;[osd.7]
; host = ceph-one
;[osd.8]
; host = ceph-one
;[osd.9]
; host = ceph-one