centos7环境下ceph安装部署

时间:2022-04-21 12:34:28

Ceph简介

eph的设计目标是是在廉价的存储介质上构建具有 high performance, high scalibility, high available, 提供统一存储,分文件存储,块存储,对象存储。最近看了相关文档觉得挺有意思,而且它已经能为openstack提供块存储,非常贴合主流趋势。


Ceph部署


1、主机准备


实验环境为Vmware虚拟机机上进行实验,主要是为了对ceph有直观的认识。

第一步:准备5台主机

IP地址                                  主机名(Hostname)

192.168.1.110              admin-node      (该主机用于管理,后续的ceph-deploy工具都在该主机上进行操作)

192.168.1.111              node1               (监控节点)

192.168.1.112              node2               (osd.0节点)

192.168.1.113              node3                (osd.1节点)

192.168.1.114              client-node         (客服端,主要利用它挂载ceph集群提供的存储进行测试)


第二步:修改admin-node节点/etc/hosts文件,增加一下内容

192.168.1.111              node1               

192.168.1.112              node2               

192.168.1.113              node3                

192.168.1.114              client-node         

说明:ceph-deploy工具都是通过主机名与其他节点通信。修改主机名的命令为:hostnamectl set-hostname    "新的名字"


第三步:

分别为5台主机存储创建用户ceph:(使用root权限,或者具有root权限)

创建用户

sudo adduser -d /home/ceph -m ceph

设置密码

sudo passwd ceph


设置账户权限

echo “ceph ALL = (root) NOPASSWD:ALL” | sudo tee /etc/sudoers.d/ceph

sudo chomod 0440 /etc/sudoers.d/ceph


执行命令visudo修改suoders文件:

把Defaults    requiretty 这一行修改为修改  Defaults:ceph   !requiretty

如果不进行修改ceph-depoy利用ssh执行命令将会出错


2、配置admin-node与其他节点ssh无密码root权限访问其它节点。

第一步:在admin-node主机上执行命令:

ssh-keygen

说明:(为了简单点命令执行时直接确定即可)

第二步:将第一步的key复制至其他节点

ssh-copy-id    ceph@node1

ssh-copy-id    ceph@node2

ssh-copy-id    ceph@node3

ssh-copy-id    ceph@client-node

同时修改~/.ssh/config文件增加一下内容:

Host    node1

  Hostname   192.168.1.111

  User              ceph

Host    node2

  Hostname   192.168.1.112

  User              ceph

Host    node3

  Hostname   192.168.1.113

  User              ceph

Host    client-node

  Hostname   192.168.1.114

  User              ceph


3、为admin-node节点安装ceph-deploy

第一步:增加 yum配置文件

sudo vim /etc/yum.repos.d/ceph.repo

添加以下内容:

[ceph-noarch]
name=Ceph noarch packages
baseurl=http://ceph.com/rpm-firefly/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc


第二步:更新软件源并按照ceph-deploy,时间同步软件

sudo yum update && sudo yum install ceph-deploy

sudo yum install ntp ntpupdate ntp-doc



4、关闭所有节点的防火墙以及安全选项(在所有节点上执行)以及其他一些步骤

sudo systemctl   stop firewall.service

sudo  setenforce   0

sudo yum install yum-plugin-priorities


总结:经过以上步骤前提条件都准备好了接下来真正部署ceph了。



5、以前面创建的ceph用户在admin-node节点上创建目录

mkdir  my-cluster

cd my-cluster


6、创建集群


节点关系示意图:node1作为监控节点,node2,node3作为osd节点, admin-node作为管理节点,其关系如下图所示:


centos7环境下ceph安装部署

第一步:执行以下命令创建以node1为监控节点的集群。

ceph-deploy   new  node1

执行该命令后将在当前目录生产ceph.conf 文件,打开文件并增加一下内容:

osd pool default size = 2


第二步:利用ceph-deploy为节点安装ceph

ceph   install admin-node  node1 node2 node3


第三步:初始化监控节点并收集keyring:

ceph-deploy mon create-initial


6、为存储节点osd进程分配磁盘空间:

ssh node2

sudo mkdir  /var/local/osd0

exit


ssh node3

sudo mkdir  /var/local/osd1

exit


接下来通过admin-node节点的ceph-deploy开启其他节点osd进程,并激活。

ceph-deploy  osd prepare node2:/var/local/osd0  node3:/var/local/osd1


ceph-deploy osd active  node2:/var/local/osd0  node3:/var/local/osd1


把admin-node节点的配置文件与keyring同步至其它节点:

ceph-deploy admin admin-node node1 node2 node3

sudo chmod +r /etc/ceph/ceph.client.admin.keyring


最后通过命令查看集群健康状态:

ceph health

如果成功将提示:HEALTH_OK



Ceph存储空间使用:

1、准备client-node

通过admin-node节点执行命令:

ceph-deploy  install  client-node


ceph-deploy admin   client-node


2、创建块设备映像:

rbd create foo --size 4096 


将ceph提供的块设备映射到client-node

sudo rbd map foo --pool rbd --name client.admin



3、创建文件系统

sudo  mkfs.ext4 -m0  /dev/rbd/foo


4、挂载文件系统

sudo mkdir /mnt/test

sudo mount /dev/rbd/foo /mnt/test


cd /mnt/test


Finished!!!!!!!!!!!!