Ceph分布式部署教程

这篇文章主要讲解了“Ceph分布式部署教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Ceph分布式部署教程”吧!

在凤凰等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计、成都网站制作 网站设计制作按需网站策划,公司网站建设,企业网站建设,成都品牌网站建设,成都全网营销推广,成都外贸网站制作,凤凰网站建设费用合理。

一 、环境准备:

该部署使用3台机器(ubuntu 14.04),两台机器做osd,一台机器做mon和mds,具体服务情况如下:

  • ceph2(192.168.21.140):osd.0

  • ceph3(192.168.21.141):osd.1 osd.2

  • ceph4(192.168.21.142):mon mds

  • 修改各自的hostname,并能够通过hostname来互相访问。

  • 各节点能够ssh互相访问而不输入密码(通过ssh-keygen命令)。

二、配置免密码登陆:

在每个节点上:

ssh-keygen -t rsa
touch /root/.ssh/authorized_keys

首先配置ceph2

scp /root/.ssh/id_rsa.pub ceph3:/root/.ssh/id_rsa.pub_ceph2

scp /root/.ssh/id_rsa.pub ceph4:/root/.ssh/id_rsa.pub_ceph2

ssh ceph3 "cat /root/.ssh/id_rsa.pub_ceph2>> /root/.ssh/authorized_keys"

ssh ceph4 "cat /root/.ssh/id_rsa.pub_ceph2 >> /root/.ssh/authorized_keys"

节点ceph3和ceph4也需要参照上面的命令进行配置。

三、安装ceph 库

在每个节点上安装Ceph库:

apt-get install ceph ceph-common ceph-mds

显示ceph 版本信息:

ceph -v

四、在ceph2上创建ceph 配置文件

vim /etc/ceph/ceph.conf
[global]

    max open files = 131072

    auth cluster required = none

    auth service required = none

   auth client required = none

   osd pool default size = 2

[osd]

   osd journal size = 1000

   filestore xattruse omap = true

   osd mkfs type = xfs

   osd mkfs options xfs = -f   #default for xfs is "-f"

   osd mount options xfs = rw,noatime # default mount option is"rw,noatime"

[mon.a]

   host = ceph4

    mon addr = 192.168.21.142:6789



[osd.0]

   host = ceph2
   devs = /dev/sdb



[osd.1]

    host= ceph3
    devs= /dev/sdc

[osd.2]

    host = ceph3
    devs = /dev/sdb


[mds.a]

    host= ceph4

配置文件创建成功之后,还需要拷贝到除纯客户端之外的每个节点中(并且后续也要始终保持一致):

scp /etc/ceph/ceph.conf ceph3:/etc/ceph/ceph.conf

scp /etc/ceph/ceph.conf ceph4:/etc/ceph/ceph.conf

五、创建数据目录:

在每个节点上执行

mkdir -p /var/lib/ceph/osd/ceph-0

mkdir -p /var/lib/ceph/osd/ceph-1

mkdir -p /var/lib/ceph/osd/ceph-2

mkdir -p /var/lib/ceph/mon/ceph-a

mkdir -p /var/lib/ceph/mds/ceph-a

六、创建分区并挂载:

对于osd所在的节点ceph2和ceph3,需要对新分区进行xfs格式化并mount到指定目录:

ceph2:

mkfs.xfs -f /dev/sdb

mount /dev/sdb /var/lib/ceph/osd/ceph-0

ceph3:

mkfs.xfs -f /dev/sdc

mount /dev/sdc /var/lib/ceph/osd/ceph-1

mkfs.xfs -f /dev/sdb

mount /dev/sdb /var/lib/ceph/osd/ceph-2

七、初始化

注意,每次执行初始化之前,都需要在每个节点上先停止Ceph服务,并清空原有数据目录:

/etc/init.d/ceph stop

rm -rf /var/lib/ceph/*/ceph-*/*

然后,就可以在mon所在的节点ceph4上执行初始化了:

sudo mkcephfs -a -c /etc/ceph/ceph.conf -k /etc/ceph/ceph4.keyring

注意,一旦配置文件ceph.conf发生改变,初始化最好重新执行一遍。

八 、启动ceph

在mon所在的节点ceph4上执行:

sudo service ceph -a start

注意,执行上面这步时,可能会遇到如下提示:

=== osd.0 ===

Mounting xfs onceph5:/var/lib/ceph/osd/ceph-0

Error ENOENT: osd.0 does not exist.  create it before updating the crush map

执行如下命令后,再重复执行上面那条启动服务的命令,就可以解决:

ceph osd create

九 、遇到的坑

  • ubuntu不能远程通过root用户登录
    修改 vim /etc/ssh/sshd_config  将 PermitEmptyPasswords  修改为no 重启ssh

  • ceph osd tree 看到3个osd的host同为ubuntu因为我是用虚拟机做的实验,虚拟机是clone得到的,因此hostname相同,vim /etc/hostname

  • ceph osd tree 看到3个osd的host同为ceph4在ceph2和ceph3上重启ceph服务 /etc/init.d/ceph restart

  • ceph -s 看到有warning 不是ok

    root@ceph4:/var/lib/ceph/osd# ceph -s
        cluster 57b27255-c63d-4a70-8561-99e76615e10f
         health HEALTH_WARN 576 pgs stuck unclean
         monmap e1: 1 mons at {a=192.168.21.142:6789/0}, election epoch 1, quorum 0 a
         mdsmap e6: 1/1/1 up {0=a=up:active}
         osdmap e57: 3 osds: 3 up, 3 in
          pgmap v108: 576 pgs, 3 pools, 1884 bytes data, 20 objects
                3125 MB used, 12204 MB / 15330 MB avail
                     576 active+remapped

    解决办法,在/etc/ceph/ceph.conf 中[global]加入

    osd pool default size = 2

    推测应该是osd的数量应该大于副本数,ceph才可以正常运行

感谢各位的阅读,以上就是“Ceph分布式部署教程”的内容了,经过本文的学习后,相信大家对Ceph分布式部署教程这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


分享名称:Ceph分布式部署教程
文章链接:http://pwwzsj.com/article/gpospo.html