[关闭]
@gump88 2016-07-23T12:36:30.000000Z 字数 3987 阅读 1004

ceph cluster搭建教程

ceph


记录自己在Power机器上配置ceph cluster的过程,中间也踩了很多坑,不过磕磕绊绊最后配好了。

最终的cluster里有两个主机,ceph-intern-02和ceph-intern-04,两个都是虚机。
配置如下:
ceph-intern-02:monitor,3个osd
ceph-intern-04:2个osd

1. IP与主机名设置

2. 下载ceph

项目组指定的ceph版本号为0.94.6wget http://download.ceph.com/tarballs/ceph-0.94.6.tar.gz
解压缩:tar -xfz ceph-0.94.6.tar.gz

3. 相关依赖包的安装

  1. ./install-deps.sh

安装依赖包:

  1. sudo apt-get install libtool
  2. sudo apt-get install autoconf
  3. sudo apt-get install pkg-config
  4. ./autogen.sh
  1. sudo apt-get install libsnappy-dev
  2. sudo apt-get install libleveldb-dev
  3. sudo apt-get install uuid-dev
  4. sudo apt-get install libblkid-dev
  5. sudo apt-get install libudev-dev
  6. sudo apt-get install libkeyutils-dev
  7. sudo apt-get install libcrypto++-dev
  8. sudo apt-get install libfuse-dev
  9. sudo apt-get install libaio-dev

安装boost库

  1. wget https://sourceforge.net/projects/boost/files/boost/1.61.0/boost_1_61_0.tar.gz

解压安装

  1. tar -xf boost_1_61_0.tar.gz
  2. ./bootstrap.sh
  3. sudo ./bjam --with-date_time --with-system --with-regex --with-thread --with-filesystem --with-serialization --with-iostreams --with-math --with-mpi --with-program_options --with-python --with-math --with-signals --layout=tagged install variant=debug,release link=static --runtime-link=static threading=multi stage

. 使用源码安装ceph

  1. ./configure --without-tcmalloc --without-libatomic-ops --without-libxfs
  2. sudo make -j4
  3. sudo make install

5. Monitor配置

首先说明,下面出现的node1都是主机名

  1. ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
  1. ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow'
  1. ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
  1. monmaptool --create --add {hostname} {ip-address} --fsid {uuid} /tmp/monmap
  1. sudo mkdir /var/lib/ceph/mon/{cluster-name}-{hostname}
  1. ceph-mon [--cluster {cluster-name}] --mkfs -i {hostname} --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring

最后ceph.conf配置文件大概是这样的

  1. [global]
  2. fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993
  3. mon initial members = node1
  4. mon host = 192.168.0.1
  5. public network = 192.168.0.0/24
  6. auth cluster required = cephx
  7. auth service required = cephx
  8. auth client required = cephx
  9. osd journal size = 1024
  10. filestore xattr use omap = true
  11. osd pool default size = 2
  12. osd pool default min size = 1
  13. osd pool default pg num = 333
  14. osd pool default pgp num = 333
  15. osd crush chooseleaf type = 1
  1. sudo touch /var/lib/ceph/mon/ceph-node1/done
  1. sudo ceph-mon -i node1

这里有一个问题,就是我在配置的时候使用常规的start ceph-mon id=node1无法开启服务,只能使用ceph-mon -i node1来开启服务,具体原因未知。

6. osd添加与配置

因为目前只配置了monitor,cluster里还没有osd,所以当我们执行ceph -s时会看见warn的情况,下面同样还在这台vm上配置三个osd。三个osd的配置大致相同,下面就记录下第一个osd的配置情况。

  1. ceph osd create [{uuid} [{id}]]
  1. sudo mkdir /var/lib/ceph/osd/{cluster-name}-{osd-number}

这里的osd-number就是创建osd时返回的osd号。假如你是第一次创建osd,那么返回的就是0,如果是第二次创建osd,那么返回的就是1...

  1. sudo mkfs -t {fstype} /dev/{hdd}
  2. mount -o user_xattr /dev/{hdd} /var/lib/ceph/osd/{cluster-name}-{osd-number}

这里因为我们使用的是vm,没有独立的硬盘,所以自己创建一个块设备,模拟硬盘。过程如下:

  1. dd if=/dev/zero of=loopback_file1 bs=1024M count=1
  2. losetup /dev/loop0 loopback_file1

这样就可以把/dev/loop0当成一个硬件来处理了。

  1. sudo ceph auth add osd.{osd-num} osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/{cluster-name}-{osd-num}/keyring
  1. ceph [--cluster {cluster-name}] osd crush add-bucket {hostname} host
  1. ceph osd crush move node1 root=default
  1. ceph-osd -i {osd-num}

可以在新建sysvinit命令,设置开机自启动

  1. touch /var/lib/ceph/osd/{cluster-name}-{osd-num}/sysvinit

最后使用ceph -s命令查看当前集群状态为OK就可以了。
ceph状态图如下:
查看ceph状态

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注