eph的设计目标是是在廉价的存储介质上构建具有 high performance, high scalibility, high available, 提供统一存储,分文件存储,块存储,对象存储。最近看了相关文档觉得挺有意思,而且它已经能为openstack提供块存储,非常贴合主流趋势。
Ceph部署
1、主机准备
实验环境为VMare虚拟机机上进行实验,主要是为了对Cph有直观的认识。
第一步:准备5台主机
IP地址 主机名(Hostname)
192.168.1.110 admin-node (该主机用于管理,后续的ceph-deploy工具都在该主机上进行操作)
192.168.1.111 node1 (监控节点)
192.168.1.112 node2 (osd.0节点)
192.168.1.113 node3 (osd.1节点)
192.168.1.114 client-node (客服端,主要利用它挂载ceph集群提供的存储进行测试)
第二步:修改admin-node节点/etc/hosts文件,增加一下内容
192.168.1.111 node1
192.168.1.112 node2
192.168.1.113 node3
192.168.1.114 client-node
说明:ceph-deploy工具都是通过主机名与其他节点通信。修改主机名的命令为:hostnamectl set-hostname "新的名字"
第三步:
分别为5台主机存储创建用户ceph:(使用root权限,或者具有root权限)
创建用户
sudo adduser -d /home/ceph -m ceph
设置密码
sudo passwd ceph
设置账户权限
echo “ceph ALL = (root) NOPASSWD:ALL” | sudo tee /etc/sudoers.d/ceph
sudo chomod 0440 /etc/sudoers.d/ceph
执行命令visudo修改suoders文件:
把Defaults requiretty 这一行修改为修改 Defaults:ceph !requiretty
如果不进行修改ceph-depoy利用ssh执行命令将会出错
2、配置admin-node与其他节点ssh无密码root权限访问其它节点。
第一步:在admin-node主机上执行命令:
ssh-keygen
说明:(为了简单点命令执行时直接确定即可)
第二步:将第一步的key复制至其他节点
ssh-copy-id ceph@node1
ssh-copy-id ceph@node2
ssh-copy-id ceph@node3
ssh-copy-id ceph@client-node
同时修改~/.ssh/config文件增加一下内容:
Host node1
Hostname 192.168.1.111
User ceph
Host node2
Hostname 192.168.1.112
User ceph
Host node3
Hostname 192.168.1.113
User ceph
Host client-node
Hostname 192.168.1.114
User ceph
3、为admin-node节点安装ceph-deploy
第一步:增加 yum配置文件
sudo vim /etc/yum.repos.d/ceph.repo
添加以下内容:
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://ceph.com/rpm-firefly/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
第二步:更新软件源并按照ceph-deploy,时间同步软件
sudo yum update && sudo yum install ceph-deploy
sudo yum install ntp ntpupdate ntp-doc
4、关闭所有节点的防火墙以及安全选项(在所有节点上执行)以及其他一些步骤
sudo systemctl stop firewall.service
sudo setenforce 0
sudo yum install yum-plugin-priorities
总结:经过以上步骤前提条件都准备好了接下来真正部署ceph了。
5、以前面创建的ceph用户在admin-node节点上创建目录
mkdir my-cluster
cd my-cluster
6、创建集群
节点关系示意图:node1作为监控节点,node2,node3作为osd节点, admin-node作为管理节点,其关系如下图所示:
第一步:执行以下命令创建以node1为监控节点的集群。
ceph-deploy new node1
执行该命令后将在当前目录生产ceph.conf 文件,打开文件并增加一下内容:
osd pool default size = 2
第二步:利用ceph-deploy为节点安装ceph
ceph install admin-node node1 node2 node3
第三步:初始化监控节点并收集keyring:
ceph-deploy mon create-initial
6、为存储节点osd进程分配磁盘空间:
ssh node2
sudo mkdir /var/local/osd0
exit
ssh node3
sudo mkdir /var/local/osd1
exit
接下来通过admin-node节点的ceph-deploy开启其他节点osd进程,并激活。
ceph-deploy osd prepare node2:/var/local/osd0 node3:/var/local/osd1
ceph-deploy osd active node2:/var/local/osd0 node3:/var/local/osd1
把admin-node节点的配置文件与keyring同步至其它节点:
ceph-deploy admin admin-node node1 node2 node3
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
最后通过命令查看集群健康状态:
ceph health
如果成功将提示:HEALTH_OK
Ceph存储空间使用:
1、准备client-node
通过admin-node节点执行命令:
ceph-deploy install client-node
ceph-deploy admin client-node
2、创建块设备映像:
rbd create foo --size 4096
将ceph提供的块设备映射到client-node
sudo rbd map foo --pool rbd --name client.admin
3、创建文件系统
sudo mkfs.ext4 -m0 /dev/rbd/foo
4、挂载文件系统
sudo mkdir /mnt/test
sudo mount /dev/rbd/foo /mnt/test
cd /mnt/test
Finished!!!!!!!!!!!!