参考文档:

  1. CEPH FILESYSTEM:http://docs.ceph.com/docs/master/cephfs/
  2. CephFS best practices:http://docs.ceph.com/docs/master/cephfs/best-practices/
  3. MDS STAT:http://docs.ceph.com/docs/master/cephfs/mds-states/
  4. Mount CephFS with the Kernel Driver:http://docs.ceph.com/docs/master/cephfs/kernel/
  5. Mount CephFS using FUSE:http://docs.ceph.com/docs/master/cephfs/fuse/
  6. Ceph PGs per Pool Calculator:https://ceph.com/pgcalc/
  7. CEPH pg/pgs:https://www.xiaobo.li/?p=1004

一.环境准备

1. CephFS

2. 环境

《CEPH LIO iSCSI Gateway》中的环境为基础,即:

Hostname

IP

Service

Remark

ceph01

public:172.30.200.57

cluster:192.30.200.57

 

1. centos7.5 with kernel v4.18.7-1;

2. ceph-13.2.1 mimic (stable),已部署

3. ntp已部署;

4. 禁用selinux,firewalld或iptables。

ceph02

public:172.30.200.58

cluster:192.30.200.58

 

ceph03

public:172.30.200.59

cluster:192.30.200.59

 

ceph-client

172.30.200.50

 

ceph-fuse-12.2.8-0(ceph yum)

二.部署CephFS

1. 创建ceph mds

Ceph元数据服务器(MetaDataServer,MDS)主要用于管理文件系统的命名空间。Ceph集群中的元数据与数据均存储在对象存储集群中,MDS类似于元数据的代理缓存服务器(不负责存储元数据),但为了实现扩展性,两者是分开独立管理

Ceph MDS不是一个必需角色,只在使用CephFS的时需要,CephFS至少需要1台MDS,最佳实践中也建议部署1台,但可以部署多台,默认是主备关系。

# 通过部署服务器部署,格式:ceph-deploy mds create HOST1[:OSD-DAEMON-NAME];
# 后期增加MDS也可通过此方式
[root@ceph01 ~]# su - cephde
[cephde@ceph01 ~]$ cd cephcluster/
[cephde@ceph01 cephcluster]$ ceph-deploy mds create ceph01 ceph02

# 查看mds守护服务,ceph02节点同理;
# 删除mds步骤:首先停止mds守护服务;再通过”ceph mds fail X”删除
[cephde@ceph01 cephcluster]$ sudo systemctl status ceph-mds@ceph01

2. 创建pool

# 1个Cephfs至少需要两个pool,MDS与数据独立管理;
# 粗略的 <pg_num> 的设定规则:
# 若少于 5 个 OSD, 设置 pg_num 为 128;
# 5~10 个 OSD,设置 pg_num 为 512;
# 10~50 个 OSD,设置 pg_num 为 4096;
# 除了<pg_num> ,还有一个可选参数 <pgp_num> ,可不设置,pgp是为了管理placement而存在的专门的pg,其pg的数量应该保持一致;
# pg数只能增加,无法减少;增加pg_num后必须同时增减pgp_num
[root@ceph01 ~]# ceph osd pool create metadata 64
[root@ceph01 ~]# ceph osd pool create data 64

3. 创建CephFS

# 格式:ceph fs new CEPHFS-NAME METADATA-POOL DATA-POOL;
# 删除cephfs需要提前删除mds:ceph fs rm CEPHFS-NAME --yes-i-really-mean-it;
# 查看:ceph fs ls
[root@ceph01 ~]# ceph fs new cephfs metadata data

# 同步观察ceph集群名为cephfs的文件系统状态变化;
# 部署在ceph02节点的MDS被确认为主MDS,被分配”rank 0”,处于active状态
[root@ceph02 ~]# ceph -w

# 或:ceph mds stat;
# 可用的文件系统一定有1个mds处于”up:active”状态;在创建cephfs前,通过”ceph mds stat”可见mds状态处于”up:standby”
[root@ceph01 ~]# ceph -s

三.挂载CephFS

在ceph-client节点挂载cephfs,CephFS有两种挂载方式:

  1. 通过内核模块挂载,性能相对更佳;
  2. 通过FUSE(Filesystem in Userspace,用户空间文件系统)挂载,fuse客户端基本可与服务器同步。

