CEPH部署文档

安装前准备工作

1、准备5台linux主机,内核版本3.10

2、确保每台主机上软件包最新

yum -y update

3、设置deploy主机的/etc/hosts文件,确保deploy主机可以通过主机名来访问其他主机

192.168.21.71       node1
192.168.21.72       node2
192.168.21.73       node3
192.168.21.74       node4
192.168.21.75       node5

4、每台主机上添加一个用户,注意尽量不要使用ceph,因为osd守护进程需要占用此用户

useradd cephnode
echo '123' | passwd --stdin cephnode

5、设置deploy主机可以无密码访问其他主机,设置完毕以后尝试无密码登录一下.

su - cephnode
ssh-key-gen
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
ssh-copy-id node4
ssh-copy-id node5
ssh node1

6、(推荐做法)修改 ceph-deploy 管理节点上的 ~/.ssh/config 文件,这样 ceph-deploy 就能用你所建的用户名登录 Ceph 节点了,而无需每次执行 ceph-deploy 都要指定 --username {username} 。这样做同时也简化了 ssh 和 scp 的用法。把 {username} 替换成你创建的用户名。

Host node1
   Hostname node1
   User cephnode
Host node2
   Hostname node2
   User cephnode
Host node3
   Hostname node3
   User cephnode
Host node4
   Hostname node4
   User cephnode
Host node5
   Hostname node5
   User cephnode

7、确保各 Ceph 节点上新创建的用户都有 sudo 权限

echo "cephnode ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephnode 
sudo chmod 0440 /etc/sudoers.d/cephnode 

8、因为deploy节点需要无密码登录到各节点执行命令、而且不是通过tty方式执行,所以得设置每台主机上的 visudo 配置文件

visudo
找到 Defaults requiretty 修改为Defaults:cephnode !requiretty 或者如果没找到对应项就直接添加 Defaults:cephnode !requiretty

9、设置selinux iptables 为关闭

setenforce 0
systemctl stop firewalld.service

10、在node1配置ceph-deploy的yum源J版本(其中gpgcheck和gpgkey可以关闭)

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

11、在各节点设置ceph的yum源J版本

[ceph]
name=Ceph packages
baseurl=http://download.ceph.com/rpm-jewel/el7/x86_64/
enabled=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
gpgcheck=1

12、在node1上安装ceph-deploy

yum -y install ceph-deploy

13、在各节点安装ntp以及openssh-server,并且设置ntp服务器为s2c.time.edu.cn,来同步时间,避免发生时钟漂移

yum -y install ntp openssh-server
crontab -e
*/1 * * * * /usr/sbin/ntpdate s2c.time.edu.cn > /dev/null 2>&1

2、集群搭建

1、在deploy节点上执行

su - cephnode
mkdir my-cluster 用来存放配置文件等
cd my-cluster

2、创建集群,如果创建成功,则在当前目录下有三个文件被创建出来

ceph-deploy new node2

3、修改配置文件 ceph.conf

+++ osd pool default size = 2

4、安装 Ceph(也可以独自每个节点安装、如果出现了某些软件包版本不够的问题,请确认epel-release是否安装,如果安装,还有这个问题,请选择较低的ceph版本源)

ceph-deploy install  node1 node2 node3 node4 node5

5、配置初始 monitor(s)、并收集所有密钥.(将node2 设置为monitor,如果设置成功,则当前目录下会产生会多文件)

ceph-deploy mon create-initial

6、从管理节点执行 ceph-deploy 来准备 OSD,注意,如果是单独的磁盘,直接使用一下目录

ceph-deploy osd prepare node3:/dev/sdb1 node4:/dev/sdb1

7、激活osd

ceph-deploy osd activate node3:/dev/sdb1 node4:/dev/sdb1

8、用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了

ceph-deploy admin    node5 node2 node3 node4 node1

9、确保对 ceph.client.admin.keyring 有正确的操作权限

sudo chmod +r /etc/ceph/ceph.client.admin.keyring

10、查看健康状态

ceph health

3、以块设备挂载集群

