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 是表示快照

ceph用podman使用本地镜像安装_IP

rbd resize –size 15G demo-image    #给demo-image镜像加容量—allow-shrink 缩小容量(缩小容量慎用)

rbd showmapped    #查看共享磁盘镜像名

客户端访问块共享需要安装ceph-common

------------上述操作如果实际生产环境访问监控节点必须拷贝秘钥---------