ceph
  • Introduction
  • 安装
    • 单机安装
    • 安装客户端
Powered by GitBook
On this page
  • 一、准备工作
  • 1.1 主机规划
  • 1.2 系统配置
  • 1.3 配置SSH无密登录
  • 二、安装过程
  • 2.1 安装ceph-deploy
  • 2.2 创建目录
  • 2.3 安装monitor
  • 2.4 安装ceph到各个节点
  • 2.5 生成密钥
  • 2.6 分发配置文件与密钥
  • 2.7 安装mgr
  • 2.8 创建osd
  • 2.9 验证集群状态
  • FAQ

Was this helpful?

  1. 安装

单机安装

注意:如果有问题,请以《安装》篇为准

一、准备工作

1.1 主机规划

  • IP: 192.168.2.100

  • 规格:2C4G

  • 磁盘:两个未格式化与未挂载的空白磁盘或分区(一个的话需要些额外的操作)

1.2 系统配置

1.2.1 关闭selinux

编辑文件/etc/selinux/config,修改SELINUX=enforcing这一行为SELINUX=disabled。然后执行如下命令

$ setenforce 0

1.2.2 关闭防火墙

$ systemctl disable firewalld && systemctl stop firewalld

1.2.3 配置yum源

  • epel

执行以下命令,添加epel源,执行完后在/etc/yum.repos.d/目录下会生成两个文件:epel.repo与epel-test.repo

$ yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  • ceph

在/etc/yum.repos.d/目录下创建文件ceph.repo,内容如下(这里我们安装luminous版本的ceph,使用阿里云的yum源)

[ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/x86_64/
enabled=1
gpgcheck=0

[ceph-noarch]
name=ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/
enabled=1
gpgcheck=0

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS/
enabled=1
gpgcheck=0

1.2.4 配置终端权限

为了让ceph-deploy节点能够SSH到各 节点执行安装命令,执行命令visudo,如果文件中有Defaults requiretty这一行,则改为Defaults !requiretty,如果没有则无视

1.3 配置SSH无密登录

以下操作在ceph-deploy节点执行

1.3.1 设置主机名

在/etc/hosts文件末尾添加如下内容

192.168.36.73 node0

执行以下命令修改主机名为node0

hostnamectl set-hostname node0

1.3.2 生成ssh-key

执行如下命令,遇到交互直接按Enter

$ ssh-keygen

执行完后便会在~/.ssh/目录下生成两个文件:id_rsa与rd_rsa.pub

1.3.3 拷贝key到各节点

$ ssh-copy-id node0

1.3.4 验证

验证从node0节点上可以直接SSH到其他节点,无需输入密码

二、安装过程

2.1 安装ceph-deploy

$ yum -y install ceph-delpoy

2.2 创建目录

在执行ceph-deploy命令的过程中会在生成一些配置文件,创建一个目录,存放生成的配置文件

$ mkdir ceph-cluster
$ cd ceph-cluster

2.3 安装monitor

$ ceph-deploy new node0

此时,会在./ceph-cluster目录下生成一个ceph.conf文件,里面有monitor的初始节点信息,以及节点使用的网卡信息,可根据实际情况进行相应修改:

[global]
fsid = d023a153-18b9-46d2-96bd-f1fe3017e127
mon_initial_members = node0
mon_host = x.x.x.x
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

如果主机有多个网卡,则在[global]下手动添加public network的信息,比如:

[global]
public network = x.x.x.x/24
...

2.4 安装ceph到各个节点

$ ceph-deploy install --release=luminous node0

ceph-deploy install会在节点上安装ceph、rados这两个rpm包。这里的--release=luminous表示安装luminous这个版本的ceph

2.5 生成密钥

$ ceph-deploy mon create-initial

该命令会在当前(./ceph-cluster)目录下生成以下几个密钥文件

  • ceph.client.admin.keyring

  • ceph.bootstrap-mgr.keyring

  • ceph.bootstrap-osd.keyring

  • ceph.bootstrap-mds.keyring

  • ceph.bootstrap-rgw.keyring

  • ceph.bootstrap-rbd.keyring

2.6 分发配置文件与密钥

把配置文件和密钥拷贝到各节点上,这样从每个节点上都能执行ceph命令而不需要输入monitor的IP以及密钥

$ ceph-deploy admin node0

2.7 安装mgr

从liminous版本开始,一般都需要安装mgr

$ ceph-deploy mgr create node0

2.8 创建osd

/dev/sdb与/dev/sdc不管是空白磁盘还是空白分区,都执行

$ ceph-deploy osd create node0 --data /dev/sdb
$ ceph-deploy osd create node0 --data /dev/sdc

注意:官方文档这一步的命令是ceph-deploy osd create node0:sdb,但在实践中发现这个命令执行失败,这个坑要注意

2.9 验证集群状态

$ ceph -s

FAQ

Q:执行ceph-deploy new node0时报如下的错?

ceph-deploy new node0
Traceback (most recent call last):
  File "/usr/bin/ceph-deploy", line 18, in <module>
    from ceph_deploy.cli import main
  File "/usr/lib/python2.7/site-packages/ceph_deploy/cli.py", line 1, in <module>
    import pkg_resources
ImportError: No module named pkg_resources

A:执行以下命令解决

curl https://bootstrap.pypa.io/ez_setup.py | python

Q:如果只有一个磁盘或分区,则在创建一个pool后执行rbd ls poolName时会卡住?

A:这里因为pool的默认副本数为3,而只有一个osd,可以通过以下命令确认:

$ ceph osd pool ls detail
pool 1 'kube' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 8 pgp_num 8 last_change 9 owner 18446744073709551615 flags hashpspool stripe_width 0 application rbd

执行命令将pool的size设置为1

$ ceph osd pool set kube size 1

然后执行命令就不会卡住了,执行ceph -s看到pool应该是active+clean的状态

$ ceph -s
  cluster:
    id:     b7fffb95-ef15-4247-a5d3-327c0bb80cfb
    health: HEALTH_WARN
            too few PGs per OSD (8 < min 30)

  services:
    mon: 1 daemons, quorum node0
    mgr: node0(active)
    osd: 1 osds: 1 up, 1 in

  data:
    pools:   1 pools, 8 pgs
    objects: 0 objects, 0B
    usage:   1.00GiB used, 8.99GiB / 10.0GiB avail
    pgs:     8 active+clean
Previous安装Next安装客户端

Last updated 5 years ago

Was this helpful?