SDS-软件定义存储之CEPH

ceph-分布式存储

  • 高性能
    • 采用CRUSH算法,分布式存储,数据分布均衡,并行度高
    • 支持上千个存储节点,支持TB到PB级的数据
  • 高可用
    • 副本数可以灵活控制
    • 支持故障分离,数据强一致性
    • 多种故障场景自动修复
    • 没有单点故障,自动管理
  • 高扩展
    • 去中心化
    • 扩展灵活
    • 随节点增加而线性增长
  • 特性丰富
    • 支持三种存储接口:块存储,文件存储,对象存储.

文件存储

典型设备:FTP,NFS服务器

Ceph核心组件

  • Monitor
    一个ceph集群需要多个Monitor组成的小集群,通过Paxos同步数据,用来保存OSD元数据
  • OSD
    全称Object Storage Device,负责响应客户端请求返回具体数据的进程,一个ceph集群有多个OSD.
  • MDS
    Metadata Server,是cephfs服务依赖的元数据服务

案例拓扑图

在这里插入图片描述

>准备环境
>在节点node1配置ssh密钥,使node1可无密码连接node1,2,3
ssh-keygen -f /root/,ssh/id_rsa -N '' 
//生成密钥,-f指定密钥存储路径;-N无密码
for  i in 41 42 43 
do
ssh-copy-id 192.168.2.$i
done
//for循环拷贝公钥给node1,2,3节点
 vim /etc/hosts
192.168.2.41    node1
192.168.2.42     node2
192.168.2.43    node3
//配置静态域名解析
for i in 41 42 43
do
     scp /etc/hosts 192.168.2.$i:/etc
done
//分享给三个节点
>为所有ceph节点配置ceph-yum源
vim /etc/yum.repos.d/ceph.repo
[mon]
name=mon
baseurl=ftp://192.168.2.254/ceph/MON //MON软件包的位置
gpgcheck=0
[osd]
name=osd
baseurl=ftp://192.168.2.254/ceph/OSD
gpgcheck=0
[tools]
name=tools
baseurl=ftp://192.168.2.254/ceph/Tools
gpgcheck=0
yum repolist  //查看软件源数量
 for i in 41 42 43
do
     scp /etc/yum.repos.d/ceph.repo 192.168.2.$i:/etc/yum.repos.d/
done
>所有节点与真实主机NTP服务器同步时间
vim /etc/chrony.conf
… …
server 192.168.2.254   iburst
for i in 41  42  43
do
     scp /etc/chrony.conf 192.168.2.$i:/etc/
     ssh 192.168.2.$i "systemctl restart chronyd"
done
>为每台ceph节点添加3块20G磁盘
###############################
>部署ceph集群
node1主机安装ceph-deploy,创建工作目录,初始化配置文件
yum -y install ceph-deploy
mkdir ceph-cluster 
cd ceph-cluster
ceph-deploy new node1 node2 node3 //新建集群
>所有节点安装ceph先关软件包
for i in node1 node2 node3
do
ssh $i "yum -y install ceph-mon ceph-osd ceph-mds"
done
ceph-deploy mon create-intial   //初始化
ceph -s   //查看结果(3个节点)
>磁盘分区,创建journal盘,并永久修改设备权限
for i in node1 node2 node3 
do
ssh $i "parted /dev/vdb mklabel gpt"
ssh $i "parted /dev/vdb mkpart primary 1 50%"
ssh $i "parted /dev/vdb mkpart primary 50% 100%"
done      //将vdb分成两个区,作为缓存
>>修改/dev/vdb1 和/dev/vdb2的权属(node1 node2 node3)
临时修改:
chown ceph.ceph /dev/vdb1
chown ceph.ceph /dev/vdb2
永久修改
vim /etc/udev/rules.d/vdb.rules
ENV{DEVNAME}=="/dev/vdb1",OWNER="ceph",GROUP="ceph"
ENV{DEVNAME}=="/dev/vdb2",OWNER="ceph",GROUP="ceph"
>使用ceph-deploy初始化数据磁盘(node1上操作)
 ceph-deploy disk zap node1:vdc  node1:vdd
 ceph-deploy disk zap node2:vdc node2:vdd
 ceph-deploy disk zap node3:vdc node3:vdd
 >初始化OSD集群
 ceph-deploy osd create node1:vdc:/dev/vdb1 node1:vdd:/dev/vdb2
 //创建osd存储设备,vdc为集群提供存储空间,vdb1提供JOURNAL缓存,
 //一个存储设备对应一个缓存设备,缓存不需要很大
 ceph-deploy osd create node2:vdc:/dev/vdb1 node2:vdd:/dev/vdb2
 ceph-deploy osd create node3:vdc:/dev/vdb1 node3:vdd:/dev/vdb2
 ceph -s //查看集群状态
 #################################
 部署ceph 文件系统
 ceph-deploy mds create node3       //启动mds服务
 >创建存储池(文件系统由inode和block组成)
 ceph osd pool create cephfs_data 128     //最多文件目录128(必须为2的倍数)
 ceph osd pool create cephfs_metadata 128
