机器规划

IP 主机名 角色
10.101.0.1 ceph01 mon admin mds
10.101.0.2 ceph02 ods
10.101.0.3 ceph03 ods
10.101.0.4 ceph04 ods
10.101.0.5 client client(挂载点)

考虑到高可用性,生产集群应该至少有 3 个监视器。

在每台机添加hosts

10.101.0.1 ceph01
10.101.0.2 ceph02
10.101.0.3 ceph03
10.101.0.4 ceph04

关闭防火墙和SELINUX

每个节点上创建ceph用户并添加sudo权限

useradd ceph
echo "ceph ALL = (root) NOPASSWD:ALL" >/etc/sudoers.d/ceph
echo "Defaults:ceph |requiretty" >/etc/sudoers.d/ceph

在管理节点ceph01上生成ceph用户的ssh公钥并实现免密码登录其他主机

1.所有机器安装epel和ceph源

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

rpm -ivh https://download.ceph.com/rpm-hammer/el6/noarch/ceph-release-1-1.el6.noarch.rpm

2.在管理节点上安装ceph-deploy(ceph01节点)

yum install -y ceph-deploy

3.在ceph集群安装

部署过程中有错误可以查看日志/var/log/ceph/

3.1切换到ceph用户执行(ceph01节点)

mkdir /home/ceph/ceph-cluster
cd /home/ceph/ceph-cluster 生成集群配置文件
ceph-deploy new ceph01 #上面的命令会生成3个文件
ceph.conf #集群配置文件,此配置可按需修改或不修改也行
ceph.log #日志文件
ceph.mon.keyring #keyring文件,集群验证用

3.2安装ceph(ceph01节点)

ceph-deploy install ceph01 ceph02 ceph03 ceph04 --repo-url=https://download.ceph.com/rpm-hammer/el6/
#此命令将会按顺序在3台机上安装ceph

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

ceph-deploy mon create-initial
#执行此命令后会初始化mon节点,ceph.conf文件中声明了mon节点等信息

3.4添加数据节点(ceph02,ceph03,ceph04)

挂载好要使用的磁盘
mount /dev/sdb1 /data/osd0(另外两个节点类似,不过是osd1,osd2。名称可自定义)

3.5

在管理节点初始化磁盘(ceph01)

ceph-deploy disk zap ceph01:sdb ceph02:sdb ceph03:sdb

在管理节点准备OSD(ceph01)

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

3.6激活OSD(ceph01)

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

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

ceph-deploy admin ceph01 ceph02 ceph03

3.8查看集群状态

sudo ceph health #集群健康状态,返回OK状态
sudo ceph -s #
sudo ceph status #集群状态

4.安装、挂载cephfs

4.1创建mds(ceph01节点)

ceph-deploy mds create ceph04
#如果报如下错误
RuntimeError: config file /etc/ceph/ceph.conf exists with different content; use --overwrite-conf to overwrite
加上--overwrite-conf参数
ceph-deploy --overwrite-conf mds create ceph04 查看mds进程
netstat -tnlp | grep mds
tcp 172.16.100.5: 0.0.0.0:* LISTEN /ceph-mds

4.2创建pool(ceph01节点)

查看pool
ceph osd lspools
新创建的ceph集群默认只有rdb一个pool。这时我们需要创建新的pool 创建两个存储池。MDS需要使用两个pool,一个pool用来存储数据,一个pool用来存储元数据。 ceph osd pool create fs_data #这里的32指的是PG组
ceph osd pool create fs_metadata
查看pool
rados lspools

4.3创建Cephfs(ceph01节点)

ceph fs new cephfs fs_metadata fs_data
#查看
ceph fs ls
#查看MDS状态
  ceph mds stat

4.4在client节点挂载cephfs(client节点)

Client挂载方式有两种:内核kernal方式和fuse方式。(内核挂载方式需要2.6.34及其以后的版本才支持)

使用fuse方式挂载(注意:此方式读写效率很低)

安装ceph-fuse
yum install -y ceph-fuse 复制配置文件
将ceph配置文件ceph.conf从管理节点copy到client节点
scp ceph@ceph01:/etc/ceph/ceph.conf /etc/ceph/ 复制密钥
将ceph的ceph.client.admin.keyring从管理节点copy到client节点
scp ceph@ceph01:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ 查看ceph授权
ceph auth list 创建挂载目录
mkdir /cephfs 挂载到指定目录
将ceph挂载到/cephfs
ceph-fuse -m ceph01: /cephfs(可以挂在多个mon节点保证高可用,ip:6789,ip:6789)

5.rbd块设备映射

使用rbd块设备方式挂载(读写效率高),但需要加载rbd内核模块,2.6.34之前的版本都没有该模块,要把系统内核升级到2.6.34或者更新。

创建一个pool

ceph osd pool create press 

设置pool 的pgp_num

ceph osd pool set press pgp_num 

查看创建的pool

ceph osd lspools

创建一个100G 名为 image 镜像

rbd create -p press --size  image

查看镜像

rbd -p press info image

客户端块存储挂载:

rbd -p press map image
mkfs.xfs /dev/rbd0
mount /dev/rbd0 /mnt/rbd

