记录手动部署ceph nautilus版本的过程

主要参考官方文档: https://docs.ceph.com/en/nautilus/install/manual-deployment/

虚机环境准备

虚机主机名 配置
node1 eth0: 192.168.1.10 eth1: 192.168.56.10
node2 eth0: 192.168.1.11 eth1: 192.168.56.10
node3 eth0: 192.168.1.12 eth1: 192.168.56.10

替换国内源

使用阿里的ceph源:

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

[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc

[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc

[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc

安装ceph

# 三个节点执行
$ yum install ceph

配置ceph

生成一个FSID

uuidgen
生成一个id
efd6af9b-276e-4fe1-b961-62c43de20313

配置文件ceph.conf

[global]
fsid = efd6af9b-276e-4fe1-b961-62c43de20313

public network = 192.168.1.0/24
cluster network = 192.168.56.0/24

mon initial members = node1, node2, node3
mon host = 192.168.1.10, 192.168.1.11, 192.168.1.12

osd pool default size = 2
osd pool default min size = 2
osd pool default pg num = 128
osd pool default pgp num = 128

ceph mon

  • 创建集群密钥环,生成monitor密钥
ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
  • 创建admin密钥环,创建client.admin用户并加入密钥环
ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
  • 创建bootstrap-osd密钥环,创建client.bootstrap-osd用户,将用户加入密钥环
ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
  • 将创建的密钥加入ceph.mon.keyring
ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring

ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
  • 修改文件属性
chown ceph:ceph /tmp/ceph.mon.keyring
  • 创建monitor map
monmaptool --create --add node1 192.168.1.10 --fsid efd6af9b-276e-4fe1-b961-62c43de20313 /tmp/monmap
  • 创建monitor默认数据目录
# 目录的名字为{cluster-name}-{hostname}
mkdir /var/lib/ceph/mon/ceph-node1
  • 设置monitor进程的map和密钥环
ceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
  • 启动monitor
chown -R ceph:ceph /var/lib/ceph
systemctl start ceph-mon@node1
systemctl enable ceph-mon@node1
  • 启用msgr2
ceph mon enable-msgr2
  • 检查monitor
  #查看mon进程状态
  systemctl status ceph-mon@node1

  #查看ceph状态
  ceph -s 

  cluster:
  id:     efd6af9b-276e-4fe1-b961-62c43de20313
  health: HEALTH_OK

  services:
  mon: 1 daemons, quorum node1 (age 66s)
  mgr: no daemons active
  osd: 0 osds: 0 up, 0 in

  data:
  pools:   0 pools, 0 pgs
  objects: 0 objects, 0 B
  usage:   0 B used, 0 B / 0 B avail
  pgs:     


增加mon

  • 登陆新的要安装mon的主机,以node2为示例

  • 创建目录

mkdir /var/lib/ceph/mon/ceph-node2
  • 获取mon的keyring
ceph auth get mon. -o /tmp/monkeyring
  • 获取mon的map
ceph mon getmap -o /tmp/monmap
  • 初始化mon的数据目录
ceph-mon -i node2 --mkfs --monmap /tmp/monmap --keyring /tmp/monkeyring
  • 编辑ceph.conf
增加里面值
mon initial members 
mon host 
  • 启动monitor
chown -R ceph:ceph /var/lib/ceph
systemctl start ceph-mon@node2
systemctl enable ceph-mon@node2

其他重复即可

ceph mgr

mymgr为自定义的名字

  • 创建认证密钥
ceph auth get-or-create mgr.mymgr mon 'allow profile mgr' osd 'allow *' mds 'allow *'
  • 移动密钥到相应目录中
ceph auth get-or-create mgr.mymgr -o mgrkeyring
mkdir -p /var/lib/ceph/mgr/ceph-mymgr/
mv mgrkeyring /var/lib/ceph/mgr/ceph-mymgr/keyring
  • 启动ceph-mgr进程
ceph-mgr -i mymgr
  • 检查ceph状态
ceph -s 

...
mrg active: mymgr
...

ceph osd

如果没有bootstrap-osd的keyring,则创建keyring

ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring

bluestore

在创建bluestore

  • 创建OSD
ceph-volume lvm create --data {data-path}
  • 另一种方法,分两步创建

  • 准备OSD

ceph-volume lvm prepare --data {data-path} {data-path}

ceph-volume lvm list
  1. 激活OSD
ceph-volume lvm activate {ID} {FSID}

filestore

  • 创建osd
ceph-volume lvm create --filestore --data {data-path} --journal {journal-path}
  • 另一种方法,分两步创建

  • 准备OSD

ceph-volume lvm activate --filestore {ID} {FSID}
  1. 激活OSD
ceph-volume lvm activate --filestore 0 a7f64266-0894-4f1e-a635-d0aeaca0e993