1. 通过内核驱动挂载CephFS

通过内核挂载cephfs,对内核版本有一定要求,最佳实践中并未给出最低版本的要求,只是建议如果从Ceph 10.x (Jewel) 算起,最好用 4.x 以上的内核,但v3.x基本支持

1)挂载

# 创建挂载点
[root@ceph-client ~]# mkdir -p /cephfs # 注意MDS的状态:up:active
# 挂载格式:mount -t ceph Mon-IP:6789:/ /MOUNTPOINT [-o name=amdin,secret=Keyring\secretfile=/Path/to/Secretfile];
# 默认采用ceph-deploy部署ceph集群是开启了cephx认证,需要挂载secret-keyring,即集群mon节点/etc/ceph/ceph.client.admin.keyring文件中的”key”值,采用secretfile可不用暴露keyring,但有1个bug(https://bugzilla.redhat.com/show_bug.cgi?id=1030402),始终报错:libceph: bad option at 'secretfile=/etc/ceph/admin.secret';
# 如果ceph集群含多个文件系统(默认只能创建1个文件系统,多文件系统属于实验性质,需打开开关),挂载时需要指定,参数:-o mds_namespace=CEPHFS-Name,
[root@ceph-client ~]# mount -t ceph 172.30.200.57:6789:/ /cephfs -o name=admin,secret=AQBzx5hbtt2iJxAAE4dsque5hpNzWOEYzGNzBw==

2)查看挂载情况

# 3副本环境,ceph集群450GB的总容量合并为140GB左右
[root@ceph-client ~]# df -Th

# 也可通过”dmesg | tail”观察挂载情况
[root@ceph-client ~]# dmesg | tail

3)设置开机启动挂载

# filesystem列设置为”ceph”,filesystem parameters列设置挂载user/key,时间等;
# noatime:禁止更新文件与目录的inode访问时间,以获得更快的访问速度;
# _netdev:标识文件系统位于网络上,防止网络启动前挂载
[root@ceph-client ~]# vim /etc/fstab
# cephfs
172.30.200.57:6789:/ /cephfs ceph name=admin,secret=AQBzx5hbtt2iJxAAE4dsque5hpNzWOEYzGNzBw==,noatime,_netdev 0 0

2. 通过FUSE挂载CephFS

1)准备

# 安装ceph-fuse客户端,需要提前设置ceph yum源
[root@ceph-client ~]# yum install ceph-fuse -y # 客户端挂载cephfs时,默认在/etc/ceph目录下读取需要的文件,即ceph集群mon节点的ceph.conf文件与ceph.client.admin.keyring文件
[root@ceph-client ~]# mkdir -p /etc/ceph
[root@ceph-client ~]# scp root@172.30.200.57:/etc/ceph/ceph.c* /etc/ceph/ # 卸载通过内核挂载的cephfs
[root@ceph-client ~]# umount /cephfs/

2)挂载

# 格式1:ceph-fuse /MOUNTPOINT,ceph-fuse读取ceph.conf文件,选择可用的mon节点挂载,此方式具备冗余性(依赖mon节点的冗余);
# 格式2:ceph-fuse [-k <keyring_path>/ceph.client.admin.keyring]-m Mon-IP:6789 /MOUNTPOINT,挂载效果同格式1;
# 格式3:首先启动ceph-fuse.target服务:systemctl start ceph-fuse.target;再(依赖前者)启动挂载:systemctl start ceph-fuse@/MOUNTPOINT.service,unit文件为/usr/lib/systemd/system/ceph-fuse@.service,需要根据挂载点启动服务,挂载效果与前两种方式相同
[root@ceph-client ~]# ceph-fuse /cephfs

3)查看挂载情况

# 命令”dmesg | tail”也可查看;
# 通过格式1挂载,filesystem源是ceph-fuse,并未绑定特定mon节点,文件系统是fuse.ceph-fuse
[root@ceph-client ~]# df -Th

4)设置开机启动挂载

# device列设置“ceph-fuse”或“id=admin”都可以;
# filesystem列设置为”fuse.ceph”,注意不是” fuse.ceph-fuse”;
# filesystem parameters列设置挂载时间
[root@ceph-client ~]# vim /etc/fstab
# cephfs
ceph-fuse /cephfs fuse.ceph noatime,_netdev 0 0

