转载自 http://blog.csdn.net/yhao2014/article/details/51394815?locationNum=4&fps=1
centos6.8成功部署,感谢原作者,文章简洁明了,非常适合新手学习部署。
本文修改了一些失效的下载链接以及一些友情提示!Ceph是加州大学Santa Cruz分校的Sage Weil(DreamHost的联合创始人)专为博士论文设计的新一代自由软件分布式文件系统。自2007年毕业之后,Sage开始全职投入到Ceph开 发之中,使其能适用于生产环境。Ceph的主要目标是设计成基于POSIX的没有单点故障的分布式文件系统,使数据能容错和无缝的复制。2010年3 月,Linus Torvalds将Ceph client合并到内 核2.6.34中。
关于Ceph的详细介绍见:Ceph:一个 Linux PB 级分布式文件系统
本文是在Centos6.7上对Ceph的部署的详细指南。
首先对部署环境进行说明:
IP | Hostname | ceph磁盘 | 备注 |
10.201.26.121 | ceph01 | 20g | adm, mon, osd0 |
10.201.26.122 | ceph02 | 20g | osd1 |
10.201.26.123 | ceph03 | 20g | osd2 |
10.201.26.121 | cephclient | 挂载点:/cephfs | ceph客户端 |
Ceph的文件系统作为一个目录挂载到客户端cephclient的/cephfs目录下,可以像操作普通目录一样对此目录进行操作。
1. 安装前准备(root用户)
参考文档:http://docs.openfans.org/ceph/ceph4e2d658765876863/ceph-1/installation30105feb901f5b8988c53011/preflight3010988468c030111.1 在每台机添加hosts
修改文件/etc/hosts(或者/etc/sysconfig/network),添加以下内容:10.201.26.121 ceph0110.201.26.122 ceph0210.201.26.123 ceph03
# yum update -y
安装ceph依赖# rpm -Uvh http://download.ceph.com/rpm-hammer/el6/noarch/ceph-release-1-0.el6.noarch.rpm# yum install ceph-deploy -y
否则会出现以下问题:
3. 数据节点磁盘挂载(root用户)
在ceph01、ceph02、ceph03上分别挂载了一块20g大小的磁盘作为ceph的数据存储测试使用。需要将它们分区,创建xfs文件系统。3.1 分区(三台机),创建xfs文件系统
# parted /dev/sdb(parted) mklabel gpt(parted) mkpart primary xfs 0% 100%(parted) quit # mkfs.xfs /dev/sdb1如果出现以下问题:
是因为xfs在默认的系统安装上是不被支持的,需要自己手动安装默认的包。
先修过yum的配置文件# vim /etc/yum.repos.d/CentOS-Base.repo[centosplus]enabled=1 //把0改为1# yum install -y xfsprogs kmod-xfs //安装软件包然后再执行mkfs.xfs /dev/sdb1就可以了。4. 存储集群搭建(ceph用户)
集群规模:1个管理节点,1个监控节点,3个数据节点。4.0免密码登陆(三台机)
在每台机上运行以下命令:$ ssh-keygen -t rsa -P ''(回车)执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)下面从admin节点开始使用ceph-deploy
4.1 在admin上创建集群目录(ceph01)
$ mkdir ceph-cluster
$ cd ceph-cluster友情提示:后面的步骤不要更改当前目录位置,在创建集群期间会在当前目录生成一系列配置文件相关,并不会马上复制到/etc/ceph
负责会报找不到ceph.conf:
执行此命令后会初始化mon结点,并且在mon结点生成ceph.conf等文件,ceph.conf文件中声明了mon结点等信息
如果报错:
如果报错:
[ERROR ] RuntimeError: remote connection got closed, ensure ``requiretty`` is disabled for ceph02需要在mdsnode,osdnode1,osdnode2三个节点中使用leadorceph用户的身份执行sudo visudo命令,然后修改
Defaults requiretty 为Defaults:ceph !requiretty4.5 添加数据节点(ceph01)
(为了快速安装,本例中为每个Ceph OSD守护进程使用单个目录而非单个磁盘 。使用ceph-deply osd命令可查看在分离的磁盘/分区上创建OSD和日志的方法。登陆Ceph节点, 并为每个Ceph OSD守护进程创建单个目录。)# ssh [email protected]# mkdir /data# mkdir /data/osd0# chmod -R 777 /data/# exit# ssh [email protected]# mkdir /data# mkdir /data/osd1# chmod -R 777 /data/# exit# ssh [email protected]# mkdir /data# mkdir /data/osd2# chmod -R 777 /data/# exit 4.6 挂载磁盘(三台机)将各个磁盘分别挂载到对应的目录(ceph01、ceph02、ceph03)$ sudo mount /dev/sdb1 /data/osd0(另外两个节点类似,不过是osd1,osd2)4.7 在管理节点准备OSD(ceph01)
$ ceph-deploy osd prepare ceph01:/data/osd0 ceph02:/data/osd1 ceph03:/data/osd24.8 激活OSD(ceph01)
(注意如果osd的目录所在磁盘是ext4格式的文件系统会报错,需要进行额外的设置)$ ceph-deploy osd activate ceph01:/data/osd0 ceph02:/data/osd1 ceph03:/data/osd24.9 开机挂载磁盘(三台机)
挂载好的新磁盘会在下一次重启或开机的时候失效,因此我们需要在每台机上对新磁盘进行挂载,分别在每台机编辑/etc/fstab文件,在最后添加(以ceph01为例):$ sudo vim /etc/fstab/dev/sdb1 /osd0 xfs defaults 0 04.11 查看集群状态
# ceph health //当集群完成配对后,应返回active+clean状态如果报错:[[email protected] ceph-cluster]$ ceph health2016-03-06 21:53:54.886552 7fdc5cf5a700 -1 monclient(hunting): ERROR: missing keyring, cannot use cephx for authentication2016-03-06 21:53:54.886584 7fdc5cf5a700 0 librados: client.admin initialization error (2) No such file or directoryError connecting to cluster: ObjectNotFound 是因为普通用户无法读取导致无法进行cephx认证,执行以下命令:# sudo chmod +r /etc/ceph/ceph.client.admin.keyring 如果出现以下情况:[[email protected] ceph-cluster]$ ceph health
HEALTH_WARN 64 pgs degraded; 64 pgs stuck degraded; 64 pgs stuck unclean; 64 pgs stuck undersized; 64 pgs undersized是因为配置中默认osd=3,备份=2,与实际不符,更改配置文件ceph.conf,增加以下两行:osd_pool_default_size = 2osd_pool_default_min_size = 1(不过没有生效,怀疑需要重启集群,待测试),或者添加一个osd节点(有些说法是要最少3个osd) 如果报错:2016-04-21 15:21:05.597951 7fde9cb6b700 -1 monclient(hunting): ERROR: missing keyring, cannot use cephx for authentication2016-04-21 15:21:05.597963 7fde9cb6b700 0 librados: client.admin initialization error (2) No such file or directory是因为没有权限读取keyring
执行以下命令赋权限:
$ sudo chmod 777 /etc/ceph/*查看集群状态
$ ceph -s
1. centos 6.7使用fuse挂载(client节点)
安装ceph源
参考官方文档:http://docs.ceph.com/docs/master/cephfs/fuse/(其中的ceph.keyring需要改为ceph.client.admin.keyring )如果不进行此步骤,否则会报“No package ceph-fuse available.”# rpm -Uvh https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm安装ceph-fuse
# yum install -y ceph-fuse创建挂载目录
# mkdir /cephfs复制配置文件
将ceph配置文件ceph.conf从管理节点copy到client节点# scp [email protected]:/etc/ceph/ceph.conf /etc/ceph/复制密钥将ceph的ceph.client.admin.keyring从管理节点copy到client节点# scp [email protected]:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ 查看ceph授权# ceph auth list 挂载到指定目录将ceph挂载到/cephfs# ceph-fuse -m 10.201.26.131:6789 /cephfs 取消挂载# umount/cephfs 2. ubuntu15.04 使用fuse挂载安装ceph-fuse
# apt-get install -y ceph-fuse 或者手动安装,下载地址:http://mirrors.aliyun.com/ubuntu/pool/main/c/ceph/,下载包ceph-dbg_0.94.1-0ubuntu1_amd64.deb# dpkg -i ceph-dbg_0.94.1-0ubuntu1_amd64.deb创建挂载目录
# mkdir /cephfs复制配置文件
将ceph配置文件ceph.conf从管理节点copy到client节点# scp [email protected]:/etc/ceph/ceph.conf /etc/ceph/ 复制密钥将ceph的ceph.client.admin.keyring从管理节点copy到client节点# scp [email protected]:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ 查看ceph授权# ceph auth list 挂载到指定目录将ceph挂载到/cephfs# ceph-fuse -m 10.201.26.131:6789 /cephfs 取消挂载# umount/cephfs
精彩评论