CentOS 6.8安装Ceph
机器规划
IP | 主机名 | 角色 |
10.101.0.1 | ceph01 | mon admin mds |
10.101.0.2 | ceph02 | ods |
10.101.0.3 | ceph03 | ods |
10.101.0.4 | ceph04 | ods |
10.101.0.5 | client | client(挂载点) |
考虑到高可用性,生产集群应该至少有 3 个监视器。
在每台机添加hosts
10.101.0.1 ceph01 10.101.0.2 ceph02 10.101.0.3 ceph03 10.101.0.4 ceph04
关闭防火墙和SELINUX
每个节点上创建ceph用户并添加sudo权限
useradd ceph echo "ceph ALL = (root) NOPASSWD:ALL" >/etc/sudoers.d/ceph echo "Defaults:ceph |requiretty" >/etc/sudoers.d/ceph
在管理节点ceph01上生成ceph用户的ssh公钥并实现免密码登录其他主机
1.所有机器安装epel和ceph源
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm rpm -ivh https://download.ceph.com/rpm-hammer/el6/noarch/ceph-release-1-1.el6.noarch.rpm
2.在管理节点上安装ceph-deploy(ceph01节点)
yum install -y ceph-deploy
3.在ceph集群安装
部署过程中有错误可以查看日志/var/log/ceph/
3.1切换到ceph用户执行(ceph01节点)
mkdir /home/ceph/ceph-cluster cd /home/ceph/ceph-cluster 生成集群配置文件 ceph-deploy new ceph01 #上面的命令会生成3个文件 ceph.conf #集群配置文件,此配置可按需修改或不修改也行 ceph.log #日志文件 ceph.mon.keyring #keyring文件,集群验证用
3.2安装ceph(ceph01节点)
ceph-deploy install ceph01 ceph02 ceph03 ceph04 --repo-url=https://download.ceph.com/rpm-hammer/el6/ #此命令将会按顺序在3台机上安装ceph
3.3创建并初始化监控节点(ceph01)
ceph-deploy mon create-initial
#执行此命令后会初始化mon节点,ceph.conf文件中声明了mon节点等信息
3.4添加数据节点(ceph02,ceph03,ceph04)
挂载好要使用的磁盘 mount /dev/sdb1 /data/osd0(另外两个节点类似,不过是osd1,osd2。名称可自定义)
3.5
在管理节点初始化磁盘(ceph01)
ceph-deploy disk zap ceph01:sdb ceph02:sdb ceph03:sdb
在管理节点准备OSD(ceph01)
ceph-deploy osd prepare ceph01:/data/osd0 ceph02:/data/osd1 ceph03:/data/osd2
3.6激活OSD(ceph01)
ceph-deploy osd activate ceph01:/data/osd0 ceph02:/data/osd1 ceph03:/data/osd2
3.7分发配置和密钥
使用ceph-deploy命令将配置文件和管理密钥复制到管理节点和你的Ceph节点。
ceph-deploy admin ceph01 ceph02 ceph03
3.8查看集群状态
sudo ceph health #集群健康状态,返回OK状态
sudo ceph -s #
sudo ceph status #集群状态
4.安装、挂载cephfs
4.1创建mds(ceph01节点)
ceph-deploy mds create ceph04 #如果报如下错误 RuntimeError: config file /etc/ceph/ceph.conf exists with different content; use --overwrite-conf to overwrite 加上--overwrite-conf参数 ceph-deploy --overwrite-conf mds create ceph04 查看mds进程 netstat -tnlp | grep mds tcp 0 0 172.16.100.5:6804 0.0.0.0:* LISTEN 12787/ceph-mds
4.2创建pool(ceph01节点)
查看pool ceph osd lspools 新创建的ceph集群默认只有rdb一个pool。这时我们需要创建新的pool 创建两个存储池。MDS需要使用两个pool,一个pool用来存储数据,一个pool用来存储元数据。 ceph osd pool create fs_data 32 #这里的32指的是PG组 ceph osd pool create fs_metadata 32 查看pool rados lspools
4.3创建Cephfs(ceph01节点)
ceph fs new cephfs fs_metadata fs_data #查看 ceph fs ls
#查看MDS状态
ceph mds stat
4.4在client节点挂载cephfs(client节点)
Client挂载方式有两种:内核kernal方式和fuse方式。(内核挂载方式需要2.6.34及其以后的版本才支持)
使用fuse方式挂载(注意:此方式读写效率很低)
安装ceph-fuse yum install -y ceph-fuse 复制配置文件 将ceph配置文件ceph.conf从管理节点copy到client节点 scp ceph@ceph01:/etc/ceph/ceph.conf /etc/ceph/ 复制密钥 将ceph的ceph.client.admin.keyring从管理节点copy到client节点 scp ceph@ceph01:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ 查看ceph授权 ceph auth list 创建挂载目录 mkdir /cephfs 挂载到指定目录 将ceph挂载到/cephfs ceph-fuse -m ceph01:6789 /cephfs(可以挂在多个mon节点保证高可用,ip:6789,ip:6789)
5.rbd块设备映射
使用rbd块设备方式挂载(读写效率高),但需要加载rbd内核模块,2.6.34之前的版本都没有该模块,要把系统内核升级到2.6.34或者更新。
创建一个pool
ceph osd pool create press 100
设置pool 的pgp_num
ceph osd pool set press pgp_num 100
查看创建的pool
ceph osd lspools
创建一个100G 名为 image 镜像
rbd create -p press --size 100000 image
查看镜像
rbd -p press info image
客户端块存储挂载:
rbd -p press map image mkfs.xfs /dev/rbd0 mount /dev/rbd0 /mnt/rbd
卸载map镜像
umount /mnt/rbd rbd unmap /dev/rbd0
参考文档:
http://www.cnblogs.com/keithtt/p/6410288.html