cephFS分布式文件系统环境部署和使用

ceph底层是把多个硬盘合并成逻辑存储池 形成(逻辑统一) (lun合并成逻辑硬盘)保存数据时会将数据保存到任意一个节。

数据(12m)在客户端进行分片 每个片4m 存储池 又分了多个pg(放置组) 数据放入pg(对象数据) 然后再把pg放到多个osd上

支持的存储类型

对象存储

横向存储 它保存丰富的文件元数据 快速查询 适合大文件 媒体文件的保存

块存储

数据以固定大小的“块”形式存储,高性能,低延迟。每个块都是独立的对象 如数据库的保存方式 相当于是一块硬盘(存储设备)一样(未格式化的)裸空间 人类不可读而已。

文件系统存储

层级存储 它适合保存小文件 可用设置文件目录的安全锁 文件以块镜进行保存 是人类可读的形式。

存储池的类型

– replicated pools
副本池,将数据存储为3副本,也就是说数据默认会被存储为3份。
当然,创建存储池时可以修改对应的副本数量。

– erasure-coded pools
相比于副本池并不会将数据存储3份,而是基于纠删码技术节省存储空间,达到数据冗余的效果。

CephFS概述

RBD提供了远程磁盘挂载的问题,但无法做到多个主机共享一个磁盘,如果有一份数据很多客户端都要读写该怎么办呢?这时CephFS作为文件系统解决方案就派上用场了

CephFS架构原理

CephFS需要至少运行一个元数据服务器(MDS)守护进程(ceph-mds),此进程管理与CephFS上存储文件相关的元数据信息。

MDS虽然称为元数据服务,但是它却不存储任何元数据信息,它存在的目的仅仅是让我们rados集群提供存储接口。

客户端在访问文件接口时,首先链接到MDS上,在MDS到内存里面维持元数据的索引信息,从而间接找到去哪个数据节点读取数据。这一点和HDFS文件系统类似。

CephFS和NFS对比

相较于NFS来说,它主要有以下特点优势: – 1.底层数据冗余的功能,底层的roados提供了基本数据冗余功能,因此不存在NFS的单点故障因素; – 2.底层roados系统有N个存储节点组成,所以数据的存储可以分散I/O,吞吐量较高; – 3.底层roados系统有N个存储节点组成,所以ceph提供的扩展性要相当的高;

cephFS的一主一从架构部署

https://docs.ceph.com/en/reef/cephfs/createfs/

创建两个存储池分别用于存储mds的元数据和数据

ceph osd pool create cephfs_data
ceph osd pool create cephfs_metadata

创建一个文件系统,名称为”test-cephfs”

ceph fs new test-cephfs cephfs_metadata cephfs_data
ceph fs ls

查看创建的文件系统

ceph fs ls
ceph mds stat
ceph -s

应用mds的文件系统

ceph orch apply mds test-cephfs
ceph mds stat
ceph fs ls
ceph -s

添加多个mds服务器

ceph orch daemon add mds test-cephfs ceph143
ceph orch daemon add mds test-cephfs ceph141

查看cephFS集群的详细信息

ceph fs status test-cephfs

cephfs的客户端之借助内核模块挂载

管理节点创建用户并导出钥匙环和key文件

创建用户并授权

ceph auth add client.yinzhengjiefs mon 'allow r' mds 'allow rw' osd 'allow rwx'

导出认证信息

ceph auth get client.test > ceph.client.test.keyring
cat ceph.client.test.keyring
ceph auth print-key client.test> test.key
more yinzhengjiefs.key

将钥匙环和秘钥key拷贝到客户端指定目录

scp ceph.client.test.keyring test.key ceph143:/etc/ceph/
scp ceph.client.test.keyring 10.0.0.250:/etc/ceph/

基于secretfile进行挂载

查看本地文件

 ll /etc/ceph/ | grep test

查看本地解析记录

 grep ceph /etc/hosts

基于key文件进行挂载并尝试写入数据 (报错则安装客户端服务)

df -h | grep mnt
mount -t ceph ceph141:6789,ceph142:6789,ceph143:6789:/ /mnt -o name=test,secretfile=/etc/ceph/test.key
df -h | grep mnt

基于KEY进行挂载,无需拷贝秘钥文件

df -h | grep mnt
mount -t ceph 10.0.0.141:6789,10.0.0.142:6789:/ /mnt -o name=test,secret=AQARZlJn4B54ExAAFNdetd3leGZ7R+7bbbUNoA==
df -h | grep mnt

cephfs的客户端之基于用户空间fuse方式访问

FUSE概述

对于某些操作系统来说,它没有提供对应的ceph内核模块,我们还需要使用CephFS的话,可以通过FUSE方式来实现。

FUSE英文全称为:”Filesystem in Userspace”,用于非特权用户能够无需操作内核而创建文件系统,但需要单独安装”ceph-fuse”程序包。

安装ceph-fuse程序包

apt -y install ceph-fuse

使用ceph-fuse工具挂载cephFS

创建挂载点

mkdir -pv /test/cephfs

开始挂载ceph

mkdir /etc/ceph
scp 10.0.0.141:/etc/ceph/ceph.client.admin.keyring /etc/ceph

验证是否挂载成功

df -h | grep /test

CephNFS创建和挂载成功~

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