CEPH简介

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

                                                                    《Ceph Cookbook》      

一、环境准备

1.Vmware安装Ubuntu14.04共3台(可安装一台,完整克隆出2台)。同时安装ssh服务。

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

2.启用两张网卡,eth0设置为仅主机模式,eth1设置为桥接模式。并设置静态IP,重启之后用ifconfig查看是否配置成功,再测试一下是否能上网(若不能上网则应先解决相关问题)。如一切正常,则在此拍摄快照。

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

auto eth1

iface eth1 inet static

address 192.168.2.21

netmask 255.255.255.0

gateway 192.168.2.1

dns-nameservers 192.168.2.1 8.8.8.8

auto eth0

iface eth0 inet static

address 192.168.107.21

二、分别修改这三台设备的源,将apt的源文件替换成如下地址,因为国内的源下载速度比较快。

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

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

deb http://mirrors.aliyun.com/ubuntu/ trusty-securitymain restricted universe multiverse

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

deb http://mirrors.aliyun.com/ubuntu/ trusty-proposedmain restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-backportsmain restricted universe multiverse

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

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-securitymain restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updatesmain restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposedmain restricted universe multiverse

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

root@ node1:~#  apt_get update

root@ node1:~#

三、开始部署

   1、分别为每台设备创建ceph用户,添加root权限。

useradd -d /home/ceph -m ceph

passwd ceph

echo "ceph ALL = (root)NOPASSWD:ALL" | tee /etc/sudoers.d/ceph
    chmod0440 /etc/sudoers.d/ceph

2、修改每个节点的主机名hostnamectlset-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 localhostip6-localhost ip6-loopback

ff02::1ip6-allnodes

ff02::2ip6-allrouters

    192.168.107.21 node1

    192.168.107.22 node2

     192.168.107.23 node3

3. 安装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://ceph.com/debian-giant/ $(lsb_release -sc) main | sudotee /etc/apt/sources.list.d/ceph.list
sudo apt-get update
sudo apt-get install ceph-deploy

安装发生意外?提示以下信息:

python-setuptoolsbut it is not going to be installed

表示当前ceph-deploy依赖于 Python-setuptools,尝试安装Python-setuptools ,使用命令:agt-get installpython-setuptools

再次发生意外提示:

python-pkg-resources(= 3.3-1ubuntu1) but 3.3-1ubuntu2 is to be installed

这次说明已经安装的Python版本出现了不支持现象,先卸载已经安装的Python,使用命令:agt-getremove python

卸载后再次尝试安装python-setuptools,

再次使用命令:agt-getinstall python-setuptools

最后再次尝试安装ceph-deploy:

使用命令:sudoapt-get install ceph-deploy

发现这次可以成功安装ceph-deploy。

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

      创建密钥,提示输入的时候全部enter建。

     ssh-keygen

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

     ssh-copy-id ceph@node1

       ssh-copy-idceph@node2

     ssh-copy-id ceph@node3

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

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

Hostnode1

Userceph

Hostnode2

Userceph

Hostnode3

Userceph

6、创建一个自己的集群目录

mkdir ceph-cluster

cd ceph-cluster

7、创建一个新的集群(最后一个参数为100hostname

ceph-deploy  new  cephmon

8、修改配置文件 ceph.conf

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

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

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

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

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

ceph-deploy install node1 node2 node3

     注意安装时可能会提示:

404  Not Found [IP: 91.189.91.14 80]

根据错误信息,定位是那一台设备除了问题,在该设备上输入命令确认:sudo apt-get install ceph,确认问题仍然是这个,需要更新apt-get,执行命令apt-get update。执行完成后 再次使用命令sudo apt-get install ceph。完成通过,说明问题解决。

注意:如果实在安装不上,则在每个节点上分别执行以下命令:

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

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

ceph-deploy mon create-initial

11、修改密钥文件权限:

 chmod 777ceph.client.admin.keyring

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

12、列出osd0,osd1上面可以用的磁盘:

ceph-deploy disk list node2 node3

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

ceph-deploy disk  zap node1:/dev/sdb

ceph-deploy osd create  node1:/dev/sdb

ceph-deploy disk  zap node2:/dev/sdb

ceph-deploy osd create  node2:/dev/sdb

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

ceph-deploy admin node1 node2 node3

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

15. 查看ceph的安装状态:

ceph  -s

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