ceph存储

ceph 分布式文件系统

特点: 高性能,高扩展,高可靠
1,高性能:摒弃了传统集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高;考虑容灾区域的隔离,实现各类负载的副本防止规则,跨机房等;能支持上千个存储节点,支持TB到PB的数据
2,高可用:副本数灵活控制;故障域隔离,数据强一致性;多种故障自动修复,没有单点故障
3,高扩展:去中心化,扩展灵活,随节点增加而线性增长.
存储类型

  • 块存储
  • 文件存储
  • 对象存储

ceph架构

  • osd:object storage cluster对象存储集群,(将数据和元数据最为对象存储),ceph最底层的存储单元是object对象
  • mds:metadata server cluster,元数据服务器(cephFS依赖元数据服务)
  • mon:monitor,集群监视器.通过Paxos同步数据,用来保存OSD数据

RBD:RADOS block device,块存储服务
RGW:RADOS gateway,对象存储服务
CephFS:Ceph File System,文件系统服务
PG:placement group:逻辑概念,一个PG包含多个OSD,用途是对存储进行组织和位置映射(类似redishash槽的概念),更好的分配数据和定位数据.
RADOS:Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。

部署步骤
  • 准备工作
    1,配置节点yum源
    2,配置无密码连接,域名解析
    3,配置NTP时间同步
  • 部署集群
    1,安装部署软件ceph-deploy
    2,创建ceph集群
    3,创建osd

一,准备基础环境


>>1,配置ceph的安装yum源,每一个osd节点都需要
>mount ceph.iso /var/ftp/ceph/ //使用ftp提供镜像,安装yum源
cat /etc/yum.repos.d/ceph.repo
[mon]
name=mon   //mon监控服务
baseurl=ftp://192.168.4.254/ceph/MON
gpgcheck=0
[osd]
name=osd   //存储节点
baseurl=ftp://192.168.4.254/ceph/OSD
gpgcheck=0
[tools]
name=tools   //部署工具
baseurl=ftp://192.168.4.254/ceph/Tools
gpgcheck=0
yum repolist
>>2配置无密码连接,和域名解析,每台osd节点相同配置
 vim /etc.hosts
 192.168.4.10  client
192.168.4.11     node1
192.168.4.12     node2
192.168.4.13     node3
ssh-keygen -f /root/.ssh/id_rsa -N ' '
for i in 10 11 12 13
do
ssh-copy-id 192.168.4.$i
done
>>3,每台几点准备3块磁盘
>所有存储节点安装服务
yum -y install ceph-mon ceph-osd ceph-mds ceph-radosgw

部署ceph集群

>>1,选择一台服务器上安装部署软件,为管理服务
yum - y install ceph-deploy
ceph-deploy --help
ceph-deploy mon --help 
mkdir ceph-cluster  //创建其群工作目录
cd ceph-cluster/
>>2,创建集群,在ceph.conf文件中可以自定义monitor主机
ceph-deploy new node1 node2 node3
ceph-deploy mon create-initial //初始化mon服务(启动mon)
###必须在ceph-cluster目录下执行,报错从新配置初始化需下列命令
###ceph-deploy --overwrite-conf config push node1 node2 node3
>>3,创建osd存储池
为osd创建journal缓存盘,每个节点同理
parted /dev/vdb mklabel gpt
parted /dev/vdb mkpart primary 1 50%
parted /dev/vdb mkpart primary 50% 100%
分区默认权限ceph无法进行读写操作,需修改权限
chown ceph.ceph /dev/vdb1
chown ceph.ceph /dev/vdb2
上述权限临时有效,重启失效,永久配置
vim /etc/udev/rules.d/70-vdb.rules
ENV{DEVNAME}=="/dev/vdb1",OWNER="ceph",GROUP="ceph"
ENV{DEVNAME}=="/dev/vdb2",OWNER="ceph",GROUP="ceph"
>>4,初始化磁盘数据
ceph-deploy disk zap node1:vdc node1:vdd
ceph-deploy dik zap node2:vdc node2:vdd
ceph-deploy disk zap node3:vdc node3:vdd
>>5,创建osd存储空间
ceph-deploy osd create node1:vdc:/dev/vdb1 node1:vdd:/dev/vdb1 \
node2:vdc:/dev/vdb1 node2:vdc:/dev/vdb2
node3:vdc:/dev/vdb1 node3:vdc:/dev/vdb2
ceph -s //查看集群状态
 systemctl restart ceph\*.service ceph\*.target //重启服务

