Ceph
存储分类:
本地存储,不能再网络上用
ext3 ext4 ntfs
网络文件存储
nfs
共享的裸设备
块存储(iscsi) SAN(存储区域网)
分布式存储集群
namenode 元数据服务器
ceph基本组件
①Monitors 监视节点或者把客户端请求分配给OSD节点至少要三个mon,因为过半原则(意思就是要想运行ceph必须要求两台可使用),所谓高可用(是一般生产企业保存三个副本,就是比如你存10G,结果一共占用30G)必须安装此组件
②Managers 收集ceph集群状态 建议安装
③OSD 共享磁盘 必须安装
④MDSs 做文件共享系统才需要安装
⑤RGW 做对象存储才需要安装
一、 ceph集群–前期环境准备
1、 环境准备
主机名 IP地址 作用
xuegod120.com 192.168.0.120 admin,osd,mon作为管理和监控节点
www1 192.168.0.130 osd,mds
www2 192.168.0.140 osd,mds
www3 192.168.0.150 client
2、 添加硬件
给前三台ceph节点添加一块硬盘,并格式化后挂载
[root@xuegod120 ~]# mkfs.xfs /dev/sdb
[root@xuegod120 ~]# mkdir /var/local/osd{0,1,2}
[root@xuegod120 ~]# mount /dev/sdb /var/local/osd0/
[root@www1 ~]# mkfs.xfs /dev/sdb
[root@www1 ~]# mkdir /var/local/osd{0,1,2}
[root@www1 ~]# mount /dev/sdb /var/local/osd1/
[root@www2 ~]# mkfs.xfs /dev/sdb
[root@www2 ~]# mkdir /var/local/osd{0,1,2}
[root@www2 ~]# mount /dev/sdb /var/local/osd2/
3、 SSH免密登录
所有节点都需要互相免密登录
[root@xuegod120 ~]# ssh-keygen #四台主机都需要做ssh免密
[root@xuegod120 ~]# ssh-copy-id xuegod120.com
[root@xuegod120 ~]# ssh-copy-id www1
[root@xuegod120 ~]# ssh-copy-id www2
[root@xuegod120 ~]# ssh-copy-id www3
登录测试
[root@xuegod120 ~]# ssh xuegod120.com
Last login: Fri Jul 26 18:23:51 2019 from 192.168.0.106
[root@xuegod120 ~]# ssh www1
Last login: Fri Jul 26 18:23:50 2019 from 192.168.0.106
[root@xuegod120 ~]# ssh www2
Last login: Fri Jul 26 18:23:48 2019 from 192.168.0.106
[root@xuegod120 ~]# ssh www3
Last login: Fri Jul 26 18:34:01 2019 from 192.168.0.106
4、 时间同步
通过ceph节点主机的时间,保证时间一致
[root@xuegod120 ~]# yum -y install ntp
[root@xuegod120 ~]# systemctl start ntpd
[root@www1 ~]# yum -y install ntp
[root@www1 ~]# ntpdate xuegod120.com
[root@www2 ~]# yum -y install ntp
[root@www2 ~]# ntpdate xuegod120.com
[root@www3 ~]# yum -y install ntp
[root@www3 ~]# ntpdate xuegod120.com
或者使用网络ntp服务器同步时间
ntp1.aliyun.com
ntp2.aliyun.com
ntp3.aliyun.com
ntp4.aliyun.com
ntp5.aliyun.com
ntp6.aliyun.com
ntp7.aliyun.com
5、 编辑hostst文件(第一种方法)
所有节点都需要编辑添加对应的IP地址和主机名
[root@xuegod120 ~]# vim /etc/hosts #四台主机都需要添加
192.168.0.120 xuegod120.com
192.168.0.130 www1
192.168.0.140 www2
192.168.0.150 www3
编辑hostst文件(第二种方法)
在这台登录到其他服务器上不需要密码的服务器
[root@xuegod120 ~]# vim /etc/hosts #把本台服务器这个文件下增加以下内容
192.168.0.120 xuegod120.com
192.168.0.130 www1
192.168.0.140 www2
192.168.0.150 www3
[root@xuegod120 ~]# for i in 130 140 150 #可以跟IP或者可以跟主机名
>do
> scp /etc/hosts $i: /etc/
>done
#上面意思就是拷贝文件过去
6、配置yum源
[root@xuegod120 ~]# vim /etc/yum.repos.d/ceph.repo
配置三个yum源
第一个源是mon 第二个是osd 第三个是tools 你可以去阿里下载到本地打开之后可以看到这三个文件,把他配置成yum源就可以了
Yum repolist #配置完成以后可以验证一下里面有包不
[root@xuegod120 ~]# for i in 130 140 150 #可以跟IP或者可以跟主机名
>do
> scp /etc/yum.repos.d/ceph.repo $i: /etc/yum.repos.d/
>done
#上面意思就是拷贝文件过去
———————至此以上环境准备工作完成—————————
二、部署ceph集群
官网批量使用ceph-deploy软件部署ceph,如果自己会ansible也可以用它部署。
[root@xuegod120 ~]# yum install ceph-deploy –y
[root@xuegod120 ~]# mkdir /etc/ceph #这个目录随便创建,只是注意以后执行ceph-deploy脚本,必须进这个目录
下面是需要安装的组件(自己可以看看按照生产需求环境装)
[root@xuegod120 ceph]# for I in xuegod130.com xuegod140.com
>do
>ssh $i ”yum –y install ceph-mon ceph-osd ceph-mds ceph-radosgw #mds是用文件存储装的,radosgw对象存储共享
>done
[root@xuegod120 ceph ]# ceph-deploy new xuegod120.com
#先进这个目录,执行后会在刚刚这个创建的目录配置文件下会生成ceph配置文件,谁是监控节点后面要加主机名
[root@xuegod120 ceph]# cat ceph.conf
[global]
fsid = ab70d4a7-8a06-414e-a852-81b48d27710b
mon_initial_members = xuegod120 #监控主机名
mon_host = 192.168.0.120 #监控主机IP
auth_cluster_required = cephx #集群访问需要秘钥
auth_service_required = cephx #其他mon访问需要秘钥
auth_client_required = cephx
osd_pool_default_size = 2 #增加这行内容,表示副本数为2
[root@xuegod120 ceph]# ceph-deploy mon create-initial
#配置文件ceph.conf中有几个mon的IP,ceph-deploy脚本知道自己应该远程谁,然后去安装mon的配置文件,并且会自动启动
[root@xuegod120 ceph]# systemctl status ceph-mon@ www1
查看mon的状态是不是激活状态
Ceph –s #查看集群状态
创建osd空间:
在前面准备过程中已经完成osd的目录创建和挂在
ceph-deploy osd prepare 主机名: /每个节点上的路径 #然后该路径下会各个节点目录会有对应文件,最后把prepare改成activate就是激活osd
————上述如果出现报错,就去节点上把文件权限改大一点———
常用命令:
ceph osd pool create tyx #创建一个共享池
ceph osd lspools #查看共享池rbd为默认共享池
ceph osd pool rename tyx www #重命名存储池
ceph osd pool set tyx size 2 #设置副本数
ceph osd pool get tyx size #查看副本数
以下是创建镜像共客户端挂在
--image-feature layering 是表示快照
rbd resize –size 15G demo-image #给demo-image镜像加容量—allow-shrink 缩小容量(缩小容量慎用)
rbd showmapped #查看共享磁盘镜像名
客户端访问块共享需要安装ceph-common
------------上述操作如果实际生产环境访问监控节点必须拷贝秘钥---------