参考文档:

  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. ELK 安装过程补充(不建议看,很少)

    1.yum 安装ELK服务 参考文档:https://blog.csdn.net/tonghudan/article/details/81414387 rpm -Uvh https://dl.fedo ...

  2. 用JS制作《飞机大作战》游戏_第4讲(创建敌方飞机、敌方飞机发射子弹、玩家子弹击中敌方小飞机,小飞机死亡)-陈远波

    一.创建敌方飞机 1.思考创建思路: 创建敌方飞机思路与创建玩家飞机思路一样: (1)思考敌方飞机具备什么属性: 敌方飞机的图片.坐标.飞行速度.状态(是否被击中) 设置小飞机被击中时消失时间.飞机可 ...

  3. SDN 第二次作业

    问题 1.为什么需要SDN?SDN特点? 答:当今网络快速发展,用户的需求也就日益增加,但网络的创新速度却并没有增加,而是比较缓慢.传统网络中的网络设备是硬件.操作系统.网络应用紧耦合的,每个设备厂商 ...

  4. PyQt5--GridLayoutMultiLine

    # -*- coding:utf-8 -*- ''' Created on Sep 13, 2018 @author: SaShuangYiBing ''' import sys from PyQt5 ...

  5. myeclipse10无法weblogic10.3的问题解决方案

    在完成了myec与wl10的基本配置后,启动报如下错误 Parsing Failure in config.xml: java.lang.AssertionError: java.lang.Class ...

  6. 8.4Solr API使用(Result Grouping分组查询)

    转载请出自出处:http://eksliang.iteye.com/blog/2169458 一.概述 分组统计查询不同于分组统计(Facet),facet只是简单统计记录数,并不能为每组数据返回实际 ...

  7. Tengine 2.1.2 (nginx/1.6.2)安装配置,淘宝 Web 服务器

    简介 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很 ...

  8. Kubernetes1.91(K8s)安装部署过程(四)--Master节点安装

    再次明确下架构:  三台虚拟机 centos 7.4系统,docker为17版本,ip为10.10.90.105到107,其中105位master,接下来的master相关组件安装到此机器上. etc ...

  9. [转]VS2015+OpenCV3.3 GPU模块和opencv_contrib模块的编译以及采用CMake编译opencv_contrib时提示“No extra modules found in folder”问题的解决方案

    据官方说法,目前还不是太稳定的算法模块都在opencv_contrib里边,由于不稳定,所以不能在release版本里发行,只有在稳定以后才会放进release里边.但是这里边有很多我们经常要用的算法 ...

  10. logistic回归梯度上升优化算法

    # Author Qian Chenglong from numpy import * from numpy.ma import arange def loadDataSet(): dataMat = ...