这里不对Ceph做介绍,由于Ceph有多种部署方式,本文利用最方便得方式来部署,那么就是ceph-deploy

拓扑介绍

这里写图片描述

安装前准备.

网络配置

本文档部署全部基于CentOS6.6 x86_64发行版的Linux,笔者的环境是在Workstation上安装的虚拟机

Hostname Address Role
ceph-admin 10.0.0.40/24 Deploy
ceph-node1 10.0.0.41/24 MON/MDS
ceph-node2 10.0.0.42/24 OSD0
ceph-node3 10.0.0.43/24 OSD1

关闭防火墙

1
2
3
iptables -F
service iptables stop
chkconfig iptables off

域名解析

vi /etc/hosts 添加

1
2
3
4
10.0.0.40 ceph-admin
10.0.0.41 ceph-node1
10.0.0.42 ceph-node2
10.0.0.43 ceph-node3

YUM源配置

删除系统自带源

1
rm /etc/yum.repo/CentOS-* -f

添加第三方Yum源
vi /etc/yum.repo/ustc.repo

1
2
3
4
5
[ustc]
name = ustc
baseurl = http://centos.ustc.edu.cn/centos/6.6/os/x86_64/
gpgcheck=0
enable=1

添加epel源

1
yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm -y

执行更新

1
2
3
4
5
yum makecache
yum upgrade
yum install hdparm openssh-clients -y
hdparm -W 0 /dev/sda #关闭硬盘写入缓存
init 6

集群部署

管理节点部署

配置ceph-admin到其他ceph节点的无密码访问

1
ssh-keygen

创建无密码的keypair文件,只需要按回车即可

复制访问密钥到各个ceph-node节点

1
2
3
ssh-copy-id root@ceph-node1
ssh-copy-id root@ceph-node2
ssh-copy-id root@ceph-node3

添加ceph源仓库
vi /etc/yum.repo/ceph.repo

1
2
3
4
5
6
7
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://ceph.com/rpm/el6/noarch/
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc

1
2
3
4
yum install ceph-deploy -y
mkdir ~/my-cluster #创建my-cluster目录存放配置文件与密钥
cd ~/my-cluster # 每次执行ceph-deploy命令最好都在这目录下执行
ceph-deploy new ceph-node1 #以ceph-node1为MON创建ceph.conf文件与密钥
1
2
echo 'osd_pool_default_size = 2' >>  ~/my-cluster/ceph.conf  #设置默认的副本数
ceph-deploy install ceph-node1 ceph-node2 ceph-node3 #开始安装

自动安装过程过程需要点时间
最后以ceph-node3的安装完成为结束点,最后会检查一下version

创建Ceph MON集群监视器

1
2
ceph-deploy mon create ceph-node1    
ceph-deploy gatherkeys ceph-node1
1
2
3
4
5
6
7
8
#创建osd目录
ssh ceph-node2
sudo mkdir /tmp/osd0
exit

ssh ceph-node3
sudo mkdir /tmp/osd1
exit

创建Ceph OSD数据节点

准备OSD

1
ceph-deploy --overwrite-conf osd prepare ceph-node2:/tmp/osd0 ceph-node3:/tmp/osd1

激活OSD
1
ceph-deploy osd activate ceph-node2:/tmp/osd0 ceph-node3:/tmp/osd1

创建Ceph MDS元数据节点
1
ceph-deploy --overwrite-conf mds create ceph-node1

在ceph-node1上检查集群健康状态, 会看到 HEALTH_OK

部署完毕
更多资料请参考www.ceph.com