ceph分布式存储简介&部署

ceph分布式存储简介

ceph是一种开源的分布式文件系统,支持块存储,文件系统存储,对象存储。rdb是ceph的块存储设备,通过网络连接到ceph集群(数据存储在服务器端)。

3种数据存储方式

  • 块存储:直接将数据写入设备,没有元数据区(相当于索引),写入块,读取慢,数- 据只能独享给挂在的设备。
  • 文件系统存储:xfs,ext等,有 元数据区,写入慢,读取块,支持共享,数据存储在服务器端。
  • 对象存储:介于块存储和文件系统存储之间,支持共享,数据存储在服务器端。

ceph组件

  • OSD:守护进程,功能是数据副本化,再均衡(将数据给每一个磁盘备份),数据的回填等。
  • Monitor:ceph有web页面,用来监控ceph集群的数据。
  • MDS:元数据服务器,存储元数据。

ceph架构

  • RADOS:可靠自主分布式对象存储,ceph存储的基础,保证一切数据以对象的形式存储,至少有两个副本才能达到高可用的效果。
  • LIBADOS:对RADOS进行封装,向上层提供接口API。

ceph优点

  • 统一存储:上层有支持块和对象的接口。
  • 高扩展性:方便扩大容量,,能够管理EB级的容量
  • 可靠性强:多副本,高可用。
  • 高性能:由于多副本,所以读写高并行,速度加倍。

ceph集群部署

示例架构:
ceph01    192.168.11.128    admin,osd, mon 作为管理和监控节点
ceph02    192.168.11.129    osd,mds
ceph03    192.168.11.130    osd,mds
ceph04    192.168.11.131    client

  • 基础配置:关闭防火墙,selinux,修改主机名,解析/etc/hosts
  • 由于不能更改sda的存储模式,若无其余磁盘,则要添加新的硬盘,例sdb,在将每一台的sdb格式化成xfs格式。
*每一台都要做哦*
[root@ceph-1 ~]# lsblk  #查看所有磁盘
[root@ceph-1 ~]# mkfs.xfs /dev/sdb
  • 创建挂载点,并挂载
*每一台都要做哦*
[root@ceph-1 ~]# mkdir -p /var/local/osd0
[root@ceph-1 ~]# chmod 777 /var/local/osd0
[root@ceph-1 ~]# mount /dev/sdb /var/local/osd0
[root@ceph-1 ~]# mount  #检查
[root@ceph-2 ~]# mkdir -p /var/local/osd1
[root@ceph-2 ~]# chmod 777 /var/local/osd1
[root@ceph-2 ~]# mount /dev/sdb /var/local/osd1
[root@ceph-2 ~]# mount  #检查
.
.
.
  • 配置多机互信,即可以互相免密ssh:
[root@ceph-1 ~]# ssh-keygen #一路回车
[root@ceph-1 ~]# ssh-copy-id ceph-1
*将每一台的密钥都发给ceph-1
[root@ceph-1 ~]# scp ~/.ssh/authorized_keys 【其他节点的~/.ssh/下】
  • 每个节点都要有ceph.repo的配置文件,因为都要下载ceph和测评和ceph-radosgw
[root@ceph-1 ~]# vi /etc/yum.repos.d/ceph.repo
[Ceph-SRPMS]
name=Ceph SRPMS packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS/
enabled=1
gpgcheck=0
type=rpm-md
 
[Ceph-aarch64]
name=Ceph aarch64 packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-jewel/el7/aarch64/
enabled=1
gpgcheck=0
type=rpm-md
 
