CEPH简介

CEPH是一种已经震撼了整个存储行业的最热门的软件定义存储技术(SoftwareDefined Storage,SDS)。它是要给开源项目,为块存储、文件存储和对象存储提供了统一的软件定义解决方案。CEPH旨在提供一个扩展性强大、性能优越且无单点故障的分布式存储系统。从一开始,CEPH就被设计为能在通用商业硬件上运行,并且支持高度扩展(逼近甚至超过艾字节的数量)。

                                                                《Ceph Cookbook》      

一、环境准备

1.Vmware安装Ubuntu14.04共3台(分别是node1、node2、node3)。同时安装openssh-server服务。

node1作为monitor节点。node2和node3作为osd设备,并挂载适当大小的硬盘。

2.启用两张网卡,eth0设置为仅主机模式(在虚拟机中仅主机网络不受外网干扰,集群健壮性更好),eth1设置为桥接模式。仅主机网络需设置静态IP,桥接网络随意。

root@node1:~# vim /etc/network/interfaces

auto eth1

iface eth1 inet static

address 10.10.11.101

netmask 255.255.0.0

gateway 10.10.1.1

dns-nameservers 10.10.1.1 8.8.8.8

auto eth0

iface eth0 inet static

address 192.168.107.21

3.分别修改这三台设备的源,将apt的源文件替换成阿里云源,因为国内的源下载速度比较快。

root@ node1:~# cat /etc/apt/sources.list

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricteduniverse multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-security mainrestricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-updates mainrestricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed mainrestricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-backports mainrestricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricteduniverse multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security mainrestricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates mainrestricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed mainrestricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports mainrestricted universe multiverse

root@ node1:~# apt_get update

root@ node1:~#

二、开始部署(建议直接用root用户,以下以root用户为例)

1、修改每个节点的主机名分别为node1node2 node3 (hostnamectl set-hostname $HOSTNAME)并修改每台机器的host文件 (做一个硬解析),修改后可以通过名字访问各个设备。

root@node1:~/ceph-cluster# cat /etc/hosts

127.0.0.1 localhost

127.0.1.1 ubuntu14

# The following lines are desirable for IPv6 capable hosts

::1 localhost ip6-localhost ip6-loopback

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

192.168.107.21 node1

192.168.107.22 node2

192.168.107.23 node3

2. 安装ceph-deploy(只在管理节点上执行)

wget -q -O-'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudoapt-key add -
echo deb http://mirrors.163.com/ceph/debian-jewel$(lsb_release -sc) main |tee/etc/apt/sources.list.d/ ceph.list
apt-get update
apt-get install ceph-deploy

4、 用无密码的SSH连接到每个Ceph节点来配置你的ceph-deploy 管理节点. 保留密码为空。

创建密钥,提示输入的时候一直回车键即可。

  ssh-keygen

将密钥拷贝到其他osd设备上去。

  ssh-copy-idroot@node1

  ssh-copy-idroot@node2

  ssh-copy-idroot@node3

测试:此时您可以直接用ssh node2直接登陆到node2主机,不需要输入密码。

5、 修改你的ceph-deploy管理节点的~/.ssh/config 文件使它能像你创建的用户(比如, ceph)一样记录至Ceph节点 .可能不存在 这个配置文件,但是你可以创建一个这样的配置文件。配置文件中的内容如下:

root@ node1:~/ceph-cluster# cat ~/.ssh/config

Host node1

User root

Host node2

User root

Host node3

User root

6、创建一个自己的集群目录(目录名随意)

mkdir ceph-cluster

cd ceph-cluster

7、创建一个新的集群

ceph-deploy new node1

8、修改ceph.conf配置文件 vim ceph.conf

osd pool default size = 3  ---》设置副本个数,不建议超过osd数量

osd pool default min size = 1  --->设置可写最小副本个数

osd pool default pg num = 333  ---》设置pool的pg个数

osd pool default pgp num = 333 --》设置pool的pgp_num个数

9、分别在所有的设备上安装ceph

ceph-deploy install node1 node2 node3

注意:安装的时候很有可能出现各种不同的、不知名错误,如果解决不了也可以用以下方式在各节点单独安装,安装完成后可:

wget -q -O-'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudoapt-key add -
echo deb http://mirrors.163.com/ceph/debian-jewel$(lsb_release -sc) main | tee /etc/apt/sources.list.d/ceph.list
apt-get update
apt-get install ceph

10、在node1上创建监视线程,并且初始化:

ceph-deploy mon create-initial

11、修改密钥文件权限:

chmod 777 ceph.client.admin.keyring

chmod 777 /etc/ceph/ceph.client.admin.keyring

12、列出各主机上面可以用的磁盘:

ceph-deploy disk list node1 node2 node3

13、格式化osd上的盘为xfs,并创建线程。

ceph-deploy disk zap node2:/dev/sdb

ceph-deploy osd create node2:/dev/sdb

ceph-deploy disk zap node3:/dev/sdb

ceph-deploy osd create node3:/dev/sdb

14、拷贝配置文件到每一台机器上

ceph-deploy admin node1 node2 node3

  chmod+r /etc/ceph/ceph.client.admin.keyring

15. 查看ceph的安装状态,如果集群健康则完成部署,若集群不健康则根据具体问题修改相关参数即可health ok

ceph –s

16.一切正常则在此拍摄快照