ceph集群搭建
CEPH
1.组成部分
1.1 monitor
admin节点安装ceph-deploy工具
admin节点安装ceph-deploy
- 添加源信息
rm -f /etc/yum.repos.d/*
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
sed -i '/aliyuncs.com/d' /etc/yum.repos.d/*.repo
echo '#阿里ceph源
[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
[ceph-source]
name=ceph-source
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS/
gpgcheck=0
#'>/etc/yum.repos.d/ceph.repo
yum clean all && yum makecache
yum install deltarpm- 把软件包源加入软件仓库。用文本编辑器创建一个 YUM (Yellowdog Updater, Modified) 库文件,其路径为 /etc/yum.repos.d/ceph.repo 。例如:
sudo vim /etc/yum.repos.d/ceph.repo
- 添加ceph源
name=Ceph noarch packages
# 根据当前系统的发行版来:http://download.ceph.com/
baseurl=http://download.ceph.com//rpm-nautilus/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
- 安装ceph-deploy
sudo yum update && sudo yum install ceph-deploy
所有节点安装NTP(network time portocal)、openssh
# yum 安装 ntp
sudo yum install ntp ntpdate ntp-doc
# 校对系统时钟
ntpdate 0.cn.pool.ntp.org
- 安装ssh服务
sudo yum install openssh-server
后续操作:安装ceph-deploy的节点需要ssh到各个节点远程完成ceph的安装配置工作,
1.2 创建ceph部署用户
- 添加部署用户
sudo useradd -d /home/cephd -m cephd
- 设置密码
sudo passwd cephd
# moon2017
- 赋予root权限
echo "cephd ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephd
sudo chmod 0440 /etc/sudoers.d/cephd
cat ~/.ssh/config
Host node1
Hostname node1
User cephd
Host node2
Hostname node2
User cephd
- 开放所需端口
放所需端口设置,Ceph Monitors 之间默认使用 6789 端口通信, OSD 之间默认用 6800:7300 这个范围内的端口通信,所以我们需要调整防火墙设置,开放所需端口,允许相应的入站请求。
# 防火墙设置
sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent
# 当然我们也可以关闭防火墙
sudo systemctl stop firewalld.service #停止 firewall
sudo systemctl disable firewalld.service #禁止 firewall 开机启动
部署集群
cephd账号下的ceph-cluster
目录下运行
ceph-deploy
ImportError: No module named pkg_resources
安装yum install python-setuptools
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
yum provides '*/applydeltarpm'
yum install deltarpm -y
unable to find a keyring on /etc/ceph/ceph.client.admin.keyring
- 清理配置
# 清理 Ceph 安装包
ceph-deploy purge admin node1 node2
# 清理配置
ceph-deploy purgedata admin node1 node2
ceph-deploy forgetkeys
rm -rf ./*
- 通过ceph-deploy创建admin,node信息
ceph-deploy new admin
- 修改ceph集群副本数
Vim ceph.conf
osd pool default size = 2 #增加默认副本数为 2
这里需要注意的是hostname,需要和命令参数名称一致。 修改机器hostname方法:
1.修改 /etc/hostname
2.通过hostnamectl
命令查看。如果不一样,需要使用hostnamectl set-hostname
自定义名称
如果不这样设置的话,在创建monitor
这一步的时候,会读取 /var/run/ceph
下的文件,文件的命名应该是根据系统的hostname来创建的,如hostname不一致,就会报错。
- 创建集群,节点
ceph-deploy install admin node1 node2
- 创建monitor
ceph-deploy mon create-initial
# ceph-deploy --overwrite-conf mon create-initial
- 安装mgr
ceph-deploy mgr create node1 node2
- 分发配置文件
ceph-deploy admin node1 node2
将配置文件改为可读的权限:
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
增加、删除OSD
- 查看节点磁盘信息
ceph-deploy disk list node1
得到结果
- 准备OSD(过期)
官网上介绍的是依次执行:
准备(prepare)
,激活(active)
。最后是创建(create)
。但是最新的版本里面 ceph-deploy osd 命令只支持list,create命令,所以就直接执行 create命令。执行create命令会依次执行prepare、active命令# 格式
ceph-deploy osd prepare {node-name}:{data-disk}[:{journal-disk}]
# 自己创建的目录
ceph-deploy osd prepare node1: /var/local/osd1- 创建osd
创建osd需要有独立的磁盘。在虚拟机中,只有sda盘,并且是系统盘,需要分区出来得到一块新的磁盘信息。
查看磁盘信息
sudo fdisk -l
通过命令可以知道,*虚拟机只有sda一个磁盘,因此需要在sda上面进行分区,不能直接在sda上面直接创建osd。分区操作
fdisk /dev/sda
输入n一直回车,最后一定要输入
w
保存。
想要马上生效,需要输入partprobe
通知内核重新读取分区表信息
这样,新的分区就建好了。需要在所有节点上执行上述创建分区操作。创建osd
```bash
ceph-deploy osd create --data /dev/sda3 node1
```
结果
- 同步配置信息
ceph-deploy admin admin node1 node2
将配置文件和admin密钥同步到各个节点,以便在各个node上使用ceph命令,无需指定montior地址和ceph.client.admin.keyring密钥
确保你对 ceph.client.admin.keyring 有正确的操作权限在所有的节点中修改该文件的操作权限。
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
使用w命令,保存分区信息并退出
11.ls /dev/sdb*,可以看到分区已经建立,如果分区信息未被创建,使用partprobe通知内核重新读取分区表信息。
创建成功
开启dashboard
- 查看active的mgr
ceph -s
由上图可知,当前活跃的mgr是node2节点,需要在node2节点上做操作,否则不成功
- 开启监控
ceph mgr module enable dashboard
- 生成并安装一个 自签名证书
ceph dashboard create-self-signed-cert
- 生成密钥,生成两个文件----dashboard.crt dashboard.key (在当前登陆的账号路径下面:/home/cephd/)
mkdir mgr-dashboard
cd mgr-dashboard
openssl req -new -nodes -x509 -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650 -keyout dashboard.key -out dashboard.crt -extensions v3_ca
- 配置服务地址、端口,默认的端口是8443
ceph config set mgr mgr/dashboard/server_addr 192.168.242.92
[root@node1 mgr-dashboard]# ceph config set mgr mgr/dashboard/server_port 8443
[root@node1 mgr-dashboard]# ceph mgr services
{
"dashboard": "https://node2:8443/"
}
- 创建一个用户、密码
ceph dashboard set-login-credentials admin admin123
- 登陆成功后
- 查看过滤运行的进程
sudo systemctl list-units|grep mgr
ceph集群搭建的更多相关文章
- Ceph集群搭建及Kubernetes上实现动态存储(StorageClass)
集群准备 ceph集群配置说明 节点名称 IP地址 配置 作用 ceph-moni-0 10.10.3.150 centos7.5 4C,16G,200Disk 管理节点,监视器 monitor ...
- Ceph 集群搭建
1.Ceph部署 1.1 Ceph 安装前准备,环境与拓扑图如下: 主机名 外网IP 内网IP 安装组件 磁盘块 c720181 172.22.69.84 192.168.20.181 ceph-de ...
- CEPH集群搭建(CentOS 7)
以包含四个节点的集群为例,其中包括一个 ceph-deploy 管理节点和一个三节点的Ceph存储集群. 下图中每个节点代表一台机器. 创建一个 Ceph 存储集群,它有一个 Monitor 和两个 ...
- Ceph集群搭建记录
环境准备 基础环境 node00 192.168.247.144 node00 node01 192.168.247.135 node01 node02 192.168.247.143 node02 ...
- docker创建ceph集群
背景 Ceph官方现在提供两类镜像来创建集群,一种是常规的,每一种Ceph组件是单独的一个镜像,如ceph/daemon.ceph/radosgw.ceph/mon.ceph/osd等:另外一种是最新 ...
- ceph-deploy离线部署ceph集群及报错解决FAQ
ceph-deploy部署ceph集群 环境介绍 主机名 ip地址 操作系统 角色 备注 ceph-node1 10.153.204.13 Centos7.6 mon.osd.mds.mgr.rgw. ...
- Ceph部署(一)集群搭建
背景 Ceph简介 Ceph是一个分布式存储,可以提供对象存储.块存储和文件存储,其中对象存储和块存储可以很好地和各大云平台集成.一个Ceph集群中有Monitor节点.MDS节点(可选,用于文件存储 ...
- Ceph 存储集群 - 搭建存储集群
目录 一.准备机器 二.ceph节点安装 三.搭建集群 四.扩展集群(扩容) 一.准备机器 本文描述如何在 CentOS 7 下搭建 Ceph 存储集群(STORAGE CLUSTER). 一共4 ...
- 小型ceph集群的搭建
了解ceph DFS(distributed file system)分布式存储系统,指文件系统管理的物理存储资源,不一定直接连接在本地节点上,而是通过计算机网络与节点相连,众多类别中,ceph是当下 ...
随机推荐
- Windows下搭建Redis集群
Redis集群: 如果部署到多台电脑,就跟普通的集群一样:因为Redis是单线程处理的,多核CPU也只能使用一个核, 所以部署在同一台电脑上,通过运行多个Redis实例组成集群,然后能提高CPU的利用 ...
- 解决TCPDF中文乱码,PHP
/* **主要是这个单词控制 stsongstdlight **/ $this->SetFont('stsongstdlight', 'B', 10);
- SpringMVC的配置和使用
SpringMVC的配置和使用 什么是SpringMVC? SpringMVC是Spring家族的一员,Spring是将现在开发中流行的组件进行组合而成的一个框架!它用在基于MVC的表现层开发,类似于 ...
- unittest中忽略某些测试用例的执行
添加装饰器(@unittest.skip("")) from init import * import unittest class baidu(Info): @unittest. ...
- hibernate封装Until工具类
public class HibernateUntil { private static SessionFactory sessionfaction; //一个web项目确保只调用一个sessionf ...
- SSIS - 8.FTP 任务
FTP全称为 File Transfer Protocol(文件传输协议),是通过TCP网络将文件从一个服务器传输到另一个服务器.在SSIS包中,FTP任务是用来实现FTP功能的. 一.创建FTP连接 ...
- Java 2018 面试
1.Java的引用有什么作用?传递的是什么? Java的引用可以用来操作对象,传递的是对象的地址 2.引用分为几种?他们的区别是什么?弱引用用在什么地方? 分四种:强引用 . 软引用 . 弱引用 . ...
- live555工程建立与调试
Live555是一款开源的RTSP服务器,下载地址http://www.live555.com/liveMedia/public/ 下载下来的代码只有源文件,没有工程文件.那么如何使用VS 调试liv ...
- Node.js(day5)
一.NOSQL NOSQL是Not Only SQL的简称,与关系型数据库对应,一般称为非关系型数据库.关系型数据库遵循ACID规则,而NOSQL存储数据时不需要严格遵循固定的模式,因此在大数据的今天 ...
- Jason Wang: 结对编程 CountWord(第三次作业)
本次作业地址: https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2882 学号: 201731072323 ...