运维开发网

基于centos6.7的Ceph分布式文件系统安装指南

运维开发网 https://www.qedev.com 2020-03-16 10:49 出处:网络 作者:运维开发网整理
转载自 http://blog.csdn.net/yhao2014/article/details/51394815?locationNum=4&fps=1 centos6.8成功部署,感谢原作者,文章简洁明了,非常适合新手学习部署。本文修改了一些失效的下载链接以及一些友情提

转载自 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/preflight3010988468c03011

1.1 在每台机添加hosts

修改文件/etc/hosts(或者/etc/sysconfig/network),添加以下内容:

10.201.26.121   ceph01

10.201.26.122   ceph02

10.201.26.123   ceph03

基于centos6.7的Ceph分布式文件系统安装指南 

1.2 每个Ceph节点上创建一个用户

# adduser ceph

# passwd ceph

密码统一设为: ceph

基于centos6.7的Ceph分布式文件系统安装指南

1.3 在每个Ceph节点中为用户增加 root 权限

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

# chmod 0440 /etc/sudoers.d/ceph

基于centos6.7的Ceph分布式文件系统安装指南

1.4 关闭防火墙等服务

# service iptables stop

# chkconfig iptables off        //关闭开机启动防火墙

每台机器节点都需要修改/etc/seLinux/config 文件

将SELinux=enforcing改为SELinux=disabled

基于centos6.7的Ceph分布式文件系统安装指南

2. CEPH部署设置(root用户操作)

增加Ceph资料库至 ceph-deploy 管理节点. 之后,安装 ceph-deploy

安装 EPEL 软件源(单台机操作即可):

# rpm -Uvh https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

基于centos6.7的Ceph分布式文件系统安装指南

# 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

基于centos6.7的Ceph分布式文件系统安装指南

否则会出现以下问题:

基于centos6.7的Ceph分布式文件系统安装指南

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 

基于centos6.7的Ceph分布式文件系统安装指南

如果出现以下问题:

基于centos6.7的Ceph分布式文件系统安装指南

是因为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(公钥)

基于centos6.7的Ceph分布式文件系统安装指南

 

下面从admin节点开始使用ceph-deploy

4.1 在admin上创建集群目录(ceph01)

$ mkdir ceph-cluster

$ cd ceph-cluster

友情提示:后面的步骤不要更改当前目录位置,在创建集群期间会在当前目录生成一系列配置文件相关,并不会马上复制到/etc/ceph

负责会报找不到ceph.conf:

基于centos6.7的Ceph分布式文件系统安装指南

4.2 创建集群(ceph01)

$ ceph-deploy new ceph01

 

基于centos6.7的Ceph分布式文件系统安装指南

 

4.3 安装ceph(ceph01)

$ ceph-deploy install ceph01 ceph02 ceph03

此命令将会按顺序在3台机上安装ceph

基于centos6.7的Ceph分布式文件系统安装指南

如果报错:

RuntimeError: Failed to execute command: rpm -Uvh --replacepkgs         http://download.ceph.com/rpm-hammer/el6/noarch/ceph-release-1-0.el6.noarch.rpm

执行以下命令再重新执行一遍:

$ rpm -e ceph-release

 

如果报错:

[INFO  ] Running command: sudo rpm -Uvh --replacepkgs https://download.ceph.com/rpm-infernalis/el6/noarch/ceph-release-1-0.el6.noarch.rpm

[WARNIN] curl: (22) The requested URL returned error: 404 Not Found

[DEBUG ] Retrieving https://download.ceph.com/rpm-infernalis/el6/noarch/ceph-release-1-0.el6.noarch.rpm

[WARNIN] error: skipping https://download.ceph.com/rpm-infernalis/el6/noarch/ceph-release-1-0.el6.noarch.rpm - transfer failed

[ERROR ] RuntimeError: command returned non-zero exit status: 1