CEPH FILESYSTEM的更多相关文章

  1. 理解 OpenStack + Ceph (2):Ceph 的物理和逻辑结构 [Ceph Architecture]

    本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...

  2. centos6.4 ceph安装部署之cephFS

    1,ceph fileSystem

  3. centos6.4 ceph安装部署之ceph block device

    1,prelight/preface ceph storage clusterceph block deviceceph filesystemceph object storage 此篇记录ceph ...

  4. ceph理论及部署配置实践

    prefaces: ceph installation(quick)1,preflight(ins ceph-deploy repo tools)2,ceph storage cluster quic ...

  5. ceph install

    Ceph : performance, reliability and scalability storage solution Contents 1 Introduction 1.1 Testing ...

  6. 分布式存储ceph集群实践

    1.环境规划,三台主机 10.213.14.51/24            10.213.14.52/24       10.213.14.53/24    集群网络 172.140.140.11. ...

  7. Ceph 概述和理论

    1.1 Ceph概述 官网地址:https://docs.ceph.com/docs/master/ 1.Ceph简介 概述:Ceph是可靠的.可扩展的.统一的.分布式的存储系统.同时提供对象存储RA ...

  8. Ceph 架构以及原理分析

    一.架构 Ceph在一个统一的系统中独特地提供对象,块和文件存储. Ceph高度可靠,易于管理且免费. Ceph的强大功能可以改变您公司的IT基础架构以及管理大量数据的能力. Ceph提供了非凡的可扩 ...

  9. modprobe: FATAL: Module ceph not found解决办法

    问题 有可能你在进行 Ceph 文件系统挂载的时候出现下面的提示: modprobe: FATAL: Module ceph not found. mount.ceph: modprobe faile ...

随机推荐

  1. 脱壳_01_虚拟机壳_VMP

    写在前面的话: 上一篇文章中,带领大家一起分析了简单的压缩壳ASPACK,今天,就和大家一起来揭开VMP这道神秘的面纱: [花指令]:扰乱调试器的,并不执行: [混淆]:对原指令进行拆解或等价替换,会 ...

  2. Django基础必会套装

    from django.shortcuts import HttpResponse, render, redirect 1. HttpResponse('OK') --> 把字符串的OK转成二进 ...

  3. 乘风破浪:LeetCode真题_022_Generate Parentheses

    乘风破浪:LeetCode真题_022_Generate Parentheses 一.前言 关于括号的题目,我们已经遇到过了验证正确性的题目,现在让我们生成合法的括号列表,怎么办呢?想来想去还是递归比 ...

  4. Azure IoT 预配置解决方案

    Azure IoT 预配置解决方案 Sangyu Li © 2018  一.什么是Azure IoT 预配置解决方案? 如图,这就是Azure IoT Suite中 Provision solutio ...

  5. MSChart 设置饼图颜色 图例背景色 图例显示位置

    chartField.Series.Clear();            chartField.ChartAreas.Clear();            chartField.Legends.C ...

  6. 常用js对象、数组、字符串的方法

    字符串charAt() 返回在指定位置的字符.charCodeAt() 返回在指定的位置的字符的 Unicode 编码.concat() 连接字符串.indexOf() 检索字符串.match() 找 ...

  7. if 和 elif 的区别

    if:    如果一个判断中用if, 程序他会遍历所有的if, 即使你的判断条件遍历到了, 也会继续执行, 直到遍历完所有的if. elif:  而elif呢, 则效率很高. 只要遍历到你的判断条件, ...

  8. 【Alpha go】Day 2!

    [Alpha go]Day 2! Part 0 · 简要目录 Part 1 · 项目燃尽图 Part 2 · 项目进展 Part 3 · 站立式会议照片 Part 4 · Scrum 摘要 Part ...

  9. csrf在web网站中有多重要

    小弟是学python的,今天在上网时看到一个商城网站,正好昨天学到了CSRF跨站请求,就对这个商城网站进行了一波测试 可以看到网页布局做的还是很不错的,然后进入了注册页面看看 之后就开始测试了 正常请 ...

  10. CSS居中布局

    一:水平居中方案: 1.行内元素 设置 text-align:center 2.定宽块状元素 设置 左右 margin 值为 auto 3.不定宽块状元素 a:在元素外加入 table 标签(完整的, ...