centos-7.4_ceph-12.2.4部署
centos-7.4_ceph-12.2.4部署:
前言:
基于centos7.4安装ceph-luminous的主要步骤有一下几点:
1、安装centos7.4的系统,并配置网卡
2、安装前的环境配置
3、安装ceph、配置mon、mgr、osd等组件创建pool,即完成了ceph的环境安装和部署
安装系统并配置网卡,确认系统可以上外网,或者添加本地安装源:
安装前的环境配置
修改主机名:
# hostnamectl set-hostname $HOSTNAME(主机名)
# yum -y install vim
添加本地解析:
# vim /etc/hosts
1.1.1.12 $HOSTNAME
添加epel源:
# vim /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://mirrors.aliyun.com/epel/7/$basearch/debug
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=0
[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://mirrors.aliyun.com/epel/7/SRPMS
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=0
添加ceph-12源:
# vim /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/
gpgcheck=0
加速ssh:
# vim /etc/ssh/sshd_config
GSSAPIAuthentication no
UseDNS no
# systemctl restart sshd
修改selinux策略:
# vim /etc/selinux/config
SELINUX=disabled
setenforce 0
systemctl stop NetworkManager.service
systemctl disable NetworkManager.service
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl stop postfix.service
systemctl disable postfix.service
安装和部署:
安装ceph:
查询有那些可安装的包
yum --showduplicates list ceph | expand
安装ceph-12.2.4
# vim /etc/yum.conf
exclude=*12.2.7* *12.2.6* *12.2.5*(此处是限制不安装哪些版本,默认安装的是最新版本)
安装:
# yum -y install ceph
添加ceph配置文件:
# cd /etc/ceph
# vim ceph.conf
[global]
fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993
mon initial members = $HOSTNAME(mon进程名)
mon host = 1.1.1.12
public network = 1.1.1.0/24
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
osd journal size = 1024
osd pool default size = 1
osd pool default min size = 1
osd pool default pg num = 333
osd pool default pgp num = 333
osd crush chooseleaf type = 1
mon osd max split count = 10000
mon max pg per osd = 10000
rbd_default_features = 1
配置mon服务:
# sudo -u ceph ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
# ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow'
# ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd'
# 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
# monmaptool --create --add $HOSTNAME 1.1.1.12 --fsid a7f64266-0894-4f1e-a635-d0aeaca0e993 /etc/ceph/monmap
# sudo -u ceph mkdir /var/lib/ceph/mon/ceph-$HOSTNAME
# sudo -u ceph ceph-mon --mkfs -i $HOSTNAME --monmap /etc/ceph/monmap --keyring /tmp/ceph.mon.keyring
# ll /var/lib/ceph/mon/ceph-$HOSTNAME/
total 8
-rw------- 1 ceph ceph 77 May 20 05:26 keyring
-rw-r--r-- 1 ceph ceph 8 May 20 05:26 kv_backend
drwxr-xr-x 2 ceph ceph 112 May 20 05:26 store.db
# touch /var/lib/ceph/mon/ceph-$HOSTNAME/{done,upstart}
# systemctl enable ceph.target
# systemctl enable ceph-mon.target
# systemctl enable ceph-mon@$HOSTNAME
# systemctl start ceph-mon@$HOSTNAME
# tail -f /var/log/messages
May 20 05:31:52 ceph systemd: Started Ceph cluster monitor daemon.
May 20 05:31:52 ceph systemd: Starting Ceph cluster monitor daemon... #说明已经成功启动
# ll /var/run/ceph/
total 0
srwxr-xr-x 1 ceph ceph 0 May 20 05:31 ceph-mon.$HOSTNAME.asok
# ceph --cluster=ceph --admin-daemon /var/run/ceph/ceph-mon.$HOSTNAME.asok mon_status #查看mon的详细信息
配置mgr服务:
# sudo -u ceph mkdir -p /var/lib/ceph/mgr/ceph-$HOSTNAME
# ceph auth get-or-create "mgr.$HOSTNAME" mon 'allow profile mgr' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mgr/ceph-$HOSTNAME/keyring
# chown -R ceph:ceph /var/lib/ceph/mgr/ceph-$HOSTNAME/keyring
# systemctl enable ceph-mgr.target
# systemctl enable ceph-mgr@$HOSTNAME
# systemctl start ceph-mgr@$HOSTNAME.service
# tail -f /var/log/messages
May 20 05:42:25 ceph systemd: Started Ceph cluster manager daemon.
May 20 05:42:25 ceph systemd: Starting Ceph cluster manager daemon... #说明已经成功启动
配置osd服务(在新的版本中部署osd的方法有多种,一下一一列举):
以下部署过程中,出现问题可能会用到的命令:
清除分区,重新格式化
dd if=/dev/zero of=/dev/sdb bs=1M count=10
parted /dev/sdb -s mklabel gpt
虚拟机不关机让系统识别磁盘:
echo "- - -" > /sys/class/scsi_host/host{0..2}/scan
刷新配置:
systemctl daemon-reload
-----------------------------------------------------------------------------------------
首先第一个:(这个沿用之前的部署方式,将整个盘作为一个分区,性能和工作方式有待验证)
# vim create_osd.sh
#!/bin/bash
disk=$1
UUID=$(uuidgen)
OSD_SECRET=$(ceph-authtool --gen-print-key)
ID=$(echo "{\"cephx_secret\": \"$OSD_SECRET\"}" | \
ceph osd new $UUID -i - \
-n client.bootstrap-osd -k /var/lib/ceph/bootstrap-osd/ceph.keyring)
mkdir /var/lib/ceph/osd/ceph-$ID
mkfs.xfs /dev/${disk}
mount /dev/${disk} /var/lib/ceph/osd/ceph-$ID
ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-$ID/keyring \
--name osd.$ID --add-key $OSD_SECRET
ceph-osd -i $ID --mkfs --osd-uuid $UUID
chown -R ceph:ceph /var/lib/ceph/osd/ceph-$ID
systemctl enable ceph-osd@$ID
systemctl start ceph-osd@$ID
--------------------------------------
第二种是基于ceph-disk部署的bluestore,会给磁盘分四个区,可以在配置文件里面定义每个分区的大小:(默认是filestore)
ceph-disk prepare --bluestore /dev/sdc --block.db /dev/sdc --block.wal /dev/sdc
bluestore主要配置项有:
[global]
bluestore block create = true
bluestore block db size = 67108864
bluestore block db create = true
bluestore block wal size = 134217728
bluestore block wal create = true
[osd]
enable experimental unrecoverable data corrupting features = bluestore rocksdb
osd objectstore = bluestore
bluestore fsck on mount = true
[mon.$HOSTNAME]
host = $HOSTNAME
mon addr = 1.1.1.12:6789
[mgr]
mgr data = /var/lib/ceph/mgr/$cluster-$name
[mgr.$HOSTNAME]
key = "AQBcHf9aOJyoGBAAGgujgi67SBrImyrTaHy3vw=="
caps mds = "allow *"
caps mon = "allow profile mgr"
caps osd = "allow *"
[osd.0]
host = $HOSTNAME
osd data = /var/lib/ceph/osd/ceph-0
以下内容,可以不定义,或者在部署完成后进行添加
# bluestore block db path = /dev/disk/by-partlabel/osd-device-0-block
# bluestore block wal path = /dev/disk/by-partlabel/osd-device-0-db
# bluestore block path = /dev/disk/by-partlabel/osd-device-0-wal
------------------------------------------
第三种方法是当下官方比较推荐的ceph-volume工具,结合lvm使用,默认部署bluestore:
ceph-volume lvm create --data /dev/sdb
or:
ceph-volume lvm prepare --data /dev/sdb
ceph-volume lvm list
ceph-volume lvm activate {ID} {FSID}
filestore:
ceph-volume lvm create --filestore --data /dev/sdb --journal /dev/sdb
or:
ceph-volume lvm prepare --filestore --data {data-path} --journal {journal-path}
ceph-volume lvm list
ceph-volume lvm activate --filestore {ID} {FSID}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
部署完之后,使用:
ceph常用操作命令:
systemctl stop ceph\*.service ceph\*.target (关闭集群)
systemctl start ceph.target (开启集群)
systemctl start ceph-osd@{0..2} (关闭一组osd)
systemctl stop ceph-osd.target (开启当前服务器上面的osd)
ceph osd pool create volumes 2048 2048 replicated (创建存储池)
使用过程中的常见报错:
# ceph osd df 报错原因, 没有授权
Error EACCES: access denied' does your client key have mgr caps? See http://docs.ceph.com/docs/master/mgr/administrator/#client-authentication
# ceph auth caps client.admin osd 'allow *' mds 'allow ' mon 'allow *' mgr 'allow *'
updated caps for client.admin
ceph的副本数不符合要求:
# ceph -s
cluster:
id: 46c8f0f7-c585-4e32-99b5-aaa5d50cb703
health: HEALTH_WARN
Reduced data availability: 2048 pgs inactive
Degraded data redundancy: 2048 pgs undersized
services:
mon: 1 daemons, quorum ceph128-06
mgr: ceph128-06(active)
osd: 6 osds: 6 up, 6 in
data:
pools: 3 pools, 2560 pgs
objects: 0 objects, 0 bytes
usage: 6384 MB used, 8931 GB / 8938 GB avail
pgs: 100.000% pgs not active
2560 undersized+peered
# ceph osd dump|grep pool
pool 1 'volumes' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 2048 pgp_num 2048 last_change 29 flags hashpspool stripe_width 0
pool 2 'backups' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 256 pgp_num 256 last_change 34 flags hashpspool stripe_width 0
pool 3 'images' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 256 pgp_num 256 last_change 37 flags hashpspool stripe_width 0
# for i in `ceph osd pool ls`;do ceph osd pool set $i size 1&&ceph osd pool set $i min_size 1;done (请设置合理的副本数)
没有对创建完的pool进行定义:
# ceph -s
cluster:
id: 46c8f0f7-c585-4e32-99b5-aaa5d50cb703
health: HEALTH_WARN
application not enabled on 3 pool(s)
services:
mon: 1 daemons, quorum ceph128-06
mgr: ceph128-06(active)
osd: 6 osds: 6 up, 6 in
data:
pools: 3 pools, 2560 pgs
objects: 15 objects, 192 kB
usage: 6417 MB used, 8931 GB / 8938 GB avail
pgs: 2560 active+clean
io:
client: 383 B/s rd, 8685 B/s wr, 0 op/s rd, 0 op/s wr
# for i in `ceph osd pool ls`;do ceph osd pool application enable $i rbd;done
# for i in `ceph osd pool ls`;do rbd pool init $i;done
创建块时特性的报错:(如在配置文件中定义则不会出现这样的报错)
# rbd create -s 10T volumes/test
# rbd info volumes/test
rbd image 'test':
size 10240 GB in 2621440 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.375674b0dc51
format: 2
features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
flags:
create_timestamp: Sat Jul 28 03:02:36 2018
# rbd map volumes/test
rbd: sysfs write failed
RBD image feature set mismatch. Try disabling features unsupported by the kernel with "rbd feature disable".
In some cases useful info is found in syslog - try "dmesg | tail".
rbd: map failed: (6) No such device or address
# vim /etc/ceph/ceph.conf
rbd_default_features = 1
# rbd rm volumes/test
# rbd create -s 10T volumes/test
# rbd info volumes/test
rbd image 'test':
size 10240 GB in 2621440 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.375b74b0dc51
format: 2
features: layering
flags:
create_timestamp: Sat Jul 28 03:08:36 2018
centos-7.4_ceph-12.2.4部署的更多相关文章
- ELK——在 CentOS/Linux 把 Kibana 3.0 部署在 Nginx 1.9.12
上一篇文章<安装 logstash 2.2.0.elasticsearch 2.2.0 和 Kibana 3.0>,介绍了如何安装 Logstash.Elasticsearch 以及用 P ...
- Centos下DNS+NamedManager高可用部署方案完整记录
之前说到了NamedManager单机版的配置,下面说下DNS+NamedManager双机高可用的配置方案: 1)机器环境 主机名 ip地址 dns01.kevin.cn 192.168.10.20 ...
- 第十四章 Odoo 12开发之部署和维护生产实例
本文中将学习将 Odoo 服务器作为生产环境的基本准备.安装和维护服务器是一个复杂的话题,应该由专业人员完成.本文中所学习的不足以保证普通用户创建应对包含敏感数据和服务的健壮.安全环境. 本文旨在介绍 ...
- centos环境的python、scrapy部署
1 操作系统 Centos 6.5 64bit 或以上版本 2 软件环境 提示:(1)用什么软件:(2)运行环境(3)开发包. Python:Python-2.7.6.tgz Scrapy:Scrap ...
- 在CentOS下的docker容器中部署spring boot应用的两种方式
我们通常在 windows 环境下开发 Java,而通常是部署在Linux的服务器中,而CentOS通常是大多数企业的首选,基于Docker的虚拟化容器技术,多数Java应用选择这种方式部署服务.本文 ...
- Linux(CentOS)中使用Mono+jexus部署Asp.net4.5网站
一.效果: 二.安装步骤: 1.安装系统CentOS,我这是用CentOs7测试的. 2.接下来安装libgdiplus.Mono.Jexus有问题可以参考安装工具的官网: Libgdiplus下载官 ...
- .NET Core 部署到CentOS–1.创建项目,简单部署
开发环境:Windows 10,部署环境:阿里云 CentOS 7.3 1. 创建应用 1) 创建项目, 配置应用生成部署包 2) 配置项目 编辑project.json, 追加环境项, 选项可参考这 ...
- centos 无界面 服务器 安装chrome部署chromedriver
转:https://blog.csdn.net/u013849486/article/details/79466359 基本 做完了,要弄进docker里面去了的时候,才搜到 docker-chrom ...
- Visual Studio 调试系列12 远程调试部署在远程计算机IIS上的ASP.NET应用程序
系列目录 [已更新最新开发文章,点击查看详细] 要调试已部署到IIS的ASP.NET应用程序,请在部署应用程序的计算机上安装并运行远程工具,然后从Visual Studio附加到正在运行的应用 ...
- sqler 集成 terraform v0.12 生成资源部署文件
terraform v0.12 发布了,有好多新功能的添加,包括语法的增强,新函数的引入,更好的开发提示 只是当前对于一些老版本的provider 暂时还不兼容,但是大部分官方的provider 都是 ...
随机推荐
- C# Dynamic通用反序列化Json类型并遍历属性比较
背景 : 最近在做JAVA 3D API重写,重写的结果需要与原有的API结果进行比较,只有结果一致时才能说明接口是等价重写的,为此需要做一个API结果比较的工具,比较的内容就是Json内容,但是为了 ...
- CDM中,实体与实体快捷方式之间的联系不能重复,否则会造成外键重复
例如机场实体和跑道实体,例如: 在机场包中,跑道实体作为快捷方式出现,机场实体与跑道快捷方式实体间有连线关系,然而 在跑道包中,情况相反,但二者间也有连线.(模型原样) 要注意的是,虽然在两个包中都有 ...
- hibernate 事务的隔离级别
脏读不可重复读幻读可序列化(符合事务的四个特性的正常情况 ) 解释: 脏读:事务A对数据1做了更新,但是还没有来得及提交 此时事务B对数据1进行了查询获得了事务A更新后的数据, 但是事务A因为一些原因 ...
- Android 4学习(4):概述 - Using Resources
参考:<Professional Android 4 Application Development> Andorid中的资源包括用户自定义资源和系统自带资源,这两种资源既可以在代码中使用 ...
- Python垃圾回收机制:gc模块
在Python中,为了解决内存泄露问题,采用了对象引用计数,并基于引用计数实现自动垃圾回收. 由于Python 有了自动垃圾回收功能,就造成了不少初学者误认为不必再受内存泄漏的骚扰了.但如果仔细查看一 ...
- 类型:Jquery;问题:jquery调用后台带参数方法;结果:利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法。
利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法. [WebMethod] 命名空间 1.无参数的方法调用, 注意:1.方法一定要静态方法,而且要有[WebMethod] ...
- ABP仓储
简介 我们都知道ABP已经实现了仓储模式,支持EF core 和dapper 进行数据库的连接和管理,可以很方便的注入仓储来操作你的数据,不需要自己单独定义一个仓储来实现,通用的仓储实现了通用的cru ...
- IOS AppStore上线前测试
IOS AppStore上线前测试 TestFlight Beta ios 8才开始支持. https://developer.apple.com/library/ios/documentation ...
- tomcat urlwrite报错
十二月 26, 2017 2:15:30 下午 org.apache.catalina.core.ApplicationContext logINFO: org.tuckey.web.filters. ...
- maven依赖scope配置项讲解
我们在使用Maven配置依赖项的时候,常常只会配置Maven的坐标以及版本信息就可以了,但我们看其他人的工程代码的时候常常会见到有个scope配置项,今天就来分别介绍下这个配置下几个类别的作用. &l ...