• ceph文件系统


    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. 1. ## 在ansible清单文件中添加:
    2. [root@node2 ~]# vim /etc/ansible/hosts
    3. [mdss]
    4. node[2:4]
    5. 2. ## 开放入口文件的mdss功能:
    6. [root@node2 ~]# vim ceph-ansible-main/site.yml
    7. - hosts:
    8. - mdss
    9. 3. ##复制mdss.yml文件
    10. [root@node2 ~]# cp ceph-ansible-main/group_vars/mdss.yml.sample ceph-ansible-
    11. main/group_vars/mdss.yml
    12. 4. ##重新部署
    13. [root@node2 ceph-ansible-main]# ansible-playbook site.yml

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

    1. [root@node2 ~]# ceph osd pool create cephfs_data 128
    2. [root@node2 ~]# ceph osd pool create cephfs_metadata 128

    4.  创建文件系统:

    1. [root@node2 ~]# ceph fs new cephfs(文件系统名称) cephfs_metadata cephfs_data
    2. ## 查看文件系统状态
    3. [root@node2 ~]# ceph fs ls
    4. name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
    5. ## 再次此时查看mds的服务状态,可以看到node2被选举为active主,另外两个承担standby的角色[root@node2 ~]# ceph -s

    5.  CephFS客户端挂载:

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

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

    1. [root@client ~]# mkdir /mnt/cephfs1
    2. ## 文件系统临时挂载,默认把三个节点都挂载到/mnt/cephfs1
    3. [root@client ~]# mount.ceph :/ /mnt/cephfs1 -o name=admin
    4. ## 查看文件系统挂载状态
    5. [root@client ~]# df -h
    6. ## 如果你需要持久挂载,我们可以将cephfs挂载的存储信息写入到/etc/fstab文件中,例如∶
    7. :/ /mnt/cephfs1 ceph name=admin,noatime,_netdev 0 2

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

    1. ## 安装ceph-fuse
    2. [root@client ~]# yum install ceph-fuse -y
    3. ## 生成挂载文件目录mkdir
    4. [root@client ~]# mkdir /mnt/cephfs2
    5. ## 挂载文件系统
    6. [root@client ~]# ceph-fuse -n client.admin -m node2:6789,node3:6789,node4:6789
    7. /mnt/cephfs2
    8. -n:表示指定操作的用户
    9. -m:表示指定节点
    10. ## 查看挂载状态
    11. [root@client ~]# df -h

    6.  清除实验资源:

    1. ## 卸载文件系统
    2. [root@client ~]# umount /mnt/cephfs1
    3. [root@client ~]# umount /mnt/cephfs2
    4. [root@client ~]# rm -rf /mnt/cephfs*
    5. # 删除文件系统,同样要修改ceph配置文件才能删除
    6. [root@node2 ~]# ceph fs rm cephfs --yes-i-really-mean-it

  • 相关阅读:
    游戏企业如何高质量出海?如何保证出海内容合规
    麦田物语学习
    -钞票兑换-
    vue3的基本使用(超详细)
    离线打包maven设置
    Spring 中容器启动分析之refresh方法执行之前
    C语言求解一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
    数据结构与算法(四)--队列
    ElasticSearch全文搜索引擎
    Unity使用Remote直接在手机上调试游戏
  • 原文地址:https://blog.csdn.net/NancyLCL/article/details/126919700