Ceph可以说是当今最流行的分布式存储系统了,本文记录一下安装和配置Ceph的详细步骤。

提前配置工作

从第一个集群节点开始的,然后逐渐加入其它的节点。对于Ceph,我们加入的第一个节点应该是Monitor,我们设置为Monitor1。

我使用的操作系统是Ubuntu Server 19.10,目前没有对应的包地址,于是就是用了bionic,应该是18.04的。还有地址也换成了中科大的镜像http://mirrors.ustc.edu.cn/ceph/,而不是默认的https://download.ceph.com。

echo deb http://mirrors.ustc.edu.cn/ceph/debian-nautilus/ bionic main | sudo tee /etc/apt/sources.list.d/ceph.list

安装python和parted

由于使用的Ubuntu版本比较新的原因,可能额Ceph的资源包并没有包括在默认的resource库里,需要用Python来build集群。安装Python和Pip的命令如下:

sudo apt-get install -y python python-pip parted
sudo apt-get install -y python3 python-pip3

安装和配置NTP

安装NTP用来同步标准时间,运行ntpdate设置时间服务器,并启动服务进行时间同步。全球可用的授时服务器列表。

sudo apt-get install -y ntp ntpdate ntp-doc
ntpdate 0.cn.ntp.org.cn
hwclock --systohc
systemctl enable ntp
systemctl start ntp

给每个节点设置固定IP

Ubuntu 18.04以上的系统采用netplan作为网络配置管理,不需要重启系统。

sudo   vi /etc/netplan/50-cloud-init.yaml

network:
ethernets:
eth0:
addresses: [192.168.137.200/24]
gateway4: 192.168.137.1
dhcp4: false
optional: true
version: 2 sudo netplan apply
sudo hostnamectl set-hostname <newhostname>

设置localhost文件

192.168.137.200 cephadmin
192.168.137.201 monitor2
192.168.137.202 monitor3
192.168.137.203 OSD1
192.168.137.204 OSD2
192.168.137.205 OSD3

配置Hosts文件

vim /etc/hosts

配置各个节点的IP地址和机器名

192.168.137.200 cephadmin
192.168.137.201 monitor2
192.168.137.202 monitor3
192.168.137.203 OSD1
192.168.137.204 OSD2
192.168.137.205 OSD3

配置好了以后可以确保节点间可以通过机器名访问。

配置SSH无密码登录

在每个节点都创建一个叫cephuser的用户

useradd -m -s /bin/bash cephuser
passwd cephuser

授予cephuser用户无密码使用sudo的权限。

echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers

登录admin节点,用cephuser用户登录:

su cephuser

运行秘钥生成工具

ssh-keygen

然后查看下文件夹

$ ls /home/ceph-admin/.ssh/
config id_rsa id_rsa.pub known_hosts

创建和修改config文件

$ cat /home/ceph-admin/.ssh/config
Host OSD1
Hostname OSD1
User cephuser
Host OSD2
Hostname OSD2
User cephuser
Host OSD3
Hostname OSD3
User cephuser
Host monitor2
Hostname monitor2
User cephuser
Host monitor3
Hostname monitor3
User cephuser
Host cephadmin
Hostname cephadmin
User cephuser
ssh-keyscan OSD1 OSD2 OSD3 monitor2 monitor3 cephadmin >> ~/.ssh/known_hosts
ssh-copy-id OSD1
ssh-copy-id OSD2
ssh-copy-id OSD3
ssh-copy-id monitor2
ssh-copy-id monitor3

中间可能会要求输入cephuser的密码。然后我们建立了通过admin节点无密码ssh登录所有其他的节点。为后面安装作准备。可以先试一下

ssh monitor2

配置防火墙程序

如果要用在生产环境,为了安全着想我们一开始就应该配置防火墙,只开通服务器上需要访问的端口。

给Ceph的OSD节点挂载硬盘

在这次的实验中,配置了三个OSD存储节点。每个节点挂载一个20GB的硬盘分区作为ceph的存储区域。

  1. /dev/sda 作为系统盘
  2. /dev/sdb 作为新挂载的20GB硬盘

检查硬盘的分区情况

sudo fdisk -l

用parted命令给 /dev/sdb用XFS文件系统分区,并建立硬盘分区表。

sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%

用mkfs格式化硬盘

sudo mkfs.xfs -f /dev/sdb

再检查一下

