10分钟从源码编译到部署ceph环境

来源:互联网 发布:鲁西南大数据 编辑:程序博客网 时间:2024/06/07 11:29

最近开始学习ceph相关的技术,在读了一些理论知识后,急切的需要一个环境来实践一下。看了一下官网的安装部署教程,感觉不是很清楚,特别是从源码开始搭建环境。所以这里我整理一个5分钟的教程,希望对大家能有帮助。

OS环境:UOS平台上创建的一个基于centos6.6的虚机,并挂载上一块400G的云盘,这里为了避免sudo,所以直接用root用户创建的,大家在部署生产环境的时候切记不要用root。

1. 从github中下载ceph官方维护的源码:

#git clone https://github.com/ceph/ceph.git

2. configure、make 以及make install

源码下载完成后,cd到源码根目录

#./install-deps  //安装一些依赖的包#./autogen.sh#./configure --prefix=/usr/  //这里如果不配置--prefix选项,所有程序默认安装在/usr/local下面,在后面可能会涉及到路径的问题#make; make install

3. 设置PYTHONPATH环境变量,来避免因为python引起的问题

#echo "export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.6/site-packages" >> ~/.bash_profile#source ~/.bash_profile
4. 格式化磁盘并未ceph创建相应的分区

# parted /dev/vdcGNU Parted 2.4Using /dev/vdcWelcome to GNU Parted! Type 'help' to view a list of commands.(parted) mklabel gptWarning: The existing disk label on /dev/vdc will be destroyed and all data on this disk will be lost. Do you want tocontinue?Yes/No? Yes(parted) mkpart primary xfs 40G 400G <-------你可以根据自己的需要创建分区,这里这么设置是因为规避一个分区大小和扇区不对齐的问题(parted) quitInformation: You may need to update /etc/fstab.
使用lvm在磁盘上创建7个逻辑卷,3个为osd,3个为osd对应的journal,1个为mon

# pvcreate /dev/vdc1# vgcreate ceph /dev/vdc1# lvcreate -n osd.0 -L 100G ceph# lvcreate -n osd.1 -L 100G ceph# lvcreate -n osd.2 -L 100G ceph# lvcreate -n osd.0-journal -L 2G# lvcreate -n osd.1-journal -L 2G# lvcreate -n osd.2-journal -L 2G# lvcreate -n mon.0 -L 20G ceph
5. 创建ceph的配置文件/etc/ceph/ceph.conf,并加入一下内容:
[mon]    mon data = /data/$name[mon.0]    host = cephenv    mon addr = 192.168.0.10:6789[osd]    osd mkfs type = xfs    devs = /dev/ceph/$name    osd journal = /dev/ceph/$name-journal    osd data = /data/$name    host = cephenv[osd.0][osd.1][osd.2][mds][mds.a]    host = cephenv
6. 使用mkcephfs来部署ceph环境,当然现在官方推荐使用ceph-deploy来部署,有兴趣的可以使用。

# mkcephfs -a -c /etc/ceph/ceph.conf --mkfs# ceph/src/init-ceph -a -c /etc/ceph/ceph.conf start mon# ceph/src/init-ceph -a -c /etc/ceph/ceph.conf start mds# ceph/src/init-ceph -a -c /etc/ceph/ceph.conf start osd
如果通过ps -ef能看到osd,mds,mon对应的进程,说明服务启动正常
# ps -ef|grep osdroot      2752     1  1 19:20 ?        00:01:18 ./ceph-osd -i 0 --pid-file /var/run/ceph/osd.0.pid -c /etc/ceph/ceph.conf --cluster cephroot      2921     1  1 19:20 ?        00:00:47 ./ceph-osd -i 1 --pid-file /var/run/ceph/osd.1.pid -c /etc/ceph/ceph.conf --cluster cephroot      3262     1  1 19:20 ?        00:00:55 ./ceph-osd -i 2 --pid-file /var/run/ceph/osd.2.pid -c /etc/ceph/ceph.conf --cluster ceph# ps -ef|grep mondbus       929     1  0 19:11 ?        00:00:00 dbus-daemon --systemroot      1107     1  0 19:12 ?        00:00:00 /usr/bin/qemu-ga --daemonizeroot      2260     1  0 19:17 pts/0    00:00:03 ./ceph-mon -i 0 --pid-file /var/run/ceph/mon.0.pid -c /etc/ceph/ceph.conf --cluster ceph# ps -ef|grep mdsroot      5310     1  0 19:44 ?        00:00:01 /usr/local/bin/ceph-mds -i a --pid-file /var/run/ceph/mds.a.pid -c /etc/ceph/ceph.conf --cluster ceph
如果发现哪个没起来,比如mon,可以手工执行如下命令启动:
# ceph/src/ceph-mon -i 0 --pid-file /var/run/ceph/mon.0.pid -c /etc/ceph/ceph.conf --cluster ceph
7. 使用ceph命令检查环境状态
[root@cephenv cephfs]# ceph -s    cluster 530ed8ff-c965-4830-8636-77861e38a2cd     health HEALTH_OK     monmap e1: 1 mons at {0=192.168.0.10:6789/0}            election epoch 2, quorum 0 0     mdsmap e5: 1/1/1 up {0=a=up:active}     osdmap e13: 3 osds: 3 up, 3 in      pgmap v295: 756 pgs, 5 pools, 9895 MB data, 2494 objects            10095 MB used, 289 GB / 299 GB avail                 756 active+clean
8. 创建一个cephfs,并使用ceph-fuse将其mount到某个目录
默认情况下, ceph环境搭建好后,只有一个rbd的pool,而cephfs至少需要额外创建两个pool
# ceph osd pool create cephfs_data 90# ceph osd pool create cephfs_metadata 90# ceph fs new cephfs cephfs_metadata cephfs_data
执行如下命令检查cephfs的状态:
# ceph fs lsname: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]# ceph mds state5: 1/1/1 up {0=a=up:active}
创建一个mount点,使用ceph-fuse mount cephfs文件系统
#mkdir -p /mnt/cephfs#ceph-fuse -m 192.168.0.10:6789 /mnt/cephfs/
至此,一个单结点的ceph环境就搭建好了。

0 0
原创粉丝点击