Ceph FS是一个支持POSIX接口的文件系统,它使用 Ceph 存储集群来存储数据。文件系统对于客户端来说可以方便的挂载到本地使用。Ceph FS构建在RADOS之上,继承RADOS的容错性和扩展性,支持冗余副本和数据高可靠性。

注意:当前, CephFS 还缺乏健壮得像 ‘fsck’ 这样的检查和修复功能。存储重要数据时需小心使用,因为灾难恢复工具还没开发完。

准备MDS元数据服务器

Ceph 文件系统要求 Ceph 存储集群内至少有一个 Ceph 元数据服务器。

新增一个MDS很简单,可参考ceph新增节点。

创建Ceph文件系统

一个 Ceph 文件系统需要至少两个 RADOS 存储池,一个用于数据、一个用于元数据。配置这些存储池时需考虑:
1、为元数据存储池设置较高的副本水平,因为此存储池丢失任何数据都会导致整个文件系统失效。
2、为元数据存储池分配低延时存储器(像 SSD ),因为它会直接影响到客户端的操作延时。

关于存储池的管理可参考官网 存储池。

要用默认设置为文件系统创建两个存储池,你可以用下列命令:
比如我们使用120个pg。cephfs_data和cephfs_metadata是两个存储池的名称。

ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128

创建好存储池后,你就可以用 fs new 命令创建文件系统了:

ceph fs new cephfs cephfs_metadata cephfs_data

cephfs是文件系统的名称。

使用下面的命令可以查看创建的CephFS

ceph fs ls

文件系统创建完毕后, MDS 服务器就能达到 active 状态了,比如在一个单 MDS 系统中,使用命令查看

ceph mds stat

成功运行输出如下:

[zzq@ceph4 osd]$ ceph osd pool create cephfs_data 128
pool 'cephfs_data' created
[zzq@ceph4 osd]$ ceph osd pool create cephfs_metadata 128
pool 'cephfs_metadata' created
[zzq@ceph4 osd]$ ceph fs new cephfs cephfs_metadata cephfs_data
new fs with metadata pool 2 and data pool 1
[zzq@ceph4 osd]$ ceph fs ls
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
[zzq@ceph4 osd]$
[zzq@ceph4 osd]$ ceph mds stat
e3: 1/1/1 up {0=ceph4=up:active}
[zzq@ceph4 osd]$

挂载CephFS (客户端节点执行)

要挂载 Ceph 文件系统,如果你知道监视器 IP 地址可以用 mount 命令、或者用 mount.ceph 工具来自动解析监视器 IP 地址。

假如我们有4个monitor监视器,ip分别为192.168.199.81,192.168.199.82,192.168.199.83,192.168.199.84。
则使用mount命令挂载到目录/mycephfs,如下:

sudo mkdir /mycephfs
sudo mount -t ceph 192.168.199.81:6789,192.168.199.82:6789,192.168.199.83:6789,192.168.199.84:6789:/  /mycephfs

Ceph v0.55 及后续版本默认开启了 cephx 认证。
如果启用了cephx认证的Ceph文件系统,挂载时我们必须指定用户名、密钥。
secret在/etc/ceph/ceph.client.admin.keyring可以查到。

cat /etc/ceph/ceph.client.admin.keyring
sudo mount -t ceph 192.168.199.81:6789,192.168.199.82:6789,192.168.199.83:6789,192.168.199.84:6789:/ /mycephfs -o name=admin,secret=AQD/9AZb41OsJRAAhgKm6sw/LItSdb33wFQRpA==

上述用法会把密码遗留在 Bash 历史里,更安全的方法是从文件读密码。例如:

sudo mount -t ceph 192.168.199.81:6789,192.168.199.82:6789,192.168.199.83:6789,192.168.199.84:6789:/ /mycephfs -o name=admin,secretfile=/etc/ceph/admin.secret

正确输出如下:

