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
来源:oschina
链接:https://my.oschina.net/u/206258/blog/546201