Ceph Luminous (v12.2.x)部署详解
部署环境说明
debian stretch(9.x)
ceph luminous(v12.2.x) (生产环境建议安装操作系统自带的稳定版本!)
集群节点
ceph1 192.168.22.11
ceph2 192.168.22.12
网络配置
# vim /etc/network/interfaces
allow-hotplug ens33
iface ens33 inet static
address 192.168.22.11
netmask 255.255.255.0
gateway 192.168.22.2
# vim /etc/resolv.conf
nameserver 202.96.128.86
修改系统源
# vim /etc/apt/sources.list
deb http://ftp.cn.debian.org/debian/ stretch main contrib non-free
更新系统内核
# apt-get update
# apt-get dist-upgrade
时间同步
# apt-get install chrony
添加ceph luminous源
# apt-get install python openssh-server apt-transport-https
# wget -q -O- 'https://download.ceph.com/keys/release.asc' | apt-key add -
# echo deb https://download.ceph.com/debian-luminous/ $(lsb_release -sc) main | tee /etc/apt/sources.list.d/ceph.list
# apt-get update
安装部署工具(管理节点)
# apt-get install ceph-deploy
创建部署用户并配置sudo权限
# apt-get -y install sudo
# useradd -d /home/cephadmin -m cephadmin
# echo cephadmin:cephadmin | chpasswd
# echo "cephadmin ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/cephadmin
# chmod 0440 /etc/sudoers.d/cephadmin
配置ssh免密登录(管理节点)
# su - admin
$ ssh-keygen
$ sudo vim /etc/hosts
192.168.22.11 ceph1
192.168.22.12 ceph2
$ ssh-copy-id cephadmin@ceph1
$ ssh-copy-id cephadmin@ceph2
$ vim .ssh/config
Host ceph1
Hostname ceph1
User cephadmin
Host ceph2
Hostname ceph2
User cephadmin
$ ssh ceph1
$ ssh ceph2
创建存储集群(管理节点)
$ mkdir my-cluster
$ cd my-cluster/
$ ceph-deploy new --public-network 192.168.22.0/24 ceph1
修改ceph-deploy配置(管理节点)
$ vim /home/admin/.cephdeploy.conf
[cephrepo]
baseurl=http://download.ceph.com/debian-luminous
gpgkey=https://download.ceph.com/keys/release.asc
安装ceph软件包(管理节点)
$ ceph-deploy install --release luminous ceph1 ceph2
# --release选项指定安装的软件版本
修改集群配置(管理节点)
配置文件:ceph.conf
[global]
#
# 集群ID,自动生成,必须唯一,默认为空
fsid = 1de5bfb3-b073-4974-b56b-64566bc598a7
# 集群公共网,自动生成,--public-network选项指定
public_network = 192.168.22.0/24
cluster network = 10.0.0.0/24
# 集群mon初始化成员,自动生成
mon_initial_members = ceph1
mon_host = 192.168.22.11
# 集群默认需要身份认证,自动生成
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
#
##以下为自定义配置
#
# 日志存储空间,默认值为5120MB
osd journal size = 10240
# 存储池默认副本数,默认值为3
osd pool default size = 3
# 存储池默认最小副本数,默认值为0,size-(size/2)
osd pool default min size = 2
# 存储池默认PG数,默认值为8
osd pool default pg num = 8
# 存储池默认PGP数,默认值为8
osd pool default pgp num = 8
# 防止OSD重启后更新crush运行图
osd crush update on start = false
# 用于chooseleaf CRUSH规则的存储桶类型,默认值为1,通常是包含一个或多个Ceph OSD守护进程的主机
osd crush chooseleaf type = 1
# OSD full之前使用的磁盘空间百分比,默认值为.95
mon osd full ratio = .95
# OSD nearfull之前使用的磁盘空间百分比,默认值为.85
mon osd nearfull ratio = .85
# 在OSD full之前也被认为是回填使用的磁盘空间百分比,默认值为.90
osd backfill full ratio = .90
# 允许进出单个OSD的最大回填数量,默认值为1
osd max backfills = 1
osd recovery max active = 1
osd recovery max single start = 1
osd recovery sleep = 0.5
#
[mon]
#
# 监视器之间允许的时钟漂移,以秒为单位,默认值为0.05s
mon clock drift allowed = 2
# 时钟漂移警告的指数退避,默认值为5s
mon clock drift warn backoff = 10
# 监视器可以删除池,默认false,即禁止删除池
mon allow pool delete = false
#
[osd]
#
# 可以执行预定清理时的下限时间,默认值为0
osd scrub begin hour = 0
# 可以执行预定清理时的上限时间,默认值为24
osd scrub end hour = 7
#
[client]
#
# 启用RADOS块设备(RBD)的缓存,默认启用
rbd cache = true
# 从直写模式开始,并在收到第一个刷新请求后切换回写。
# 启用此选项是一种保守但安全的设置,以防在rbd上运行的VM太旧而无法发送刷新,例如2.6.32之前的Linux中的virtio驱动程序,默认启用
rbd cache writethrough until flush = true
说明:
OSD可以通过两种方式管理它们存储的数据。
- 从Luminous 12.2.z版本开始,新的默认(推荐)后端是 BlueStore。
- 在Luminous之前,默认(唯一的)是 FileStore。
创建集群秘钥(管理节点)
$ ceph-deploy mon create-initial
分发秘钥及配置文件(管理节点)
$ ceph-deploy admin ceph1 ceph2
$ sudo chmod +r /etc/ceph/ceph.client.admin.keyring
$ ssh ceph2 sudo chmod +r /etc/ceph/ceph.client.admin.keyring
添加MGR(管理节点)
$ ceph-deploy mgr create ceph1
添加OSD
$ ceph-deploy osd create ceph1 --data /dev/sdb
// 在ceph luminous中创建bluestore的过程为指定--data,--block-db,--block-wal,单个磁盘时只指定--data
查看集群状态(管理节点)
$ ceph -s
$ ceph quorum_status --format json-pretty
添加MDS(管理节点)
$ ceph-deploy mds create ceph1