• CEPH FILESYSTEM


    参考文档:

    1. CEPH FILESYSTEM:http://docs.ceph.com/docs/master/cephfs/
    2. CephFS best practices:http://docs.ceph.com/docs/master/cephfs/best-practices/
    3. MDS STAT:http://docs.ceph.com/docs/master/cephfs/mds-states/
    4. Mount CephFS with the Kernel Driver:http://docs.ceph.com/docs/master/cephfs/kernel/
    5. Mount CephFS using FUSE:http://docs.ceph.com/docs/master/cephfs/fuse/
    6. Ceph PGs per Pool Calculator:https://ceph.com/pgcalc/
    7. 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有两种挂载方式:

    1. 通过内核模块挂载,性能相对更佳;
    2. 通过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=Keyringsecretfile=/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
  • 相关阅读:
    vim 命令
    navicat 破解
    vim 使用技巧记录
    Ubuntu 16.04 安装ftp服务器
    mockito测试入门学习
    Java的getClass()函数
    JQuery中Ajax的操作
    JS中获取元素使用getElementByID()、getElementsByName()、getElementsByTagName()的用法和区别
    Tomcat下ajax请求路径总结
    javascript:void()的理解
  • 原文地址:https://www.cnblogs.com/netonline/p/10485176.html
Copyright © 2020-2023  润新知