如何构建Ceph
admin
2023-03-05 03:01:59
0


基本简介

Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。
由来

其命名和UCSC(Ceph 的诞生地)的吉祥物有关,这个吉祥物是 “Sammy”,一个香蕉色的蛞蝓,就是头足类中无壳的软体动物。这些有多触角的头足类动物,是对一个分布式文件系统高度并行的形象比喻。
Ceph 最初是一项关于存储系统的 PhD 研究项目,由 Sage Weil 在 University of California, SantaCruz(UCSC)实施。
开发目标
简单定义为以下3项:

  1. 可轻松扩展到数 PB 容量

  2. 支持多种工作负载的高性能(每秒输入/输出操作[IOPS]和带宽)

  3. 高可靠性
    但是,这些目标之间会互相竞争(例如,可扩展性会降低或者抑制性能或者影响可靠性)。Ceph 的设计还包括保护单一点故障的容错功能,它假设大规模(PB 级存储)存储故障是常见现象而不是例外情况。
    它的设计并没有假设某种特殊工作负载,但包括了适应变化的工作负载,并提供最佳性能的能力。它利用 POSIX 的兼容性完成所有这些任务,允许它对当前依赖 POSIX 语义(通过以 Ceph 为目标的改进)的应用进行透明的部署。
    系统架构
    Ceph 生态系统架构可以划分为四部分:

  4. Clients:客户端(数据用户)

  5. cmds:Metadata server cluster,元数据服务器(缓存和同步分布式元数据)

  6. cosd:Object storage cluster,对象存储集群(将数据和元数据作为对象存储,执行其他关键职能)

  7. cmon:Cluster monitors,集群监视器(执行监视功能)
    内容源自百科:https://baike.baidu.com/item/CEPH/1882855
    操作过程
    CEPH环境配置
    192.168.27.210  master(ceph-deploy)  
    192.168.27.211  client1   osd0   mds1、mon1
    192.168.27.212  client2   osd1   mds2、mon2
    192.168.27.213  client3   osd2   mds3、mon3
    主机名
    hostnamectl set-hostname master
    hostnamectl set-hostname client1
    hostnamectl set-hostname client2
    hostnamectl set-hostname client3
    映射主机名:
    192.168.27.210  master
    192.168.27.211  client1
    192.168.27.212  client2
    192.168.27.213  client3
    如何构建Ceph
    确认节点间映射关系的联通性:
    ping -c 3 master
    ping -c 3 client1
    ping -c 3 client2
    ping -c 3 client3
    提示:由于提前做了SSH免登陆,这里把步骤省了,新装需要每台都需要做一次。
    每个节点关闭防火墙和selinux
    #systemctl stop firewalld
    #systemctl disable firewalld
    #sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    #setenforce 0

    每个节点安装和配置NTP(官方推荐的是集群的所有节点全部安装并配置 NTP,需要保证各节点的系统时间一致。没有自己部署ntp服务器,就在线同步NTP)
    #yum install ntp ntpdate ntp-doc -y
    #systemctl restart ntpd
    systemctl status ntpd

每个节点准备yum源
删除默认的源,国外的比较慢
#yum clean all
#mkdir /mnt/bak
#mv /etc/yum.repos.d/* /mnt/bak/

下载阿里云的base源和epel源
#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

添加ceph源
#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
准备磁盘(实际操作也可以省,只要磁盘没问题直接安装都没问题无需要此步骤)
fdisk /dev/sdb
parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%
mkfs.xfs /dev/sdb –f
blkid /dev/sdb #用ansible直观的看下
如何构建Ceph
部署阶段(admin节点上使用ceph-deploy快速部署)
安装ceph-deploy
sudo yum update -y && sudo yum install ceph-deploy -y
创建cluster目录
[root@master ~]# mkdir -pv /data/idc-cluster
mkdir: 已创建目录 "/data/idc-cluster"
如何构建Ceph
创建集群(后面跟集群成员节点名称,这里master节点只做CEPH-DEPLOY使用)
[root@master idc-cluster]# ceph-deploy new client1 client2 client3
如何构建Ceph
在ceph.conf文件中添加红色项并保存
[root@client2 ceph]# cat ceph.conf
[global]
fsid = d5a5f367-97d2-45a5-8b6b-b462bd65fe3d
mon_initial_members = client1, client2, client3
mon_host = 192.168.27.211,192.168.27.212,192.168.27.213
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd_pool_default_size= 3
public_network = 192.168.27.0/22
重新推送配置信息到各结点:
[root@master idc-cluster]# ceph-deploy --overwrite-conf config push master client1 client2 client3
初始化集群:
ceph-deploy mon create-initial
如何构建Ceph