1、新建一个ceph pool,(两个数字为 {pg-num} [{pgp-num})

ceph osd pool create rbdpool 100 100

2、在pool中新建一个镜像

rbd create rbdpoolimages --size 80960 -p rbdpool   或者 rbd create rbdpool/rbdpoolimages --size 102400
在内核为3.10的不能实现绝大部分features,使用此命令 在后边加上 --image-format 2 --image-feature  layering

3、查看相关pool以及image信息

rbd ls rbdpool  查看池中信息
rbd --image rbdpoolimages -p rbdpool info  查询一个池内的镜像信息

4、把镜像映射到pool块设备中,在安装了ceph以及执行过ceph-deploy admin node 命令的客户端上以root身份执行执行

rbd map rbdpoolimages -p rbdpool

5、格式化映射的设备块

mkfs.ext4 /dev/rbd0 

6、取消映射块设备、查看镜像映射map

rbd unmap /dev/rbd1  取消映射块设备
rbd showmapped  查看镜像映射map

7、扩容image

rbd resize -p rbdpool --size 2T rbdpoolimages 

4、重头再来

1、如果在某些地方碰到麻烦,想从头再来,可以用下列命令清除配置

ceph-deploy purgedata {ceph-node} [{ceph-node}]
ceph-deploy forgetkeys

2、下列命令可以连 Ceph 安装包一起清除

ceph-deploy purge {ceph-node} [{ceph-node}]

5、扩展集群

1、一个基本的集群启动并开始运行后,下一步就是扩展集群。在 node2 上添加一个 OSD 守护进程和一个元数据服务器。然后分别在 node3 和 node4 上添加 Ceph Monitor ,以形成 Monitors 的法定人数。(目前状态是有三个节点都在运行这osd 和 monitor,其中有一个运行着元数据mds)

ceph-deploy osd prepare node2:/dev/sdb1
ceph-deploy osd activate node2:/dev/sdb1

2、新增 Monitor 用来达到高可用。

ceph-deploy mon add node2 
ceph-deploy mon add node3

3、新增 Monitor 后,Ceph 会自动开始同步并形成法定人数。你可以用下面的命令检查法定人数状态

ceph quorum_status --format json-pretty

4、在线扩容已挂载的 image

rbd resize --size 20G testimg -p rbdpool
resize2fs /dev/rbd0
blockdev --getsize64 /dev/rbd0   查看block设备的大小

5、增加mds来使用cephFS

ceph-deploy mds create node1

6、虽然已创建了元数据服务器(存储集群快速入门),但如果你没有创建存储池和文件系统,它是不会变为活动状态的、所以接下来创建pool。并且查看mds状态。

ceph osd pool create cephfs_data 1000
ceph osd pool create cephfs_metadata 1000
ceph fs new media cephfs_metadata cephfs_data
ceph mds stat

7、在client端挂载cephFS

yum install ceph-fuse -y       安装挂载需要的软件包
mount.ceph 172.16.20.3:6789:/ /cephfs/ -o name=admin,secret=AQCqK2NYJ2p/LRAAU+uoKx7Q/YfaT5AVqRsAwA==  使用密钥挂载
或者将secret写入一个文件中,然后指定文件
echo AQCqK2NYJ2p/LRAAU+uoKx7Q/YfaT5AVqRsAwA== > /etc/ceph/admin.key
mount.ceph node1,node2:/ /cephfs -o name=admin,secretfile=/etc/ceph/admin.key  可以同时指定多个monitor,防止一个monitor宕机
mount -t ceph node1,node2:/ /cephfs -o name=admin,secretfile=/etc/ceph/admin.key

6、常用配置

1、查看pool的默认副本数

ceph osd dump | grep 'replicated size'

2、查看osd、pg相关设置

ceph osd dump
ceph pg dump

3、RBD操作

rados lspools 查看穿件的pool
rados mkpool pool 创建一个存储池
rbd create pool/image1 --size 1024M image-format 2 创建image
rbd ls pool 查看创建出的image
rbd info pool/image1 查看image1的详细信息
rbd rm pool/image1 删除image1

4、osd 操作

ceph osd out 2 将第二个osd节点从节点中去掉
ceph osd in 2 将第二个osd节点从加入节点中
rados -p cephfs_data ls 列出某个pool中的所有object
ceph osd map cephfs_data 10000000003.00000000 查看某个object(10000000003.00000000)的详细信息

7、参考博客资料

1、添加osd

http://blog.csdn.net/heivy/article/details/50622786

2、其他相关资料

http://www.centoscn.com/CentosServer/test/2015/0521/5489.html        
http://www.2cto.com/os/201411/354299.html
http://blog.csdn.net/youyume20/article/details/50574908
http://docs.openfans.org/ceph
http://sangh.blog.51cto.com/6892345/1884398 "ceph各种操作 "
http://docs.ceph.org.cn/
http://michaelkang.blog.51cto.com/1553154/1786309  map时候报错解决  rbd create rbd/test1 --size 10G --image-format 2 --image-feature  layering
http://michaelkang.blog.51cto.com/1553154/1675822/  挂载rbd到client步骤
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容

  • 系统环境: centos73.10.0-514.26.2.el7.x86_64 机器数量:五台 硬盘:四块一块为系...
    think_lonely阅读 4,587评论 0 5
  • ceph简介 Ceph是一个分布式存储系统,诞生于2004年,是最早致力于开发下一代高性能分布式文件系统的项目。随...
    爱吃土豆的程序猿阅读 5,995评论 0 21
  • 集群管理 每次用命令启动、重启、停止Ceph守护进程(或整个集群)时,必须指定至少一个选项和一个命令,还可能要指定...
    Arteezy_Xie阅读 18,188评论 0 19
  • 一、概述 Ceph是一个分布式存储系统,诞生于2004年,最早致力于开发下一代高性能分布式文件系统的项目。随着云计...
    魏镇坪阅读 49,385评论 3 54
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,494评论 18 139