一、服务器规划

主机名 主机IP 磁盘配比 角色
node1

public-ip:10.0.0.130
cluster-ip:192.168.2.130

sda,sdb,sdc
sda是系统盘,另外两块数据盘
ceph-deploy,monitor,mgr,osd
node2

public-ip:10.0.0.131
cluster-ip:192.168.2.131

sda,sdb,sdc
sda是系统盘,另外两块数据盘
monitor,mgr,osd
node3

public-ip:10.0.0.132
cluster-ip:192.168.2.132

sda,sdb,sdc
sda是系统盘,另外两块数据盘
monitor,mgr,osd

二、设置主机名

主机名设置,三台主机分别执行属于自己的命令

node1

[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# hostname node1

node2

[root@localhost ~]# hostnamectl set-hostname node2
[root@localhost ~]# hostname node2

node3

[root@localhost ~]# hostnamectl set-hostname node3
[root@localhost ~]# hostname node3

执行完毕后要想看到效果,需要关闭当前命令行窗口,重新打开即可看到设置效果

三、设置hosts文件

在3台机器上都执行下面命令,添加映射

echo "10.0.0.130 node1 " >> /etc/hosts
echo "10.0.0.131 node2 " >> /etc/hosts
echo "10.0.0.132 node3 " >> /etc/hosts

四、创建用户并设置免密登录

创建用户(三台机器上都运行)

useradd -d /home/admin -m admin
echo "" | passwd admin --stdin
#sudo权限
echo "admin ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/admin
sudo chmod /etc/sudoers.d/admin

设置免密登录  (只在node1上执行)

[root@node1 ~]# su - admin
[admin@node1 ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_rsa):
Created directory '/home/admin/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/admin/.ssh/id_rsa.
Your public key has been saved in /home/admin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:qfWhuboKeoHQOOMLOIB5tjK1RPjgw/Csl4r6A1FiJYA admin@admin.ops5.bbdops.com
The key's randomart image is:
+---[RSA 2048]----+
|+o.. |
|E.+ |
|*% |
|X+X . |
|=@.+ S . |
|X.* o + . |
|oBo. . o . |
|ooo. . |
|+o....oo. |
+----[SHA256]-----+
[admin@node1 ~]$ ssh-copy-id admin@node1
[admin@node1 ~]$ ssh-copy-id admin@node2
[admin@node1 ~]$ ssh-copy-id admin@node3

五、配置时间同步

三台都执行

yum -y install ntpdate
ntpdate -u cn.ntp.org.cn crontab -e
*/ * * * * ntpdate -u cn.ntp.org.cn > /dev/null >& systemctl reload crond.service

六、安装ceph-deploy并安装ceph软件包

配置ceph清华源

cat > /etc/yum.repos.d/ceph.repo<<'EOF'
[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirror.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/$basearch
enabled=
gpgcheck=
type=rpm-md
gpgkey=https://mirror.tuna.tsinghua.edu.cn/ceph/keys/release.asc
priority=
[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirror.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch
enabled=
gpgcheck=
type=rpm-md
gpgkey=https://mirror.tuna.tsinghua.edu.cn/ceph/keys/release.asc
priority=
[ceph-source]
name=Ceph source packages
baseurl=https://mirror.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS
enabled=
gpgcheck=
type=rpm-md
gpgkey=https://mirror.tuna.tsinghua.edu.cn/ceph/keys/release.asc
priority=
EOF

安装ceph-deploy

[root@node1 ~]# sudo yum install ceph-deploy

初始化mon点

ceph需要epel源的包,所以安装的节点都需要yum install epel-release

[admin@node1 ~]$ mkdir my-cluster
[admin@node1 ~]$ cd my-cluster
# new
[admin@node1 my-cluster]$ ceph-deploy new node1 node2 node3
Traceback (most recent call last):
File "/bin/ceph-deploy", line , in <module>
from ceph_deploy.cli import main
File "/usr/lib/python2.7/site-packages/ceph_deploy/cli.py", line , in <module>
import pkg_resources
ImportError: No module named pkg_resources
#以上出现报错,是因为没有pip,安装pip
[admin@node1 my-cluster]$ sudo yum install epel-release
[admin@node1 my-cluster]$ sudo yum install python-pip
#重新初始化
[admin@node1 my-cluster]$ ceph-deploy new node1 node2 node3
[admin@node1 my-cluster]$ ls
ceph.conf ceph-deploy-ceph.log ceph.mon.keyring
[admin@node1 my-cluster]$ cat ceph.conf
[global]
fsid = a1132f78-cdc5-43d0-9ead-5b590c60c53d
mon_initial_members = node1, node2, node3
mon_host = 10.28.103.211,10.28.103.212,10.28.103.213
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

修改ceph.conf,添加如下配置

public network = 10.28.103.0/
cluster network = 172.30.103.0/
osd pool default size =
osd pool default min size =
osd pool default pg num =
osd pool default pgp num =
osd pool default crush rule =
osd crush chooseleaf type =
max open files =
ms bind ipv6 = false
[mon]
mon clock drift allowed =
mon clock drift warn backoff =
mon osd full ratio = .
mon osd nearfull ratio = .
mon osd down out interval =
mon osd report timeout =
mon allow pool delete = true
[osd]
osd recovery max active =
osd max backfills =
osd max scrubs =
osd mkfs type = xfs
osd mkfs options xfs = -f -i size=
osd mount options xfs = rw,noatime,inode64,logbsize=256k,delaylog
filestore max sync interval =
osd op threads =

安装Ceph软件到指定节点

[admin@node1 my-cluster]$ ceph-deploy install --no-adjust-repos node1 node2 node3

--no-adjust-repos是直接使用本地源,不生成官方源。

部署初始的monitors,并获得keys

[admin@node1 my-cluster]$ ceph-deploy mon create-initial

做完这一步,在当前目录下就会看到有如下的keyrings:

[admin@node1 my-cluster]$ ls
ceph.bootstrap-mds.keyring ceph.bootstrap-osd.keyring ceph.client.admin.keyring ceph-deploy-ceph.log
ceph.bootstrap-mgr.keyring ceph.bootstrap-rgw.keyring ceph.conf ceph.mon.keyring

将配置文件和密钥复制到集群各节点

配置文件就是生成的ceph.conf,而密钥是ceph.client.admin.keyring,当使用ceph客户端连接至ceph集群时需要使用的密默认密钥,这里我们所有节点都要复制,命令如下。

[admin@node1 my-cluster]$ ceph-deploy admin node1 node2 node3

七、部署ceph-mgr

#在L版本的`Ceph`中新增了`manager daemon`,如下命令部署一个`Manager`守护进程
[admin@node1 my-cluster]$ ceph-deploy mgr create node1

八、创建osd

在node1上执行以下命令

#用法:ceph-deploy osd create –data {device} {ceph-node}
ceph-deploy osd create --data /dev/sdb node1
ceph-deploy osd create --data /dev/sdb node2
ceph-deploy osd create --data /dev/sdb node3
ceph-deploy osd create --data /dev/sdc node1
ceph-deploy osd create --data /dev/sdc node2
ceph-deploy osd create --data /dev/sdc node3

如果报错,记得用root执行

检查osd状态

[admin@node1 ~]$ sudo ceph health
HEALTH_OK
[admin@node1 ~]$ sudo ceph -s
cluster:
id: af6bf549-45be-419c-92a4-8797c9a36ee8
health: HEALTH_OK services:
mon: daemons, quorum node1,node2,node3
mgr: node1(active)
osd: osds: up, in data:
pools: pools, pgs
objects: objects, B
usage: 6.0 GiB used, GiB / GiB avail
pgs:

默认情况下ceph.client.admin.keyring文件的权限为600,属主和属组为root,如果在集群内节点使用cephadmin用户直接直接ceph命令,将会提示无法找到/etc/ceph/ceph.client.admin.keyring文件,因为权限不足。

如果使用sudo ceph不存在此问题,为方便直接使用ceph命令,可将权限设置为644。在集群节点上面node1 admin用户下执行下面命令。

[admin@node1 my-cluster]$ ceph -s
-- ::36.062 7f52d08e0700 - auth: unable to find a keyring on /etc/ceph/ceph.client.admin.keyring,/etc/ceph/ceph.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin,: () No such file or directory
-- ::36.062 7f52d08e0700 - monclient: ERROR: missing keyring, cannot use cephx for authentication
[errno ] error connecting to the cluster
[admin@node1 my-cluster]$ sudo chmod /etc/ceph/ceph.client.admin.keyring
[admin@node1 my-cluster]$ ceph -s
cluster:
id: af6bf549-45be-419c-92a4-8797c9a36ee8
health: HEALTH_OK services:
mon: daemons, quorum node1,node2,node3
mgr: node1(active)
osd: osds: up, in data:
pools: pools, pgs
objects: objects, B
usage: 6.1 GiB used, GiB / GiB avail
pgs: [admin@node1 my-cluster]$

查看osds

[admin@node1 ~]$ sudo ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
- 0.11151 root default
- 0.03717 host node1
hdd 0.01859 osd. up 1.00000 1.00000
hdd 0.01859 osd. up 1.00000 1.00000
- 0.03717 host node2
hdd 0.01859 osd. up 1.00000 1.00000
hdd 0.01859 osd. up 1.00000 1.00000
- 0.03717 host node3
hdd 0.01859 osd. up 1.00000 1.00000
hdd 0.01859 osd. up 1.00000 1.00000

九、开启MGR监控模块

方式一:命令操作

ceph mgr module enable dashboard

如果以上操作报错如下:

Error ENOENT: all mgr daemons do not support module 'dashboard', pass --force to force enablement

则因为没有安装ceph-mgr-dashboard,在mgr的节点上安装。

yum install ceph-mgr-dashboard

方式二:配置文件

# 编辑ceph.conf文件
vi ceph.conf
[mon]
mgr initial modules = dashboard
#推送配置
[admin@admin my-cluster]$ ceph-deploy --overwrite-conf config push node1 node2 node3
#重启mgr
sudo systemctl restart ceph-mgr@node1

web登录配置

默认情况下,仪表板的所有HTTP连接均使用SSL/TLS进行保护。

#要快速启动并运行仪表板,可以使用以下内置命令生成并安装自签名证书:
[root@node1 my-cluster]# ceph dashboard create-self-signed-cert
Self-signed certificate created

#创建具有管理员角色的用户:
[root@node1 my-cluster]# ceph dashboard set-login-credentials admin admin
Username and password updated
#查看ceph-mgr服务:
[root@node1 my-cluster]# ceph mgr services
{
"dashboard": "https://node1:8443/"
}

以上配置完成后,浏览器输入https://node1:8443输入用户名admin,密码admin登录即可查看

参考链接:

https://www.sysit.cn/blog/post/sysit/Ceph%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE%E6%89%8B%E5%86%8C

https://boke.wsfnk.com/archives/1163.html

https://www.linux-note.cn/?p=85

centos7搭建ceph集群的更多相关文章

  1. CentOS 7 搭建 Ceph 集群(nautilus 版本)

    搭建 Ceph 分布式集群( nautilus 版本 ) 一.服务器环境说明 主机名 角色 IP地址 ceph-admin ceph-deploy 192.168.92.21 ceph-node1 m ...

  2. 搭建ceph集群(单节点)

    https://blog.csdn.net/Greenchess/article/details/77525786 软件环境: - Centos7 x64 CEPH版本 : - ceph-deploy ...

  3. 使用虚拟机CentOS7部署CEPH集群

    第1章   CEPH部署 1.1  简单介绍 Ceph的部署模式下主要包含以下几个类型的节点 Ø CephOSDs: A Ceph OSD 进程主要用来存储数据,处理数据的replication,恢复 ...

  4. centos7搭建kafka集群-第二篇

    好了,本篇开始部署kafka集群 Zookeeper集群搭建 注:Kafka集群是把状态保存在Zookeeper中的,首先要搭建Zookeeper集群(也可以用kafka自带的ZK,但不推荐) 1.软 ...

  5. centos7搭建kafka集群

    一.安装jdk 1.下载jdk压缩包并移动到/usr/local目录 mv jdk-8u162-linux-x64.tar.gz /usr/local 2.解压 tar -zxvf jdk-8u162 ...

  6. 【转】centos7 搭建etcd集群

    转自http://www.cnblogs.com/zhenyuyaodidiao/p/6237019.html 一.简介 “A highly-available key value store for ...

  7. 初学Hadoop:利用VMWare+CentOS7搭建Hadoop集群

     一.前言 开始学习数据处理相关的知识了,第一步是搭建一个Hadoop集群.搭建一个分布式集群需要多台电脑,在此我选择采用VMWare+CentOS7搭建一个三台虚拟机组成的Hadoop集群. 注:1 ...

  8. Centos7搭建zookeeper集群

    centos7与之前的版本都不一样,修改主机名在/ect/hostname 和/ect/hosts 这两个文件控制 首先修改/ect/hostname vi /ect/hostname 打开之后的内容 ...

  9. CentOS7 搭建RabbitMQ集群 后台管理 历史消费记录查看

    简介 通过 Erlang 的分布式特性(通过 magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接 ...

随机推荐

  1. 染色dp(确定一行就可行)

    题:https://codeforces.com/contest/1027/problem/E 题意:给定n*n的方格,可以染黑白,要求相邻俩行”完全“不同或完全相同,对于列也是一样.然后限制不能拥有 ...

  2. python取出前端传入execl文件中的数据

    from openpyxl import load_workbook #获取前台传入的文件 uploadedFile = request.FILES.get('file') #获取execl文件 wb ...

  3. 吴裕雄--天生自然python学习笔记:python文档操作表格处理

    表格也是 Word 文件中常用的对象,下面讲解 Win32com 中常用的表格操作命令 . 新建表格的语法为: 在 Word 文件中新建一个表格并插入单元格内容 在 Word 文件中新建一个 3 行 ...

  4. JAVA专业术语面试100问

    前言:面试技巧另外开篇再说,先上面试干货吧.Redis.消息队列.SQL不要走开,关注后更精彩! 1.面向对象的特点有哪些? 抽象.继承.封装.多态. 2.接口和抽象类有什么联系和区别? 3.重载和重 ...

  5. LR及评分卡(未完成)

    主要分为如下内容: 一.线性回归 二.逻辑回归 三.逻辑回归评分卡流程 一.线性回归 二.逻辑回归 在线性回归的基础上引入了sigmoid函数,Logistic回归为什么要使用sigmoid函数 三. ...

  6. python初认函数

    今日所得 函数基本使用 函数的参数 函数的返回值 # 函数内要想返回给调用者值 必须用关键字return """ 不写return 只写return 写return No ...

  7. java实现银行管理系统

    Bank类 package First; import java.util.TreeSet; //银行类public class Bank {        private String Bankna ...

  8. 自主知识产权受热捧 瑞星ESM SOHO版全力护卫小微企业

    小微企业现在可以说是我国国民经济中最重要的组成部分,在总产值.利税.解决就业等方面,都在为国家积极贡献着自己的力量.但在小微企业一片欣欣向荣的背后,却有着难言之隐--那就是困扰着广大小微企业多年的企业 ...

  9. 对Vue为什么不支持IE8的解释之一

    在JavaScript对象中有一个Object.defineProperties(obj, props)方法 该方法主要用来给指定对象添加自定义属性 可以接收两个参数: 第一个参数 要定义或者修改属性 ...

  10. GPU PassThrough in KVM

    实现步骤 环境 OS: # cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) # uname -a Linux hyhive 3 ...