zoukankan      html  css  js  c++  java
  • Ceph块设备快速入门

      要实践本手册,需要完成集群存储快速入门安装,并确保Ceph集群处于active状态,才能使用块设备

    Note Ceph 块设备也叫 RBD 或 RADOS 块设备。
    

     

       你可以在虚拟机上运行 ceph-client 节点,但是不能在与 Ceph 存储集群(除非它们也用 VM )相同的物理节点上执行下列步骤。

      安装Ceph

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

    lsb_release -a #Ubuntu    
    uname -r  #CentOS
    

       2,在管理节点上,通过ceph-deploy安装ceph

    ceph-deploy install ceph-client
    

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

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

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

       3,在管理节点上,用 ceph-deploy 把 Ceph 配置文件和 ceph.client.admin.keyring 拷贝到 ceph-client 。

      ceph-deploy 工具会把密钥环复制到 /etc/ceph 目录,要确保此密钥环文件有读权限

      配置块设备

      1,创建存储池

      要创建一个存储池,执行

    ceph osd pool create {pool-name} {pg-num} [{pgp-num}] [replicated] 
            [crush-ruleset-name] [expected-num-objects]
    ceph osd pool create {pool-name} {pg-num}  {pgp-num}   erasure 
            [erasure-code-profile] [crush-ruleset-name] [expected_num_objects]
    

       参数含义如下

      {pool-name}

      描述:存储池名称,必须唯一

      类型:String

      是否必需:必需

      {pg-num}

      描述:存储池拥有的归置组总数。

    确定 pg_num 取值是强制性的,因为不能自动计算。下面是几个常用的值:
    
    少于 5 个 OSD 时可把 pg_num 设置为 128
    OSD 数量在 5 到 10 个时,可把 pg_num 设置为 512
    OSD 数量在 10 到 50 个时,可把 pg_num 设置为 4096
    OSD 数量大于 50 时,你得理解权衡方法、以及如何自己计算 pg_num 取值
    自己计算 pg_num 取值时可借助 pgcalc 工具
    

      类型:整数

      是否必需:必需

      {pgp-num}

      描述:用于归置的归置组总数。此值应该等于归置组总数,归置组分割的情况下除外。

      类型:整数

      是否必需:没指定的话读取默认值、或 Ceph 配置文件里的值。

      默认值:8

      {replicated|erasure}

      描述:存储池类型,可以是副本(保存多份对象副本,以便从丢失的 OSD 恢复)或纠删(获得类似 RAID5 的功能)。多副本存储池需更多原始存储空间,但已实现所有 Ceph 操作;纠删存储池所需原始存储空间较少,但目前仅实现了部分 Ceph 操作。

      类型:string

      是否必需:No

      默认值:replicated

      例如创建一个存储池

    [root@client ~]# ceph osd pool create rbd_pool 128
    pool 'rbd_pool' created
    

       初始化存储池(没有返回)

    [root@client ~]# rbd pool init rbd_pool
    

       2,创建一个存储卷

      创建存储卷卷名为volume1 使用存储卷为rbd_pool 大小问5000M

    rbd create volume1 --pool rbd_pool --size 5000
    

       查看

    [root@ceph-client]# rbd ls rbd_pool
    volume1
    
    # rbd info volume1 -p rbd_pool
    rbd image 'volume1':
    	size 4.9 GiB in 1250 objects
    	order 22 (4 MiB objects)
    	snapshot_count: 0
    	id: 11586d5ffd28
    	block_name_prefix: rbd_data.11586d5ffd28
    	format: 2
    	features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
    	op_features: 
    	flags: 
    	create_timestamp: Thu Aug  6 17:45:49 2020
    	access_timestamp: Thu Aug  6 17:45:49 2020
    	modify_timestamp: Thu Aug  6 17:45:49 2020
    

       将创建的卷映射成块设备

      因为rbd镜像的一些特性,OS kernel并不支持,所以映射报错

    # rbd map rbd_pool/volume1
    rbd: sysfs write failed
    RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable rbd_pool/volume1 object-map fast-diff deep-flatten".
    In some cases useful info is found in syslog - try "dmesg | tail".
    rbd: map failed: (6) No such device or address
    

       解决办法:disable掉相关特性

    rbd feature disable rbd_pool/volume1 exclusive-lock object-map fast-diff deep-flatten
    

       再次映射

    # rbd map rbd_pool/volume1
    /dev/rbd0
    

       查看映射

    # rbd showmapped
    id pool     namespace image   snap device    
    0  rbd_pool           volume1 -    /dev/rbd0 
    

       格式化挂载

    mkfs.xfs /dev/rbd0
    mount /dev/rbd0 /mnt
    

       查看

    # df -h |tail -1
    /dev/rbd0                        4.9G   33M  4.9G    1% /mnt
    
  • 相关阅读:
    localtime 和 localtime_r 的区别
    mysql1130远程连接没有权限的解决方法
    pthread_create
    GDB Core,gdb 调试大全,core文件调试
    非root用户 如何将cscope安装到指定目录,vim74安装
    linux查看网络链接状况命令netstat
    在Linux系统如何让程序开机时自动启动
    Linux开机启动程序详解
    u盘出现大文件无法复制的解决
    用JSON报的一个错误java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeExcep
  • 原文地址:https://www.cnblogs.com/minseo/p/13447544.html
Copyright © 2011-2022 走看看