创建ceph块存储(基于镜像image)

>>1,查看存储池
ceph osd lspools
>>2,创建镜像,查看镜像
rbd create demo-image --image-feature layering --size 10G
//--image-feature参数指定我们创建的镜像有哪些功能,layering是开启COW功能
rbd create rbd/tom --image-feature layering --size 10G //在存储池rbd下创建镜像
rbd list //查看镜像
rbd info demo-image //查看镜像信息
>>3,动态调整
rbd resize --size 15 tom //扩大容量
rbd info tom
rbd resize --size 7G demo-image --allow-shrink  //缩小容量
rbd info demo-image
>>4,客户端通过KBBD访问
客户端需要安装ceph-common软件包
yum -y install ceph-common
拷贝集群配置文件(否则不知道集群位置)
scp node1:/etc/ceph/ceph.cnf /etc/ceph/
拷贝连接秘钥
scp node1:/etc/ceph/ceph.client.admin.keyring /etc/ceph/
rbd list //查看镜像
rbd map tom //挂载镜像tom为客户端的块设备 umap 卸载镜像
lsblk //查看块
rbd showmapped //查看已加载的镜像
mk.xfs /dev/rbd0 //格式化
mount /dev/rbd0 /mnt/
>>5,查看镜像快照
rbd snap ls demo-image
rbd snap create demo-image --snap demo-snap1 //为镜像创建快照demo-snap1 
>>6,删除文件,快照恢复
rm -rf /mnt/
umount /mnt/
rbd snap rollback demo-image --snap demo-snap1 //管理节点使用快照恢复镜像
mount /dev/rbd0 /mnt/  //客户端重新挂载
>>7,创建快照克隆
rbd clone demo-image --snap demo-snap1 demo-snap2 --image-feature layering 
//使用demo-image的镜像快照demo-snap1 克隆一个新的名称demo-snap2镜像
rbd info demo-snap2  //克隆镜像和父镜像快照存在父子关系
rbd flatten demo-snap2 //flatten摧毁父子关系,独立工作
rbd snap protect demo-image --snap demo-snap1 //保护快照,不可删除
rbd snap rm demo-image --snap demo-snap1 //删除快照失败
rbd snap unprotect demo-image --snap demo-snap1 //取消保护

ceph文件系统mds

>>1,部署mds节点
yum -y instll ceph-mds
cd ceph-cluster/
ceph-deploy mds create node1  //创建mds服务
ceph osd pool create cephfs_data 128 //创建存储池,对应128个PG,PG存储单位,必须时2的n次方
ceph osd pool create cephfs_metadata 128
>>2,文件系统由inode(文件描述信息)和block(数据)组成
ceph fs new myfs cephfs_metadata cephfs_data //默认只能创建一个文件系统
ceph fs ls //查看文件系统
>>3客户端挂载
 mount -t ceph 192.168.1.4.11:6789:/ /mnt/cephfs/ -o name=admin,secret=秘钥代码
 用户名和秘钥可在/etc/ceph/ceph.client.admin.keyring中查询

ceph对象存储ceph-radosgw

>>1,新建一个对象存储服务器
node:5 yum -y install ceph-radosgw
>>2管理服务器
cd cecph-cluster
ceph-deploy rgw create node5 //新建网关实例
 ceph-deploy admin node5 //通过admin重新发送配置和秘钥
 >>3,node5RGW默认端口7480
 vim /etc/ceph/ceph.conf
 [client.rgw.node5]
host = node5
rgw_frontends = "civetweb port=8000"
>>node5创建账户
radosgw-admin user create \
--uid="testuser" --display-name="First User"
… …
"keys": [
        {
            "user": "testuser",
            "access_key": "5E42OEGB1M95Y49IBG7B",
            "secret_key": "i8YtM8cs7QDCK3rTRopb0TTPBFJVXdEryRbeLGK6"
        }
    ],
... ...
 radosgw-admin user info --uid=testuser
//testuser为用户,key是账户访问密钥
>>4,客户端测试
curl node5:8000
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值