环境要求
确认具备以下条件:
- 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 = nonemax open files = 131072log file = /var/log/ceph/$name.logpid file = /var/run/ceph/$name.pid[mon]mon data = /data/$name[mon.0]host = ceph-onemon addr = 192.168.0.2:6789[mds][mds.0]host = ceph-one[osd]osd data = /data/$nameosd journal = /data/$name/journalosd journal size = 1000osd mkfs type = xfsdevs = /dev/ceph/$nameosd crush update on start = 0[osd.0]host = ceph-one[osd.1]host = ceph-one[osd.2]host = ceph-one3、执行 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_OKmonmap e1: 1 mons at {0=192.168.0.2:6789/0}, election epoch 2, quorum 0 0mdsmap e4: 1/1/1 up {0=0=up:active}osdmap e4: 3 osds: 3 up, 3 inpgmap v11: 768 pgs, 3 pools, 9470 bytes data, 21 objects3111 MB used, 12218 MB / 15330 MB avail768 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