使用ceph搭建分布式存储系统

实验目的:

  1. 掌握ceph的配置和使用方法
  2. 掌握分布式存储系统架构规划和设计方法
  3. 理解块存储,文件存储,对象存储的实现方法

实验步骤:

1.规划设计

准备四台虚拟机(有条件部署三台服务器,一台计算机更好),分别安装centos-7-x86_64操作系统,使用的ceph的版本minic版,网络地址及规划随机。

节点名称

IP地址

系统版本

部署进程

数据盘

Ceph1

192.168.69.150

Centos-7-x86_64

MON+mgr+OSD

/dev/sdb

Ceph2

192.168.69.151

Centos-7-x86_64

MON+mgr+OSD

/dev/sdb

Ceph3

192.168.69.152

Centos-7-x86_64

MON+mgr+OSD

/dev/sdb

Clieng

192.168.69.153

Centos-7-x86_64

客户端

表中各部分配置说明如下:

  1. 虚拟机网卡使用NAT模式,以便连接网络,同时避免地址冲突。
  2. 部署进程中的MON表示monitor监视器,要求部署个数为2N+1个;OSD表示objectstorage存储磁盘,mgr表示管理器。
  3. 每个MON都兼职做OSD,所以我们安装三个ceph节点时需要在上面添加一块磁盘sdb
  1. 环境准备

在准备好的三个节点和客户端 client上分别进行下述操作

  1. 关闭防火墙

#service firewalld stop

#chkconfig firewalld off

#sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

#setenforce 0

  1. 修改网卡配置文件

以ceph1节点为例

#vi /etc/sysconfig/network-scripts/ifcfg-ens33

  1. 重启网络服务

#systemctl restart network

  1. 配置yum源文件

#mv /etc/yum.repos.d/Cen* /opt/

#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.repo

 

  1. 配置hosts文件

#vi /etc/hosts

添加如下内容:

192.168.69.150 ceph-1

192.168.69.151 ceph-2

192.168.69.151 ceph-3

192.168.69.153  client

# 确保每台服务器hosts文件内容一致

 

  1. 安装chrony服务

Chrony 是一个开源的自由软件,能使系统时钟与时钟服务器(NTP)保持同步,在分布式集群中,为了便于同一生命周期内不同节点服务的管理,需要各个节点的时钟服务器严格同步。在以下配置中,以client节点作为时钟服务器,其他节点以client节点的时钟作为时钟标准调整自己的时钟。

client节点和三个集群节点分别安装Chrony服务。

# yum -y install chrony

在client节点,编辑chrony.conf配置文件。

#vi /etc/chrony.conf

找到server字段,在所有默认的server前加“#”,并添加国内时钟服务器,配置允许参同步的网段。

server 0. centos. pool. ntp. org iburst

server 1. centos. pool. ntp. org iburst

server 2. centos. pool. ntp. org iburst

server 3. centos. pool. ntp. org iburst

server ntp1.allyun.com

server 210.72.145.44

server 202.112.10.36

allow 192.168.69.0/24

local stratum 10

server 192.168.69.153

 

在其他三个节点编译chrony.conf配置文件,在所有默认的server前加”#”并添加本地时钟服务器(以ceph1节点为例)

#vi /etc/chrony.conf

#server 0. centos. pool. ntp. org iburst

#server 1. centos. pool. ntp. org iburst

#server 2. centos. pool. ntp. org iburst

#server 3. centos. pool. ntp. org iburst 

server 192.168.69.153

在所有节点启动chrony服务,并设置开机自启动。

# systemetl restart chronyd

# systemctl enable chronyd

查看同步情况。

# chronyc sources

210 Number of sources = 1

MS Name/IP address

Stratum Poll Reach LastRx Last sample

A* client

10 6 377 27 -66us[ -167us] +/- 167us

 

如果同步时间显示的还是数千秒,则可以 systemctl restart chronyd,然后再次查看同步情况。

  1.  配置ceph使用的yum源。

在三个节点分别配置ceph.repo文件。

  1. #vim /etc/yum.repos.d/ceph.repo

[ceph]

name=Ceph packages for $basearch

baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch

enabled=1

priority=2

gpgcheck=1

type=rpm-md

gpgkey=https://download.ceph.com/keys/release.asc

[ceph-noarch]

name=Ceph noarch packages

baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch

enabled=1

priority=2

gpgcheck=1

type=rpm-md

gpgkey=https://download.ceph.com/keys/release.asc

[ceph-source]

name=Ceph source packages

baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS

enabled=0

priority=2

gpgcheck=1

type=rpm-md

gpgkey=https://download.ceph.com/keys/release.asc安装python支持组件。

为防止后续python支持环境出现问题,可以在三个节点上分别运行。

