一.基本情况:
物理设备:4台惠普dl360,4个千兆网卡 4个1T盘
操作系统统一为:CentOS 7.2.1511
ceph版本:10.2.3
ceph-deploy版本:1.5.36
网络情况:192.168.163.0/24

二.环境准备(所有机器):
1.关关关
systemctl stop firewalld
chkconfig firewalld off
setenforce 0
iptables -F
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config

2.配置解析
vim /etc/hosts添加
192.168.163.14 ceph-deploy
192.168.163.15 mon1
192.168.163.16 osd1
192.168.163.17 osd2

3.ssh免密
ssh-keygen一路回车
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
scp -rp ~/.ssh/ 192.168.163.X:/root/

4.配置yum源
无网络环境:那就没什么好说的了,你得自己准备好包然后自己写个repo就行
有网络环境(自己找好自己对应的,别全按我的版本号就复制粘贴了):
cd /etc/yum.repos.d/
cat CentOS-Base.repo
[base]
name=CentOS-7.2.1511 - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7.2.1511/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=7.2.1511&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-7.2.1511 - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7.2.1511/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=7.2.1511&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-7.2.1511 - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7.2.1511/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=7.2.1511&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-7.2.1511 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7.2.1511/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=7.2.1511&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#contrib - packages by Centos Users
[contrib]
name=CentOS-7.2.1511 - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7.2.1511/contrib/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=7.2.1511&arch=$basearch&repo=contrib
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

cat ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
gpgcheck=0

cat epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://mirrors.aliyun.com/epel/7/$basearch/debug
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=0

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://mirrors.aliyun.com/epel/7/SRPMS
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=0

三.正式安装:
1.所有节点操作:
yum groupinstall base -y
mkdir /etc/ceph
cd /etc/ceph
yum install ceph ceph-deploy -y

2.管理节点操作
监控节点相关:
ceph-deploy new mon1完成后会生成几个新文件,如果中间有报错没有成功执行,说明你的源不完整,网络源是肯定没问题的
vim ceph.conf添加一行
osd pool default size = 2(这行的意思是默认存储数量为2,就是数据存2份啦)

ceph-deploy --overwrite-conf mon create mon1
ceph-deploy mon create-initial(有问题看最下面)

验证下:查看当前某个监控节点状态
ceph daemon mon.你的监控节点主机名 mon_status

数据节点相关:
ceph-deploy --overwrite-conf osd prepare osd1:/dev/sdb osd1:/dev/sdc osd1:/dev/sdd osd1:/dev/sde osd2:/dev/sdb osd2:/dev/sdc osd2:/dev/sdd osd2:/dev/sde
如果执行完后GenericError: Failed to create X OSDs可以去osd节点上fdisk -l看下,成功格式化的盘会显示成如下:
# Start End Size Type Name
1 10487808 1953459598 926.5G unknown ceph data
2 2048 10487807 5G unknown ceph journal

失败的盘检查下是否被占用了,我失败了一个盘,经询问是被别人用了,东西还挺重要不让我格....现在就成了一个4个1T盘的跟一个3个1T盘的osd节点
把占用的盘卸载后再次执行ceph-deploy --overwrite-conf osd prepare osdX:/dev/sdX osdX:/dev/sdX(X就是你失败的盘)

ceph-deploy osd activate osd1:/dev/sdb osd1:/dev/sdc osd1:/dev/sdd osd1:/dev/sde osd2:/dev/sdc osd2:/dev/sdd osd2:/dev/sde
激活刚才格式化的磁盘,此时会报错RuntimeError: command returned non-zero exit status: 1,此时需要看的是这条报错上面那条WARNIN报错的内容,一般有两种:

(1)[osd2][WARNIN] OSError: [Errno 2] No such file or directory: '/var/lib/ceph/osd/ceph-5'
这是因为osd节点的/var/lib/ceph/osd/ceph-5目录不存在,本质是/var/lib/ceph/osd/目录不存在,此时需要去对应节点去mkdir -p /var/lib/ceph/osd/即可

(2)[osd1][WARNIN] ceph_disk.main.Error: Error: No cluster conf found in /etc/ceph with fsid 8012a205-442f-4d06-bf65-75a1fd25f89f
这是因为osd节点的/etc/ceph.conf内第一行fsid跟你现在的fsid对不上了,一般是因为误操作后一直在修改,但是/etc/ceph.conf文件内信息没变
此时应当执行的激活命令为(注意!):
ceph-deploy osd activate osd1:/dev/sdb1 osd1:/dev/sdc1 osd1:/dev/sdd1 osd1:/dev/sde1 osd2:/dev/sdc1 osd2:/dev/sdd1 osd2:/dev/sde1

ceph-deploy admin mon1 osd1 osd2

5.验证下:
ceph health或者ceph -s可以看健康状态
ceph osd tree可以看健康状态跟分布情况

注意:
不仅仅要配置/etc/hosts文件,主机名也是要修改成相对应的!!!
ceph-deploy mon create-initial时出现无法连接到主机是需要删除掉/var/lib/ceph/所有目录,初次安装不会有此问题
要对应好自己盘跟操作时的域名,多个mon节点应注意数量为单数个

就酱紫,一个最简单ceph就搭建完成了,还需要进一步的优化,此时的ceph仅仅是作为分布式文件系统出现的,并未对openstack提供任何功能

