系统版本
[root@landerp2uatapp04 gjoy]# cat /etc/centos-release
CentOS Linux release 7.3.1611 (Core)
拓扑架构
主机名 节点IP 安装组件
yfm13 192.168.199.113 ceph-mon,ceph-mgr,ceph-mds
yfm14 192.168.199.114 ceph-osd
yfm15 192.168.199.115 ceph-osd
配置Hosts

vim /etc/hosts

192.168.199.113  yfm13
192.168.199.114 yfm14
192.168.199.115 yfm15
时间同步
参考之前的文章
安装依赖
# 安装yum-plugin-priorities依赖
yum install -y yum-plugin-priorities# 确认里面的enabled为1,表示启用plugin
cat /etc/yum/pluginconf.d/priorities.conf# 安装ceph的密钥
rpm --import 'https://download.ceph.com/keys/release.asc'# 安装elep-release仓库并安装一些必须的包
yum install -y epel-release
yum install -y snappy leveldb gdisk gperftools-libs
配置ceph的镜像源

vim /etc/yum.repos.d/ceph.repo

Ceph版本下载地址:https://download.ceph.com,我这里使用15.2.9

[ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.ustc.edu.cn/ceph/rpm-15.2.9/el7/$basearch
enabled=1
priority=2
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/ceph/keys/release.asc[ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.ustc.edu.cn/ceph/rpm-15.2.9/el7/noarch
enabled=1
priority=2
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/ceph/keys/release.asc[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.ustc.edu.cn/ceph/rpm-15.2.9/el7/SRPMS
enabled=0
priority=2
gpgcheck=1
gpgkey=https://mirrors.ustc.edu.cn/ceph/keys/release.asc
安装Ceph
yum install -y ceph
ceph-mon服务部署(yfm13)
创建配置文件

vim /etc/ceph/ceph.conf

[global]fsid = bdd23a75-12fc-4f25-abf5-7a739fa4e2d1mon initial members = yfm13mon host = 192.168.199.113:6789public network = 192.168.199.0/24auth cluster required = cephxauth service required = cephxauth client required = cephxosd journal size = 1024osd pool default size = 2osd pool default min size = 1osd pool default pg num = 333osd pool default pgp num = 333osd crush chooseleaf type = 1mon_allow_pool_delete = true
  • fsid:这个就是刚才生成的集群唯一uuid,使用uuidgen命令生成
  • mon initial members:这个配置监视器的主机名列表,多个用逗号分隔
  • mon host:这个配置监视器节点的ip:port列表,默认ceph-mon服务的端口号是6789,默认不修改可以不写,多个用逗号分隔
  • public network: 表示开放客户端访问的网络段,根据实际的情况配置
  • 然后后面3项均表示启动认证,方式就是cephx
  • 然后重点看:osd pool default size和osd pool default min size,第一个是osd的数据会复制多少份,osd节点或服务的个数至少要>=复制份数,正常生产环境副本至少要设置3个,保证数据安全,我们这里就两个osd,因此最多设置2;然后后面的配置是允许降级状态下写入几个副本,通常建议至少配置2,我们这里只有两个osd,因此配置了1
  • 然后是osd pool default pg num和osd pool default pgp num是配置单个pool默认的pg数量和pgp数量,pg全称是Placement Group,叫放置组,也就数据存储分组的单元,可以类比为hdfs的块类似的概念,pgp num要和pg num一致即可
  • osd crush chooseleaf type这个参数要注意,这个默认是1表示不允许把数据的不同副本放到1个节点上,这样是为了保证数据安全,集群肯定要配置成1,如果是单机环境搭多个osd做伪分布式测试,那么副本肯定是都在本机的,这个参数务必要改成0,否则最后pgs一直达不到active+clean的状态,就算1个机器上osd数量足够状态仍然为100% pgs not active以及undersized+peered的状态,所以一定要注意这个参数
  • mon_allow_pool_delete 这个参数表示是否允许删除pool,就是存储池,默认是不允许的,改成这个则允许删除,生产环境建议关闭

然后需要把这个配置文件同步到所有的节点,注意之后ceph.conf只要有任何修改,都要同步到集群全部节点,不管是否用到这些配置项,目的是为了保证集群的配置统一,避免出现特殊的问题

配置
# 为集群创建1个密钥环,作为监视器密钥 注意其中的点.不要丢
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
# 生成管理员密钥环 创建admin用户 也是第一个客户端用户
ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
# 生成bootstrap密钥环和用户
ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
# 然后将刚才生成的密钥追加到ceph.mon.keyring
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
# 修改ceph.mon.keyring的权限为ceph ceph用户安装时已经自动创建
chown ceph:ceph /tmp/ceph.mon.keyring# 生成ceph-mon 映射,存储到/tmp/monmap
monmaptool --create --add yfm13 192.168.199.113 --fsid bdd23a75-12fc-4f25-abf5-7a739fa4e2d1 /tmp/monmap# 创建ceph-mon数据目录,目录名为: 集群名-主机名  这里是: ceph-yfm13
mkdir /var/lib/ceph/mon/ceph-yfm13# 使用刚才生成的密钥环和映射初始化数据目录
ceph-mon --mkfs -i yfm13 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring#  调整数据目录权限为ceph
chown -R ceph:ceph /var/lib/ceph/mon/ceph-yfm13/
启动ceph-mon服务
# 服务名为:ceph-mon@主机名
systemctl start ceph-mon@yfm13
# 查看服务状态
systemctl status ceph-mon@yfm13如果正常启动的话,这时候6789端口应该被监听了,这样ceph-mon服务就配置好了,如果配置多个节点的话,要将刚才的ceph.mon.keyring和monmap复制到其他的节点,然后初始化数据目录启动服务即可,密钥环不要多次生成,然后admin用户和bootstrap-osd用户的密钥环同时都要同步到其他的节点,配置好通过下面命令查看ceph状态ceph -s正常显示HEALTH_OK即可,然后如果有WARN提示没有启用msgr2,需要通过下面的命令启用一下,然后稍等再次观察即可正常ceph mon enable-msgr2如果想在其他osd节点也执行ceph -s查看状态的话,则需要同步/etc/ceph/ceph.client.admin.keyring文件到其他节点即可执行ceph状态相关的命令
遇到的问题
start request repeated too quickly for ceph-mon@yfm13.servicesystemctl daemon-reload
systemctl restart ceph-mon@yfm13IO error: /var/lib/ceph/mon/ceph-yfm13/store.db/LOCK: Permission deniedchown -R ceph:ceph /var/lib/ceph/mon/ceph-yfm13/

ceph-mgr服务部署(yfm13)

ceph-mgr和ceph-mon是成对出现的,在每个ceph-mon的节点上都应该有ceph-mgr进程,然后就是配置并启动ceph-mgr守护进程

生成mgr身份验证密钥
# 创建mgr密钥目录, 命名为: 集群名-主机名
mkdir /var/lib/ceph/mgr/ceph-yfm13
# 创建mgr身份验证密钥 注意里面的mgr.yfm13,yfm13为主机名
ceph auth get-or-create mgr.yfm13 mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-yfm13/keyring
# 修改权限
chown -R ceph:ceph /var/lib/ceph/mgr/ceph-yfm13/
启动ceph-mgr守护进程
systemctl start ceph-mgr@yfm13
# 查看服务状态
systemctl status ceph-mgr@yfm13
遇到的问题
ceph -sHEALTH_WARN
Module 'restful' has failed dependency: No module named 'pecan'pip3 install pecan werkzeug
ceph-mds部署(yfm13)
创建mds数据目录
# 目录名同样是: 集群名-主机名
mkdir /var/lib/ceph/mds/ceph-yfm13
# 然后创建mds 密钥环到刚建的目录中, 注意mds.yfm13同样写主机名
ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-yfm13/keyring --gen-key -n mds.yfm13
# 最后导入密钥环  设置访问权限 同样注意主机名
ceph auth add mds.yfm13 osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-yfm13/keyring
编辑配置文件:/etc/ceph/ceph.conf
# 添加如下的配置块
[mds.yfm13]host = yfm13# 将配置文件同步到集群所有节点
scp /etc/ceph/ceph.conf yfm14:/etc/ceph/ceph.conf
scp /etc/ceph/ceph.conf yfm15:/etc/ceph/ceph.conf
启动ceph-mds守护进程
# -i指定mds节点主机名, -m指定ceph-mon的主机名:端口
ceph-mds --cluster ceph -i yfm13 -m yfm13:6789
ceph-OSD节点部署(yfm14,yfm15)
# 将yfm13上面的osd密钥发送到osd节点
scp /var/lib/ceph/bootstrap-osd/ceph.keyring yfm14:/var/lib/ceph/bootstrap-osd/
scp /var/lib/ceph/bootstrap-osd/ceph.keyring yfm15:/var/lib/ceph/bootstrap-osd/
vmware添加新的磁盘
# 使主机识别新增的硬盘
echo "- - -" >  /sys/class/scsi_host/host0/scan
echo "- - -" >  /sys/class/scsi_host/host1/scan
echo "- - -" >  /sys/class/scsi_host/host2/scanfdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a633cDevice Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVMDisk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
创建osd存储(lvm方式)
ceph-volume lvm create --data /dev/sdb

创建的存储类型分为两种,分别是:BULE STORE和FILE STORE,即分别是默认的存储以及文件存储,这俩的区别是文件存储是每次写入都需要先写journal会产生写放大,最初是针对SATA这类机械盘设计的,没有对SSD做优化,而Bule store比较新一些主要对Flash介质做了优化所以在SSD上性能更好,通常默认采用bule store,对固态盘更友好,对于机械盘可以采用File store,但是每个File store的osd至少需要两块设备,因为每个文件存储都必须要指定配套的日志存储设备,我们这里创建的类型为bule store

–data指定块设备,我们这为/dev/sdb

# 查看osd服务是否正常
systemctl status ceph-osd@0
创建存储池以及ceph文件系统

ceph所有的存储都是基于存储池才能分配,因此要先创建存储池,初始情况至少创建两个存储池(RADOS):1个用于存储数据,1个用于存储元数据信息

创建存储池
# 创建名字为cephfs_data的数据池 pg大小为128
ceph osd pool create cephfs_data 128
# 创建名字为cephfs_metadata的存储池 pg大小为64
ceph osd pool create cephfs_metadata 64

存储池可以创建多个,并且所有的存储池共享底层的存储空间,比如A存储池占用了一部分,那个B存储池就只能用剩下的部分了,而且之后挂载后剩余大小的显示也会变小,这个后面可以验证

另外就是注意这里pg大小正常指定128或64就够了,正常默认1个pool最多支持250个pg,可以通过参数调整限制大小,这里两个池都是一样的数据池,后续创建文件系统会指定哪个用于数据,哪个用于元数据存储,这里名字只是个代号

基于存储池创建文件系统
# ceph fs new <fs名称> <元数据池> <数据池>
ceph fs new cephfs cephfs_metadata cephfs_data
检查
# 查看存在的文件系统
ceph fs ls
# 查看mds当前的活动状态
ceph mds stat
挂载文件系统

挂载文件系统有两种方式,一种是基于操作系统内核直接挂载,另一种是使用ceph fuse挂载,通常推荐第一种方式挂载,这样性能和效率都是最高的,如果第一种方式挂载不成功的话,可以尝试使用fuse方式挂载,下面我们直接使用内核方式挂载

# 确认内核mount是否支持ceph
stat /sbin/mount.ceph# 创建挂载点使用admin用户挂载
mkdir /mnt/mycephfs
mount -t ceph :/ /mnt/mycephfs/ -o name=admin# 查看挂载的情况以及容量
df -h

Ceph CentOS7 部署相关推荐

  1. CEPH快速部署(Centos7+Jewel)

    ceph介绍 Ceph是统一存储系统,支持三种接口. Object:有原生的API,而且也兼容Swift和S3的API Block:支持精简配置.快照.克隆 File:Posix接口,支持快照 Cep ...

  2. CEPH分布式存储部署

    ceph支持块存储.对象存储.cephfs文件共享系统,概念性的东西这里不过多介绍,请自行查阅ceph分布式存储相关资料,本文主要介绍ceph分布式集群部署 操作系统:centos7.9 最小安装 节 ...

  3. centos losf 安装_Linux Centos7部署环境安装-CentOS

    Linux Centos7部署环境安装-CentOS Centos7部署环境安装及Linux常用命令 centos系统下各文件夹的作用 centos7修改系统默认语言 centos7安装rz/sz命令 ...

  4. centos-7部署docker

    centos-7部署docker 由于工作需要搭建一个ELK日志分析系统,查找了一些资料,想用docker部署.以前使用过docker镜像,拉取漏洞环境,好像是在ubuntu部署的,但那个虚拟机找不到 ...

  5. CentOS7部署Nginx

    CentOS7部署Nginx 1.准备工作 Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,注意安装顺序如下: 1 SSL功能需要openssl库,直接通过yu ...

  6. Centos7部署轻量级自动化运维工具pssh (亲测)

    下载pssh安装包 [root@localhost ~]# wget https://files.pythonhosted.org/packages/60/9a/8035af3a7d3d1617ae2 ...

  7. centos7 查看oracle运行日志_Linux(CentOS7)部署系列---常规应用部署方案

    前言 作为Java开发者,部署war包应用到Linux系统时常常会犯怵,一个是对Linux命令不是很熟悉,还有一个就是在Linux安装诸如JDK.Tomcat.MySQL.Redis等一知半解导致的, ...

  8. Ceph监控部署之inkscopeCalamari(v10.2.11)

    Ceph监控部署之inkscope & calamari 一.Ceph监控系统之inkscope部署 inkcope组件说明 inkscope部署 二.Ceph监控之Calamari部署 Ca ...

  9. 使用Centos7部署静态网站

    使用Centos7部署静态网站 我在配置过程中参阅了一些博主的文章,收益很大,在此列出: [CentOS7快速上手]4.Nginx安装&配置 - Ken的杂谈 在centOs 上搭建nginx ...

最新文章

  1. 网站优化中搜索引擎为何重视原创内容呢?
  2. php-fpm进程数优化方法
  3. 【uva11994】Happy Painting!【LCT】
  4. 3Com发布新MSR路由器 为企业提供视频播客支持
  5. 每日一笑 | 程序员的日常,这也太真实了......
  6. RocketMQ:Linux下启动server和broker的命令
  7. 线程的基本状态 java 1615477073
  8. mqtt server python_使用python实现mqtt的发布和订阅
  9. SQL Server中的查询跟踪列值
  10. 简单 python 小说爬虫 ultimate
  11. Linux 内存管理(一)——地址空间
  12. Rust: join,与concat
  13. Java 报表工具选择
  14. AdBlock广告拦截插件的实现原理
  15. Linux命令之find命令
  16. 图数据库Neo4j下载、安装
  17. virtualbox虚机无法上网
  18. Jenkins的制品管理
  19. ESP8266连接阿里云(二)烧录MQTT固件
  20. 网易云易盾朱浩齐:视听行业步入强监管和智能时代

热门文章

  1. 直销银行小神器--银行卡OCR识别
  2. 上传1M以内的图片 修改图片大小的方法
  3. xp系统锁定计算机快捷键,XP锁电脑的快捷键是哪个?
  4. MacBook air m1抹盘+重装系统
  5. 写一个HTML的关于新年倒计时的有烟花绽放,还有名字的,转换为网站
  6. oncontextmenu 事件
  7. 搭建微博Cookies池(一)
  8. 销售数据分析怎么做?这篇文章说清楚了
  9. 【农业发展】趋势与历史机遇
  10. [Java基础]--JVM gc参数设置与分析