设为首页 收藏本站
查看: 1517|回复: 0

[经验分享] ceph分布式存储实战(4)——ceph存储配置(映射RBD镜像到客户端)

[复制链接]

尚未签到

发表于 2019-2-2 06:59:23 | 显示全部楼层 |阅读模式
块设备(rbd)
    1、块设备可以应用为:
        1、作为额外的磁盘使用
        2、可以作为裸设备使用
        3、可以格式化成文件系统,然后挂载给虚拟机或者物理服务器使用
    2、创建块设备(可以在任意一台ceph节点上创建)
    下面的命令创建一个名为ceph-client1-rbd1、大小为10G的RBD设备
    [root@ceph-node1 ~]# rbd create ceph-client1-rbd1 --size 10240
    注意:默认情况下rbd镜像会保存在ceph集群的rbd池中,可以使用-p参数改变池
    3、列出rbd设备镜像(可在任意一台节点上列出)
    [root@ceph-node3 ~]# rbd ls
    ceph-client1-rbd1
   
    4、查看创建后的块设备的信息(可以在任意一台ceph节点上查看)
    [root@ceph-node1 ~]# rbd --image ceph-client1-rbd1 info
    rbd image 'ceph-client1-rbd1':
    size 10240 MB in 2560 objects
    order 22 (4096 kB objects)
    block_name_prefix: rbd_data.857a238e1f29
    format: 2
    features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
    flags:
    5、创建ceph客户端
    安装一台虚拟机或者用一台物理机来作为cpeh客户端进行测试,操作系统需要是linux(我的环境是centos7)
    需要注意:
        1、linux内核从2.6.32版本开始支持ceph
        2、建议使用2.6.34以及以上的内核版本
    查看内核版本命令:uname -rbd
    检查是否支持rbd命令: modprobe rbd
    安装完客户端的操作系统之后,记得将ceph集群的IP地址和主机名添加到hosts文件中:
    192.168.89.101 ceph-node1
    192.168.89.102 ceph-node2
    192.168.89.103 ceph-node3
    192.168.89.139 ceph-client1
   
    6、映射rados块设备给客户端
        在映射之前,需要授权给客户端访问ceph集群的权限,需要下面两个步骤,添加秘钥环(客户端与ceph集群之间的身份验证就是基于这个秘钥环)和添加ceph配置文件
        1、在管理节点(ceph-deploy)上通过ceph-deploy工具给ceph-client1安装ceph包
        deploy install ceph-client1-rbd1
        2、在管理节点上(ceph-deploy)上通过ceph-deploy工具给ceph-client1客户端下发秘钥环和ceph配置文件
        用于授予客户端访问ceph集群的权限
        ceph-deploy admin ceph-client1
        3、登录ceph-client1客户端检查秘钥文件和配置文件是否下发成功
        进入/ect/ceph/目录
        [root@ceph-client1 ceph]# ls -l
        -rw------- 1 root root 129 Jan  6 22:51 ceph.client.admin.keyring #这是下发后的秘钥文件
        -rw-r--r-- 1 root root 234 Jan  6 22:51 ceph.conf #这是下发后的配置文件
        -rw-r--r-- 1 root root  92 Oct  4 10:50 rbdmap
        -rw------- 1 root root   0 Jan  6 22:51 tmpUcImw6
        4、在ceph-client1客户端上查询ceph集群的RBD镜像
        [root@ceph-client1 ~]# rbd ls #列出rbd列表
        ceph-client1-rbd1
        [root@ceph-client1 ~]# rbd info --image ceph-client1-rbd1 #查看rbd镜像详细信息
        rbd image 'ceph-client1-rbd1':
            size 10240 MB in 2560 objects
            order 22 (4096 kB objects)
            block_name_prefix: rbd_data.857a238e1f29
            format: 2
            features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
            flags:
        5、授权之后,就在ceph-client1客户端上映射名为'ceph-client1-rbd1'的rbd镜像:
        rbd map --image ceph-client1-rbd1
        执行上述映射命令后发生如下错误:
        [root@ceph-client1 log]# rbd map --image ceph-client1-rbd1
        rbd: sysfs write failed
        RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable".
        In some cases useful info is found in syslog - try "dmesg | tail" or so.
        rbd: map failed: (6) No such device or address
        遇到问题:rbd镜像的一些特性,OS kernel并不支持,所以映射失败
        查看下该镜像支持了哪些特性
        [root@ceph-client1 ~]# rbd info ceph-client1-rbd1
        rbd image 'ceph-client1-rbd1':
        size 10240 MB in 2560 objects
        order 22 (4096 kB objects)
        block_name_prefix: rbd_data.857a238e1f29
        format: 2
        features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
        flags:
        可以看到特性feature一栏,由于我OS的kernel只支持layering,其他都不支持,所以需要把部分不支持的特性disable掉。
        以下方法根据实际情况选其一即可!(我这里使用的是方式二)
        【方法一:】直接diable这个rbd镜像的不支持的特性:
        [root@ceph-client1 ~]# rbd feature disable ceph-client1-rbd1 exclusive-lock object-map fast-diff deep-flatten
        [root@ceph-client1 ~]# rbd info ceph-client1-rbd1 #关闭后查看
        rbd image 'ceph-client1-rbd1':
            size 10240 MB in 2560 objects
            order 22 (4096 kB objects)
            block_name_prefix: rbd_data.857a238e1f29
            format: 2
            features: layering #仅剩一个特性
            flags:
        【方法二:】在ceph集群中任意节点上创建rbd镜像时就指明需要的特性,如:
        $ rbd create --size 10240 ceph-client1-rbd1 --image-feature layering
        rbd create --size 10240 ceph-client1-rbd1 --image-feature layering exclusive-lock object-map fast-diff deep-flatten
        【方法三:】修改Ceph配置文件/etc/ceph/ceph.conf,在global section下,增加
        rbd_default_features = 1
        再创建rdb镜像。
        rbd create ceph-client1-rbd1 --size 10240
        
        6、解决上述问题之后,再次尝试映射
        [root@ceph-client1 ~]# rbd map --image ceph-client1-rbd1
        /dev/rbd0
        此刻,映射成功
        7、查看映射信息
        [root@ceph-client1 ~]# rbd showmapped
        id pool image             snap device   
        0  rbd  ceph-client1-rbd1 -    /dev/rbd0
        8、如需指定RBD镜像所属池的名称(这是可选的操作)可以执行以下命令:
        rbd map rbd/ceph-client1-rbd1
        10、映射之后,格式化RBD块设备,并创建文件系统
        [root@ceph-client1 ~]# fdisk -l /dev/rbd0
        Disk /dev/rbd0: 10.7 GB, 10737418240 bytes, 20971520 sectors
        Units = sectors of 1 * 512 = 512 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 4194304 bytes / 4194304 bytes
        [root@ceph-client1 ~]# mkfs.xfs /dev/rbd0
        [root@ceph-client1 ~]# mkdir /mnt/ceph-vol1
        [root@ceph-client1 ~]# mount /dev/rbd0 /mnt/ceph-vol1/
        [root@ceph-client1 ~]# df -H
        Filesystem           Size  Used Avail Use% Mounted on
        devtmpfs             494M     0  494M   0% /dev
        tmpfs                507M     0  507M   0% /dev/shm
        tmpfs                507M  6.9M  500M   2% /run
        tmpfs                507M     0  507M   0% /sys/fs/cgroup
        /dev/mapper/cl-root  8.6G  1.6G  7.0G  19% /
        /dev/sda1            1.1G  195M  869M  19% /boot
        tmpfs                102M     0  102M   0% /run/user/0
        /dev/rbd0             11G   35M   11G   1% /mnt/ceph-vol1 #这个是挂载后的
        11、取消映射块设备
        [root@ceph-client1 ~]# umount /mnt/ceph-vol1/ #取消挂载
        [root@ceph-client1 ~]# rbd unmap /dev/rbd/rbd/ceph-client1-rbd1 #取消映射
        [root@ceph-client1 ~]# rbd showmapped #查看是否取消成功,如没有任何输出则表示取消映射成功
        12、如下删除块设备,执行以下命令
        [root@ceph-node1 ~]# rbd rm ceph-client1-rbd1
        Removing image: 100% complete...done.
        [root@ceph-node1 ~]# rbd ls



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670610-1-1.html 上篇帖子: ceph分布式存储实战(4)——ceph存储配置(映射RBD镜像到客户端) 下篇帖子: ceph分布式存储实战(4)——ceph存储配置(映射RBD镜像到客户端)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表