ceph部署与问题的更多相关文章

  1. Ceph部署(二)RGW搭建

    背景 Ceph RGW简介 Ceph RGW基于librados,是为应用提供RESTful类型的对象存储接口.RGW提供两种类型的接口: 1) S3:兼容Amazon S3RESTful API: ...

  2. OpenStack Kilo版加CEPH部署手册

    OpenStack Kilo版加CEPH部署手册 作者: yz联系方式: QQ: 949587200日期: 2015-7-13版本: Kilo 转载地址: http://mp.weixin.qq.co ...

  3. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之ceph部署-07

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之ceph部署-07 欢迎加QQ群:1026880196 进行交流学习 近期我发现网上有人转载或者复制原 ...

  4. Ceph部署(一)集群搭建

    背景 Ceph简介 Ceph是一个分布式存储,可以提供对象存储.块存储和文件存储,其中对象存储和块存储可以很好地和各大云平台集成.一个Ceph集群中有Monitor节点.MDS节点(可选,用于文件存储 ...

  5. ceph部署实践(mimic版本)

    一.准备环境 4台adminos7.4 环境,存储节点上两块磁盘(sda操作系统,sdb数据盘) clientadmin storage1storage2storage3 二.配置环境 1.修改主机名 ...

  6. ceph部署手册

    CentOS7.2部署Luminous版Ceph-12.2.0 在CentOS7.2上安装部署Luminous版Ceph-12.2.0.由于ceph的Luminous版本默认使用bluestore作为 ...

  7. ceph部署

    一.部署准备: 准备5台机器(linux系统为centos7.6版本),当然也可以至少3台机器并充当部署节点和客户端,可以与ceph节点共用:     1台部署节点(配一块硬盘,运行ceph-depo ...

  8. [ ceph ] CEPH 部署完整版(CentOS 7 + luminous)

    1. 前言 拜读了 胖哥的(el7+jewel)完整部署 受益匪浅,目前 CEPH 已经更新到 M 版本,配置方面或多或少都有了变动,本博文就做一个 ceph luminous 版本完整的配置安装. ...

  9. 分布式存储ceph部署(2)

    一.部署准备: 准备5台机器(linux系统为centos7.6版本),当然也可以至少3台机器并充当部署节点和客户端,可以与ceph节点共用:     1台部署节点(配一块硬盘,运行ceph-depo ...

  10. ceph部署-集群建立

    一.配置storage集群1.建立集群管理目录(管理配置文件,密钥)mkdir ceph-clustercd ceph-cluster/ 2.创建一个新集群(需要先将主机名加入/etc/hosts 必 ...

随机推荐

  1. gulp在ionic中的使用

    简介 Gulp是一个基于流的自动化构建器. 安装 npm config set registry http://registry.npm.taobao.org ---最好用国内源 npm instal ...

  2. selenium之 文件上传方法

    文件上传是所有UI自动化测试都要面对的一个头疼问题 首先,我们要区分出上传按钮的种类,大体上可以分为两种,一种是input框,另外一种就比较复杂,通过js.flash等实现,标签非input 我们分别 ...

  3. vim 宏的使用

    1. 基本使用 q[a-z] 开始录制宏 q  停止录制 @[a-z] 使用宏 @@ 调用最近使用的宏 22@[a-z] 多次重放宏 2. 宏的执行方式 串行方式:5@[a-z] 宏内包含向下一个目标 ...

  4. Ecilpse绑定jdk的源码

    因为近期才入职,所以电脑环境才配好,今天在写代码的时候,想查看源码,发现不能查看,所以在网上百度了一下: 下面是解决方法: 1.在Ecilpse的窗体下,点击Preferences 2.然后点击Jav ...

  5. eclipse如何查问题?

    问题:从SVN上拉了一个项目,莫名奇妙就报错?看着就很纠结 解决之道:在Window下拉菜单show View 找到Problems 就可以查到具体的原因,我的这个是需要添加一个tomcat服务器

  6. ubuntu 安装后的配置

    osx 下用 vmware 安装了一个 ubuntu 虚拟机,版本是 14.04 server.安装完之后要做一系列配置,记录如下. 配置 Android 编译环境 sudo apt-get inst ...

  7. Oracle中Hint深入理解

    Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比. 此时就需要DBA进行 ...

  8. Linux 操作系统中的进程结构

    前言 在 Linux 中,一个正在执行的程序往往由各种各样的进程组成,这些进程除了父子关系,还有其他的关系.依赖于这些关系,所有进程构成一个整体,给用户提供完整的服务( 考虑到了终端,即与用户的交互 ...

  9. poj 1163 The Triangle &poj 3176 Cow Bowling (dp)

    id=1163">链接:poj 1163 题意:输入一个n层的三角形.第i层有i个数,求从第1层到第n层的全部路线中.权值之和最大的路线. 规定:第i层的某个数仅仅能连线走到第i+1层 ...

  10. 2016/08/11 Thinkphp之getField用法总结

    getField方法是ThinkPHP中用来获取字段值的方法,区别于select和find方法,通常仅用于获取个别字段的值.但是事实上并没有那么简单,该方法的用法总结如下: 获取某个字段值 这个是ge ...