ceph0.80安装及使用(CentOS7/ceph-deploy)

    Ceph的主要目标是设计成基于POSIX的没有单点故障的分布式文件系统,使数据能容错和无缝的复制。详见:http://www.oschina.net/p/cephshell

    目前大部分部署ceph基本都是在Ubuntu,由于它的内核默认打开了Ceph_fs。选择CentOS7(默认文件系统是XFS,而不是EXT4)做为部署平台时则须要留意更多的信息,好比是用客户端加载ceph文件系统时。服务器

    看过很多网上的文章,大都不太适合0.80,或是可被省略的步骤。好比配置ceph.conf。因此特地作了几遍的安装,总结此文。另外吐嘈下Redhat,收购了Ceph 所在的公司 Inktank还发布了本身的版本($1000/cluster),竟然不在最新的内核中将 Ceph_fs 打开,致使不少人直接倒向Ubuntu。网络

1、准备主机环境:less

主机名 IP

ssh

OS
ceph0 10.9.16.96 MON,        MDS CentOS7
ceph1 10.9.16.97 MON,OSD CentOS7
ceph2 10.9.16.98           OSD,MDS CentOS7
ceph3 10.9.16.99           OSD,MDS CentOS7
ceph4 10.9.16.100 MON CentOS7
client0 10.9.16.89 client CentOS7(内核3.16.2)
client1 10.9.16.95 client Ubuntu14.04

部署建议说明:
分布式

MON节点建议使用3个,OSD数据节点最好与操做系统分开以提升性能,有至少两个千兆网卡(这里只显示集群内的IP,客户端访问IP略)性能


2、准备工做(注:用ceph-deploy可直接安装ceph,也能够用yum另行安装)
spa

  1. 确认每台机器的主机名正确(CentOS7中,只要更改/etc/hostname便可,比旧版本方便)操作系统

  2. 每台机器上加入对应的 IP/主机名到/etc/hosts;.net

  3. 每台机器使用 ssh-copy-id 完成这些服务器之间免ssh密码登陆;(发现ansible好用了)

  4. 关闭防火墙(systemctl stop firewalld.service)或打开 6789/6800~6900端口;

  5. 编辑/etc/ntp.conf,开启时间服务同步时间;(crontab/ntpdate不靠谱,不另做说明)

  6. 确认已经配置epel/remi的 repo软件包;在client0上配置elrepo软件包以便yum升级内核

  7. 在全部的OSD服务器上,初始化目录,好比ceph1创建文件夹 /var/local/osd1,ceph2上对应/var/local/osd2


3、开始安装

(如下非特别说明,都是在ceph0上操做)

  1. 生成MON信息:ceph-deploy new ceph{0,1,4}

  2. 安装ceph:ceph-deploy install ceph0 ceph1 ceph2 ceph3 ceph4(注:若是已经用yum在每台机器上安装了ceph,这步可省略)

  3. 生成keys:ceph-deploy --overwrite-conf mon create-initial

  4. 准备OSD服务器:ceph-deploy --overwrite-conf osd prepare ceph1:/var/local/osd1 ceph2:/var/local/osd2 ceph3:/var/local/osd3

  5. 激活OSD:ceph-deploy osd activate ceph1:/var/local/osd1 ceph2:/var/local/osd2 ceph3:/var/local/osd3

  6. 复制key到各个节点:ceph-deploy admin ceph0 ceph1 ceph2 ceph3 ceph4

  7. 检查是否ok:ceph health。

  8. 安装MDS节点:ceph-deploy mds create ceph0 ceph2 ceph3

检查状态:

  1. [root@ceph0 ~]# ceph -s
        cluster 9ddc0226-574d-4e8e-8ff4-bbe9cd838e21
         health HEALTH_OK
         monmap e1: 2 mons at {ceph0=10.9.16.96:6789/0,ceph1=10.9.16.97:6789/0,ceph4=10.9.16.100:6789/0}, election epoch 4, quorum 0,1 ceph0,ceph1
         mdsmap e5: 1/1/1 up {0=ceph0=up:active}, 1 up:standby
         osdmap e13: 3 osds: 3 up, 3 in
          pgmap v6312: 192 pgs, 3 pools, 1075 MB data, 512 objects
                21671 MB used, 32082 MB / 53754 MB avail
                     192 active+clean

4、挂载问题:

client0的CentOS7默认没有开启ceph_fs的内核,须要更改内核,这里直接用yum更新(能够手工编译):

yum --enablerepo=elrepo-kernel install kernel-ml
grub2-set-default 0
mkdir /mnt/cephfs
mount -t ceph 10.9.16.96:6789,10.9.16.97:6789:/ /mnt/cephfs -o name=admin,secret=AQDnDBhUWGS6GhAARV0CjHB*******Y1LQzQ==
#这里的密钥,是 ceph.client.admin.keyring 中的内容。

#如下是 /etc/fstab 的自动加载内容:
10.9.16.96:6789,10.9.16.97:6789:/       /mnt/ceph       ceph    name=admin,secret=AQDnDBhUWGS6GhAARV0CjHB*******Y1LQzQ==,noatime      0       0

用Ubuntu14.04的命令是同样的,加载。

在复制文件时,用ceph -s能够实时查看到底下有一个文件读/写速度,如:client io 12515 kB/s wr, 3 op/s

不过这个读写速度是ceph内部(包括不一样服务器之间的复制)的速度,而不是单纯客户端到服务器商的速度。

看看是否是已经正经常使用了。


5、安装结语:

  1. 并非与网上的大多数教程写的那样必定要编辑 ceph.conf 文件。而应该是在特定需求环境下才去改。

  2. 要配置集群内网和访问外网的网络,以提升网络负载效率和可能的DDOS,可把下面的选项加到ceph.conf里的[global]段下。

    [global]
    public network {public-network-ip-address/netmask}
    cluster network {enter cluster-network-ip-address/netmask}
  3. ceph的osd journal size默认值是0,因此你得在ceph.conf里设置,日志尺寸应该至少2倍于 filestore min sync interval的值和预计吞吐量的乘积:osd journal size = {2 * (expected throughput * filestore min sync interval)}例如:osd journal size = 10000(是10G)

  4. 元变量将展开为实际的集群名和进程名,例如若是集群名是ceph(默认值),你能够用下面的命令检索osd.0的配置:ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show | less

  5. 使用其余端口加载方法:mount.ceph monhost1:7000,monhost2:7000,monhost3:7000:/ /mnt/foo


其余内容(如:增长/删除节点,块设备等,后续再写)

相关文章
相关标签/搜索