ceph osd lspools  //查看存储池
>创建文件系统:文件系统有两个部分组成,需要两个存储池分别对应inode block
ceph fs noew myfs1 ceph_metadata cephfs_data
ceph fs ls  //查看新建的文件系统
##############################
服务器永久挂载ceph 文件系统
在ceph任意节点,查看ceph账户与密码
cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
     key = AQA0KtlcRGz5JxAA/K0AD/uNuLI1RqPsNGC7zg==
>/etc/ec.local是开机启动脚本,任何命令放在该文件都是开机自启
mount -t ceph 192.168.2.41:6789:/ /usr/local/nginx/html/   \
-o name=admin,secret=AQA0KtlcRGz5JxAA/K0AD/uNuLI1RqPsNGC7zg==
echo 'mount -t ceph 192.168.2.41:6789:/ /usr/local/nginx/html/ \
-o name=admin,secret=AQA0KtlcRGz5JxAA/K0AD/uNuLI1RqPsNGC7zg==' >> /etc/rc.local 
chmod +x /etc/rc.local
###################################
>另一种通过fstab永久挂载,需下载libcephfs1软件包
yum -y install libcphfs1
vim /etc/fstab
192.168.4.11:/ /usr/local/nginx/html/    ceph   defaults,_netdev,name=admin,
secret=AQCVcu9cWXkgKhAAWSa7qCFnFVbNCTB2DwGIOA== 0 0

块存储简称RBD(RADOS Block Device)

提供快照,克隆,备份等功能.可扩展,条带化方式存储到集群多个OSD中.两种方式KRBD和librbd

KRBD方式(Kernel RBD)3.1版本内核Kernel模块中集成RBD模块,基于内核驱动
常用命令
SERVER 端操作
modeprobe rdb //加载RBD内核模块
modinfo rbd  //查看rbd内核模块信息
rbd create image --szie 10G //创建一个10G大小的名为image的块设备
rbd list //列出存储池中的所有块设备,若没有指定存储池,默认rbd存储池,-p可用来指定存储池
rbd resize --szie 7G image --allow-shrink  //调整块设备image的大小
rbd resize --size 20G image  //默认允许放大,需设置allow-shrink才可缩小
rbd info image //显示image块设备的信息
........................
>创建镜像快照
rbd snap ls image //查看镜像image的快照
rbd snap create image --sanp image-snap1  //给镜像image创建快照image-snap1
rbd snap rolbak image --sanp image-snap1  //将镜像恢复到快照image-snap1时
rbd snap protect image --sanp image-snap1  //保护快照,不可删除
rbd snap rm image --snap image-snap1  //会显示删除失败
rbd clone image --snap image-snap1 image-clone 
//使用image的快照image-snap1克隆一个名为image-clone的镜像
rbd info image-clone //查看克隆镜像与父镜像快照的关系
rbd flatten image-clone //将父快照中的数据全部拷贝一份
rbd info image-clone //父快照信息消失,克隆镜像可独立工作
 rbd snap unprotect image --snap image-snap1     #取消快照保护
 rbd snap rm image --snap image-snap1    		#可以删除快照
############################
>CLIENT 端操作
rbd map image  //将image块设备映射到系统中
rbd showmapped //查看 系统中已经映射的快设备
rbd unmap /dev/xxx  //取消快设备的映射
mkfs.xfs /dev/rbd0   //格式化分区
mount /dev/rbd0 /mnt/    //挂载分区
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值