搭建最简单ceph环境(入门)

虚拟机系统准备环境为:

root@test3:~# cat /proc/version
Linux version 3.13.0-32-generic (buildd@kissel) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014

一、  环境准备

设备共4台:

192.168.0.100:作为部署节点和monitor节点。

192.168.0.101:作为osd设备 0 ,挂载一个20G的硬盘

192.168.0.102:作为osd设备 1 ,挂载一个20G的硬盘

192.168.0.103:作为客户端,在客户端可以访问虚拟rbd设备

 

二、  修改这几台设备的源

apt的源文件替换成如下地址,因为国外的源会比较慢。

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

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

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

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

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

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

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

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

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

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

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

root@ test100:~#  apt_get update

……………………………….

Reading package lists... Done

root@ test100:~#

 

三、  开始部署

  1. 登录到100设备,作为部署设备,意思为用这台机器部署整个集群。

 登录设备后,创建ceph用户

useradd -d /home/ceph -m ceph

  • ceph用户修改密码

passwd ceph

  • 为用户添加root权限

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

  • 在两个osd 设备上建立相同的ceph用户 和密码

  • 检查是否存在ssh服务

  • 如果不存在,则需要安装一个

        sudo apt-get install openssh-server

2. 修改hosts文件 ,修改后可以通过名字访问各个设备,不需要输入ip

n  修改hosts文件

$Vim /etc/hosts

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

127.0.0.1  localhost

127.0.1.1  ubuntu14

 

192.168.0.100 cephmon

192.168.0.101 osd1

192.168.0.102 osd0

192.168.0.103 client

 

# The following lines are desirable for IPv6 capable hosts

::1     localhost ip6-localhost ip6-loopback

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

root@cci-test3:~/ceph-cluster#

  • 将这个hosts文件中添加的项 添加到osd的设备上

  • 100 上修改hostname

  • 修改hostname cephmon

hostname cephmon

vim    /etc/hostname

$cat /etc/hostname

Cephmon

  • 该方法同样修改osd设备,osd设备的名字改成osd0osd1

3. 安装ceph-deploy

  • 输入命令获取并且安装,共四条命令

    A.  wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -
          B.  echo deb http://ceph.com/debian-dumpling/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list

         C.  sudo apt-get update
         D.  sudo apt-get install ceph-deploy

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

python-setuptools but it is not going to be installed

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

再次发生意外提示:

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

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

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

再次使用命令:agt-get install python-setuptools

最后再次尝试安装 ceph-deploy

使用命令:sudo apt-get install ceph-deploy

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

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

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

        ssh-keygen

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

        ssh-copy-id ceph@cephmon

        ssh-copy-id ceph@osd0

        ssh-copy-id ceph@osd1

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

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

 

Host cephmon

User ceph

Port 22

 

Host osd0

User ceph

Port 22

 

Host osd1

User ceph

Port 22

 

root@ test100:~/ceph-cluster#  

 

5. 创建一个自己的集群目录

mkdir ceph-cluster

cd ceph-cluster

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

ceph-deploy  new  cephmon

7.修改配置文件 ceph.conf

增加

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

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

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

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

 

 

8.分别在所有的设备上安装ceph

ceph-deploy install cephmon osd0 osd1

      注意安装时可能会提示:

404  Not Found [IP: 91.189.91.14 80]

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

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

ceph-deploy mon create-initial

10.修改密钥文件权限:

A  chmod 777 ceph.client.admin.keyring

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

11.列出osd0 ,osd1上面可以用的磁盘:

ceph-deploy disk list osd0 osd1

12.格式化osd0osd1上的vdb盘为xfs

ceph-deploy disk  zap    osd0:vdb

ceph-deploy disk  zap    osd1:vdb

13.在osd设备上创建osd 线程:

ceph-deploy osd create osd0:vdb

ceph-deploy osd create osd1:vdb

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

ceph-deploy admin cephmon osd0 osd1

 

      修改osd的重量和拓扑位置信息:

ceph osd crush set osd.0 1.0 root=default room=room0 host=host0

ceph osd crush set osd.1 1.0 root=default room=room0 host=host1

 

15. 查看ceph的安装状态:

Ceph  –s

16.先创建一个pool,再 创建一个镜像,该镜像可以提供给用户使用

Rados create pool data

Rados lspools

rbd create foo --size 1024

 

 

客户端挂载 ceph

1.在管理节点在hosts中添加 192.168.0.103  client

2. 在管理节点为client 安装ceph,最后一个参数为主机名代替ip地址。

ceph-deploy install client      //安装客户端的ceph

ceph-deploy admin cephclient //将客户端添加到当前的集群中

rbd create testdevice --size 40960  //创建块设备

sudo rbd map testdevice --pool rbd --name client.admin  //map rbd设备为块设备

sudo mkfs.ext4 -m0 /dev/rbd/rbd/testdevice  //格式化map之后的块设备

A   sudo mkdir /mnt/ceph-block-devicesudo  //创建挂载目录

B   sudo mount -t ext4 /dev/rbd/rbd/testdevice /mnt/ceph-block-devicesudo //挂载目录

C   cd /mnt/ceph-block-devicesudo  //进入到文件夹中,可以存取文件操作

 

总结:

这个是我第一次完成搭建ceph环境之后写的,在搭建ceph环境之前,对ceph不是很了解,所以搭建过程中反反复复,而且会遇到很多问题,比如搭建环境后ceph -s 命令查询到大部分的pg都是非正常的情况,花了一些时间去看了pg的东西,然后再反反复复的搭建,直到能够学习怎么搭建一个健康的ceph环境,所以最初使用虚拟机来玩比较方便,清除环境彻底。

我也是正在学习ceph的过程中,如果有什么问题 很欢迎和大家一起讨论。大家要是发现了问题欢迎及时纠正,留言

 

     

转载于:https://my.oschina.net/u/2460844/blog/515246

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值