[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
enabled=1
gpgcheck=0
type=rpm-md
 
[Ceph-x86_64]
name=Ceph x86_64 packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
enabled=1
gpgcheck=0
[root@ceph-1 ~]# yum clean all && yum list # 更新软件源
  • 管理节点安装ceph-deploy工具
[root@ceph-1 ~]# yum -y install ceph-deploy
  • 创建monitor服务
[root@ceph-1 ~]# mkdir -p /etc/ceph
[root@ceph-1 ~]# cd /etc/ceph
[root@ceph-1 ceph]#  ceph-deploy new ceph-1 && ls  #查看产生的相关文件
ceph.conf  ceph.log  ceph.mon.keyring
配置文件     日志文件    密钥环
  • 修改配置文件中的副本数,根据自己的情况。
[root@ceph-1 ~]# vi /etc/ceph/ceph.conf
[global]
fsid = 92f5581d-79d2-4c9f-a523-4965eedc846b
mon_initial_members = ceph01
mon_host = 192.168.11.128
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd_pool_default_size = 2    #本示例实验的副本数是2
  • 所有节点安装ceph和ceph-radosgw,
    一定要在/etc/ceph/目录下操作
[root@ceph-1 ceph]# ceph-deploy install ceph-1 ceph-2 ceph-3 ceph-4
[root@ceph-1 ceph]# ceph-deploy mon create ceph-1  #安装mon在该节点
[root@ceph-1 ceph]# ceph-deploy gatherkeysceph-1  #手机节点所有的keyring文件
  • 创建激活osd节点
创建osd
[root@ceph-1 ceph]# ceph-deploy osd prepare ceph-1:/var/local/osd0 ceph-2:/var/local/osd1 ceph-3:/var/local/osd2  
[root@ceph-1 ceph]# chmod 777 /var/local/osd0 #每个节点都要修改
[root@ceph-2 ceph]# chmod 777 /var/local/osd1
[root@ceph-3 ceph]# chmod 777 /var/local/osd2
激活osd
[root@ceph-1 ceph]# ceph-deploy osd activate ceph-1:/vat/local/osd0 ceph-2:/var/local/osd1 ceph-3:/var/local/osd2
查看状态
[root@ceph-1 ceph]# ceph-deploy osd list ceph-1 ceph-2 ceph-3
  • 统一配置
    1.把ceph-1的配置文件和密钥环靠背到所有节点,这样每次执行ceph命令时就不用每次都制定moniter和keyring了
    2.各节点修改ceph.client.admin.keyring的权限为777
[root@ceph-1 ceph]# ceph-deploy admin ceph-1 ceph-2 ceph-3
[root@ceph-1 ceph]# chmod 777 /etc/ceph/ceph.client.admin.keyring
  • 查看osd状态
[root@ceph-1 ceph]# ceph-deploy health 或 ceph -s
  • 部署mds服务
[root@ceph-1 ceph]# ceph-deploy mds create ceph-2 ceoh-3 
 *注意部署在相应的机器上
 [root@ceph-1 ceph]# ceph-deploy stat
  • 查看集群状态
[root@ceph-1 ceph]# ceph -s
cluster c758685e-14e4-4ad5-bafa-800d722a16f7
 health HEALTH_OK
 monmap e1: 1 mons at {ceph-1=192.168.178.128:6789/0}    #mon部署在哪一个节点
        election epoch 3, quorum 0 ceph-1
 osdmap e15: 3 osds: 3 up, 3 in   #3个osd,有3个是up
        flags sortbitwise,require_jewel_osds
  pgmap v26: 64 pgs, 1 pools, 0 bytes data, 0 objects
        15681 MB used, 45728 MB / 61410 MB avail
              64 active+clean

ceph的使用——客户端挂载

  • 1.内核驱动挂载ceph文件系统
  • 2.用户控件挂载ceph系统

1.内核驱动挂载:

[root@ceph-1 ceph]# ceph-deploy admin ceph-4  
**将密钥环和配置文件等发给要挂载的客户端**
[root@ceph-4 ~]# mkdir -p /opt   #客户端创佳挂载点
[root@ceph-4 ~]# cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
	key = AQC9+c9cW7snMBAAJ/vKwhiU6v2sbIMrtYuPbA==
**将key的值复制,直接写入下面这个文件中
[root@ceph-4 ~]# echo "AQC9+c9cW7snMBAAJ/vKwhiU6v2sbIMrtYuPbA==">/etc/ceph/admin.secret
[root@ceph-4 ~]# mount -t ceph ceph-1:/ /opt -o name=admin,secretfile=/etc/ceph/admin.secret
[root@ceph-4 ~]# df -Th  #查看挂载结果

你可能感兴趣的:(存储)