Ceph部署

[TOC]

一、Ceph集群规划

系统类型: Centos7.5
ceph版本: v13.2.7 mimic

主机名 IP地址 角色 数据盘
ceph-node1 172.16.0.122 mon、mgr、osd、deploy /dev/sdb/
ceph-node1 172.16.0.123 mon、mgr、osd /dev/sdb/
ceph-node1 172.16.0.124 mon、mgr、osd /dev/sdb/

二、安装部署

1、预检

host解析
时间同步
ssh免密登录,deploy节点需要ssh免密登录到所有的node节点
关闭防火墙
关闭selinux

2、部署

(1)、所有节点配置yum源

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

cat << EOF > /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=http://download.ceph.com/rpm-mimic/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://download.ceph.com/rpm-mimic/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
EOF

(2)、deploy节点安装ceph-deploy并初始化集群

在node1安装ceph-deploy工具

  # sudo yum -y install ceph-deploy
  # ceph-deploy --version
   2.0.1

创建目录,用于保存执行ceph-deploy时产生的文件

mkdir /data/ceph-cluster/ && cd /data/ceph-cluster/

初始化集群

ceph-deploy new ceph-node1 ceph-node2 ceph-node3

修改配置文件

cat ceph.conf
[global]
fsid = 51fd080e-722e-4c53-9c48-c6bbddef663a
mon_initial_members = ceph-node1, ceph-node2, ceph-node3
mon_host = 172.16.0.122,172.16.0.123,172.16.0.124
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
public network = 172.16.0.0/24
osd_pool_default_size = 2

配置的含义:
fsid:文件系统id
mon_initial_members:监视器主机名
mon_host:监视器IP地址
cephx:表示开启认证
public network:指定public网络

在三个节点安装ceph

ceph-deploy install --release mimic ceph-node1 ceph-node2 ceph-node3

开始部署monitor

ceph-deploy  mon create-initial

拷贝配置文件及admin密钥到各ceph节点

ceph-deploy admin ceph-node1 ceph-node2 ceph-node3

创建ceph管理进程服务

ceph-deploy mgr create ceph-node1 ceph-node2 ceph-node3

查看集群状态,osd未创建

# ceph -s
 cluster:
    id:     aa6f450a-613a-435d-ace3-4e1a4c8d231a
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum ceph-node1,ceph-node2,ceph-node3
    mgr: ceph-node1(active), standbys: ceph-node2, ceph-node3
    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:

创建osd
注意:如果磁盘已存在分区需要执行zap命令,删除分区和磁盘内容,然后再执行create

ceph-deploy disk zap ceph-node1 /dev/sdb
ceph-deploy disk zap ceph-node2 /dev/sdb
ceph-deploy disk zap ceph-node3 /dev/sdb
ceph-deploy osd create --data /dev/sdb ceph-node1
ceph-deploy osd create --data /dev/sdb ceph-node2
ceph-deploy osd create --data /dev/sdb ceph-node3

再次查看集群状态

#ceph -s
  cluster:
    id:     aa6f450a-613a-435d-ace3-4e1a4c8d231a
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum ceph-node1,ceph-node2,ceph-node3
    mgr: ceph-node1(active), standbys: ceph-node2, ceph-node3
    osd: 3 osds: 3 up, 3 in

  data:
    pools:   0 pools, 0 pgs
    objects: 0  objects, 0 B
    usage:   3.0 GiB used, 57 GiB / 60 GiB avail
pgs:

(3)、ceph启用dashboard

启用dashboard

ceph mgr module enable dashboard

为dashboard生成自签名证书,使用https访问

ceph dashboard create-self-signed-cert

为dashboard绑定IP和端口

ceph config set mgr mgr/dashboard/server_addr 172.16.0.122
ceph config set mgr mgr/dashboard/server_port 7000

重启一下mgr

sudo systemctl restart ceph-mgr@ceph-node1

查看服务

sudo ceph mgr services
{
    "dashboard": "https://172.16.0.122:9000/"
}

更新dashboard账号密码

ceph dashboard set-login-credentials admin Zywlw@2019

登录dashboard

https://172.16.0.122:9000/

(4)、取消部署ceph

如果部署失败,可以执行如下命令清除各节点上的软件及部署时生成的文件;

ceph-deploy purge {ceph-node}
ceph-deploy purgedata {ceph-node}
ceph-deploy forgetkeys

三、ceph常用命令

1、集群监控

#检查集群健康状况,正常返回HEALTH_OK
ceph health

如果配置文件或密钥不在默认路径,需要指定:
ceph -c /path/to/conf -k /path/to/keyring health

#检查集群状态,返回集群健康状态、服务状态以及数据状态
ceph status 或者 ceph –s

#检查集群的使用情况,返回集群整体使用情况和各个存储池的使用情况
ceph df

#检查OSD状态
ceph osd stat 或者 ceph osd dump 或者 ceph osd tree

#检查监视器状态
ceph mon stat 或者 ceph mon dump

#检查MDS状态
ceph mds stat 或者 ceph mds dump

2、存储池

#列出存储池
ceph osd lspools

#创建存储池
##副本类型
ceph osd pool create {pool-name} {pg-num} [{pgp-num}] [replicated] [crush-ruleset-name] [expected-num-objects]

##纠删类型(类似于RAID5)
ceph osd pool create {pool-name} {pg-num} {pgp-num} erasure [erasure-code-profile] [crush-ruleset-name] [expected_num_objects]
##必需参数:
pool-name 池名称
pg-num 存储池拥有的归置组总数
少于5个OSD时可把pg_num设置为128
OSD数量在5到10个时,可把pg_num设置为 512
OSD数量在10到50个时,可把pg_num设置为4096
pgp-num用于归置的归置组总数,一般等于归置组总数

#设置存储池配额
ceph osd pool set-quota {pool-name} [max_objects {obj-count}] [max_bytes {bytes}]

#删除存储池
ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-mean-it]

#重命名存储池
ceph osd pool rename {current-pool-name} {new-pool-name}

#查看存储池统计信息
rados df

3、用户管理

#罗列用户
ceph auth list

#获取用户信息,包括用户密钥、能力(用户的权限)
ceph auth get {TYPE.ID}

#新增用户
##直接添加用户并指定能力
ceph auth add client.john mon 'allow r' osd 'allow rw pool=liverpool'

##常用的添加用户并指定能力,会以标准格式返回用户名称和key,如果用户已存在,会直接返回用户名和key
ceph auth get-or-create client.paul mon 'allow r' osd 'allow rw pool=liverpool'

##在上条命令基础上,将返回保存到文件中
ceph auth get-or-create client.george mon 'allow r' osd 'allow rw pool=liverpool' -o george.keyring

##添加用户并指定能力,只返回key,-o表示将返回保存到文件
ceph auth get-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=liverpool' -o ringo.key

#修改用户能力,ceph auth caps会覆盖当前能力,如果新增能力时注意在命令中加上当前能力
ceph auth caps USERTYPE.USERID {daemon} 'allow [r|w|x|*|...] [pool={pool-name}] [namespace={namespace-name}]' [{daemon} 'allow [r|w|x|*|...] [pool={pool-name}] [namespace={namespace-name}]']

#删除用户,其中 {TYPE} 是 client 、 osd 、 mon 或 mds 之一, {ID} 是用户名或守护进程的 ID
ceph auth del {TYPE}.{ID}

#查看用户密钥
ceph auth print-key {TYPE}.{ID}

#导入用户
ceph auth import -i /path/to/keyring
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352

推荐阅读更多精彩内容