Ceph分布式存储
环境
实验:
步骤1:安装前准备
1)物理机为所有节点配置yum源服务器。
[root@room9pc01 ~]# yum -y install vsftpd
[root@room9pc01 ~]# mkdir /var/ftp/ceph
[root@room9pc01 ~]# mount -o loop \
rhcs2.0-rhosp9-20161113-x86_64.iso /var/ftp/ceph
[root@room9pc01 ~]# systemctl restart vsftpd
2)修改所有节点都需要配置YUM源(以node1为例)
[root@node1 ~]# vim /etc/yum.repos.d/ceph.repo
[mon]
name=mon
baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/MON
enabled=1
gpgcheck=0
[osd]
name=osd
baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/OSD
enabled=1
gpgcheck=0
[tools]
name=tools
baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/Tools
enabled=1
gpgcheck=0
3)配置/etc/hosts 文件,并同步到所有主机
警告:注意解析的主机名必须和本机名一致!!!
[root@node1 ~]# vim /etc/hosts
... ...
192.168.4.10 client
192.168.4.11 node1
192.168.4.12 node2
192.168.4.13 node3
4)配置无密码连接
[root@node1 ~]# ssh-keygen -f /root/.ssh/id_rsa -N ''
[root@node1 ~]# for i in 10 11 12 13 \
> do
> ssh-copy-id root@192.168.4.$i
> done
5)同步yum源与/etc/hosts 文件
[root@node1 ~]# for i in 10 12 13
> do
> scp /etc/yum.repos.d/ceph.repo root@192.168.4.$i:/etc/yum.repos.d/
> done
[root@node1 ~]# for i in 10 12 13
> do
> scp /etc/hosts root@192.168.4.$i:/etc
> done
步骤二:配置NTP时间同步
1)真实物理机创建NTP服务器
[root@room9pc01 ~]# yum -y install chrony
[root@client ~]# cat /etc/chrony.conf
server 0.centos.pool.ntp.org iburst
allow 192.168.4.0/24
local stratum 10
[root@room9pc01 ~]# systemctl restart chronyd
如果有防火墙规则,需要清空所有规则
[root@room9pc01 ~]# iptables -F
2)其他所有节点与NTP服务器同步时间
[root@node1 ~]# cat /etc/chrony.conf
server 192.168.4.254 iburst
[root@node1 ~]# systemctl restart chronyd
[root@node1 ~]# for i in 10 12 13
> do
> scp /etc/chrony.conf root@192.168.4.$i:/etc/
> done
步骤三:准备存储磁盘
1)物理机上为每个虚拟机准备3块磁盘。(可以使用命令,也可以使用图形直接添加)
实验二,部署ceph集群
步骤1,部署软件
1)在node1上安装部署工具,学习工具的语法格式
[root@node1 ~]# yum -y install ceph-deploy
[root@node1 ~]# ceph-deploy --help
2)创建目录
[root@node1 ~]# mkdir ceph-cluster
[root@node1 ~]# cd ceph-cluster/
步骤2,部署ceph集群
1)创建ceph集群配置
[root@node1 ceph-cluster]# ceph-deploy new node1 node2 node3
2)给所有节点安装软件包
[root@node1 ceph-cluster]# ceph-deploy install node1 node2 node3
3)初始化所有节点的mon服务(主机名必须解析对)
[root@node1 ceph-cluster]# ceph-deploy mon create-initial
步骤3,创建OSD
1)准备磁盘分区(node1 node2 node3都做一样的操作)
[root@node1 ceph-cluster]# parted /dev/vdb mklabel gpt
[root@node1 ceph-cluster]# parted /dev/vdb mkpart primary 1 50%
[root@node1 ceph-cluster]# parted /dev/vdb mkpart primary 50% 100%
[root@node1 ceph-cluster]# chown ceph.ceph /dev/vdb1
[root@node1 ceph-cluster]# chown ceph.ceph /dev/vdb2
//这两个分区用来做存储服务器的日志journal盘
[root@node1 ceph-cluster]# vim /etc/udev/rules.d/70-vdb.rules
ENV{DEVNAME}=="/dev/vdb1",OWNER="ceph",GROUP="ceph"
ENV{DEVNAME}=="/dev/vdb2",OWNER="ceph",GROUP="ceph"
2)初始化清空磁盘数据(仅node1操作即可)
[root@node1 ceph-cluster]# ceph-deploy disk zap node1:vdc node1:vdd
[root@node1 ceph-cluster]# ceph-deploy disk zap node2:vdc node2:vdd
[root@node1 ceph-cluster]# ceph-deploy disk zap node3:vdc node3:vdd
3)创建OSD存储空间(仅node1操作即可)
[root@node1 ceph-cluster]# ceph-deploy osd create \
node1:vdc:/dev/vdb1 node1:vdd:/dev/vdb2
//创建osd存储设备,vdc为集群提供存储空间,vdb1提供JOURNAL缓存,
//一个存储设备对应一个缓存设备,缓存需要SSD,不需要很大
[root@node1 ceph-cluster]# ceph-deploy osd create \
node2:vdc:/dev/vdb1 node2:vdd:/dev/vdb2
[root@node1 ceph-cluster]# ceph-deploy osd create \
node3:vdc:/dev/vdb1 node3:vdd:/dev/vdb2
步骤4,验证测试
1)查看集群状态
[root@node1 ~]# ceph -s