zoukankan      html  css  js  c++  java
  • Ceph文件系统快速入门

      准备工作

      1,确认你使用了合适的内核版本,详情见操作系统推荐

    lsb_release -a
    uname -r
    

       2,在管理节点上,通过 ceph-deploy 把 Ceph 安装到 ceph-client 节点上。

    ceph-deploy install ceph-client
    

       注意:ceph-client为可以连接的主机名或者IP地址,最好设置好ssh免密,否则需要输入密码才能进行安装

          最好在对应节点设置好yum源使用以下命令安装,否则安装很慢或者安装失败

    yum -y update && yum -y install ceph-radosgw 
    

       3,确保 Ceph 存储集群在运行,且处于 active clean 状态。同时,确保至少有一个 Ceph 元数据服务器在运行。

       创建文件系统

      虽然已创建了元数据服务器(存储集群快速入门),但如果你没有创建存储池和文件系统,它是不会变为活动状态的。

    ceph osd pool create cephfs_data <pg_num>
    ceph osd pool create cephfs_metadata <pg_num>
    ceph fs new <fs_name> cephfs_metadata cephfs_data
    

       例如

    #创建数据存储池 名为cephfs_data PG数为64
    [root@admin-node my-cluster]# ceph osd pool create cephfs_data 64
    pool 'cephfs_data' created
    #创建元数据存储池 名为cephfs_metadate PG数为32 
    #元数据存储池PG数一遍情况下小于数据存储池PG数
    [root@admin-node my-cluster]# ceph osd pool create cephfs_metadata 32
    pool 'cephfs_metadata' created
    

       查看创建的存储池

    [root@admin-node my-cluster]# ceph osd pool ls
    .rgw.root
    default.rgw.control
    default.rgw.meta
    default.rgw.log
    rbd_pool
    cephfs_data #数据存储池
    cephfs_metadata#元数据存储池
    

       查看数据存储池详细信息

    [root@admin-node my-cluster]# ceph osd pool get cephfs_data all
    size: 2
    min_size: 1
    pg_num: 64
    pgp_num: 64
    crush_rule: replicated_rule
    hashpspool: true
    nodelete: false
    nopgchange: false
    nosizechange: false
    write_fadvise_dontneed: false
    noscrub: false
    nodeep-scrub: false
    use_gmt_hitset: 1
    fast_read: 0
    pg_autoscale_mode: warn
    

       使用刚刚创建的数据存储池和元数据存储池创建ceph文件系统

    [root@admin-node my-cluster]# ceph fs new cephfs cephfs_metadata cephfs_data
    new fs with metadata pool 7 and data pool 6
    

       查看

    [root@admin-node my-cluster]# ceph fs ls
    #名称是cephfs                        #元数据存储池           #数据存储池
    name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
    

       查看mds服务状态

    [root@admin-node my-cluster]# ceph mds stat
    cephfs:1 {0=node1=up:active}
    

       创建秘钥文件

      Ceph 存储集群默认启用认证,你应该有个包含密钥的配置文件(但不是密钥环本身)。用下述方法获取某一用户的密钥:

      1,在密钥环文件中找到与某用户对应的密钥,例如:

    cat ceph.client.admin.keyring
    

       2,找到用于挂载 Ceph 文件系统的用户,复制其密钥。大概看起来如下所示:

    [client.admin]
    	key = AQC8kitfy2KmGxAAI7uYR/ra86ViO6omXftiYQ==
    

       3,打开文本编辑器。

      4,把密钥粘帖进去,大概像这样:

    AQC8kitfy2KmGxAAI7uYR/ra86ViO6omXftiYQ==
    
      5,保存文件,命名为admin.secret

      6,确保文件对用户有合适的权限,但对其他用户不可见

      挂载

      把Ceph FS挂载在client

    sudo mkdir /mnt/mycephfs
    sudo mount -t ceph {ip-address-of-monitor}:6789:/ /mnt/mycephfs
    

       挂载失败

    # mount -t ceph 192.168.1.101:6789:/ /mnt/mycephfs/
    2020-08-07 09:19:28.852 7fed2b88fb80 -1 auth: unable to find a keyring on /etc/ceph/ceph.client.guest.keyring,/etc/ceph/ceph.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin,: (2) No such file or directory
    mount error 22 = Invalid argument
    

       因为ceph默认开启认证,所以挂载时需要指定用户名 name 和创建密钥文件一节中创建的密钥文件 secretfile ,例如:

    mount -t ceph 192.168.1.101:6789:/ /mnt/mycephfs/ -o name=admin,secretfile=admin.secret
    

       删除文件存储

      卸载挂载

    umount /mnt/mycephfs
    

       所有节点停止mds服务

    systemctl stop ceph-mds.target
    

       删除

    [root@admin-node]# ceph fs rm cephfs --yes-i-really-mean-it
    [root@admin-node]# ceph osd pool delete cephfs_metadata cephfs_metadata --yes-i-really-really-mean-it
    pool 'cephfs_metadata' removed
    [root@admin-node]# ceph osd pool delete cephfs_data cephfs_data --yes-i-really-really-mean-it
    pool 'cephfs_data' removed
    

       注意:为了安全需要输入两次创建的pool名并且加参数--yes-i-really-really-mean-it才能删除

          注意:需要在配置文件添加以下配置,才能删除

      如果已经添加配置还提示

    Error EPERM: pool deletion is disabled; you must first set the mon_allow_pool_delete config option to true before you can destroy a pool
    

       则重启服务ceph-mon.target即可

      删除cephfs和两个存储池再次启动mds服务

    systemctl start ceph-mds.target
    

       

  • 相关阅读:
    Microsoft Enterprise Library 5.0下载地址
    在Asp.net里使用非拖管dll
    安装与设置Visual SVN
    为WinForms程序添加Form级快捷键的最简单方式
    如何设计svn的目录层次?
    Set up a svn server on a virtual ubuntu
    Android开发进阶之NIO非阻塞包(三)
    .net获取根目录的方法集合
    Android开发进阶之NIO非阻塞包(五)
    Android开发进阶之NIO非阻塞包(四)
  • 原文地址:https://www.cnblogs.com/minseo/p/13450883.html
Copyright © 2011-2022 走看看