CEPH FILESYSTEM
参考文档:
- CEPH FILESYSTEM:http://docs.ceph.com/docs/master/cephfs/
- CephFS best practices:http://docs.ceph.com/docs/master/cephfs/best-practices/
- MDS STAT:http://docs.ceph.com/docs/master/cephfs/mds-states/
- Mount CephFS with the Kernel Driver:http://docs.ceph.com/docs/master/cephfs/kernel/
- Mount CephFS using FUSE:http://docs.ceph.com/docs/master/cephfs/fuse/
- Ceph PGs per Pool Calculator:https://ceph.com/pgcalc/
- 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有两种挂载方式:
- 通过内核模块挂载,性能相对更佳;
- 通过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的更多相关文章
- 理解 OpenStack + Ceph (2):Ceph 的物理和逻辑结构 [Ceph Architecture]
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...
- centos6.4 ceph安装部署之cephFS
1,ceph fileSystem
- centos6.4 ceph安装部署之ceph block device
1,prelight/preface ceph storage clusterceph block deviceceph filesystemceph object storage 此篇记录ceph ...
- ceph理论及部署配置实践
prefaces: ceph installation(quick)1,preflight(ins ceph-deploy repo tools)2,ceph storage cluster quic ...
- ceph install
Ceph : performance, reliability and scalability storage solution Contents 1 Introduction 1.1 Testing ...
- 分布式存储ceph集群实践
1.环境规划,三台主机 10.213.14.51/24 10.213.14.52/24 10.213.14.53/24 集群网络 172.140.140.11. ...
- Ceph 概述和理论
1.1 Ceph概述 官网地址:https://docs.ceph.com/docs/master/ 1.Ceph简介 概述:Ceph是可靠的.可扩展的.统一的.分布式的存储系统.同时提供对象存储RA ...
- Ceph 架构以及原理分析
一.架构 Ceph在一个统一的系统中独特地提供对象,块和文件存储. Ceph高度可靠,易于管理且免费. Ceph的强大功能可以改变您公司的IT基础架构以及管理大量数据的能力. Ceph提供了非凡的可扩 ...
- modprobe: FATAL: Module ceph not found解决办法
问题 有可能你在进行 Ceph 文件系统挂载的时候出现下面的提示: modprobe: FATAL: Module ceph not found. mount.ceph: modprobe faile ...
随机推荐
- python的学习之路day3
大纲 1.汉字编码 2.浅拷贝与深拷贝 3.函数 4.return 5.函数的基本参数 6.format 7.三元运算(三目运算) 8.python的内置函数 abs() all() any() bo ...
- Java 中File类的createNewFile()与createTempFile(), delete和deleteOnExit区别
1. Java 中File类的createNewFile()与createTempFile()的区别 最近,在看代码时看到了一个方法, File.createTempFile() ,由此联想到File ...
- Linux 基本概念 & 命令
0. Linux 理解 Linux 是一种操作系统,主要应用于服务器. Linux 性能稳定,其中的许多版本不收费(如CentOS),占用资源较少. 1. 命令行的状态 在 Linux 命令行下以上分 ...
- October 14th 2017 Week 41st Saturday
I was well beaten myself, and I am beffer for it. 我自己也被打败过,但我因此变得更好. For most of us, the life road c ...
- 极限编程核心价值:勇气(Courage)
原文:https://deviq.com/courage 极限编程核心价值:简单(Simplicity) 极限编程核心价值:沟通(Communication) 极限编程核心价值:反馈(Feedback ...
- sphinx编译安装
install sphinx wget http://sphinxsearch.com/files/sphinx-2.0.8-release.tar.gz tar zxvf sphinx--relea ...
- ICC2 常用命令
1. 关于 data preparation : report_ref_libs : report reference library report_lib lib_aa : report the ...
- servlet3.0
1.之前我们创建的项目是servlet2.5,之前的版本,servlet.filter.listener需要配置web.xml 在servlet3.0的时候,没有web.xml,提供注解开发. ser ...
- 关于OpenCV2.4.9在VS2012上的配置
今天写着篇文章是由于自从上次电脑换硬盘今天再次安装OpenCV又遇到了一些问题,最后终于搞定,,,,用的版本是2.4.9,,,因为第一次配置用3.0的没有配置成功,而2.4.9的配置成功. 首先当然是 ...
- Mapreduce -- PageRank
PageRank 简单理解为网页排名,但是网页是根据什么排名的,接下来就简单介绍一下. 举例: 假设网页 A 的内容中有网页 B,C 和 D 的链接,并且 A 的 PageRank的值为0.25. 那 ...