CEPH分布式存储的安装与使用

深碍√TFBOYSˉ_ 2023-07-24 02:14 6阅读 0赞

ceph存储特点

ceph是无中心化的存储,它没有管理节点、计算节点的之分。
ceph的文件是被分片的,每一个数据块是 一个对象,对象保存在不同的服务器上。当节点失效,自动迁移数据,重新复制副本。可以动态的添加元数据服务器和存储节点,容量可以动态扩展。
ceph分为mon监视器节点(至少一个)、osd对象存储节点(至少2个)、mds元数据节点。
osd 进程负责存储数据、处理数据的复制、恢复、回填、再平衡。并通过其他的osd守护进程的心跳,来向mon提供一些监控信息。当你设置osd有2个副本的时候,至少需要2个osd守护进程才能达到active+clean的状态,默认有3个副本。
mon 负责维护集群状态的各种图表,包括监视图和osd图等。
mds 负责为ceph文件系统存储数据的时候才使用。
存储的过程 :存储的文件数据归类为对象object;对象放在对应的池子里面(pool);pool由若干个pg组成;pg是由若干个osd组成;osd是由硬盘组成。
高性能:
a. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,
并行度高。
b.考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架
感知等。
c. 能够支持上千个存储节点的规模,支持TB到PB级的数据。

高可用性:
a. 副本数可以灵活控制。
b. 支持故障域分隔,数据强一致性。
c. 多种故障场景自动进行修复自愈。
d. 没有单点故障,自动管理。

高可扩展性:
a. 去中心化。
b. 扩展灵活。
c. 随着节点增加而线性增长。

特性丰富:
a. 支持三种存储接口:块存储、文件存储、对象存储。
b. 支持自定义接口,支持多种语言驱动。

环境准备

在这里插入图片描述

安装集群

  1. ##以下在三台上都执行
  2. setenforce 0
  3. sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  4. systemctl stop firewalld
  5. systemctl disable firewalld
  6. yum install -y bash-completion net-tools
  7. cat >>/etc/hosts <<eof 192.168.217.100 ceph1 192.168.217.102 ceph2 192.168.217.103 ceph3 ##以下分别在主机上运行 hostnamectl set-hostname ceph1 ##在ceph1上 hostnamectl set-hostname ceph2 ##在ceph2上 hostnamectl set-hostname ceph3 ##在ceph3上 ##以下在ceph1上执行 ssh-keygen ssh-copy-id root@ceph2 ssh-copy-id root@ceph3 ##添加yum源 yum install wget -y 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 cat > /etc/yum.repos.d/ceph.repo <<eof [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 eof
  8. ##复制repo文件到其它节点
  9. scp /etc/yum.repos.d/ceph.repo root@ceph2:/etc/yum.repos.d/
  10. scp /etc/yum.repos.d/ceph.repo root@ceph3:/etc/yum.repos.d/
  11. scp /etc/yum.repos.d/epel.repo root@ceph2:/etc/yum.repos.d/
  12. scp /etc/yum.repos.d/epel.repo root@ceph3:/etc/yum.repos.d/
  13. ##更新yum源
  14. yum makecache
  15. ssh ceph2 "yum makecache"
  16. ssh ceph3 "yum makecache"
  17. ##安装ceph-deploy
  18. yum install -y ceph-deploy
  19. ##准备ceph
  20. mkdir -p /etc/ceph
  21. cd /etc/ceph
  22. ceph-deploy new ceph1 ceph2 ceph3
  23. echo 'public network=192.168.217.0/24' >> ceph.conf
  24. ##安装集群
  25. ceph-deploy install ceph1 ceph2 ceph3
  26. ##初始化mon
  27. ceph-deploy mon create-initial
  28. ##查看创建的集群用户
  29. ceph auth list
  30. ##创建osd
  31. ###使用分区
  32. #ceph-deploy disk zap ceph1:/dev/sdb ceph2:/dev/sdb ceph3:/dev/sdb
  33. ##通过zap命令清除分区及磁盘内容
  34. #ceph-deploy osd prepare ceph1:/dev/sdb ceph2:/dev/sdb ceph3:/dev/sdb
  35. #ceph-deploy osd activate ceph1:/dev/sdb ceph2:/dev/sdb ceph3:/dev/sdb
  36. ###使用目录
  37. mkdir -p /data/osd0
  38. chown -R ceph:ceph /data/osd0
  39. ssh ceph2 mkdir -p /data/osd0;chown -R ceph:ceph /data/osd0" ssh ceph3 “mkdir -p /data/osd0;chown -R ceph:ceph /data/osd0"
  40. ceph-deploy osd prepare ceph1:/data/osd0 ceph2:/data/osd0 ceph3:/data/osd0
  41. ceph-deploy osd activate ceph1:/data/osd0 ceph2:/data/osd0 ceph3:/data/osd0
  42. ##分发密钥
  43. ceph-deploy admin ceph1 ceph2 ceph3
  44. chmod +r /etc/ceph/ceph.client.admin.keyring
  45. ssh ceph2 "chmod +r /etc/ceph/ceph.client.admin.keyring"
  46. ssh ceph3 "chmod +r /etc/ceph/ceph.client.admin.keyring"
  47. ##查看集群情况
  48. ceph -s
  49. ceph health
  50. ###添加新数据与Mon节点的方法
  51. #ceph-deploy install node4
  52. #mkdir -p /data/osd0
  53. #chown -R ceph:ceph /data/osd0
  54. #ceph-deploy osd prepare node4:/data/osd0
  55. #ceph-deploy osd activate node4:/data/osd0
  56. #ceph-deploy mon add node4
  57. #ceph mon add node4 192.168.217.103:6789
  58. #ceph mon stat

使用集群

  1. #启用mds服务
  2. ceph-deploy mds create ceph1 ceph2 ceph3
  3. #创建池
  4. ceph osd pool create data 128
  5. ceph osd pool create meta 128
  6. #启用cephfs
  7. ceph fs new cephfs meta data
  8. ceph fs ls
  9. #查看osd pool状态
  10. ceph osd pool ls
  11. ceph osd tree
  12. ceph osd pool get data size
  13. ceph osd pool get meta size
  14. ceph df
  15. #使用mount来挂载指定的ceph
  16. mkdir /ceph
  17. #查看ceph的认证密钥
  18. cat /etc/ceph/ceph.client.admin.keyring
  19. #复制其中的key串,然后直接挂载
  20. mount -t ceph \
  21. 192.168.217.100:6789,192.168.217.101:6789,192.168.217.102:6789:/ \
  22. /ceph -o name=admin,secret=AQBZ341eXZoSIBAAJoS3OJG5XCTyA0CmF22I+w==
  23. ##挂载成功后可直接操作/ceph作为存储根目录
  24. ##添加开机自动挂载
  25. vi /etc/fstab
  26. #添加如下信息
  27. 192.168.100.208:6789,192.168.100.209:6789,192.168.100.210:6789:/ /ceph ceph defaults,_netdev,name=admin,secret=AQBZ341eXZoSIBAAJoS3OJG5XCTyA0CmF22I+w== 0 0

发表评论

表情:
评论列表 (有 0 条评论,6人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ceph分布式存储简介

    一、Ceph简介: 什么是分布式存储?   我在一个环境当中,有很多很多的服务器,服务器上也有它自己很多的硬盘,我通过软件的形式把若干服务器都收集起来,部署成一个软

    相关 ceph分布式存储简介

    点击关注上方“开源Linux”, 后台回复“[读书][Link 1]”,有我为您特别筛选书籍资料~ Ceph简介 什么是分布式存储?打个比方, 我在一个环境当中,有很