[ERROR ] RuntimeError: Failed to execute command: rpm -Uvh --replacepkgs https://download.ceph.com/rpm-infernalis/el6/noarch/ceph-release-1-0.el6.noarch.rpm

基于centos6.7的Ceph分布式文件系统安装指南

这是因为在centos6中,没有infernalis这个版本的rpm包

因为暂时没有找到在哪里修改这个版本信息,故采用手动安装(三台机都需要)

$ sudo yum install -y yum-plugin-priorities

$ sudo rpm -Uvh http://download.ceph.com/rpm-hammer/el6/noarch/ceph-release-1-0.el6.noarch.rpm

$ sudo yum -y install ceph

基于centos6.7的Ceph分布式文件系统安装指南

  如果报错:

[DEBUG ]  You could try running: rpm -Va --nofiles --nodigest

[ERROR ] RuntimeError: command returned non-zero exit status: 1

[ERROR ] RuntimeError: Failed to execute command: yum -y install ceph

执行一遍一下命令再重新执行一遍:

$ rpm -Va --nofiles �Cnodigest

4.4 创建并初始化监控节点(ceph01)

$ ceph-deploy mon create-initial

基于centos6.7的Ceph分布式文件系统安装指南

执行此命令后会初始化mon结点,并且在mon结点生成ceph.conf等文件,ceph.conf文件中声明了mon结点等信息

基于centos6.7的Ceph分布式文件系统安装指南

如果报错:

基于centos6.7的Ceph分布式文件系统安装指南

在mon节点(ceph01)上手动执行以下命令:

$ sudo yum install redhat-lsb

然后再执行ceph-deploy mon create-initial

 

查看一下 Ceph 存储节点的硬盘情况:

$ ceph-deploy disk list ceph01

$ ceph-deploy disk list ceph02

$ ceph-deploy disk list ceph03

基于centos6.7的Ceph分布式文件系统安装指南

如果报错:

[ERROR ] RuntimeError: remote connection got closed, ensure ``requiretty`` is disabled for ceph02

基于centos6.7的Ceph分布式文件系统安装指南

需要在mdsnode,osdnode1,osdnode2三个节点中使用leadorceph用户的身份执行sudo visudo命令,然后修改

Defaults requiretty 为Defaults:ceph !requiretty

基于centos6.7的Ceph分布式文件系统安装指南

4.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)

基于centos6.7的Ceph分布式文件系统安装指南

4.7 在管理节点准备OSD(ceph01)

$ ceph-deploy osd prepare ceph01:/data/osd0 ceph02:/data/osd1 ceph03:/data/osd2

基于centos6.7的Ceph分布式文件系统安装指南

4.8 激活OSD(ceph01)

(注意如果osd的目录所在磁盘是ext4格式的文件系统会报错,需要进行额外的设置)

$ ceph-deploy osd activate ceph01:/data/osd0 ceph02:/data/osd1 ceph03:/data/osd2

基于centos6.7的Ceph分布式文件系统安装指南

 

如果报错:

基于centos6.7的Ceph分布式文件系统安装指南

是因为多次卸载和安装ceph造成磁盘的id和cluster的uuid不一致,需要将 /data/osd0下的文件全部清空(3台机都要改)

4.9 开机挂载磁盘(三台机)

挂载好的新磁盘会在下一次重启或开机的时候失效,因此我们需要在每台机上对新磁盘进行挂载,分别在每台机编辑/etc/fstab文件,在最后添加(以ceph01为例):

$ sudo vim /etc/fstab

/dev/sdb1    /osd0        xfs    defaults    0    0

基于centos6.7的Ceph分布式文件系统安装指南

 

4.10 分发配置和密钥

使用ceph-deploy命令将配置文件和管理密钥复制到管理节点和你的Ceph节点。

# ceph-deploy admin ceph01 ceph02 ceph03

基于centos6.7的Ceph分布式文件系统安装指南

4.11 查看集群状态

# ceph health        //当集群完成配对后,应返回active+clean状态

如果报错:

[[email protected] ceph-cluster]$ ceph health

