ceph infernalis版本搭建过程

落花浮王杯 提交于 2019-12-05 21:22:10

ceph infernalis版本安装过程。

一、使用ceph-deploy方式安装infernalis版本的ceph。

1、宿主机环境。

ubuntu14.04.03-server-amd64

2、添加trusted key。

#wget -q -O- 'https://git.ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -

该命令用于添加ceph正式发布版的trusted key。

#wget -q -O- 'https://git.ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/autobuild.asc' | sudo apt-key add -

该命令用于添加ceph开发测试版的trusted key。

3、向ubuntu源添加指定版本的ceph源。

#apt-add-repository 'deb http://download.ceph.com/debian-infernalis/ trusty main’

4、添加经过ceph修改过的Apache/FastCGI源。

#echo deb http://gitbuilder.ceph.com/libapache-mod-fastcgi-deb-$(lsb_release -sc)-x86_64-basic/ref/master $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph-apache.list

5、更新ubuntu源。

#apt-get update

6、安装ceph集群配置脚本ceph-deploy。

#apt-get install ceph-deploy

7、使用ceph-deploy工具在指定节点上安装ceph软件集合。

#ceph-deploy install —release infernalis ceph1

这里使用选项—release表示安装指定版本infernalis。此时会在ceph1这台机器上安装infernalis版本的ceph及其依赖。

8、创建一个ceph集群。

#ceph-deploy new ceph1

在机器名称为ceph1的硬件机器上创建ceph集群(这里由于环境的限制,我在一台物理机上搭建集群,该集群包括:一个monitor和三个OSDs);

此时可以看到ceph.conf文件以及ceph.client.mon.keyring文件,这两个文件分别是ceph集群的配置文件和mon用户访问ceph集群的权限文件。在ceph.conf文件中我们能看到如下信息:

fsid = xxxxxx#集群的唯一ID号

mon_initial_members = ceph1#monitor节点名称

mon_host = 192.168.250.93#monitor节点IP地址

auth_cluster_required = cephx#

auth_service_required = cephx#这三个表示访问集群需要cephx认证

auth_client_required = cephx#

filestore_xattr_use_omap = true#存储文件需要使用object map(用于ext4文件系统)

9、为集群创建monitor节点。

#ceph-deploy mon create ceph1

使用ceph-deploy new相同的参数来为集群创建monitor节点。该命令成功执行后在ceph1上就能看到ceph-mon这个进程了(表示monitor节点已经启动)。此时可以使用ceph -s命令查看当前ceph集群的状态。此时由于没有OSD,所以当前集群的状态是HEALTH_ERR。

10、收集集群中的keyring。

在添加OSD之前需要收集集群中关于monitor、自举OSD以及自举MDS的keyring。

#ceph-deploy gatherkeys ceph1

11、向集群添加OSD。

1)准备OSD磁盘。

#ceph-deploy disk zap ceph1:sdb

#ceph-deploy disk zap ceph1:sdc

#ceph-deploy disk zap ceph1:sdd

为ceph集群准备三块磁盘sdb/sdc/sdd。

2)创建OSD。

#ceph-deploy osd create ceph1:sdb ceph1:sdc ceph1:sdd

在ceph1节点上创建三个OSDs且磁盘分别是sdb/sdc/sdd。这里没有使用物理磁盘或物理磁盘分区作为journal,而是将journal和data放在同一个磁盘下(最好分别存放且最好使用ssd分区来保存journal)。

此时可以在ceph1上看到已经启动了三个ceph-osd进程。

12、更新集群的crushmap。

创建完集群后,通过ceph -s查看当前集群的状态,此时看到的状态的HEALTH_WARN且pgmap的状态不是active+clean的状态。其原因是由于三个OSDs部署到同一台物理设备上,其对应的crushmap将这三个OSDs都添加到同一个host里,因此会出现HEALTH_WARN状态。

这里通过简单的增加两个host且一个host里只包含一个OSD来调整ceph的状态到active+clean状态。

#ceph osd crush add-bucket ceph1_1 host

#ceph osd crush add-bucket ceph1_2 host

增加两个host节点

#ceph osd crush move ceph1_1 root=default

#ceph osd crush move ceph1_2 root=default

将新增的两个host节点放到root=default下

#ceph osd crush create-or-move osd.1 35363 root=default host=ceph1_1

#ceph osd crush create-or-move osd.2 35363 root=default host=ceph1_2

将osd.1和osd.2分别放到host=ceph1_1和host=ceph1_2这两个host下

此时通过集群状态查看命令ceph -s可以看到当前的状态已经变成active+clean状态了。

13、向集群添加MDS。

1)部署mds节点。

#ceph-deploy mds create ceph1

在ceph1节点上创建mds服务。该命令结束后可以在ceph1机器上看到ceph-mds进程已经启动。但是此时cephfs并不可用,因为此时ceph集群中并没有pools与cephfs相对应。

2)创建cephfs使用的pools。

由于cephfs需要使用ceph集群中2个pools,这两个pools分别对应于data和metadata。对于metadata使用的pool最好使用ssd作为后端存储,最好多个replicas以保证cephfs的稳定性和性能。

#ceph osd pool create cephfs_data 128

#ceph osd pool create cephfs_metadata 128

分别创建名称为cephfs_data和cephfs_metadata的pools且这两个pool中的PG数量为128;

3)使能cephfs。

#ceph fs new cephfs cephfs_metadata cephfs_data 

使用上述命令使能cephfs。此时可以在cluster map中看到mdsmap了。

4)查看mds状态。

#ceph mds stat

e5: 1/1/1 up {0=ceph1=up:active}

5)查看整个ceph集群的状态。

#ceph -s 

cluster b8c847df-6d60-4e57-a6c2-a62cde618a13

     health HEALTH_WARN

            too many PGs per OSD (320 > max 300)

     monmap e1: 1 mons at {ceph1=192.168.250.93:6789/0}

            election epoch 2, quorum 0 ceph1

     mdsmap e5: 1/1/1 up {0=ceph1=up:active}

     osdmap e28: 3 osds: 3 up, 3 in

            flags sortbitwise

      pgmap v60: 320 pgs, 3 pools, 1960 bytes data, 20 objects

            112 MB used, 1657 GB / 1657 GB avail

                 320 active+clean


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!