本文档主要参考ceph官方命令进行部署,使用的时侯ceph-deploy原生命令方式进行集群各个组件的创建,删除,后续会增加扩容相关的命令。
ceph-deploy部署集群
-
修改hosts文件,增加想要创建的集群节点名称和对应ip的映射关系
hosts文件可以加快域名解析,同时方便局域网用户来为服务器创建容易记住的名字(node1,node2,node3…)
vim /etc/hosts
增加如下ip到主机名称的映射关系:
10.192.55.95 node1 10.192.55.6 node2 10.192.55.100 node3
表示三结点的集群,同时需要将该文件拷贝到每个节点上
scp /etc/hosts 10.192.55.6:/etc
-
修改hostname ,即对应hosts文件中的域名,在进行节点通信的时候主机间能够进行映射
在每个ip上执行如右命令
hostname node1
,同时为了重启后生效应执行echo node1 >/etc/hostname
或者直接编辑文件vim /etc/sysconfig/network
,在其中增加HOSTNAME=node1
来保持重启后生效 -
进入目录
/etc/ceph
,如果没有就创建一个。用来存储部署过程中产生的配置文件,各个组件的密钥,以及ceph-deploy日志其实这个目录并没有太多的限制,可以根据自己情况随意创建,但是我们项目目前默认的是以上文件夹
-
创建配置文件、cepm-mon的keyring以及ceph-deloy日志文件
ceph-deploy new node1 node2 node3
将以上产生的所有文件拷贝到每个节点,因为接下来创建mon的时候会ssh到每个节点进行keyring验证并部署mon
-
创建mon(集群的大脑即监控者moniter),一般在ip较小的节点先进行创建(3节点最多可以创建3个mon),方便mon选举,本例是我在node1节点创建mon
ceph-deploy mon create-initial
此时运行
ceph -s
可以看到此时集群其他节点还未更新,所以无法使用
ceph -s
命令查看ceph集群状态,因为缺少mon,客户端启动的相关密钥,类似于bootstrap.keyring,需要在各个节点进行密钥收集 -
在其他非创建mon节点
/etc/ceph
目录下执行ceph-deploy gatherkeys node1
即可在其他节点上ceph -s
看到集群状态 -
创建mgr(集群管理者maneger),为三个节点都创建mgr,只需在一个节点
/etc/ceph
目录下执行ceph-deploy mgr create node1 node2 node3
此时运行
ceph -s
可以看到
ceph-deploy 部署单机
单机部署和集群部署总体流程一样,只是把集群节点的多数目变为但数目即可
-
修改hosts文件,增加单机ip和节点名称的映射
vim /etc/hosts
增加node1 10.192.55.95
-
修改hostname
hostname node1
-
进入目录
cd /etc/ceph
,以下所有的ceph-deploy
命令都在该目录中执行 -
创建配置文件
ceph-deploy new node1
-
创建mon
ceph-deploy mon create-initial
-
创建mgr
ceph-deploy mgr create node1
ceph-deploy 创建osd
以下命令适用于单机和集群
-
为osd创建分区并做xfs文件系统,存储元数据
ceph-deploy osd prepare node1:/dev/sdb
创建多个
ceph-deploy osd preapare node1:/dev/sdb node1:/dev/sdc node1:/dev/sdd
-
激活osd
ceph-deploy osd activate node1:/dev/sdb1 node1:/dev/sdc1 node1:/dev/sdd1
使用ceph osd tree
查看osd情况 -
根据crush规则部署OSD
目前我们的集群如果不做crush规则的更改,则默认为3副本规则
-
创建bucket(这是一种类型,表现形式为树形的,它的级别可以理解为从世界存储中心到具体的磁盘osd的划分,默认类型包括root,data center,room,row,rack,host,osd),我们一般以设备为单位,所以选择的级别就设置为host
ceph osd crush add-bucket host1 host
这里我们要适配crush的3副本默认规则,所以host个数要设置大于三个
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nRfvlHLm-1575878199633)(C:\Users\zhanghuigui\AppData\Roaming\Typora\typora-user-images\1547174207805.png)]
-
将host移动到root下形成树形管理结构,最后crush规则才能在集群中生效
ceph osd crush move host1 root=default ceph osd crush move host2 root=default ceph osd crush move host3 root=default
-
将osd移动到host下
ceph osd crush add osd.0 1.00 host=host1 ceph osd crush add osd.1 1.00 host=host2 ceph osd crush add osd.2 1.00 host=host3
-
ceph osd创建资源池
创建的资源池需要设置PG 以及PGP数目
ceph osd pool create pool_name 128 128
查看创建结果ceph -s
查看具体pool的详细信息ceph osd pool ls detail
删除资源池
ceph osd pool rm data data --yes-i-really-really-mean-it
ceph创建rbd块设备
创建前提是需要拥有pool资源池
-
创建rbd块设备
rbd create rbd_test -p data --size 1T
在资源池data中创建一个名字叫做rbd_test
的1T块设备 -
查看创建结果
rbd ls -p data
-
查看具体块设备信息
rbd info rbd_test -p data
或者rbd info data/rbd_test
-
禁用rbd的特性,否则会需要做一些密钥验证无法创建映射
rbd feature disable data/rbd_test object-map fast-diff deep-flatten exclusive-lock
-
创建rbd映射
rbd map rbd_test -p data
-
查看映射结果
lsblk
-
解除rbd映射
rbd unmap /dev/rbd0
-
删除rbd 块
rbd rm rbd_test -p data
ceph创建fs文件系统
-
创建mds,进入node1的
/etc/ceph
ceph-deploy mds create node1
-
创建元数据资源池
ceph osd pool create meta_data 128 128
-
创建文件系统
ceph fs new cephfs meta_data data
来源:CSDN
作者:Z_Stand
链接:https://blog.csdn.net/Z_Stand/article/details/103459525