zoukankan      html  css  js  c++  java
  • 搭建ceph分布式文件系统

     
    1. 准备4台虚拟机
        ceph            192.168.66.93      管理osd,mon节点
        ceph-node1     192.168.66.94      osd节点
        ceph-node2     192.168.66.95      osd节点
        jenkins         192.168.66.88      客户端
       关闭selinux,firewalld 2. 在ceph上新增一块磁盘 dd if=/dev/zero of=/home/kvm/ceph/ceph1.img bs=1M count=5120 dd if=/dev/zero of=/home/kvm/ceph-node1/ceph-node11.img bs=1M count=5120 dd if=/dev/zero of=/home/kvm/ceph-node2/ceph-node21.img bs=1M count=5120       mkfs.xfs /dev/vdb(格式化新增磁盘) mkdir /var/local/osd{0,1,2} [root@ceph ~]# mount /dev/vdb /var/local/osd0/ [root@ceph-node1 ~]# mount /dev/vdb /var/local/osd1/ [root@ceph-node2 ~]# mount /dev/vdb /var/local/osd2/ 3. 在虚拟机配置文件添加如下内容 <disk type='file' device='disk'>   <driver name='qemu' type='raw' cache='none'/>   <source file='/home/kvm/ceph-node1/ceph-node11.img'/>   <target dev='vdb' bus='virtio'/>   <address type='pci' domain='0x0000' bus='0x00' slot='0x10' function='0x0'/>   </disk> 4. 重启虚拟机   fdisk -l查看,如无效先备份虚拟机配置文件,virsh undefine ceph再把配置文件还原virsh define ceph.xml启动虚拟机

      

       

    5. 添加host文件
        生成密钥
        ssh-copyid或者将公钥拷贝到节点.ssh/下面的authorized_keys
    
    6. 时间同步
        在管理节点ceph上安装ntp服务
        yum -y install ntp
        systemctl start ntpd
        在节点执行ntpdate 192.168.66.93
    
    7. 配置yum源
        mkdir /etc/yum.repos.d/yum/
        mv  /etc/yum.repos.d/*.repo  /etc/yum.repos.d/yum/
        wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
        wget -O /etc/yum.repos.d/epel.repo  http://mirrors.aliyun.com/repo/epel-7.repo
        vim /etc/yum.repos.d/ceph.repo
        [ceph]
        name=ceph
        baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
        gpgcheck=0
        priority=1
    
        [ceph-noarch]
        name=cephnoarch
        baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
        gpgcheck=0
        priority=1
    
        [ceph-source]
        name=Ceph source packages
        baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS 
        gpgcheck=0
        priority=1
        清理缓存更新yum源
        yum clean all && yum makecache
        ####先备份节点和客户端yum源
        scp *.repo ceph.repo* root@ceph-node1:/etc/yum.repos.d/
        scp *.repo ceph.repo* root@ceph-node2:/etc/yum.repos.d/
        scp *.repo ceph.repo* root@jenkins:/etc/yum.repos.d/
    
    8. 在管理节点安装ceph-deploy管理工具
        yum -y install ceph-deploy
        mkdir /etc/ceph && cd /etc/ceph
        ceph-deploy new ceph
        vim ceph.conf
        osd_pool_default_size = 2     #2个节点
    
    9. 安装ceph
        ceph-deploy install ceph ceph-node1 ceph-node2 jenkins
        报错一般为网络问题,如换成阿里源或者163源还是无法安装,可手动安装
        手工安装epel-release 然后安装yum -y install ceph-release再yum -y install ceph ceph-radosgw
       ceph-deploy uninstall {hostname [hostname] ...}
    10. 在管理节点安装ceph monitor
        [root@ceph ceph]ceph-deploy mon create ceph
        [root@ceph ceph]ceph-deploy gatherkeys ceph
       ceph-deploy mon destroy {host-name [host-name]...} 11. 部署osd服务 创建osd ceph-deploy osd prepare ceph:/var/local/osd0/ ceph-node1:/var/local/osd1/ ceph-node2:/var/local/osd2/ 激活osd ceph-deploy osd activate ceph:/var/local/osd0/ ceph-node1:/var/local/osd1/ ceph-node2:/var/local/osd2/ 激活报错,在报错节点执行chmod 777 /var/local/osd0 或者 chmod 777 /var/local/osd* 查看状态: ceph-deploy osd list ceph ceph-node1 ceph-node2 用ceph-deploy把配置文件和admin密钥拷贝到所有节点,这样每次执行Ceph命令行时就无需指定monitor地址和ceph.client.admin.keyring了 ceph-deploy admin ceph ceph-node1 ceph-node2 chmod +r /etc/ceph/ceph.client.admin.keyring ceph health或者ceph -s

        

      

    12. 部署mds服务
        ceph-deploy mds create ceph ceph-node1 ceph-node2
        查看状态
        ceph mds stat
        ceph存储集群搭建完毕
    

        

    13. 创建ceph文件系统
        ceph fs ls
        创建存储池
        ceph osd pool create cephfs_data 128  
        ceph fs new 128 cephfs_metadata cephfs_data #cephfs可自定义
        关于创建存储池:
        确定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 工具
        随着OSD 数量的增加,正确的pg_num取值变得更加重要,因为它显著地影响着集群的行为、以及出错时的数据持久性(即灾难性事件导致数据丢失的概率)。
        创建文件系统
        ceph fs new 128 cephfs_metadata cephfs_data  #cephfs根据上面创建的存储池定义
    

        

    14. 挂载
       cp ceph.client.admin.keyring admin.secret
       vim admin.secret
       AQDVUpVec7FyIBAAX/wlJBJwpw+adAhRWltPOA==
       mount -t ceph 192.168.66.93:6789:/ /mnt -o name=admin,secretfile=/etc/ceph/admin.secret
       echo "Hello World" > /mnt/a.txt
       umount /mnt
      开机自动挂载: vim /etc/fstab
       
      格式:[{ipaddress}:{port}]:/ {mount}/{mountpoint} ceph [name=username,secret=secretkey|secretfile=/path/to/secretfile],[{mount.options}]
        192.168.66.93:6789:/     /mnt/    ceph    name=admin,secretfile=/etc/ceph/admin.secret,noatime,_netdev    0       0   
    15. 用户控件挂载Ceph文件系统 安装ceph-fuse yum install -y ceph-fuse ceph-fuse -m 192.168.66.93:6789 /mnt 卸载:umount /mnt
       开机自动挂载:192.168.66.93:6789:/    /mnt/mycephfs  fuse.ceph ceph.id={user-ID}[,ceph.conf={path/to/conf.conf}],_netdev,defaults  0 0
      systemctl start ceph-fuse@/mnt/mycephfs.service   systemctl enable ceph-fuse.target  systemctl enable ceph-fuse@-mnt-mycephfs.servic
    16. 如果群集具有多个FS,则挂载非默认FS:
        mount -t ceph :/ /mnt/mycephfs2 -o mds_namespace=mycephfs2
        如果有多个监视器,则传递用逗号分隔的地址:
        mount.ceph 192.168.0.1,192.168.0.2,192.168.0.3:/ /mnt/mycephfs
    

      

    	清理机器上的ceph相关配置:
    	停止所有进程:stop ceph-all
    	卸载所有ceph程序:ceph-deploy uninstall [{ceph-node}]
    	删除ceph相关的安装包:ceph-deploy purge {ceph-node} [{ceph-data}]
    	删除ceph相关的配置:ceph-deploy purgedata {ceph-node} [{ceph-data}]
    	删除key:ceph-deploy forgetkeys
    	卸载ceph-deploy管理:
    	yum -y remove ceph-deploy
    

     

    Ceph各组件介绍
        Ceph OSDs:Ceph OSD 守护进程(Ceph OSD)的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向Ceph Monitors 提供一些监控信息。当Ceph存储集群设定为有2个副本时,至少需要2个OSD 守护进程,集群才能达到
    active+clean状态(Ceph 默认有3个副本,但你可以调整副本数)。
        Monitors:Ceph Monitor维护着展示集群状态的各种图表,包括监视器图、OSD 图、归置组(PG )图、和CRUSH 图。Ceph 保存着发生在Monitors 、OSD 和PG上的每一次状态变更的历史信息(称为epoch )。
        MDSs:Ceph 元数据服务器(MDS)为Ceph 文件系统存储元数据(也就是说,Ceph 块设备和Ceph 对象存储不使用MDS )。元数据服务器使得POSIX 文件系统的用户们,可以在不对Ceph 存储集群造成负担的前提下,执行诸如ls,find等基本命令
        ceph官方文档http://docs.ceph.org.cn/
        ceph中文开源社区http://ceph.org.cn/
    

      

    排错1: 由于上午网络调整导致ceph ip地址变动,查看集群状态为err,如下图
       我先百度了一下发现很多类似的,我看了一篇之后,虽是测试环境我也没急于动手,查看三台之后,ceph-node2和ceph,ceph-node1不一样,我就看了一下hosts文件,发现写的hosts没了。
        解决:查看下ceph主节点和ceph-node1,发现ceph-node1也没了,同步一样之后再查看ceph -s就正常了
    

     

     

     

  • 相关阅读:
    [Sass学习]Sass的安装和使用
    [CSS学习] padding属性讲解
    [CSS学习] line-height属性讲解
    IOS学习之路——Swift语言(2)——基本类型与函数
    IOS学习之路——Swift语言(1)——基本类型、运算符与逻辑控制语句
    上海 day23 -- 面向对象三大特征---多态 和 内置魔法函数
    上海 day22 -- 面向对象三大特征---- 封装
    上海 day21 -- 面向对象三大特征----继承
    上海 day20 -- 面向对象基础
    上海 day18~19 ATM+购物车(待更新)
  • 原文地址:https://www.cnblogs.com/The-day-of-the-wind/p/12698808.html
Copyright © 2011-2022 走看看