1 物理拓扑
使用4台服务器搭建该环境
ceph_node01 172.16.1.141
ceph_node02 172.16.1.142
ceph_node03 172.16.1.143
ceph_node04 172.16.1.144
管理节点和客服端节点都在ceph_node01上,monitor在ceph_node02上,osd在ceph_node03、ceph_node04上。
2 在所有节点上创建用户ceph,并让其具有root权限
adduser -d /home/ceph -m ceph
passwd ceph
3 在管理节点(ceph_node01)上配置ceph这个用户的ssh免密码认证
ssh-keygen 直接全部回车
cd .ssh/
ssh-copy-id ceph@ceph_node02
ssh-copy-id ceph@ceph_node03
ssh-copy-id ceph@ceph_node04
在.ssh目录下需要创建一个config文件,对ceph的节点做解析,在deploy时会使用到。
[ceph@ceph_node01 .ssh]$ pwd
/home/ceph/.ssh
[ceph@ceph_node01 .ssh]$ mkdir config
[ceph@ceph_node01 .ssh]$ chmod 600 config
config文件内容:
[ceph@ceph_node01 .ssh]$ cat config
Host node1
Hostname ceph_node02
User ceph
Host node2
Hostname ceph_node03
User ceph
Host node3
Hostname ceph_node04
User ceph
Host admin-node
Hostname ceph_node01
User ceph
4 配置ntp时钟同步
如果没有ntp相关命令,则每台都需要安装ntp
yum install ntp ntpdate ntp-doc
执行下面的命令同步时间
/usr/sbin/ntpdate time.windows.com
配置定时任务,每5分钟同步一次
echo "*/5 * * * * /usr/sbin/ntpdate time.windows.com >/dev/null 2>&1" >>/var/spool/cron/root
5 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
6 配置epel源
sudo yum install -y yum-utils && sudo yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/ && sudo yum install --nogpgcheck -y epel-release && sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && sudo rm /etc/yum.repos.d/dl.fedoraproject.org*
添加ceph.repo源:
[root@ceph_node01 yum.repos.d]# vim ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=http://ceph.com/rpm-hammer/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://ceph.com/rpm-hammer/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://ceph.com/rpm-hammer/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
priority=1
7 更新yum源,并部署deploy工具
sudo yum update && sudo yum install ceph-deploy
sudo yum install yum-plugin-priorities
8 在管理节点上,切换到ceph用户下
mkdir my-cluster
cd my-cluster
创建集群并制定集群的监控节点
ceph-deploy new ceph_node02
执行该命令后将在当前目录生产ceph.conf 文件,打开文件并增加以下内容:
osd pool default size = 2
在所有节点上安装ceph软件
ceph-deploy install ceph_node01 ceph_node02 ceph_node03 ceph_node04
初始化监控节点并收集keyring
ceph-deploy mon create-initial
9 为存储节点osd进程分配磁盘空间
分别登录到ceph_node03 ceph_node04
03上创建:
/ceph/osd0
04上创建:
/ceph/osd1
在管理节点上执行:开启osd进程,并激活
sudo ceph-deploy osd prepare ceph_node03:/ceph/osd0 ceph_node04:/ceph/osd1
sudo ceph-deploy osd activate ceph_node03:/ceph/osd0 ceph_node04:/ceph/osd1
10 在管理节点上执行下面的命令:把管理节点的配置文件与keyring同步至其它节点:
sudo ceph-deploy admin ceph_node01 ceph_node02 ceph_node03 ceph_node04
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
11 检查集群健康状态,以下两种方式都可以查看
[ceph@ceph_node01 my-cluster]$ sudo ceph health
HEALTH_OK
[ceph@ceph_node01 my-cluster]$ sudo ceph -s
12 在客服端上使用ceph存储空间:
准备client-node
通过admin-node节点执行命令:
ceph-deploy install client-node
注:本次实验client节点和管理节点都在一台服务器上,所以前面已经安装了ceph,
ceph-deploy admin client-node ---推送配置和keying到客户端
创建块设备
sudo rbd create foo --size 10000 --块设备大小
将ceph提供的块设备映射到client-node
sudo rbd map foo --pool rbd
格式化设备
sudo mkfs.xfs /dev/rbd0
挂载
sudo mount /dev/rbd0 /mnt/cephdir/
常用命令:
rbd ls //查看本机的rbd设备
rbd info foo //查看模块rbd设备的相关信息
rbd showmapped //查看rbd设备映射信息
ceph health //ceph健康状态
ceph status //ceph当前全部状态
ceph -w //实时监控ceph状态及变化
ceph osd dump //所有osd详细状态
ceph osd tree //osd所在位置,及状态
ceph quorum_status //mon优先级状态
ceph mon dump //mon节点状态
ceph mds dump //mds详细状态
ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show //在osd上查看详细的配置信息