sudo fdisk -s /dev/sdb
sudo blkid -o value -s TYPE /dev/sdb

正式建立Ceph的Admin节点, 并安装Ceph到集群

在admin节点上安装Ceph的部署工具包

  • 用pip命令安装
sudo pip install ceph-deploy
  • 用安装源安装
echo deb https://download.ceph.com/debian-nautilus/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list

国内还是用中科大的镜像比较好,原始的地址不稳定

echo deb http://cernet.mirrors.ustc.edu.cn/ceph/debian-nautilus/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list

然后运行命令

sudo apt update
sudo apt -y install ceph-deploy

初始化集群配置

  1. 首先新建一个文件夹用来放Ceph集群的配置文件,

    mkdir cluster
    cd cluster/
  2. ceph-deploy 工具创建集群并把monitor2作为第一个monitor节点。

    ceph-deploy new monitor2

    我们可以看到在cluster文件夹中生成了配置文件Ceph.config

  3. 安装Ceph到所有节点, 注意一定要加--no-adjust-repos和--stable,不然安装不成功。

    ceph-deploy install --no-adjust-repos --stable cephadmin OSD1 OSD2 OSD3 monitor2 monitor3

创建Monitor和Manager节点

初始化Monitor节点

ceph-deploy --overwrite-conf monitor2 create-initial

上面的语句会自动创建monitor key,下面的命令检查是否Key已经生成

ceph-deploy gatherkeys monitor2

创建Manager节点

ceph-deploy mgr create monitor3

添加OSD存储节点

现在我们已经运行了一个Monitor节点了,开始加入存储节点OSD吧,这次我配置了3台虚拟机作为OSD集群节点。下面的命令可以看是否硬盘 /dev/sdb的状态都是可用的,文件格式是否OK

ceph-deploy disk list OSD1 OSD2 OSD3

删除数据和硬盘分区表:

ceph-deploy disk zap OSD1 /dev/sdb
ceph-deploy disk zap OSD2 /dev/sdb
ceph-deploy disk zap OSD3 /dev/sdb

好了,下一步就是正式加载OSD节点了,这些是Ceph真正的储存节点了:

ceph-deploy osd create --data /dev/sdb OSD1
ceph-deploy osd create --data /dev/sdb OSD2
ceph-deploy osd create --data /dev/sdb OSD3

完成后用list命令查看, 搞定,block设备挂载完毕,当然每个节点上可以挂载上多个设备。

ceph-deploy osd list OSD1 OSD2 OSD3

部署集群管理KeyRing

接下来把集群管理的key部署到所有的节点上:

ceph-deploy admin cephadmin OSD1 OSD2 OSD3 monitor2 monitor3

每一个节点的key文件夹权限更改。

sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

测试Ceph集群的部署情况

登录monitor2

ssh mon1

然后查看集群状况

sudo ceph health
sudo ceph -s

从上面的信息可以看到,Ceph启动了两个monitor节点,一个manager节点,注册了三个OSD节点,运行中有2个OSD节点。总共有38G存储。


到此为止,一个实验集群就配置完毕了,后面开始在这个集群上开发功能。使用其对象存储的能力,最重要的要建一个异构的存储集群。如果文章格式不满意,可以到以下地址查看:

文章连接

参考文章

https://www.howtoforge.com/tutorial/how-to-install-a-ceph-cluster-on-ubuntu-16-04/

https://computingforgeeks.com/how-to-deploy-ceph-storage-cluster-on-ubuntu-18-04-lts/

https://www.server-world.info/en/note?os=Ubuntu_18.04&p=ceph&f=1

https://ceph.io/install/

中科大开源镜像源列表

http://cernet.mirrors.ustc.edu.cn/