[zzq@localhost /]$ cat /etc/ceph/ceph.client.admin.keyring
[client.admin]key = AQD/9AZb41OsJRAAhgKm6sw/LItSdb33wFQRpA==caps mds = "allow"caps mon = "allow *"caps osd = "allow *"
[zzq@localhost /]$ sudo mount -t ceph 192.168.199.81:6789,192.168.199.82:6789,192.168.199.83:6789,192.168.199.84:6789:/ /mycephfs -o name=admin,secret=AQD/9AZb41OsJRAAhgKm6sw/LItSdb33wFQRpA==
[sudo] password for zzq:
[zzq@localhost /]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_localhost-lv_root18G  2.2G   15G  14% /
tmpfs                 482M     0  482M   0% /dev/shm
/dev/sda1             477M   86M  362M  20% /boot
/dev/rbd0             3.9G  8.0M  3.8G   1% /cephAll
192.168.199.81:6789,192.168.199.82:6789,192.168.199.83:6789,192.168.199.84:6789:/33G   14G   19G  41% /mycephfs
[zzq@localhost /]$

要卸载 Ceph 文件系统,可以用 unmount 命令,例如:

sudo umount /mycephfs

可能遇到的问题

可能出现的错误
1.mount error 5 = Input/output error
2. mount error 22 = Invalid argument
第一个,首先先查mds服务是正常,不存在则添加
第二个,密钥不正确,检查密钥

用户空间挂载 CEPH 文件系统 (客户端服务器执行)

Ceph v0.55 及后续版本默认开启了 cephx 认证。

从用户空间挂载Ceph 文件系统前,确保客户端主机有一份Ceph 配置副本、和具备 Ceph元数据服务器能力的密钥环。

在客户端主机上,把监视器主机上的Ceph 配置文件拷贝到客户端服务器的 /etc/ceph/目录下。

sudo mkdir -p /etc/ceph
scp ceph1:/etc/ceph/ceph.client.admin.keyring /etc/ceph
scp ceph1:/etc/ceph/ceph.conf /etc/ceph

确保客户端机器上的 Ceph 配置文件和密钥环都有合适的权限位,如chmod 644 。

要把 Ceph 文件系统挂载为用户空间文件系统,可以用 ceph-fuse 命令,例如:

sudo mkdir /home/zzq/cephfs
sudo ceph-fuse -m 192.168.199.81:6789 /home/zzq/cephfs

启动时自动挂载

普通目录

启动时自动挂载需要把挂载信息按下列格式添加到 /etc/fstab :

sudo vi  /etc/fstab

在末尾输入内容如下:

192.168.199.81:6789,192.168.199.82:6789,192.168.199.83:6789,192.168.199.84:6789:/ /mycephfs ceph  name=admin,secret=AQD/9AZb41OsJRAAhgKm6sw/LItSdb33wFQRpA==,noatime    0       2

相关参数

 /etc/fstab下面分为6个字段:
1、要挂载的设备(可以使用LABEL、UUID、设备文件)
2、挂载点
3、文件系统类型
4、挂载选项(defaults使用默认挂载选线,如需同时指明,则:defaults,acl)
5、转储频率0:从不备份1:每天备份2:每隔一天备份
6、自检次序0:不自检1:首先自检,通常只用于根文件系统2:次级自检

用户目录

要在用户空间挂载 Ceph 文件系统,按如下加入 /etc/fstab :

id=myuser,conf=/etc/ceph/ceph.conf  /mnt/ceph2  fuse.ceph defaults 0 0

