当前位置: > Linux集群 > Ceph >

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

时间:2015-10-17 02:17来源:linux.it.net.cn 作者:IT
 在CentOS7 中ceph-deploy安装ceph0.80,以及如何在客户端fstab加载。

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

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

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

一、准备主机环境:

主机名 IP

角色

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略)

 

二、准备工作(注:用ceph-deploy可直接安装ceph,也可以用yum另行安装)

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

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

  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

     

三、开始安装

(以下非特别说明,都是在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.  
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [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

四、挂载问题:

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

 
1
2
3
4
5
6
7
8
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内部(包括不同服务器之间的复制)的速度,而不是单纯客户端到服务器商的速度。

看看是不是已经正常用了。

 

五、安装结语:

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

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

     
    1
    2
    3
    [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

 

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

(责任编辑:IT)
------分隔线----------------------------