一步一步安装配置Ceph分布式存储集群的更多相关文章

  1. Ceph分布式存储集群-硬件选择

    在规划Ceph分布式存储集群环境的时候,对硬件的选择很重要,这关乎整个Ceph集群的性能,下面梳理到一些硬件的选择标准,可供参考: 1)CPU选择Ceph metadata server会动态的重新分 ...

  2. 简单介绍Ceph分布式存储集群

    在规划Ceph分布式存储集群环境的时候,对硬件的选择很重要,这关乎整个Ceph集群的性能,下面梳理到一些硬件的选择标准,可供参考: 1)CPU选择 Ceph metadata server会动态的重新 ...

  3. Redis的安装配置及简单集群部署

    最近针对中铁一局项目,跟事业部讨论之后需要我们的KF平台能够接入一些开源的数据库,于是这两天研究了一下Redis的原理. 1. Redis的数据存储原理及简述 1.1Redis简述 Redis是一个基 ...

  4. CentOS和Ubuntu下安装配置Greenplum数据库集群(包括安装包和源码编译安装)

    首先说一下,无论是CentOS/RedHat还是Ubuntu都可以按源码方式.安装包方式编译安装. 1.   规划 192.168.4.93(h93)       1个主master  2个主segm ...

  5. MongoDB ReplacaSet & Sharding集群安装 配置 和 非集群情况的安装 配置 -摘自网络

    单台机器做sharding --单机配置集群服务(Sharding) --shard1_1 mongod --install --serviceName MongoDBServerShard1 --s ...

  6. docker部署Ceph分布式存储集群

    1.环境准备 3台virtualbox虚拟机,用来安装ceph集群,已用docker-machine安装上了docker,每台虚拟机虚拟创建一个5G的硬盘,用于存储osd数据,例如:/dev/sdb ...

  7. centos6.5安装配置NTP,集群各机器间时间同步

    试验环境 提君博客原创 >>提君博客原创  http://www.cnblogs.com/tijun/  << IP 主机名 角色 描述 同步方式 192.168.11.11 ...

  8. 在 CentOS 7.0 上安装配置 Ceph 存储

    来自: https://linux.cn/article-6624-1.html Ceph 是一个将数据存储在单一分布式计算机集群上的开源软件平台.当你计划构建一个云时,你首先需要决定如何实现你的存储 ...

  9. Ceph 存储集群1-配置:硬盘和文件系统、配置 Ceph、网络选项、认证选项和监控器选项

    所有 Ceph 部署都始于 Ceph 存储集群.基于 RADOS 的 Ceph 对象存储集群包括两类守护进程: 1.对象存储守护进程( OSD )把存储节点上的数据存储为对象: 2.Ceph 监视器( ...

随机推荐

  1. 大学最新毕业论文参考文献,包含java,jsp,mysql,Android,sql,PHP

    每当毕业论文写到最后需要参考文献时,往往是很令人头疼的,因为有的老师对参考文献的要求是很多的,比如需要国内的和国外的,时间必须是近三年的,满足XXX要求的文献至少需要三篇以上等等.今天我就来给大家整理 ...

  2. spring整合springMVC、mybatis、shiro

    jar包: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding& ...

  3. C#反射与特性(二):探究反射

    目录 1,反射的使用概述 2,获取 Type 在上一章中,我们探究了 C# 引入程序集的各种方法,这一章节笔者将探究 C# 中使用反射的各种操作和代码实践. 1,反射的使用概述 1.1 什么是反射 & ...

  4. C / C++ 保留小数函数(setprecision(n)的一些用法总结)

    从C语言开始正式学习C++,但是一上来输出位数就懵了,查资料才知道C++需要使用 “ setprecision  ”函数.自己总结一下. 首先说C++代码 #include <iomanip&g ...

  5. centos下MySQL登录1045问题解决

    由于需要在centos下部署整个应用,自然少不了对数据库的操作.但很多人可能会遇到一些问题,比如创建用户成功,但是却无法登录. 无法登陆一般就两个原因.第一,远程访问端口没开,第二个原因就是密码错误了 ...

  6. Python第一天哇

    iDLE的清除方法ctrl+: 当然,你首先要把网上百度到那个文件按照步骤加上去啦  我百度的=-=:https://www.cnblogs.com/stuqx/p/7291933.html Pyth ...

  7. 1090 危险品装箱 (25分)C语言

    集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里.比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸. 本题给定一张不相容物品的清单,需要你检查每一张集装箱货品清单,判断它们是否 ...

  8. 1084 外观数列 (20 分)C语言

    外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, ... 它从不等于 1 的数字 d 开始,序列的第 n+1 项是对第 n 项的描述. ...

  9. Google 开源的 Python 命令行库:深入 fire(二)

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  10. 9.python中sys.argv[]用法说明

    在python中sys.argv[]是用来获取命令行输入的参数的(参数和参数之间空格区分),sys.argv[0]表示代码本身文件路径,所以从参数1开始,表示获取的参数了 举例说明:创建一个程序名为t ...