使用ceph的文件存储CephFS相关推荐

  1. ceph分布式文件存储性能调优

    ceph分布式文件存储性能调优 一.硬件调优 二.BIOS配置 三.网络配置 四.OS配置 五.硬盘调度算法 六.软件层面 七.ceph参数调优 一.硬件调优 1.NVMe SSD 调优 ● 目的 为 ...

  2. ceph 分布式文件存储部署

    目录 1.什么是ceph 2.安装方式 3.注意事项 4.osd数据清理 5.参考文献 1.什么是ceph ceph是一个高度可扩展的分布式存储解决方案,用于块存储.对象存储和共享文件系统 2.安装方 ...

  3. CEPH篇 块存储、文件存储和对象存储意义和差异及ubuntu20.4下 ceph安装

    理解块存储.文件存储和对象存储的应用场景和选择 应用场景 分布式存储的应用场景相对于其存储接口,现在流行分为三种: 对象存储: 也就是通常意义的键值存储,其接口就是简单的 GET.PUT.DEL 和其 ...

  4. 块存储、文件存储、对象存储这三者和分布式文件存储系统的本质区别

    块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based St ...

  5. 对象存储、块存储、文件存储的区别

    参考链接 http://www.infoq.com/cn/articles/virtual-forum-three-basic-issues-about-distributed-storage 分布式 ...

  6. mysql存储文件用什么类型_块存储、文件存储、对象存储的区别是什么?

    块存储: 需要实现Linux的Block Device的接口或者QEMU提供的Block Driver接口.提供随机读写,可以像使用物理硬盘一样格式化并建立文件系统来使用块存储,块存储可用于绝大部分通 ...

  7. 块存储、文件存储、对象存储这三者的区别

    参考链接 https://blog.csdn.net/wuxiaobingandbob/article/details/80178502 https://blog.csdn.net/qq_319331 ...

  8. 理解块存储、文件存储和对象存储的应用场景和选择

    理解块存储.文件存储和对象存储的应用场景和选择# 应用场景(王豪迈(麦子迈|wheats))# 分布式存储的应用场景相对于其存储接口,现在流行分为三种: 对象存储: 也就是通常意义的键值存储,其接口就 ...

  9. 第⑩讲:Ceph集群CephFS文件存储核心概念及部署使用

    文章目录 1.CephFS文件存储核心概念 1.1.CephFS文件存储简介 1.2.CephFS文件存储架构 1.3.CephFS文件系统的应用场景与特性 2.在Ceph集群中部署MDS组件 3.在 ...

最新文章

  1. Ajax同步和异步的区别
  2. 巴黎新式婴儿饼干,你敢吃吗?
  3. 谷歌利用OKR系统考核 脑力行业或可借鉴
  4. malloc,calloc,realloc
  5. 从零开始学前端:字符串和数组的方法 --- 今天你学习了吗?(JS:Day10)
  6. es6 取数组的第一个和最后一个_全球最恐怖的3个泳池,第一个有10层楼高,最后一个听名字就害怕...
  7. linux常见的查看命令
  8. bzoj3998 [TJOI2015]弦论
  9. Win10专业版开机自动拨号
  10. 【Unity3D开发小游戏】《愤怒的小鸟》Unity开发教程
  11. 从COD着陆页设计优化谈起
  12. python对excel指定数据提取并保存到另一excel表中(一)
  13. SAP Commerce Cloud 的 Simple Responsive Banner Component
  14. 亚马逊和Global Optimism欢迎汉高和昕诺飞加入《气候宣言》
  15. 【备忘】Java从零到精通学习路线培训教程
  16. 2017年2月历史文章汇总
  17. 戴尔DELL SCV/SC系列存储故障 Storage Center停机错误的解决方案
  18. 雨林木风Ghostxp sp3五周年纪念版(精品)
  19. 我为什么不在乎人工智能 / 王垠
  20. oracle抽取mysql_oracle到mysql,oracle到oraclel的多表批量数据迁移,定期任务抽取数据-kettle的使用...

热门文章

  1. 中高级JAVA工程师-面试题汇总
  2. hackthebox- Arctic (考点:ColdFusion安全/windows)
  3. 菜鸟的数学建模之路(六):层次分析法
  4. 吉首 - 夫子云游(DFS)
  5. 【技术分享】如何通过PPPOE拨号上网
  6. NetSuite ERP的优势是什么?
  7. android触摸震动原理
  8. cct省计算机等级有用吗,省计算机二级有用吗
  9. 史上最详细的讲解,第一次如何上传本地代码到github
  10. 视频编解码——视频编解码器工作原理