如何构建Ceph
添加OSD到集群
准备OSD(使用prepare命令)
[root@master idc-cluster]# ceph-deploy osd prepare client1:/dev/sdb client2:/dev/sdb client3:/dev/sdb

激活OSD(注意由于ceph对磁盘进行了分区,/dev/sdb磁盘分区为/dev/sdb1)
如何构建Ceph
[root@master idc-cluster]# ceph-deploy osd activate client1:/dev/sdb1 client2:/dev/sdb1 client3:/dev/sdb1
如何构建Ceph

[root@master idc-cluster]# ceph-deploy admin master client1 client2 client3
如何构建Ceph
创建文件系统
先查看管理节点状态,默认是没有管理节点的。
[root@master idc-cluster]# ceph mds stat
e1:
[root@master idc-cluster]#
如何构建Ceph
创建管理节点(master结点作为管理节点)
[root@master idc-cluster]# ceph-deploy mds create master
如何构建Ceph
再次查看管理节点状态,发现已经在启动中
[root@master idc-cluster]# ceph mds stat
e2:, 1 up:standby
如何构建Ceph
如何构建Ceph
创建pool,pool是ceph存储数据时的逻辑分区,它起到namespace的作用
先查看下:
ceph osd lspools
如何构建Ceph
新创建的ceph集群只有rdb一个pool。这时需要创建一个新的pool
[root@master idc-cluster]# ceph osd pool create cephfs_data 128  #后面的数字是PG的数量
pool 'cephfs_data' created
如何构建Ceph
再查看下有了:
如何构建Ceph
[root@master idc-cluster]# ceph osd pool create cephfs_metadata 128 #创建pool的元数据
pool 'cephfs_metadata' created
如何构建Ceph
再次查看pool状态:
如何构建Ceph
ceph fs new myceph cephfs_metadata cephfs_data
如何构建Ceph
检查mds管理节点状态
[root@master idc-cluster]# ceph mds stat
如何构建Ceph
查看集群状态有警报:
如何构建Ceph
解决方案
在配置文件中,调大集群的此选项的告警阀值;方法如下,在mon节点的ceph.conf(/etc/ceph/ceph.conf)配置文件中添加:

vi /etc/ceph/ceph.conf
[global]
.......
mon_pg_warn_max_per_osd = 666
推送配置
如何构建Ceph
重启monitor服务:
systemctl restart ceph-mon.target
如何构建Ceph
1、客户端挂载使用cephfs:
[root@BDDB ceph]# ceph-fuse -m 192.168.27.211:6789 /ceph/cephsys
如何构建Ceph
如何构建Ceph
2、使用内核驱动程序挂载CephFs
[root@BDDB ~]# mount -t ceph 192.168.27.213:6789:/ /ceph/cephsys/ -o name=admin,secretfile=/etc/ceph/admin.secret
如何构建Ceph
存放文件效果:
如何构建Ceph

相关内容

热门资讯

汉坦病毒疫情带动概念股上涨,有... 澎湃新闻首席记者 李潇潇5月8日,A股病毒防治概念股上涨明显。“国产分子诊断第一股”达安基因(002...
先拨一百万研究研究:美国空军探... 【文/观察者网 山猫】作为美国空军战略轰炸机“三驾马车”之一的B-52,自1952年首飞至今已有74...
中国也曾有汉坦病毒致死病例,张... 作者:钱童心据央视网5月8日消息,日前中国台北出现一例汉坦病毒致死病例,与老鼠携带病毒有关。这也引发...
“CIA错了”,伊朗外长亮出导... 战争爆发至今,伊朗究竟还拥有多少导弹?伊朗外长宣称导弹库存已恢复至战前的120%,并警告美方不要再肆...
红场阅兵在即:首次取消展示重型... 澎湃新闻记者 薛晶俄罗斯将于5月9日在莫斯科举行卫国战争胜利日阅兵活动。据新华社报道,5月7日,俄罗...
吉林化工园区推动产业转型升级抢... 进入生产旺季,吉林化工园区美思德(吉林)新材料有限公司生产线满负荷运转。在数字化车间内,巨大的信息屏...
我国首台双核原子量子计算机“汉... IT之家 5 月 8 日消息,据央视新闻今日消息,由中国科学院牵头,联合武汉大学、华中科技大学和武汉...
台军前高官怒轰M1A2T战车“... 海峡导报综合报道 民进党当局对美采购108辆M1A2T战车,但台陆军前司令李翔宙怒轰,采购M1A2T...
爆火的“平替游”,正在撕开谁的... 【文/观察者网 邓军 编辑/赵乾坤】受中东地缘局势不确定性及国际油价波动等因素影响,今年“五一”假期...
8名网贷设计者,揭秘大厂如何“... 00后李明,是老同学眼中“别人家的孩子”。他在重点大学读着自己梦想的心理学专业,还计划念博士。每次和...