2016-03-06 21:53:54.886552 7fdc5cf5a700 -1 monclient(hunting): ERROR: missing keyring, cannot use cephx for authentication

2016-03-06 21:53:54.886584 7fdc5cf5a700  0 librados: client.admin initialization error (2) No such file or directory

Error 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 = 2

osd_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 authentication

2016-04-21 15:21:05.597963 7fde9cb6b700  0 librados: client.admin initialization error (2) No such file or directory

基于centos6.7的Ceph分布式文件系统安装指南

是因为没有权限读取keyring

基于centos6.7的Ceph分布式文件系统安装指南

执行以下命令赋权限:

$ sudo chmod 777 /etc/ceph/*

基于centos6.7的Ceph分布式文件系统安装指南

已经成功!!(这里发现没有启动mds节点,需要手动启动,输入命令service ceph start mds.ceph01)

重新部署(注意!)

部署过程中如果出现任何奇怪的问题无法解决,可以简单的删除一切从头再来:

# ceph-deploy purge ceph-mon1 ceph-mon2 ceph-mon3 ceph-osd1 ceph-osd2

# ceph-deploy purgedata ceph-mon1 ceph-mon2 ceph-mon3 ceph-osd1 ceph-osd2

# ceph-deploy forgetkeys

5. 创建文件系统

创建文件系统的步骤参考官网:http://docs.ceph.com/docs/master/cephfs/createfs/ 

对于一个刚创建的MDS服务,虽然服务是运行的,但是它的状态直到创建 pools 以及文件系统的时候才会变为Active.

还没有创建时候的状态

$ ceph mds stat

基于centos6.7的Ceph分布式文件系统安装指南

5.1 创建管理节点(ceph01)

$ ceph-deploy mds create ceph01

 

基于centos6.7的Ceph分布式文件系统安装指南

 

基于centos6.7的Ceph分布式文件系统安装指南

注意:如果不创建mds管理节点,client客户端将不能正常挂载到ceph集群!

5.2 查看pool

$ ceph osd lspools

基于centos6.7的Ceph分布式文件系统安装指南

新创建的ceph集群只有rdb一个pool。这时我们需要创建一个新的pool

5.3 新建pool

参考官网:http://docs.ceph.com/docs/master/rados/operations/pools/ 

$ ceph osd pool create cephfs_data 10#用于数据的pool

$ ceph osd pool create cephfs_metadata 10#用于元数据的pool

$ ceph fs new myceph  cephfs_metadata cephfs_data 

基于centos6.7的Ceph分布式文件系统安装指南

5.4 检验

查看mds状态

$ ceph mds stat

基于centos6.7的Ceph分布式文件系统安装指南

查看集群状态

$ ceph -s

基于centos6.7的Ceph分布式文件系统安装指南 

附录1 ―― ceph常用命令

1. 查看状态命令:

查看ceph集群状态:ceph -s

查看mon状态:ceph mon stat

查看msd状态:ceph msd stat

查看osd状态:ceph osd stat

查看osd目录树(可以查看每个osd挂在哪台机,是否已启动):ceph osd tree

2. 启动节点命令:

需要在对应的节点进行启动(如果对应节点没有该服务,会进行提示)

启动mon进程:service ceph start mon.ceph01

启动msd进程:service ceph start msd.ceoh01(我们集群没有msd节点)

启动osd进程:service ceph start osd.0(在ceph01上)

启动osd进程:service ceph start osd.1(在ceph02上)

启动osd进程:service ceph start osd.2(在ceph03上)

附录2――client挂载

Client挂载方式有两种:内核kernal方式和fuse方式。由于我们使用的centos6.7内核版本太低,而升级内核时间太长,故直接采用fuse方式进行挂载。下面分别介绍centos6.7和ubuntu15.04挂载client的方法。

注:client挂载前需要在client节点安装ceph,方法参考上述文档

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

基于centos6.7的Ceph分布式文件系统安装指南

创建挂载目录

# 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

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号