这篇文章主要讲解了“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分布式部署教程这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。