ceph分布式存储环境搭建记录

一、前言:

笔者在搭建ceph分布式存储的时候,遇到了不少困难。虽然网上有很多现成的帖子可以参考,但是按照帖子操作,总是不能完成搭建。后来发现大部分搭建过程的帖子不够全面。这里笔者根据自己的搭建过程总结了下,一是与大家分享,二是为自己以后查阅方便。


二、网络规划

IP

角色

Hostname

操作系统

192.168.8.84

client

qemu-mc1

Centos 6.5

内核升级到3.12.35

192.168.8.85

mds&monitor&ceph-deploy管理

qemu-mc2

192.168.8.208

osd

remus1

192.168.8.247

osd

remus2


 三、 CEPH部署节点

1、编辑repo文件

/etc/yum.repos.d/目录下删除其他的源,只保留epel源epel.repo,文件内容如下:

[epel]

name=Extra Packages for Enterprise Linux 6 -$basearch

#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

failovermethod=priority

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

 

[epel-debuginfo]

name=Extra Packages for Enterprise Linux 6 -$basearch - Debug

#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch

failovermethod=priority

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

gpgcheck=1

 

[epel-source]

name=Extra Packages for Enterprise Linux 6 -$basearch - Source

#baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch

failovermethod=priority

enabled=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

gpgcheck=1

这里也可以自己搭建源,源里边包含ceph所有相关的rpm包。(笔者是用ceph源码编译rpm包,然后手动安装rpm包,再ceph-deploy install。虽然已经安装了rpm,仍然需要这样做一下)


2、安装ceph-deploy

yum install ceph-deploy


3、编辑/etc/hosts

在/etc/hosts文件中把四台机器的主机名和ip都添加进去

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4

::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.8.84 qemu-mc1

192.168.8.85 qemu-mc2

192.168.8.247 remus2

192.168.8.208 remus1


4、Ceph Node Setup

每个节点都执行下面的命令

    yum install -y ntp ntpdate ntp-doc
    yum install -y openssh-server

安装ntp的目的是使四台机器系统时间一致,安装openssh-server的目的是能通过ssh访问四台机器。


5、各节点能够ssh互相访问而不输入密码

不需密码进行ssh访问的原理是公私钥机制,我要访问别人,那么就要把我的公钥先发给别人,对方就能通过我的公钥验证我的身份。

具体操作步骤如下:

1、在每台服务器上都执行ssh-keygen -t rsa生成密钥对:
#ssh-keygen -t rsa

2、在每台服务器上生成密钥对后,将公钥复制到需要无密码登陆的服务器上:
举例如192.168.8.84192.168.8.85192.168.8.208192.168.8.247这四台服务器需要做相互免密码登陆,在每台服务器生成密钥对后,在每台服务器上执行ssh-copy-id命令,将公钥复制到其它三台服务器上(此处以192.168.8.84为例,用户为root,其它三台步骤相同)
#ssh-copy-id -i ~/.ssh/id_rsa.pub 
[email protected]
#ssh-copy-id -i ~/.ssh/id_rsa.pub 
[email protected]

#ssh-copy-id -i~/.ssh/id_rsa.pub [email protected]

以上命令,可以自动将公钥添加到名为 authorized_keys 的文件中,在每台服务器都执行完以上步骤后就可以实现多台服务器相互无密码登陆了


6、关闭防火墙和selinux

关闭防火墙:/etc/init.d/iptables stop

/etc/sysconfig/selinux

查看SELinux状态:

1.        /usr/sbin/sestatus -v     ##如果SELinux status参数为enabled即为开启状态

2.        getenforce                ##也可以用这个命令检查

 
关闭SELinux:

1.    临时关闭(不用重启机器):

setenforce0                  ##设置SELinux 成为permissive模式

                                       ##setenforce 1 设置SELinux 成为enforcing模式

2.   修改配置文件需要重启机器:

修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled

重启机器即可


四、CEPH的安装部署

1、创建集群

在deploy节点上创建配置目录,下面的所有deploy节点上的操作都在该目录进行

    mkdir my-cluster
    cd my-cluster

在admin node 上用ceph-deploy创建集群,new后面跟的是mds节点的hostname

    ceph-deploy new mdsnode

执行成功后该目录下会增加三个文件




修改默认的副本数为2

修改ceph.conf,使osd_pool_default_size的值为2


开始安装

ceph-deploy install deploynode mdsnode osdnode1 osdnode2

创建 Ceph MON 集群监视器

deploy上依次执行下面的命令

    ceph-deploy mon create-initial
    ceph-deploy mon create mdsnode
    ceph-deploy gatherkeys mdsnode
执行成功后会出现下面的文件


创建OSD节点
为了达到快速演示的效果,OSD后台进程使用目录而非独立的磁盘,分别在两个OSD节点上创建目录:

ssh osdnode1
mkfs.xfs /dev/vg_remus1/lv01
sudo mkdir /var/local/osd0
mount /dev/vg_remus1/lv01 /var/local/osd0
    exit
 
ssh osdnode2
mkfs.xfs /dev/vg_remus2/lv01
sudo mkdir /var/local/osd1
mount /dev/vg_remus2/lv01 /var/local/osd1
    exit

准备osd节点

ceph-deploy osd prepare osdnode1:/var/local/osd0 osdnode2:/var/local/osd1
ceph-deploy osd activate osdnode1:/var/local/osd0 osdnode2:/var/local/osd1

拷贝配置文件以及key文件

ceph-deploy admin dataprovider mdsnode osdnode1 osdnode2

确保ceph.client.admin.keyring.有正确的权限

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

创建ceph MDS元数据节点

Ceph-deploy mds create qemu-mc2

创建ceph MDS元数据节点

对于一个刚创建的MDS服务,虽然服务是运行的,但是它的状态知道创建pools以及文件系统的时候才会变为Active。通过下面的步骤创建pools和文件系统:

Filesystemceph osd pool create cephfs_data 10
ceph osd pool create cephfs_metadata 10
ceph fs new leadorfs  cephfs_metadata cephfs_data 

查看集群状态

 

启动ceph

/etc/init.d/ceph –a start


客户端挂载:

mount -t ceph 192.168.8.85:6789://mycephfs/

提示:mount error 22 = Invalid argument

 

需要指定用户名密码:

mount.ceph 192.168.8.85:6789:/ /mnt -oname=admin,secret=AQCpw/ZUyRZjFxAAf52Z2LpCao1+RCXMCFoYpQ==

 

 

五、附录:

如果安装配置出错可以通过以下方式清除,并重新来做:

/var/lib/ceph

/etc/ceph

目录全部清空

然后重新安装ceph rpm包

 

创建集群如果部署失败了可以用下面的命令恢复:

       ceph-deploy purgedata {ceph-node} [{ceph-node}]

       ceph-deploy forgetkeys


如果准备osd节点activate的时候报如下错误:

ceph-disk: Error: No cluster conf found in /etc/cephwith fsid a72014d3-7070-45f0-b970-44b216c29839

删除osd0 osd1下的所有文件重新来做即可解决

你可能感兴趣的:(云计算)