i yum install-y python-pip

  1. 配置无密码连接。
  2. 在ceph1上,可以设置无密码访问其他节点。
  3. # ssh-keygen
  4. 按四次Enter键,进行无密码访问。

 

  1. # ssh-copy-id root@ceph2
  2. 在询问是否连接到ceph2节点的提示信息下,输入“yes”进行确认。接下来按提示输入ceph2的登录密码。
  3. 接下来访问ceph3。
  4. # ssh-copy-id root@ceph3
  5. 在询问是否连接到ceph3节点的提示信息下,输入“yes”进行确认。接下来按提示输入ceph3的登录密码。

3.部署ceph集群

(1)安装部署软件。

ceph-deploy是个部署工具,使用它可以实现所有节点同步安装,如果这个工具无法使用,必须在每个节点上分别进行安装过程。

在节点ceph1安装。

# yum -y install ceph-deploy

 

(2)创建工作目录。

后续进行创建集群、安装软件包、初始化服务、创建OSD等操作时,必须创建工作目录。

# mkdir ceph-cluster && cd ceph-cluster

(3)创建群集并安装软件。

# ceph-deploy new ceph{1,2,3}

#ceph-deploy install cephl ceph2 ceph3

  1. 初始化部署 monitor。

#ceph-deploy mon create ceph{1,2,3}

# ceph-deploy mon create-initial

#ceph mon_status 检查部署情况

(5)共享管理密钥。

用 ceph-deploy 把配置文件和 admin 密钥复制到管理节点和 Ceph 节点,这样每次执行Ceph 命令行时就无须指定 monitor 地址和 ceph.client.admin.keyring。

# ceph-deploy admin cephl ceph2 ceph3

修改密钥权限。

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

(6)创建OSD。

#ceph-deploy osd create ceph1 --data /dev/sdb

#ceph-deploy osd create ceph2 --data /dev/sdb

#ceph-deploy osd create ceph3 --data /dev/sdb

创建完成可以查看OSD。

#ceph-deploy osd list cephl ceph2 ceph3

(7)创建mgr。

#ceph-deploy mgr create cephl ceph2 ceph3

(8)验证测试。

# ceph health

正常情况将显示“HEALTH_OK”。

#ceph -s

显示详细信息。如果该简化命令提示错误,则使用ceph-status。

  cluster:

    id:     746cd5aa-feb3-4676-9203-783792f72da3

    health: HEALTH_OK

  services:

    mon: 1 daemons, quorum ceph-1

    mgr: ceph-1(active)

    osd: 3 osds: 3 up, 3 in

  data:

    pools:   0 pools, 0 pgs

    objects: 0 objects, 0B

    usage:   3.01GiB used, 12.0GiB / 15.0GiB avail

    pgs:     

 (9)时钟同步问题。

如果ceph-s显示如下信息。

#ceph -s

health HEALTH WARN

clock skew detected on mon. node2, mon. node 3

Monitor clock skew detected

往往是各节点时钟同步出错。修改ceph1节点的配置文件/etc/ceph/ceph.conf,添加如下内容,将同步时间由默认的0.05s改为1s(或2s)。

[mon]

mon clock drift allowed =1

mon clock drift warn backoff = 30

4.开启 Dashboard

Ceph从 Luminous开始,提供了原生的 Dashboard功能,通过Dashboard可以获取Ceph集群的各种状态信息,从Mimic里实现了Dashboard V2版本,提供了更全面的Ceph展示和管理功能。

(1)查看ceph状态。

首先查看ceph状态,找出active的mgr,这里active mgr是cephl。

# ceph -s

mgr: cephl (active), standbys: ceph2, ceph 3

(2)生成自签名证书和秘钥。

# ceph dashboard create-self-signed-cert

self-signed certificate created

生成key pair,并配置给ceph mgr。

# 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

Generating a 2048 bit RSA private key

........+++

.................+++

writing new private key to 'dashboard. key'

-----

# 1s

dashboard. crt dashboard. key

(3)启用 dashboard 插件。

# ceph mgr module enable dashboard

(4)配置 dashboard 地址和端口。

# ceph config set mgr mgr/dashboard/server_addr 192.168.69.150

set mgr/dashboard/server_addr

#ceph config set mgr mgr/dashboard/server_port 8888set mgr/dashboard/server_port

查看 dashboard服务。

# ceph mgr services

"dashboard":"https://192.168.69.150:8888/"

(5)配置 dashboard 认证密码。

# ceph dashboard set-login-credentials admin 123Username and password updated

访问ceph的dashboard。Dashboard面板显示当前ceph集群状态信息

 

cluster选项卡可以查看集群中的host,osds等信息,此外后续配置了块存储,文件系统,对象存储,可以在block,objectgateway界面查看。

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值