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

  

   

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

    

  

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

    

  1. 13. 创建ceph文件系统
  2. ceph fs ls
  3. 创建存储池
  4. ceph osd pool create cephfs_data 128
  5. ceph fs new 128 cephfs_metadata cephfs_data #cephfs可自定义
  6. 关于创建存储池:
  7. 确定pg_num取值是强制性的,因为不能自动计算。下面是几个常用的值:
  8. *少于5 OSD 时可把pg_num设置为128
  9. *OSD 数量在5 10 个时,可把pg_num设置为512
  10. *OSD 数量在10 50 个时,可把pg_num设置为4096
  11. *OSD 数量大于50 时,你得理解权衡方法、以及如何自己计算pg_num取值
  12. *自己计算pg_num取值时可借助pgcalc 工具
  13. 随着OSD 数量的增加,正确的pg_num取值变得更加重要,因为它显著地影响着集群的行为、以及出错时的数据持久性(即灾难性事件导致数据丢失的概率)。
  14. 创建文件系统
  15. ceph fs new 128 cephfs_metadata cephfs_data #cephfs根据上面创建的存储池定义

    

  1. 14. 挂载
  2. cp ceph.client.admin.keyring admin.secret
  3. vim admin.secret
  4. AQDVUpVec7FyIBAAX/wlJBJwpw+adAhRWltPOA==
  5. mount -t ceph 192.168.66.93:6789:/ /mnt -o name=admin,secretfile=/etc/ceph/admin.secret
  6. echo "Hello World" > /mnt/a.txt
  7. umount /mnt
  8.   开机自动挂载: vim /etc/fstab
  1.   
      格式:[{ipaddress}:{port}]:/ {mount}/{mountpoint} ceph [name=username,secret=secretkey|secretfile=/path/to/secretfile],[{mount.options}]
  1. 192.168.66.93:6789:/     /mnt/    ceph    name=admin,secretfile=/etc/ceph/admin.secret,noatime,_netdev    0       0

  2. 15. 用户控件挂载Ceph文件系统
  3. 安装ceph-fuse
  4. yum install -y ceph-fuse
  5. ceph-fuse -m 192.168.66.93:6789 /mnt
  6. 卸载: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
  1.   systemctl start ceph-fuse@/mnt/mycephfs.service   systemctl enable ceph-fuse.target  systemctl enable ceph-fuse@-mnt-mycephfs.servic
  1. 16. 如果群集具有多个FS,则挂载非默认FS
  2. mount -t ceph :/ /mnt/mycephfs2 -o mds_namespace=mycephfs2
  3. 如果有多个监视器,则传递用逗号分隔的地址:
  4. mount.ceph 192.168.0.1,192.168.0.2,192.168.0.3:/ /mnt/mycephfs

  

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

 

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

  

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

 

 

 

搭建ceph分布式文件系统的更多相关文章

  1. Linux - 搭建FastDFS分布式文件系统

    1. FastDFS简介 说明:FastDFS简介部分的理论知识全部来自于博主bojiangzhou的 <用FastDFS一步步搭建文件管理系统>,在此感谢博主的无私分享.当然最最要感谢的 ...

  2. 简单搭建FastDFS分布式文件系统(简单易懂)

    一.什么是FastDFS FastDFS一个开源的轻量级分布式文件系统,它对文件进行管理,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,功能包括:文件存储.文件同步.文件访 ...

  3. CentOS 7.2搭建FastDFS 分布式文件系统,实现高可用集群

    分布式集群搭建结构 双Tracker 2组Group 轮询存储策略 Keepalived+Nginx高可用 Nginx缓存 4个存储节点 一. 集群规划清单 1.安装清单 软件名称 版本 百度云盘存放 ...

  4. FastDFS+Nginx搭建Java分布式文件系统

    一.FastDFS FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS ...

  5. ceph_deploy部署ceph分布式文件系统

    1.前期准备:centos6.5 minimal版本3台 选择其中一台作为一个安装节点,能无密码登录其他机器.ssh-keygen ssh-keygen -i ~/.ssh/id_rsa.pub no ...

  6. 基于docker容器搭建fastdfs分布式文件系统

    本次环境的搭建参考了 https://blog.csdn.net/qq_43455410/article/details/84797814, 感谢博主. 主要流程如下: 1. 下载fastdfs镜像 ...

  7. 架构设计:系统存储(28)——分布式文件系统Ceph(挂载)

    (接上文<架构设计:系统存储(27)--分布式文件系统Ceph(安装)>) 3. 连接到Ceph系统 3-1. 连接客户端 完毕Ceph文件系统的创建过程后.就能够让客户端连接过去. Ce ...

  8. CentOS 7 搭建 Ceph 集群(nautilus 版本)

    搭建 Ceph 分布式集群( nautilus 版本 ) 一.服务器环境说明 主机名 角色 IP地址 ceph-admin ceph-deploy 192.168.92.21 ceph-node1 m ...

  9. IPFS搭建分布式文件系统 - 访问控制

    IPFS 一个内容可寻址.对等的超媒体分发协议. IPFS网络中的节点形成分布式文件系统. 为什么要用IPFS? “IPFS and the Blockchain are a perfect matc ...

随机推荐

  1. SpringCloud分布式尝试记录

    服务提供端: 客户消费端:

  2. 新手入门C语言第七章:C判断

    C 判断 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的). C 语言把任何非零和非空的值假定为 true,把零或 null  ...

  3. partTwo自动出题程序第一阶段

    课堂测试1:像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 "软件" 代码实现 import java.util.Random;//import java.uti ...

  4. ArcGIS使用技巧(四)——山体阴影

    新手,若有错误还请指正! 最近在制图的时候出现如下的情况(图1),怎么调整Display的三个参数都没用. 图 1 查看其信息,发现dem的像元大小为0.00027(图2),是未投影的 图 2 查看A ...

  5. MATLAB地图工具箱学习心得(一)关于地图分带投影的拼接

    关于matlab地图投影系列: MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的"放大镜"式投影程序 --- 本学期的地图投影课程已经结束了,这篇博客用于记录自己在学习 ...

  6. 关于visualvm无法监控本地java进程

    https://blog.csdn.net/weixin_43827693/article/details/105990675?spm=1001.2101.3001.6661.1&utm_me ...

  7. python学习-Day30

    目录 今日内容详细 作业讲解 设计模式 单例模式 实现思想 编写 pickle模块 今日内容详细 作业讲解 编写元类规定对象的所有数据值转大写 eg: obj.name = 'jason' print ...

  8. 攻防世界-MISC:gif

    这是攻防世界新手练习区的第七题,题目如下: 点击下载附件1,得到一个压缩包,解压后得到一些图片 嗯,黑白相间(又是懵逼的时候),又跑去看WP了,说是打开文件出现多个黑白,让人联想到二进制,白色图片代表 ...

  9. FreeRTOS --(13)任务管理之空闲任务

    转载自 https://blog.csdn.net/zhoutaopower/article/details/107180016 创建完毕任务,启动调度器,任务控制,系统 SysTick 来临后判断是 ...

  10. ArrayLIst在指定位置插入的内部实现

    今天看到一个问题:ArrayList的add方法有两种使用,那么add到指定位置内部是怎么实现的? 发现自己对这块地方不熟悉,所以立马去看了ArrayList下的源码 // 第一个 public bo ...