您的当前位置:首页正文

ceph文件系统

2024-11-24 来源:个人技术集锦

1.  ceph文件系统:

        CephFS需要有个一个MDS(Meta Data Servers)元数据服务,其构建在RADOS之上,对客户端提供数据存储的服务;MDS由多个节点组成,节点之间使用 Active/Standby 模式,即主备模式对外提供服务,主节点的日志元数据信息记录在pool资源池上∶由一个单独的资漂池pool存放,MDS之间会定期交换metadata元数据信息;当主MDS异常时,备用的MDS会接管其功能,元数据信息将直接从journal 资源池中获取,从而保障数据的一致性。

        另外,对于数据的读写操作,客户端从metadata获取元数据之后,客户端对数据的读写操作直接到数据存储的资源池,从而将元数据和和数据存储资源池分开,构建MDS集群时需要创建两个pool,其中一个存放metadata元数据,另外一个存放实际data数据。

2.  MDS集群部署:

1. ## 在ansible清单文件中添加:
[root@node2 ~]# vim /etc/ansible/hosts
[mdss]
node[2:4]

2. ## 开放入口文件的mdss功能:
[root@node2 ~]# vim ceph-ansible-main/site.yml
- hosts:
  - mdss

3. ##复制mdss.yml文件
[root@node2 ~]# cp ceph-ansible-main/group_vars/mdss.yml.sample ceph-ansible-
main/group_vars/mdss.yml

4. ##重新部署
[root@node2 ceph-ansible-main]# ansible-playbook site.yml

3.  创建存放metadata元数据和存放实际data数据的池:

[root@node2 ~]# ceph osd pool create cephfs_data 128 

[root@node2 ~]# ceph osd pool create cephfs_metadata 128 

4.  创建文件系统:

[root@node2 ~]# ceph fs new cephfs(文件系统名称) cephfs_metadata cephfs_data 

## 查看文件系统状态
[root@node2 ~]# ceph fs ls
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

## 再次此时查看mds的服务状态,可以看到node2被选举为active主,另外两个承担standby的角色[root@node2 ~]# ceph -s

5.  CephFS客户端挂载:

        CephFS提供了两种客户端和CephFS文件存储交互∶内核的 cephfs和用户态级别的 ceph-fuse,内核极别的 cephfs 性能上会优于ceph-fuse,因此推荐使用 cephfs。使用 cephf时需要认证信息,为了简便,我们使用默认提供的admin用于实现和CephFS的交互

        方式一.  使用CephFS挂载文件系统:

[root@client ~]# mkdir /mnt/cephfs1 

## 文件系统临时挂载,默认把三个节点都挂载到/mnt/cephfs1上
[root@client ~]# mount.ceph :/ /mnt/cephfs1 -o name=admin

## 查看文件系统挂载状态
[root@client ~]# df -h

## 如果你需要持久挂载,我们可以将cephfs挂载的存储信息写入到/etc/fstab文件中,例如∶
:/ /mnt/cephfs1  ceph  name=admin,noatime,_netdev    0    2 

        方式二.  使用ceph-fuse挂载文件系统:

## 安装ceph-fuse 
[root@client ~]# yum install ceph-fuse -y

## 生成挂载文件目录mkdir 
[root@client ~]# mkdir /mnt/cephfs2

## 挂载文件系统
[root@client ~]# ceph-fuse -n client.admin -m node2:6789,node3:6789,node4:6789
/mnt/cephfs2

-n:表示指定操作的用户
-m:表示指定节点

## 查看挂载状态
[root@client ~]# df -h

6.  清除实验资源:

## 卸载文件系统
[root@client ~]# umount /mnt/cephfs1 

[root@client ~]# umount /mnt/cephfs2

[root@client ~]# rm -rf /mnt/cephfs*

# 删除文件系统,同样要修改ceph配置文件才能删除
[root@node2 ~]# ceph fs rm cephfs --yes-i-really-mean-it

显示全文