卸载map镜像

umount /mnt/rbd
rbd unmap /dev/rbd0

参考文档:

http://www.cnblogs.com/keithtt/p/6410288.html

http://blog.csdn.net/yhao2014/article/details/51394815

https://www.cnblogs.com/jicki/p/5844592.html

CentOS 6.8安装Ceph的更多相关文章

  1. CentOS 7 x64 安装 Ceph

    CentOS 7  x64 安装 Ceph 二, 实验环境 节点            IP                 主机名                  系统 MON         1 ...

  2. [转帖]CentOS 7 x64 安装 Ceph

    CentOS 7 x64 安装 Ceph https://www.cnblogs.com/jicki/p/5801712.html 改天尝试一下. k8s 可以使用ceph 作为 pv和pvc的后端存 ...

  3. 基于CentOS 7.3 安装Ceph Jewel 10.2.9

    https://www.lijiawang.org/posts/intsall-ceph.html 配置说明: 采用了4台centos7.3系统的虚拟机,1台Ceph-Master作为安装节点,NTP ...

  4. CentOS 安装 ceph 单机版(luminous版本)

    一.环境准备 CentOS Linux release 7.4.1708 (Core)一台,4块磁盘(sda.sdb,.sdc.sdd) 192.168.27.130 nceph 二.配置环境 1.修 ...

  5. CentOS 安装 ceph 单机版

    简介 Ceph是一个分布式存储软件. 它支持用3种方式存储数据,分别是:对象存储.块设备存储.分布式文件系统存储. Ceph这个软件,分为3层,最底层是Rados对象存储系统.中间是一个librado ...

  6. centos 7.3 快速安装ceph

    Ceph的部署手册(Centos7.3)     Ceph简介 Ceph是一种为优秀的性能.可靠性和可扩展性而设计的统一的.分布式文件系统. 部署逻辑架构 准备3台主机,并且修改主机名(hostnam ...

  7. rexray在CentOS上不能创建ceph rbd的docker volume问题定位

    背景 我们通过docker的rexray插件来创建ceph rbd设备的docker volume,但总提示创建失败. # docker volume create --driver=rexray - ...

  8. 虚拟机使用ceph-deploy安装ceph

    参考: ceph官网介绍 使用ceph-deploy安装Ceph 12.x 安装虚拟机 首先安装虚拟机环境,虚拟机安装这里不做介绍,本实验使用的镜像为CentOS-7-x86_64-Everythin ...

  9. ceph 安装ceph问题汇总

    1.在不同节点安装ceph时,出现以下异常: 参考这里 ceph deploy RuntimeError: NoSectionError: No section: 'ceph' 解决方法: 在报错的机 ...

随机推荐

  1. C# Winform中的ComboBox控件绑定数据库项目作为列表内容

    //初始化院区下拉列表,使用了Oracle数据库中的表项目 try { //string connString = "User=system;Password=manager;Data So ...

  2. 完美解决Office2003、Office2007、Office2010、Office2013共存方法

    原文:http://www.360doc.com/content/14/0903/16/7555793_406799011.shtml 微软Office深受广大用户的青睐,特别是经典的Office 2 ...

  3. windows 打印刻录 代码规范及问题

    1.获取CString字节数 int z_Len = WideCharToMultiByte(CP_ACP, 0, z_FileXml.GetBuffer(), z_FileXml.GetLength ...

  4. 第三次Scrum编码冲刺

    1.小组成员 周 斌 舒 溢 许嘉荣 唐 浩 黄欣欣 廖帅元 刘洋江 薛思汝 2.个人在小组第三次冲刺的任务及其完成情况描述. 这次小组活动中我负责测试程序的实现情况,确保程序的每个模块都能正常运行, ...

  5. mysql 更新sql报错:You can't specify target table 'wms_cabinet_form' for update in FROM clause

    数据库里面有两个字段的位置不对,要把他们对调换下.因为没有数据库写的权限,需要用sql语句来实现.原来以为简单的 update table a set a.字段a=(select b字段 from t ...

  6. TreeMap----的实现原理(红黑树)

    TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致 ...

  7. Kettle数据抽取解决方案

    一. Kettle介绍 1. Kettle简介 ETL即数据抽取(Extract).转换(Transform).装载(Load)的过程.Kettle的中文翻译为水壶.Kettle以元数据驱动的方式提供 ...

  8. python全栈学习笔记(一)网络基础之网络协议篇

    阅读目录 一.操作系统基础 二.网络通信原理 2.1 互联网的本质就是一系列的网络协议 2.2 osi七层协议 2.3 tcp/ip五层模型讲解 2.3.1 物理层 2.3.2 数据链路层 2.3.3 ...

  9. Python学习---Python下[列表]的学习

    列表[list]用中括号[]表示,处理一组有序项目的数据结构,列表的类型是可变的数据类型,类型是list 列表是可变/线程不安全的 # type(a) = list  利用type判断元素离线 # 切 ...

  10. JS获取URL中参数值的4种方法

    方法一:正则法 function getQueryString(name) { var reg = new RegExp('(^|&)' + name + '=([^&]*)(& ...