一、什么是POSIX标准
有一种情况是,在windows上写的代码,放到Linux上去运行居然报错,为什么?
比如在代码中需要创建一个进程,linux下是fork函数,windows下是creatprocess函数,可我是在windows上写的代码,自然调用的是creatprocess函数
但是我将代码拿到linux上运行,linux内核提供的系统调用根本就没有creatprocess函数。怎么可能会不报错呢?对吧?
一定要注意,不同的内核提供的系统调用(也就是一个函数)是不同的。
因此,posix标准的出现就是为了解决这个问题。linux内核和windows内核提供的系统调用都要实现基本的posix标准,这样就方便移植了。
二、什么是CephFS
CephFS也称ceph文件系统,他是一个POSIX兼容的分布式文件系统。
三、实现ceph文件系统的要求
1、需要一个已经正常运行的ceph集群
2、至少包含一个ceph元数据服务器(MDS)
为什么ceph文件系统依赖于MDS?为毛线?
因为:
Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据。
元数据服务器使得POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。
问题又来了,什么是元数据?
可以简单的理解为它是描述数据的数据,意思就是描述数据的信息,比如,数据的大小、位置、属性等等信息
【可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。】意思就是说
在执行数据搜索和查看的时候,首先查找的是元数据,通过元数据中的描述信息准确且快速的找到数据。
而不用大费周章的在整个集群的osd上查找
通常,客户端向cephfs发起I/O时,过程大概为两步:
1、client端与mds节点通讯,获取metadata信息(metadata也存在osd上)
2、client直接写数据到osd
四、挂载ceph文件系统的方式
支持两种方式
1、使用本地系统内核驱动程序进行挂载
2、使用ceph fuse进行挂载
五、创建mds
要运行 Ceph 文件系统,你必须先装起至少带一个 Ceph 元数据服务器的 Ceph 存储集群。
我这里让ceph-node1,ceph-node2,ceph-node3 这三个节点都成为mds的角色
在管理节点上,通过ceph-deploy工具进行部署,执行命令如下
[root@ceph-node1 ~]# cd my-cluster/ #进入存放了ceph集群配置文件的目录
[root@ceph-node1 my-cluster]# ceph-deploy mds create ceph-node1 ceph-node2 ceph-node3 #开始创建mds
六、创建CephFS
注意:
1、但是当前一套集群只能有一个文件系统存在。
2、一