ceph 订阅
Ceph是第一人称游戏《孤岛危机》系列中一个技术先进的神秘外星物种,该绰号是“Cephalopod(头足类动物)”的简称,因为它们非常类似于地球海洋上的章鱼或乌贼,而人类对这个物种给出的正式名称是“卡律布狄斯(Charybdis)”。它们对人类怀有敌意,对他们发动一场灭绝人类的战争。 [1]  它们是外来殖民者,来自于Messier 33三角座星系α象限中一颗被视为“Ceph Homeworld”的行星,距地球约300万光年。大约6500万年前到达地球,在游戏事件发生之前,它们最近的活动发生在大约200万年前,集体进入了休眠状态。直到它们在灵山岛上被完全唤醒。 [1] 展开全文
Ceph是第一人称游戏《孤岛危机》系列中一个技术先进的神秘外星物种,该绰号是“Cephalopod(头足类动物)”的简称,因为它们非常类似于地球海洋上的章鱼或乌贼,而人类对这个物种给出的正式名称是“卡律布狄斯(Charybdis)”。它们对人类怀有敌意,对他们发动一场灭绝人类的战争。 [1]  它们是外来殖民者,来自于Messier 33三角座星系α象限中一颗被视为“Ceph Homeworld”的行星,距地球约300万光年。大约6500万年前到达地球,在游戏事件发生之前,它们最近的活动发生在大约200万年前,集体进入了休眠状态。直到它们在灵山岛上被完全唤醒。 [1]
信息
登场作品
孤岛危机
定    义
外星生物
中文名
Ceph
其它名称
Charybdis
Ceph孤岛危机1
而后因为地壳运动导致其深埋在地下,无法觉醒。在《孤岛危机》历史中,Ceph与人类的接触可能最早是在1908年,当年通古斯大爆炸后,哈格瑞夫(二代中的罐装人)、卡尔·罗许(三代中的Ceph首脑代理)和沃尔特·古德(二代古德博士的爷爷)秘密组织了一支探险队前往调查大爆炸的遗址,虽然具体过程不明,但结果最后只剩下上述三人生还。后来到了2020年的8月,因为陨石的缘故,深埋在灵山岛下的Ceph机械开始活动,同时朝鲜和美国开始纷纷向岛上派遣部队,随后因为朝鲜人民军的庆将军执意启动Ceph飞船,结果导致灵山岛的Ceph全部苏醒,并在顷刻间几乎将整个岛屿全部冰封,随后美 孤岛危机1 Ceph部队(5张) 国和朝鲜的军队被迫联合抗敌,但在Ceph的优势火力下节节败退,美国军队只好出动宪法号航母上全部的VTOL来撤离部队。随后,美军战斗机向灵山岛发射了一颗核弹,企图用核弹来歼灭整座岛上的Ceph,但因为Ceph拥有可以吸收外来能量并转化为自己能源的恐怖技术,核弹反而使Ceph机械部队更加强大,之后Ceph机械部队攻上了宪法号,在诺曼(一代男主)的反击下,消灭了Ceph Hunter 机甲和Ceph母舰,随后撤离航母,再次飞向灵山岛(救普费)。
收起全文
精华内容
参与话题
问答
  • ceph

    2018-08-18 11:19:57
    [root@ceph1 ~]# systemctl restart chronyd [root@ceph1 ~]# for i in {2..5} > do > scp /etc/chrony.conf 192.168.4.$i:/etc/chrony.conf  > done chrony.conf ...

    1.

    [root@ceph1 ~]# systemctl  restart  chronyd

    [root@ceph1 ~]# for i in {2..5}

    > do

    > scp /etc/chrony.conf   192.168.4.$i:/etc/chrony.conf 

    > done

    chrony.conf                                   100% 1130   866.5KB/s   00:00    

    chrony.conf                                   100% 1130     1.1MB/s   00:00    

    chrony.conf                                   100% 1130     1.0MB/s   00:00    

    chrony.conf                                   100% 1130    61.1KB/s   00:00   

     

    [root@ceph1 ~]# for i in {2..5}

    > do

    > ssh ceph$i   systemctl restart  chronyd

    > done

     

    ceph1 ceph3:  monitor/osd

     

     

    ceph4: mds

     

    http://docs.ceph.org.cn/   ceph官方网站

     

     

     

    查看运行状态:

    [root@ceph1 ~]# cd ceph-cluster/

    [root@ceph1 ceph-cluster]# ceph -s

        cluster 29a54064-be3d-446c-8e62-64b0f14e73bb

         health HEALTH_ERR

                64 pgs are stuck inactive for more than 300 seconds

                64 pgs stuck inactive

                no osds

         monmap e1: 3 mons at {ceph1=192.168.4.1:6789/0,ceph2=192.168.4.2:6789/0,ceph3=192.168.4.3:6789/0}

                election epoch 4, quorum 0,1,2 ceph1,ceph2,ceph3

         osdmap e1: 0 osds: 0 up, 0 in

                flags sortbitwise

          pgmap v2: 64 pgs, 1 pools, 0 bytes data, 0 objects

                0 kB used, 0 kB / 0 kB avail

                      64 creating

     

    [root@ceph1 ~]# for vm in ceph{1..3}; do ssh $vm parted /dev/vdb mklabel gpt; done

    信息: You may need to update /etc/fstab.

     

    信息: You may need to update /etc/fstab.                                  

     

    信息: You may need to update /etc/fstab.   

     

    [root@ceph1 ~]# for vm in ceph{1..3}

    > do

    > ssh $vm parted /dev/vdb mkpart primary 1M 50%

    > done

    信息: You may need to update /etc/fstab.

     

    信息: You may need to update /etc/fstab.                                  

     

    信息: You may need to update /etc/fstab.  

     

    [root@ceph1 ~]# for vm in ceph{1..3}

    > do

    > ssh $vm parted /dev/vdb mkpart primary 50% 100% 

    > done

    信息: You may need to update /etc/fstab.

     

    信息: You may need to update /etc/fstab.                                  

     

    信息: You may need to update /etc/fstab.

     

    [root@ceph1 ~]# for vm in ceph{1..3}; do ssh ${vm} chown ceph.ceph /dev/vdb? ; done

    [root@ceph1 ~]# lsblk

    [root@ceph1 ~]# ll /dev/vdb1

    brw-rw----. 1 ceph ceph 252, 17 8月  18 03:11 /dev/vdb1

     

     

     

    一份文件存储3份:(必须保证3份数据)有磁盘损坏,就会数据迁移

    [root@ceph1 ~]# ceph osd lspools

    0 rbd,

    [root@ceph1 ~]# ceph osd pool get rbd size

    size: 3

     

     

    撤销保护删除快照:

    [root@ceph1 ~]# rbd snap unprotect image  --snap image-snap1

    [root@ceph1 ~]# rbd snap rm image  --snap image-snap1

    [root@ceph1 ~]# rbd list

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • ceph 快照:可用做备份 一、ceph概述 1.1 什么是分布式文件系统 •  分布式文件系统(Distributed File System)是指文 件系统管理的物理存储资源不一定直接连接在本地节 点上,而是通过计算机网络与...

    ceph

    快照:可用做备份

    一、ceph概述

    1.1 什么是分布式文件系统

    •  分布式文件系统(Distributed File System)是指文
    件系统管理的物理存储资源不一定直接连接在本地节
    点上,而是通过计算机网络与节点相连
    •  分布式文件系统的设计基于客户机/服务器模式

    1.2 常用分布式文件系统

    •  Lustre
    •  Hadoop
    •  FastDFS
    •  Ceph
    •  GlusterFS

    1.3 什么是ceph

    •  ceph是一个分布式文件系统
    •  具有高扩展、高可用、高性能的特点
    •  ceph可以提供对象存储、块存储、文件系统存储
    •  ceph可以提供PB级别的存储空间(PBàTBàGB)
    –  1024G*1024G=1048576G
    •  软件定义存储(Software Defined Storage)作为存储
    行业的一大发展趋势,已经越来越受到市场的认可

    1.4 ceph组件

    •  OSDs   [有几个OSD就有几个ceph-osd进程 ]
    –  存储设备
    •  Monitors  [存储集群的入口]
    –  集群监控组件
    •  MDSs
    –  存放文件系统的元数据(对象存储和块存储不需要该组件)
    •  Client
    –  ceph客户端  [需要拷贝服务端存储的配置文件,和验证文件]

    二、ceph实验环境准备

    2.1 实验拓扑图

    •  1台客户端虚拟机
    •  3台存储集群虚拟机

    2.2 配置YUM

    2.1.1  物理机创建网络yum源服务器

    [root@root9pc01    ~]#    yum    -y    install    vsftpd    
    [root@root9pc01    ~]#    mkdir        /var/vsftp/ceph    
    [root@root9pc01    ~]#    mount    -o    loop    \    
    rhcs2.0-rhosp9-20161113-x86_64.iso        /var/vsftp/ceph    
    [root@root9pc01    ~]#    systemctl        restart        vsfpd

    2.1.2 虚拟机调用YUM源(下面以node1为例)

    [root@node1    ~]#    cat    /etc/yum.repos.d/ceph.repo    
    [mon]    
    name=mon    
    baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/MON    
    gpgcheck=0    
    [osd]    
    name=osd    
    baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/OSD    
    gpgcheck=0    
    [tools]    
    name=tools    
    baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/Tools    
    gpgcheck=0    

    2.3 配置SSH无密钥连接

    2.3.1 修改主机名

    [root@node1    ~]#    cat    /etc/hosts    
    …    …    
    192.168.4.10                                client    
    192.168.4.11
        node1    
    192.168.4.12
        node2    
    192.168.4.13
        node3    
    [root@node1    ~]#    for    i    in    10        11        12        13    
    >    do    
    >    scp        /etc/hosts        192.168.2.$i:/etc/    
    >    done

    2.3.2 非交互生成密钥对

    [root@node1    ~]#    ssh-keygen     -f    /root/.ssh/id_rsa      -N ”

    2.3.3 发布密钥到各个主机(包括自己)

    [root@node1    ~]#    for    i    in    10        11        12        13    
    >    do    
    >    ssh-copy-id        192.168.4.$i    
    >    done

    2.4 NTP时间同步

    2.4.1 客户端创建NTP服务器

    [root@client    ~]#  yum    -y    install    chrony    
    [root@client    ~]#  cat    /etc/chrony.conf    
    server 0.rhel.pool.ntp.org iburst
    allow    192.168.4.0/24
    local    stratum    10    
    [root@client    ~]#    systemctl        restart        chronyd

    2.4.2 其他所有主机与其同步时间(下面以node1为例)

    [root@node1    ~]#        cat    /etc/chrony.conf    
    server    192.168.4.10            iburst    
    [root@node1    ~]#    systemctl        restart        chronyd

    2.5 准备存储磁盘

    2.5.1 在图形环境中为虚拟机添加磁盘

    [root@root9pc01    ~]#    virt-manager  

    三、部署Ceph集群

    3.1 准备部署环境

    3.1.1  安装部署软件

    •  使用node1作为部署主机
    [root@node1    ~]#        yum    -y    install    ceph-deploy    
    •  ceph-deploy命令与子命令都支持–help查看帮助
    [root@node1    ~]#        ceph-deploy        –help    

    3.1.2  创建目录

    •  为部署工具创建目录,存放密钥与配置文件
    [root@node1    ~]#        mkdir    ceph-cluster    
    [root@node1    ~]#        cd    ceph-cluster/

    3.2 部署存储集群

    3.2.1 创建ceph集群

    •  创建ceph集群配置(所有节点都为mon)
    [root@node1    ceph-cluster]#        ceph-deploy    new    node1    node2    node3    
    •  给所有节点安装ceph软件包
    [root@node1    ceph-cluster]#    ceph-deploy    install    node1    node2    node3    
    •  初始化所有节点的mon服务(主机名解析必须对)
    [root@node1    ceph-cluster]#    ceph-deploy    mon    create-initial    
    //这里没有指定主机,是因为第一步创建的配置文件中已经有了,所以要求主机名解析必须对,否则连接不到对应的主机

    3.2.2 创建OSD

    1. 所有节点准备磁盘分区(下面以node1为例)
    [root@node1    ~]#        parted        /dev/vdb        mklabel        gpt    
    [root@node1    ~]#        parted        /dev/vdb        mkpart    primary        1M        50%    
    [root@node1    ~]#        parted        /dev/vdb        mkpart    primary        50%        100%    
     //这两个分区用来做存储服务器的日志journal盘 

    vim /etc/udev/rules.d/100-ceph.rules    //通过udev管理日志磁盘权限,采用这种方式可以在重启机器之后,集群状态正常
    ACTION==”add”, KERNEL==”vdb?”,SUBSYSTEM==”block”, OWNER=”ceph”,GROUP=”ceph”   
    [root@node2 rules.d]# systemctl restart systemd-udev-trigger.service

    //通过命令行修改日志磁盘,这种方式临时修改的,重启机器集群状态不正常.[]
    [root@node1    ~]#    chown        ceph.ceph        /dev/vdb1    
    [root@node1    ~]#    chown        ceph.ceph        /dev/vdb2  

    2. 初始化清空磁盘数据(仅node1操作即可)
    [root@node1    ~]#    ceph-deploy    disk        zap        node1:vdc            node1:vdd                
    [root@node1    ~]#    ceph-deploy    disk        zap        node2:vdc            node2:vdd
    [root@node1    ~]#    ceph-deploy    disk        zap        node3:vdc            node3:vdd                    
    3. 创建OSD存储空间(仅node1操作即可)
    [root@node1    ~]#    ceph-deploy    osd    create    node1:vdc:/dev/vdb1    node1:vdd:/
    dev/vdb2            
    //创建osd存储设备,vdc为集群提供存储空间,vdb1提供JOURNAL
    日志,一个存储设备对应一个日志设备,日志需要SSD,不需要很大
    [root@node1    ~]#    ceph-deploy    osd    create    node2:vdc:/dev/vdb1    node2:vdd:/
    dev/vdb2    
    [root@node1    ~]#    ceph-deploy    osd    create    node3:vdc:/dev/vdb1    node3:vdd:/
    dev/vdb2    

    3.3 验证

    3.3.1 查看集群状态

    [root@node1    ~]#        ceph        -s    

    3.3.2 可能出现的错误

    –  osd create创建OSD存储空间,如提示run
    ‘gatherkeys’
    [root@node1    ~]#        ceph-deploy    gatherkeys    node1    node2    node3        
    –  ceph -s查看状态,如果失败
    [root@node1    ~]#        systemctl    restart    ceph\*.service    ceph\*.target    
    //在所有节点,或仅在失败的节点重启服务

    – 时间同步失败

    ~] #  vim  /etc/ceph/ceph.conf

    vim /etc/ceph/ceph.conf
    mon clock drift allowed = 2
    mon clock drift warn backoff = 30

    cp /etc/ceph/ceph.conf /root/ceph-cluster
    cd /root/ceph-cluster
    ceph-deploy –overwrite-conf admin node2 node3    //同步配置文件

    在所有monitor主机上重启ceph-mon@\*服务

    systemctl restart ceph-mon@node1                         
    systemctl restart ceph-mon@node2
    systemctl restart ceph-mon@node3

    四、Ceph块存储  【提供硬盘】

    4.1 概述

    4.1.1 什么是块存储

    什么是块存储
    •  单机块设备
    –  光盘
    –  磁盘
    •  分布式块存储
    –  Ceph
    –  Cinder

    •  Ceph块设备也叫做RADOS块设备
    –  RADOS block device:RBD
    •  RBD驱动已经很好的集成在了Linux内核中
    •  RBD提供了企业功能,如快照、COW克隆等等
    •  RBD还支持内存缓存,从而能够大大提高性能

    •  Linux内核可用直接访问Ceph块存储
    •  KVM可用借助于librbd访问

    4.2 块存储集群

    4.2.1 创建镜像

    •  查看存储池(默认有一个rbd池)
    [root@node1    ~]#    ceph    osd    lspools    
    0    rbd,    
    •  创建镜像、查看镜像
    [root@node1    ~]#    rbd    create    demo-image    –image-feature        layering    –size    10G    
    [root@node1    ~]#    rbd    create    rbd/image    –image-feature        layering    –size    10G    
    [root@node1    ~]#    rbd    list    
    [root@node1    ~]#    rbd    info    demo-image    
    rbd    image    ‘demo-image’:    
        size    10240    MB    in    2560    objects    
        order    22    (4096    kB    objects)    
        block_name_prefix:    rbd_data.d3aa2ae8944a    
        format:    2    
        features:    layering    

    4.2.2 动态调整大小

    •  缩小容量
    [root@node1    ~]#    rbd    resize    –size    7G    image    –allow-shrink    
    [root@node1    ~]#    rbd    info    image    
    •  扩容容量
    [root@node1    ~]#    rbd    resize    –size    15G    image    
    [root@node1    ~]#    rbd    info    image    

    4.2.3 集群内通过KRBD访问

    •  将镜像映射为本地磁盘
    [root@node1    ~]#    rbd    map    demo-image    
    /dev/rbd0    
    [root@node1    ~]#    lsblk    
    …    …    
    rbd0                                        251:0                0            10G        0    disk    
    •  接下来,格式化了!
    [root@node1    ~]#    mkfs.xfs    /dev/rbd0    
    [root@node1    ~]#    mount        /dev/rbd0        /mnt

    4.2.4 客户端通过KRBD访问

    •  客户端需要安装ceph-common软件包
    •  拷贝配置文件(否则不知道集群在哪)
    •  拷贝连接密钥(否则无连接权限)
    [root@client    ~]#    yum    -y        install    ceph-common    
    [root@client    ~]#    scp    192.168.4.11:/etc/ceph/ceph.conf        /etc/ceph/    
    [root@client    ~]#    scp    192.168.4.11:/etc/ceph/ceph.client.admin.keyring    \    
    /etc/ceph/    
    •  映射镜像到本地磁盘
    [root@client    ~]#    rbd    map    image    
    [root@client    ~]#        lsblk    
    [root@client    ~]#    rbd    showmapped    
    id    pool    image    snap    device                    
    0        rbd        image    -                /dev/rbd0    

    •  客户端格式化、挂载分区
    [root@client    ~]#    mkfs.xfs    /dev/rbd0    
    [root@client    ~]#    mount    /dev/rbd0    /mnt/    
    [root@client    ~]#    echo    “test”    >    /mnt/test.txt    

    4.2.5 创建镜像快照

    •  查看镜像快照
    [root@node1    ~]#    rbd    snap    ls    image    
    •  创建镜像快照
    [root@node1    ~]#    rbd    snap    create    image    –snap    image-snap1    
    [root@node1    ~]#    rbd    snap    ls    image    
    SNAPID    NAME                   SIZE        
            4    image-snap1    15360    MB    
    •  注意:快照使用COW技术,对大数据快照速度会很快!

    4.2.6 使用快照恢复数据

    •  删除客户端写入的测试文件
    [root@client    ~]#    rm        -rf            /mnt/test.txt    
    •  还原快照
    [root@node1    ~]#    rbd    snap    rollback    image    –snap    image-snap1    
    •  客户端重新挂载分区
    [root@client    ~]#    umount        /mnt    
    [root@client    ~]#    mount    /dev/rbd0    /mnt/    
    [root@client    ~]#    ls        /mnt    

    4.2.7 快照克隆

    •  如果想从快照恢复出来一个新的镜像,则可以使用克隆
    •  注意,克隆前,需要对快照进行<保护>操作
    •  被保护的快照无法删除,取消保护(unprotect)
    [root@node1    ~]#        rbd    snap    protect    image    –snap    image-snap1    
    [root@node1    ~]#        rbd    snap    rm    image    –snap    image-snap1                //会失败
    [root@node1    ~]#    rbd clone \
    image –snap image-snap1 image-clone –image-feature layering
    //使用image的快照image-snap1克隆一个新的image-clone镜像

    •  查看克隆镜像与父镜像快照的关系
    [root@node1    ~]#        rbd    info    image-clone    
    rbd    image    ‘image-clone’:    
        size    15360    MB    in    3840    objects    
        order    22    (4096    kB    objects)    
        block_name_prefix:    rbd_data.d3f53d1b58ba    
        format:    2    
        features:    layering    
        flags:        
        parent:    rbd/image@image-snap1    

    •  克隆镜像很多数据都来自于快照链
    •  如果希望克隆镜像可以独立工作,就需要将父快照中
    的数据,全部拷贝一份,但比较耗时!!!
    [root@node1    ~]#        rbd    flatten    image-clone    
    [root@node1    ~]#        rbd    info    image-clone    
    rbd    image    ‘image-clone’:    
        size    15360    MB    in    3840    objects    
        order    22    (4096    kB    objects)    
        block_name_prefix:    rbd_data.d3f53d1b58ba    
        format:    2    
        features:    layering    
        flags:        
    //注意,父快照信息没了!

    4.2.8 客户端撤销磁盘映射

    •  umount挂载点
    [root@client    ~]#    umount    /mnt    
    •  取消RBD磁盘映射
    [root@client    ~]#    rbd    showmapped    
    id    pool    image                                snap    device                    
    0        rbd        image                                -                /dev/rbd0    
    //语法格式:
    [root@client    ~]#    rbd    unmap    /dev/rbd/{poolname}/{imagename}    
    [root@client    ~]#    rbd    unmap    /dev/rbd/rbd/image    

    4.2.9 删除快照与镜像

    •  删除快照(确保快照未被保护)
    [root@node1    ~]#    rbd    snap    rm    image    –snap    image-snap    

    •  删除镜像
    [root@node1    ~]#    rbd        list    
    [root@node1    ~]#    rbd        rm        image    

     

    ceph FS  提供共享文件夹,不是很成熟                    ceph组件 搭建流程

    对象存储  需要专门的客户端,了解

    node1-3 mon/osd  

    node4:   mds       CEPH FS需要

    node5:   RADOS  对象存储需要

    node6: 客户端

    dump2fs -h /dev/vde1

    ?表示任意一个字符

    ext4 比较适合存放小文件   网页文件

    xfs比较适合存放大文件    视频

    搭建类:如ceph/openstack/elk

    配置类:zabbix配置,自动发现,监控模板

    应用类:ansible

     

    losetup -a   //查看镜像所在目录

    virsh  secret-list         //查看生成的secret

    virsh secret-undefine   uuid

    ntpdate IP   手动同步时间

    ceph auth list   查看认证的key

    [root@node1 ceph]# ceph auth list

    [root@node1 ceph-cluster]# cat /root/ceph-cluster/ceph.bootstrap-mds.keyring       //这里面的key值要和ceph auth list查看到的值是一样的,如果不一样,需要手动将ceph.bootstrap-mds.keyring的值改成和ceph auth list查看到的值一致。

    在部署节点上     /var/lib/ceph/bootstrap-rgw目录下的ceph.keyring里面的key要和管理节点上查看到的key值一样

     

    展开全文
  • 在使用ceph-deploy对各节点进行ceph部署时失败,报错如下: erver7][WARNIN] Error: Package: 1:python-flask-0.10.1-3.el7.noarch (dl.fedoraproject.org_pub_epel_7_x86_64_) [server7][DEBUG ] You could try ...
  • second improvement of ceph

    2020-12-01 18:32:10
    <div><ol><li>reorganize ceph roles. we had ceph-common, ceph-monitor and ceph-osd cinder/glance depends on vars in ceph-common, but there are many other things in ceph-common, we do not have to ...
  • Ceph基础篇

    千人学习 2018-11-28 12:26:50
    本课程主要讲解了以下几个方面:首先讲解了 Ceph 存储和组件的介绍,让大家了解到有哪些功能以及使用的一些地方。随后讲解了 使用 ceph-deploy 怎么去部署一个多节点的Ceph 集群架构,最后又详细的介绍了Ceph的块...
  • Ceph是一个可靠的、数据自动重均衡、自动恢复的SDS(软件定义存储)分布式存储系统,功能主要有三大块:块存储、对象存储、文件系统。 Ceph不但是提供了统一存储,并且同时还充分利用了客户端的计算能力,在...
  • Learning Ceph

    热门讨论 2015-05-06 22:18:47
    If you are learning Ceph, this book is a good choice. It is about the deployment and administration of Ceph. If you have no idea of Ceph, Please hurry up.
  • 使用ceph的文件存储CephFS

    万次阅读 2018-05-27 17:15:04
    Ceph FS是一个支持POSIX接口的文件系统,它使用 Ceph 存储集群来存储数据。文件系统对于客户端来说可以方便的挂载到本地使用。Ceph FS构建在RADOS之上,继承RADOS的容错性和扩展性,支持冗余副本和数据高可靠性。 ...

    Ceph FS是一个支持POSIX接口的文件系统,它使用 Ceph 存储集群来存储数据。文件系统对于客户端来说可以方便的挂载到本地使用。Ceph FS构建在RADOS之上,继承RADOS的容错性和扩展性,支持冗余副本和数据高可靠性。

    注意:当前, CephFS 还缺乏健壮得像 ‘fsck’ 这样的检查和修复功能。存储重要数据时需小心使用,因为灾难恢复工具还没开发完。

    准备MDS元数据服务器

    Ceph 文件系统要求 Ceph 存储集群内至少有一个 Ceph 元数据服务器。

    新增一个MDS很简单,可参考ceph新增节点

    创建Ceph文件系统

    一个 Ceph 文件系统需要至少两个 RADOS 存储池,一个用于数据、一个用于元数据。配置这些存储池时需考虑:
    1、为元数据存储池设置较高的副本水平,因为此存储池丢失任何数据都会导致整个文件系统失效。
    2、为元数据存储池分配低延时存储器(像 SSD ),因为它会直接影响到客户端的操作延时。

    关于存储池的管理可参考官网 存储池

    要用默认设置为文件系统创建两个存储池,你可以用下列命令:
    比如我们使用120个pg。cephfs_data和cephfs_metadata是两个存储池的名称。

    ceph osd pool create cephfs_data 128
    ceph osd pool create cephfs_metadata 128

    创建好存储池后,你就可以用 fs new 命令创建文件系统了:

    ceph fs new cephfs cephfs_metadata cephfs_data

    cephfs是文件系统的名称。

    使用下面的命令可以查看创建的CephFS

    ceph fs ls

    文件系统创建完毕后, MDS 服务器就能达到 active 状态了,比如在一个单 MDS 系统中,使用命令查看

    ceph mds stat

    成功运行输出如下:

    [zzq@ceph4 osd]$ ceph osd pool create cephfs_data 128
    pool 'cephfs_data' created
    [zzq@ceph4 osd]$ ceph osd pool create cephfs_metadata 128
    pool 'cephfs_metadata' created
    [zzq@ceph4 osd]$ ceph fs new cephfs cephfs_metadata cephfs_data
    new fs with metadata pool 2 and data pool 1
    [zzq@ceph4 osd]$ ceph fs ls
    name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
    [zzq@ceph4 osd]$
    [zzq@ceph4 osd]$ ceph mds stat
    e3: 1/1/1 up {0=ceph4=up:active}
    [zzq@ceph4 osd]$

    挂载CephFS (客户端节点执行)

    要挂载 Ceph 文件系统,如果你知道监视器 IP 地址可以用 mount 命令、或者用 mount.ceph 工具来自动解析监视器 IP 地址。

    假如我们有4个monitor监视器,ip分别为192.168.199.81,192.168.199.82,192.168.199.83,192.168.199.84。
    则使用mount命令挂载到目录/mycephfs,如下:

    sudo mkdir /mycephfs
    sudo mount -t ceph 192.168.199.81:6789,192.168.199.82:6789,192.168.199.83:6789,192.168.199.84:6789:/  /mycephfs

    Ceph v0.55 及后续版本默认开启了 cephx 认证。
    如果启用了cephx认证的Ceph文件系统,挂载时我们必须指定用户名、密钥。
    secret在/etc/ceph/ceph.client.admin.keyring可以查到。

    cat /etc/ceph/ceph.client.admin.keyring
    sudo mount -t ceph 192.168.199.81:6789,192.168.199.82:6789,192.168.199.83:6789,192.168.199.84:6789:/ /mycephfs -o name=admin,secret=AQD/9AZb41OsJRAAhgKm6sw/LItSdb33wFQRpA==

    上述用法会把密码遗留在 Bash 历史里,更安全的方法是从文件读密码。例如:

    sudo mount -t ceph 192.168.199.81:6789,192.168.199.82:6789,192.168.199.83:6789,192.168.199.84:6789:/ /mycephfs -o name=admin,secretfile=/etc/ceph/admin.secret

    正确输出如下:

    [zzq@localhost /]$ cat /etc/ceph/ceph.client.admin.keyring
    [client.admin]
        key = AQD/9AZb41OsJRAAhgKm6sw/LItSdb33wFQRpA==
        caps mds = "allow"
        caps mon = "allow *"
        caps osd = "allow *"
    [zzq@localhost /]$ sudo mount -t ceph 192.168.199.81:6789,192.168.199.82:6789,192.168.199.83:6789,192.168.199.84:6789:/ /mycephfs -o name=admin,secret=AQD/9AZb41OsJRAAhgKm6sw/LItSdb33wFQRpA==
    [sudo] password for zzq: 
    [zzq@localhost /]$ df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/vg_localhost-lv_root
                           18G  2.2G   15G  14% /
    tmpfs                 482M     0  482M   0% /dev/shm
    /dev/sda1             477M   86M  362M  20% /boot
    /dev/rbd0             3.9G  8.0M  3.8G   1% /cephAll
    192.168.199.81:6789,192.168.199.82:6789,192.168.199.83:6789,192.168.199.84:6789:/
                           33G   14G   19G  41% /mycephfs
    [zzq@localhost /]$ 
    

    要卸载 Ceph 文件系统,可以用 unmount 命令,例如:

    sudo umount /mycephfs

    可能遇到的问题

    可能出现的错误
    1.mount error 5 = Input/output error
    2. mount error 22 = Invalid argument
    第一个,首先先查mds服务是正常,不存在则添加
    第二个,密钥不正确,检查密钥

    用户空间挂载 CEPH 文件系统 (客户端服务器执行)

    Ceph v0.55 及后续版本默认开启了 cephx 认证。

    从用户空间挂载Ceph 文件系统前,确保客户端主机有一份Ceph 配置副本、和具备 Ceph元数据服务器能力的密钥环。

    在客户端主机上,把监视器主机上的Ceph 配置文件拷贝到客户端服务器的 /etc/ceph/目录下。

    sudo mkdir -p /etc/ceph
    scp ceph1:/etc/ceph/ceph.client.admin.keyring /etc/ceph
    scp ceph1:/etc/ceph/ceph.conf /etc/ceph

    确保客户端机器上的 Ceph 配置文件和密钥环都有合适的权限位,如chmod 644 。

    要把 Ceph 文件系统挂载为用户空间文件系统,可以用 ceph-fuse 命令,例如:

    sudo mkdir /home/zzq/cephfs
    sudo ceph-fuse -m 192.168.199.81:6789 /home/zzq/cephfs

    启动时自动挂载

    普通目录

    启动时自动挂载需要把挂载信息按下列格式添加到 /etc/fstab :

    sudo vi  /etc/fstab

    在末尾输入内容如下:

    192.168.199.81:6789,192.168.199.82:6789,192.168.199.83:6789,192.168.199.84:6789:/ /mycephfs ceph  name=admin,secret=AQD/9AZb41OsJRAAhgKm6sw/LItSdb33wFQRpA==,noatime    0       2

    相关参数

     /etc/fstab下面分为6个字段:
    1、要挂载的设备(可以使用LABEL、UUID、设备文件)
    2、挂载点
    3、文件系统类型
    4、挂载选项(defaults使用默认挂载选线,如需同时指明,则:defaults,acl)
    5、转储频率
      0:从不备份
      1:每天备份
      2:每隔一天备份
    6、自检次序
      0:不自检
      1:首先自检,通常只用于根文件系统
      2:次级自检

    用户目录

    要在用户空间挂载 Ceph 文件系统,按如下加入 /etc/fstab :

    id=myuser,conf=/etc/ceph/ceph.conf  /mnt/ceph2  fuse.ceph defaults 0 0
    展开全文
  • 通过ceph-ansible安装ceph

    2020-04-06 15:40:45
    作者:吴业亮 博客:wuyeliang.blog.csdn.net 一、通用配置 1、修改主机名 hostnamectl set-hostname node 2、关闭selinux和firewalld setenforce 0 sed -i "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/...

    作者:吴业亮

    博客:wuyeliang.blog.csdn.net

    一、通用配置
    1、修改主机名

    hostnamectl set-hostname  node
    

    2、关闭selinux和firewalld

    setenforce 0
    sed -i  "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config
    systemctl disable firewalld.service
    systemctl stop firewalld.service
    

    3、配置源

    yum -y install epel-release centos-release-ceph-nautilus centos-release-openstack-stein
    

    4、配置hosts文件

    cat <<"EOF">/etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.80.90 node1
    192.168.80.91 node2
    192.168.80.92 node3
    192.168.80.93 node4
    192.168.80.94 node5
    192.168.80.95 node6
    EOF
    

    二、配置ceph-absible节点

    1、安装ceph-ansible

    yum -y install ceph-ansible
    

    2、配置变量
    使用阿里源

    # cat  /usr/share/ceph-ansible/group_vars/all.yml | grep -v ^# 
    ceph_origin: repository
    ceph_repository: community
    ceph_mirror: http://mirrors.aliyun.com/ceph
    ceph_stable_key: http://mirrors.aliyun.com/ceph/keys/release.asc
    ceph_stable_release: nautilus
    ceph_stable_repo: "{{ ceph_mirror }}/rpm-{{ ceph_stable_release }}"
    public_network: 192.168.80.0/24
    cluster_network: "{{ public_network }}"
    monitor_interface: eth0
    

    使用默认源

    # cat  /usr/share/ceph-ansible/group_vars/all.yml | grep -v ^# 
    ceph_origin: repository
    ceph_repository: community
    ceph_repository_type: cdn
    ceph_stable_release: nautilus
    fetch_directory: ~/ceph-ansible-keys
    monitor_interface: eth0
    public_network: 192.168.80.0/24
    cluster_network: "{{ public_network }}"
    

    配置osd

    # cat /usr/share/ceph-ansible/group_vars/osds.yml
    devices:
      - /dev/vdb
      - /dev/vdc
      - /dev/vdd
      - /dev/vde
      - /dev/vdf
      - /dev/vdg
      - /dev/vdh
    

    配置主机

    # cat  /etc/ansible/hosts | grep -v ^# | grep -v ^$
    [all:vars]
    ansible_connection=ssh
    ansible_ssh_pass='Changeme_123'
    dashboard_admin_password='Changeme_123' 
    grafana_admin_password='Changeme_123'
    [mons]
    node1
    node2
    node3
    [mgrs]
    node1
    node2
    node3
    [osds]
    node1
    node2
    node3
    node4
    node5
    node6
    [grafana_server_group_name] 
    node1
    [grafana-server]
    node1
    [rgws]
    node1
    node2
    node3
    [mdss]
    node1
    node2
    node3
    
    
    # cd /usr/share/ceph-ansible
    # cp -p site.yml.sample site.yml
    

    注释site.yml一些组件

    - hosts:
      - mons
      #- agents
      - osds
      #- mdss
      #- rgws
      #- nfss
      #- restapis
      #- rbdmirrors
      #- clients
      - mgrs
      #- iscsigws
      #- iscsi-gws # for backward compatibility only!
    

    新建/usr/share/ceph-ansible/group_vars/rgws.yml,内容如下

    radosgw_interface: eth0
    

    开始安装

    # cd /usr/share/ceph-ansible
    # ansible-playbook site.yml
    

    三、服务应用

    1、安装完成登录web

    # ceph mgr services
    {
        "dashboard": "http://192.168.80.91:8443/",
        "prometheus": "http://node2:9283/"
    }
    

    登录web

    http://192.168.80.91:8443/
    admin/Changeme_123
    

    在这里插入图片描述

    2、使用cephfs
    1)、查看状态

    # ceph fs ls
    name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
    
    # ceph mds stat
    cephfs:1 {0=node2=up:active} 2 up:standby
    
    # ceph fs status cephfs
    cephfs - 0 clients
    ======
    +------+--------+-------+---------------+-------+-------+
    | Rank | State  |  MDS  |    Activity   |  dns  |  inos |
    +------+--------+-------+---------------+-------+-------+
    |  0   | active | node2 | Reqs:    0 /s |   10  |   13  |
    +------+--------+-------+---------------+-------+-------+
    +-----------------+----------+-------+-------+
    |       Pool      |   type   |  used | avail |
    +-----------------+----------+-------+-------+
    | cephfs_metadata | metadata | 1536k | 2645G |
    |   cephfs_data   |   data   |    0  | 2645G |
    +-----------------+----------+-------+-------+
    +-------------+
    | Standby MDS |
    +-------------+
    |    node3    |
    |    node1    |
    +-------------+
    MDS version: ceph version 14.2.8 (2d095e947a02261ce61424021bb43bd3022d35cb) nautilus (stable)
    

    2)、cephfs客户端挂载

    # yum -y install ceph-fuse
    

    #获取admin key

    # ssh node1 "ceph-authtool -p /etc/ceph/ceph.client.admin.keyring" > admin.key
    root@node1''s password:
    # chmod 600 admin.key
    
    # mount -t ceph node1:6789:/ /mnt -o name=admin,secretfile=admin.key
    
    [root@node2 ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   72G  1.9G   70G   3% /
    devtmpfs                 3.9G     0  3.9G   0% /dev
    tmpfs                    3.9G     0  3.9G   0% /dev/shm
    tmpfs                    3.9G  8.9M  3.9G   1% /run
    tmpfs                    3.9G     0  3.9G   0% /sys/fs/cgroup
    /dev/vda1               1014M  145M  870M  15% /boot
    tmpfs                    783M     0  783M   0% /run/user/0
    tmpfs                    3.9G   52K  3.9G   1% /var/lib/ceph/osd/ceph-5
    tmpfs                    3.9G   52K  3.9G   1% /var/lib/ceph/osd/ceph-11
    tmpfs                    3.9G   52K  3.9G   1% /var/lib/ceph/osd/ceph-17
    tmpfs                    3.9G   52K  3.9G   1% /var/lib/ceph/osd/ceph-23
    tmpfs                    3.9G   52K  3.9G   1% /var/lib/ceph/osd/ceph-32
    tmpfs                    3.9G   52K  3.9G   1% /var/lib/ceph/osd/ceph-38
    tmpfs                    3.9G   52K  3.9G   1% /var/lib/ceph/osd/ceph-41
    overlay                   72G  1.9G   70G   3% /var/lib/docker/overlay2/c04b21ae413ef6251b1e74b29e0d9498603a70e11f95ab03799a47425e4bd98e/merged
    shm                       64M     0   64M   0% /var/lib/docker/containers/4401499e9737dc4304d267f3c88726123e5c59e5afe4a63319bf7fe3f8459d39/shm
    192.168.80.90:6789:/      2.6T     0  2.6T   0% /mnt
    

    3、rgw使用

    1)、创建用户wuyeliang

    # radosgw-admin user create --uid=wuyeliang --display-name="wuyeliang" --email=wuyeliang@test.com{
        "user_id": "wuyeliang",
        "display_name": "wuyeliang",
        "email": "wuyeliang@test.com",
        "suspended": 0,
        "max_buckets": 1000,
        "subusers": [],
        "keys": [
            {
                "user": "wuyeliang",
                "access_key": "X97S5ASHJG0N7168HA38",
                "secret_key": "39rrlxMyNUqKCQNgpV5bTvIyDhNA4iIm7phmDHAG"
            }
        ],
        "swift_keys": [],
        "caps": [],
        "op_mask": "read, write, delete",
        "default_placement": "",
        "default_storage_class": "",
        "placement_tags": [],
        "bucket_quota": {
            "enabled": false,
            "check_on_raw": false,
            "max_size": -1,
            "max_size_kb": 0,
            "max_objects": -1
        },
        "user_quota": {
            "enabled": false,
            "check_on_raw": false,
            "max_size": -1,
            "max_size_kb": 0,
            "max_objects": -1
        },
        "temp_url_keys": [],
        "type": "rgw",
        "mfa_ids": []
    }
    

    2)、查看用户

    # radosgw-admin user list
    [
        "ceph-dashboard",
        "wuyeliang"
    ]
    
    [root@node2 ~]# radosgw-admin user info --uid=wuyeliang
    {
        "user_id": "wuyeliang",
        "display_name": "wuyeliang",
        "email": "wuyeliang@test.com",
        "suspended": 0,
        "max_buckets": 1000,
        "subusers": [],
        "keys": [
            {
                "user": "wuyeliang",
                "access_key": "X97S5ASHJG0N7168HA38",
                "secret_key": "39rrlxMyNUqKCQNgpV5bTvIyDhNA4iIm7phmDHAG"
            }
        ],
        "swift_keys": [],
        "caps": [],
        "op_mask": "read, write, delete",
        "default_placement": "",
        "default_storage_class": "",
        "placement_tags": [],
        "bucket_quota": {
            "enabled": false,
            "check_on_raw": false,
            "max_size": -1,
            "max_size_kb": 0,
            "max_objects": -1
        },
        "user_quota": {
            "enabled": false,
            "check_on_raw": false,
            "max_size": -1,
            "max_size_kb": 0,
            "max_objects": -1
        },
        "temp_url_keys": [],
        "type": "rgw",
        "mfa_ids": []
    }
    

    3)、通过s3接口去使用rgw

    # yum -y install python-boto
    

    新建s3_test.py,内容如下

    import sys
    import boto
    import boto.s3.connection
    
    # user's access-key and secret-key you added on [2] section
    ACCESS_KEY = 'X97S5ASHJG0N7168HA38'
    SECRET_KEY = '39rrlxMyNUqKCQNgpV5bTvIyDhNA4iIm7phmDHAG'
    
    # Object Gateway's hostname and listeing port
    HOST = 'node1'
    PORT = 8080
    
    conn = boto.connect_s3(
        aws_access_key_id = ACCESS_KEY,
        aws_secret_access_key = SECRET_KEY,
        port = PORT,
        host = HOST,
        is_secure = False,
        calling_format = boto.s3.connection.OrdinaryCallingFormat(),
    )
    
    # create [wyl-new-bucket] bucket
    bucket = conn.create_bucket('wyl-new-bucket')
    
    # list own bucket list
    for bucket in conn.get_all_buckets():
        print "{name}\t{created}".format(
            name = bucket.name,
            created = bucket.creation_date,
        )
    
    # python s3_test.py
    wyl-new-bucket 2020-04-06T05:37:13.653Z
    
    展开全文
  • Ceph专题一 Ceph架构详细分析

    千次阅读 2016-09-14 22:07:12
    Ceph是呼声很高的开源分布式的SDS产品存储系统。同时提供对象存储、块存储和文件系统存储三种功能,满足不同应用需求。Ceph使用C++语言开发,遵循LGPL协议开源。Sage Weil(Ceph论文发表者)于2011年创立了以Inktank...
  • Ubuntu14安装ceph正常, 但是采用do-release-upgrade升级到16之后,执行ceph-deploy new node1 报错 cephd@user19-group1-334:~$ cd cephinstall/ cephd@user19-group1-334:~/cephinstall$ ceph-deploy new ...
  • Ceph专题】 Ceph架构详细分析

    千次阅读 2016-08-22 21:51:36
    Ceph是呼声很高的开源分布式的SDS产品存储系统。同时提供对象存储、块存储和文件系统存储三种功能,满足不同应用需求。Ceph使用C++语言开发,遵循LGPL协议开源。
  • * Ceph集群已经再CentOS 7下搭建好 * CephFS使用FUFS挂载好 * 以下代码环境在CentOS 7、IDEA下编写 ![图片说明](https://img-ask.csdn.net/upload/201903/04/1551662943_193148.png) ![图片说明]...
  • 【实践】Ceph:创建Cephfs文件

    千次阅读 2016-07-13 20:53:15
    Ceph文件系统(CEPH FS)是一个POSIX兼容的文件系统,使用Ceph的存储集群来存储其数据。
  • Ceph命令之ceph

    千次阅读 2016-02-05 15:47:12
    ceph命令是一个工具集,用于手动部署和维护Ceph集群。其提供了各种命令集合,可以部署、维护或者管理MON、OSD、PG、MDS等组件。 另外,ceph命令时间上是一个Python脚本,该命令本质上是对librados动态库的封装。 ...
  • CephCephfs

    2020-01-01 08:14:58
    Ceph File System (CephFS) 是与 POSIX 标准兼容的文件系统, 能够提供对 Ceph 存储集群上的文件访问. Jewel 版本 (10.2.0) 是第一个包含稳定 CephFS 的 Ceph 版本. CephFS 需要至少一个元数据服务器 (Metadata ...

空空如也

1 2 3 4 5 ... 20
收藏数 19,101
精华内容 7,640
关键字:

ceph