一 前期准备

1.1 配置规格

节点
类型
IP
CPU
内存
ceph-deploy
部署管理平台
172.24.8.71
2 C
4 G
node1
Monitor OSD
172.24.8.72
2 C
8 G
node2
OSD
172.24.8.73
2 C
8 G
node3
OSD
172.24.8.74
2 C
8 G
Ceph版本:mimic
OS:CentOS 7.5
kernel:4.20.2
关闭防火墙和SELinux;
提示:
Ceph Monitors之间默认使用6789端口通信,OSD之间默认用6800:7300范围内的端口通信。Ceph OSD能利用多个网络连接进行与客户端、monitors、其他OSD间的复制和心跳的通信。若需要开启防火墙则必须同时放通相应规则,具体操作见:http://docs.ceph.org.cn/rados/configuration/network-config-ref/

1.2 前置准备

  • 所有节点NTP安装及配置,具体操作略;
  • 所有节点更新环境:
 yum -y update
  • deploy节点安装pip环境:
 [root@deploy ~]# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
[root@deploy ~]# python get-pip.py
 
  • 配置国内yum源:
 [root@node1 ~]# rm /etc/yum.repos.d/* -rf
[root@node1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@node1 ~]# yum -y install epel-release
[root@node1 ~]# mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
[root@node1 ~]# mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
[root@node1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
 
提示:以上操作需要在所有节点操作,工具会默认安装(采用)国外官方源,国内环境建议EPEL和CEPH都替换为国内源。
  • 部署节点配置主机名:
 [root@deploy ~]# vi /etc/hosts
172.24.8.71 deploy
172.24.8.72 node1
172.24.8.73 node2
172.24.8.74 node3
 
提示:主机名应该能正确解析主机名,若管理节点同时也是一个Ceph节点,也要确认能正确解析自己的主机名和IP地址。
  • 配置deploy节点到所有OSD node节点的免秘钥登录:
 [root@deploy ~]# useradd manager
[root@deploy ~]# echo manager | passwd --stdin manager #创建非root的管理用户
[root@deploy ~]# for i in {1..3}; do echo "====node${i}====";ssh root@node${i} 'useradd -d /home/cephuser -m cephuser; echo "cephuser" | passwd --stdin cephuser'; done #所有OSD node节点创建cephuser用户
[root@deploy ~]# for i in {1..3}; do echo "====node${i}====";ssh root@node${i} 'echo "cephuser ALL = (root) NOPASSWD:ALL" > /etc/sudoers.d/cephuser'; done
[root@deploy ~]# for i in {1..3}; do echo "====node${i}====";ssh root@node${i} 'chmod 0440 /etc/sudoers.d/cephuser'; done
[root@deploy ~]# su - manager
[manager@deploy ~]$ ssh-keygen -f ~/.ssh/id_rsa -N ''
[manager@deploy ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub cephuser@172.24.8.72
[manager@deploy ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub cephuser@172.24.8.73
[manager@deploy ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub cephuser@172.24.8.74
 
提示:管理节点必须能够通过SSH无密码地访问各Ceph节点,建议使用非root用户;
用户名 “ceph” 保留给了Ceph守护进程。若Ceph节点上已经存在“ceph”用户,升级前必须先删掉这个用户。
 [manager@deploy ~]$ vi ~/.ssh/config	        #修改ceph-deploy管理节点上~/.ssh/config文件
Host node1
Hostname node1
User cephuser
Host node2
Hostname node2
User cephuser
Host node3
Hostname node3
User cephuser
[manager@deploy ~]$ chmod 600 .ssh/config
[manager@deploy ~]$ ssh node1 #测试
[cephuser@node1 ~]$ exit
 
提示:修改config后deploy节点所建的用户名登录Ceph节点无需每次指定 --username cephuser ,简化了ssh和scp的用法。

1.3 部署需求

首先创建一个Ceph存储集群,它有一个Monitor和三个OSD守护进程,Monitor节点也作为OSD节点。

二 正式部署

2.1 部署deploy节点

 [root@deploy ~]# cat << EOM > /etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
EOM
提示:国内也可采用阿里源,参考如下:
 [root@deploy ~]# vi /etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
 [root@deploy ~]# yum install -y ceph-deploy

2.2 创建集群

 [root@deploy ~]# su - manager
[manager@deploy ~]$ mkdir my-cluster
[manager@deploy ~]$ cd my-cluster/
[manager@deploy my-cluster]$ ceph-deploy new node1
[manager@deploy my-cluster]$ ll
 
提示:该目录存在一个 Ceph 配置文件、一个 monitor 密钥环和一个日志文件。

2.3 安装Ceph

 [manager@deploy my-cluster]$ ceph-deploy install node1 node2 node3
提示:ceph-deploy将在各节点安装Ceph,若部署过程出现异常,可通过以下命令清除相应配置,从而重新部署:
ceph-deploy purgedata node1 node2 node3
ceph-deploy forgetkeys
rm ceph.*
或用以下命令将安装包也一并清除:
ceph-deploy purge node1 node2 node3
注意:如果你执行过 ceph-deploy purge ,你必须重新执行这一步来安装Ceph;
若出现以下报错,可能是版本不兼容,可通过yum -y remove ceph-release卸载后重新执行install。
注意:若使用ceph-deploy部署的时候出现安装包无法下载,可在部署时候指定ceph.repo为国内源:
 ceph-deploy install node1 node2 node3 --repo-url=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/ --gpg-url=https://mirrors.aliyun.com/ceph/keys/release.asc

2.4 初始化monitor

 [manager@deploy my-cluster]$ ceph-deploy mon create-initial	#初始monitor、并收集所有密钥
[manager@deploy my-cluster]$ ll
 

2.5 部署MGR

 [manager@deploy my-cluster]$ ceph-deploy mgr create node1 node2 node3
提示:ceph12版本之后,就需要为集群部署mgr服务,Ceph-Mgr将作为Ceph集群的管理进程,负责整个集群的管理操作和监控。

2.6 复制key

 [manager@deploy my-cluster]$ ceph-deploy admin node1 node2 node3
提示:为方便后期deploy节点管理node1、node2、node3,在CLI中使用命令中简化相关key的输出,可将key复制至相应节点。

2.7 添加OSD

 [manager@deploy my-cluster]$ ceph-deploy disk list node1 node2 node3	        #列出磁盘
[manager@deploy my-cluster]$ ceph-deploy osd create --data /dev/sdb node1
[manager@deploy my-cluster]$ ceph-deploy osd create --data /dev/sdb node2
[manager@deploy my-cluster]$ ceph-deploy osd create --data /dev/sdb node3
 
提示:生产环境强烈强烈不建议在单分区单硬盘上运行多个OSD;
强烈不建议在运行OSD的单分区硬盘上同时运行监视器或元数据服务器,即OSD建议采用独立的硬盘,且OSD及其日志使用独立硬盘或分区。
当前官方似乎已经不支持指定不同目录弄多个OSD节点的形式。

2.8 检测健康状态

 [manager@deploy my-cluster]$ ssh node1 sudo ceph health
[manager@deploy my-cluster]$ ssh node1 sudo ceph -s
 
提示:若出现如下mgr没有active的warn提示,是因为没有添加mgr,集群处于WARN状态。可参考2.5步骤部署MGR。

2.9 开启dashboard

 [root@node1 ~]# ceph mgr module enable dashboard			#开启dashboard模块
[root@node1 ~]# ceph dashboard create-self-signed-cert
 
提示:默认情况下,dashboard的所有HTTP连接均使用SSL/TLS进行保护。以上内置命令可快速生成并安装自签名证书。
 [root@node1 ~]# ceph dashboard set-login-credentials admin admin	#创建管理员
[root@node1 ~]# ceph mgr services #确认验证
 
提示:以上操作在node1节点操作即可。
浏览器访问:https://172.24.8.72:8443
参考官方文档:http://docs.ceph.org.cn/start/quick-start-preflight/

002.Ceph安装部署的更多相关文章

  1. ceph安装部署

    环境准备 测试环境是4台虚拟机,所有机器都是刚刚安装好系统(minimal),只配置完网卡和主机名的centos7.7,每个osd增加一块磁盘,/dev/sdb ceph-admin ---- adm ...

  2. centos6.4 ceph安装部署之ceph object storage

    preface: ceph-deploy does not provide a rapid installation for Ceph Object Storage install Configura ...

  3. centos6.4 ceph安装部署之cephFS

    1,ceph fileSystem

  4. centos6.4 ceph安装部署之ceph block device

    1,prelight/preface ceph storage clusterceph block deviceceph filesystemceph object storage 此篇记录ceph ...

  5. 002.Oracle安装部署-ASM

    一 环境准备 图形界面:略 安装包: linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip 二 安装ASM-Oracl ...

  6. 002.Docker安装部署

    一 docker安装-CentOS系统 1.1 docker自动安装脚本 root@docker:~# wget -qO- https://get.docker.com/ | sh 或—— root@ ...

  7. 安装部署Ceph Calamari

    根据http://ovirt-china.org/mediawiki/index.php/%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2Ceph_Calamari 原文如下: ...

  8. ceph学习笔记之十二 Ubuntu安装部署Ceph J版本

    https://cloud.tencent.com/info/2b70340c72d893c30f5e124e89c346cd.html 安装Ubuntu系统安装步骤略过 拓扑连接: 一.安装前准备工 ...

  9. ceph 存储安装部署

    环境准备 1.三台服务器 cephnode01 192.168.254.83 cephnode02 192.168.254.84 cephnode03 192.168.254.85 2.基本环境配置 ...

随机推荐

  1. day 28 面向对象 三种特性之一 多态 鸭子类型 反射(反省)

    多态是OOP的三大特征之一 字面意思:多种形态 多种状态 官方描述:不同的对象可以响应(调用)同一个方法 产生不同的结果(例如水的三相特征) 多态不是什么新技术 我们编写面向对象的程序时 其实就有多态 ...

  2. 解决npm install过程中报错:unable to verify the first certificate

    今天使用npm安装开发包时遇到“unable to verify the first certificate”(无法验证第一证书)这个问题 原因:2014年2月27日,npm不再支持自签名证书.因为n ...

  3. poj3107树的重心

    /*树的重心求法:两次dfs,第一次dfs处理出每个结点的size,以此求每个结点大儿子的size,第二次dfs将每个结点大儿子的size和余下结点数进行比较,所有结点里两个值之间差值最小的那个点就是 ...

  4. js中的“==”和“===”的区别

    简单来说: == 代表相同, ===代表严格相同, 为啥这么说呢, 这么理解: 当进行双等号比较时候: 先检查两个操作数数据类型,如果相同, 则进行===比较, 如果不同, 则愿意为你进行一次类型转换 ...

  5. AI学习吧-结算中心

    结算中心流程 在结算中心中,主要是对用户添加到购物车商品的结算,由于用户可能添加了多个课程,但是,结算时会选择性的进行支付.在结算时会选中课程id,和对应的价格策略.在后台,首先会对用户进行校验,验证 ...

  6. js两种写法执行速度比较

    记录 function test1(){ this.say = function(){} } function test2(){ this.say = function(){} return this ...

  7. 论文阅读笔记八:SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation (IEEE2017)

    原文链接:https://arxiv.org/pdf/1511.00561.pdf github(tensorflow):https://github.com/aizawan/segnet 基于Seg ...

  8. 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

    一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运 ...

  9. 作为完美主义者(强迫症)如何将linux的eth1网卡修改为eth0网卡

    1:由于你是克隆的虚拟机或者直接就是使用别人的Centos操作系统直接打开到自己本地的虚拟机,网卡可能就是eth1而不是eth0,下面简单写一下如何将eth1修改为eth0,步骤如下所示: 2:如果你 ...

  10. C# Enum,Int,String的互相转换 [转]

    C# Enum,Int,String的互相转换 Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32.编程语言通常提供语法来声明由一组已命名 ...