基本简介linux
Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。
由来vim
其命名和UCSC(Ceph 的诞生地)的吉祥物有关,这个吉祥物是 “Sammy”,一个香蕉色的蛞蝓,就是头足类中无壳的软体动物。这些有多触角的头足类动物,是对一个分布式文件系统高度并行的形象比喻。
Ceph 最初是一项关于存储系统的 PhD 研究项目,由 Sage Weil 在 University of California, SantaCruz(UCSC)实施。
开发目标
简单定义为如下3项:缓存
每一个节点安装和配置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直观的看下
部署阶段(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"
建立集群(后面跟集群成员节点名称,这里master节点只作CEPH-DEPLOY使用)
[root@master idc-cluster]# ceph-deploy new client1 client2 client3
在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-initialide
添加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)
[root@master idc-cluster]# ceph-deploy osd activate client1:/dev/sdb1 client2:/dev/sdb1 client3:/dev/sdb1ui
[root@master idc-cluster]# ceph-deploy admin master client1 client2 client3
建立文件系统
先查看管理节点状态,默认是没有管理节点的。
[root@master idc-cluster]# ceph mds stat
e1:
[root@master idc-cluster]#
建立管理节点(master结点做为管理节点)
[root@master idc-cluster]# ceph-deploy mds create master
再次查看管理节点状态,发现已经在启动中
[root@master idc-cluster]# ceph mds stat
e2:, 1 up:standby
建立pool,pool是ceph存储数据时的逻辑分区,它起到namespace的做用
先查看下:
ceph osd lspools
新建立的ceph集群只有rdb一个pool。这时须要建立一个新的pool
[root@master idc-cluster]# ceph osd pool create cephfs_data 128 #后面的数字是PG的数量
pool 'cephfs_data' created
再查看下有了:
[root@master idc-cluster]# ceph osd pool create cephfs_metadata 128 #建立pool的元数据
pool 'cephfs_metadata' created
再次查看pool状态:
ceph fs new myceph cephfs_metadata cephfs_data
检查mds管理节点状态
[root@master idc-cluster]# ceph mds stat
查看集群状态有警报:
解决方案
在配置文件中,调大集群的此选项的告警阀值;方法以下,在mon节点的ceph.conf(/etc/ceph/ceph.conf)配置文件中添加:阿里云
vi /etc/ceph/ceph.conf
[global]
.......
mon_pg_warn_max_per_osd = 666
推送配置
重启monitor服务:
systemctl restart ceph-mon.target
一、客户端挂载使用cephfs:
[root@BDDB ceph]# ceph-fuse -m 192.168.27.211:6789 /ceph/cephsys
二、使用内核驱动程序挂载CephFs
[root@BDDB ~]# mount -t ceph 192.168.27.213:6789:/ /ceph/cephsys/ -o name=admin,secretfile=/etc/ceph/admin.secret
存放文件效果: