ceph-文件存储
文件存储
ceph文件系统提供了任何大小的符合posix标准的分布式文件系统,它使用Ceph RADOS存储数据。要实现ceph文件系统,需要一个正在运行的ceph存储集群和至少一个ceph元数据服务器(MDS)来管理其元数据并使其与数据分离,这有助于降低复杂性和提高可靠性。
libcephfs库在支持其多个客户机实现方面发挥重要作用。它具有本机linux内核驱动程序支持,因此客户机可以使用本机文件系统安装,例如使用mount命令。她与samba紧密集成,支持CIFS和SMB。Ceph FS使用cephfuse模块扩展到用户空间(FUSE)中的文件系统。它还允许使用libcephfs库与RADOS集群进行直接的应用程序交互。
只有Ceph FS才需要Ceph MDS,其他存储方法的块和基于对象的存储不需要MDS。Ceph MDS作为一个守护进程运行,它允许客户机挂载任意大小的POSIX文件系统。MDS不直接向客户端提供任何数据,数据服务仅OSD完成。
部署cephfs
[ceph-admin@ceph-node1 my-cluster]$ ceph-deploy mds create ceph-node2
创建池 FS
[ceph-admin@ceph-node1 my-cluster]$ ceph osd pool create cephfs_data
pool 'cephfs_data' created
[ceph-admin@ceph-node1 my-cluster]$ ceph osd pool create cephfs_metadata
pool 'cephfs_metadata' created
[ceph-admin@ceph-node1 my-cluster]$ ceph fs new cephfs cephfs_metadata cephfs_data
new fs with metadata pool and data pool
查看状态
[ceph-admin@ceph-node1 my-cluster]$ ceph mds stat
cephfs-// up {=ceph-node2=up:active}
[ceph-admin@ceph-node1 my-cluster]$ ceph osd pool ls
rbd
.rgw.root
default.rgw.control
default.rgw.meta
default.rgw.log
.rgw
.rgw.control
.rgw.gc
.rgw.buckets
.rgw.buckets.index
.rgw.buckets.extra
.log
.intent-log
.usage
.users
.users.email
.users.swift
.users.uid
default.rgw.buckets.index
default.rgw.buckets.data
cephfs_data
cephfs_metadata
[ceph-admin@ceph-node1 my-cluster]$ ceph fs ls
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
创建用户
[ceph-admin@ceph-node1 my-cluster]$ ceph auth get-or-create client.cephfs mon 'allow r' mds 'allow r,allow rw path=/' osd 'allow rw pool=cephfs_data' -o ceph.client.cephfs.keyring
[ceph-admin@ceph-node1 my-cluster]$ cat ceph.client.cephfs.keyring
[client.cephfs]
key = AQD2EWpcZasXIBAAzcdvbJxrwwgR1eDJHTz1lQ==
[ceph-admin@ceph-node1 my-cluster]$ scp ceph.client.cephfs.keyring root@192.168.0.123:/etc/ceph/ #将key复制到客户端
通过内核驱动和FUSE客户端挂载cephfs
[root@localhost ~]# ceph auth get-key client.cephfs
AQD2EWpcZasXIBAAzcdvbJxrwwgR1eDJHTz1lQ==
[root@localhost ~]#
[root@localhost ~]# mkdir /mnt/cephfs
[root@localhost ~]# mount -t ceph ceph-node2::/ /mnt/cephfs -o name=cephfs,secret=AQD2EWpcZasXIBAAzcdvbJxrwwgR1eDJHTz1lQ==
[root@localhost ~]# df -h /mnt/cephfs/
Filesystem Size Used Avail Use% Mounted on
192.168.0.126::/ 54G 54G % /mnt/cephfs
也可以将key保存到文件,通过文件挂载
[root@localhost ~]# echo "AQD2EWpcZasXIBAAzcdvbJxrwwgR1eDJHTz1lQ==" > /etc/ceph/cephfskey
[root@localhost ~]# umount /mnt/cephfs/
[root@localhost ~]# mount -t ceph ceph-node2::/ /mnt/cephfs -o name=cephfs,secretfile=/etc/ceph/cephfskey
开机自动挂载
[root@localhost ~]# echo "ceph-node2:6789:/ /mnt/cephfs ceph name=cephfs,secretfile=/etc/ceph/cephfskey,_netdev,noatime 0 0" >> /etc/fstab
[root@localhost ~]# umount /mnt/cephfs
[root@localhost ~]# mount /mnt/cephfs
[root@localhost ~]# df -h /mnt/cephfs/
Filesystem Size Used Avail Use% Mounted on
192.168.0.126::/ 54G 54G % /mnt/cephfs
写入数据测试
[root@localhost ~]# dd if=/dev/zero of=/mnt/cephfs/file1 bs=1M count=
+ records in
+ records out
bytes (1.1 GB) copied, 8.76348 s, MB/s
[root@localhost ~]# ll -h /mnt/cephfs/
total .0G
-rw-r--r-- root root .0G Feb : file1
使用fuse客户端挂载
ceph文件系统由linux内核本地支持,但是如果主机在较低的内核版本上运行,或者有任何应用程序依赖项,可以使用FUSE客户端让ceph挂载cephfs。
安装ceph-fuse
[root@localhost ~]# yum install ceph-fuse -y
挂载方式
[root@localhost ~]# ceph-fuse --keyring /etc/ceph/ceph.client.cephfs.keyring --name client.cephfs -m ceph-node2: /mnt/cephfs^C
[root@localhost ~]# umount /mnt/cephfs/
[root@localhost ~]# ceph-fuse --keyring /etc/ceph/ceph.client.cephfs.keyring --name client.cephfs -m ceph-node2: /mnt/cephfs
ceph-fuse[]: starting ceph client
-- ::41.922959 7ff1e2ce20c0 - init, newargv = 0x55fdbb5c4420 newargc=
ceph-fuse[]: starting fuse
[root@localhost ~]# df -h /mnt/cephfs
Filesystem Size Used Avail Use% Mounted on
ceph-fuse 54G .0G 53G % /mnt/cephfs
写入配置文件
[root@localhost ~]# echo "id=cephfs,keyring=/etc/ceph/ceph.client.cephfs.keyring /mnt/cephfs fuse.ceph defaults 0 0" >> /etc/fstab
[root@localhost ~]# umount /mnt/cephfs
[root@localhost ~]# mount /mnt/cephfs
-- ::48.123645 7f70a8cb50c0 - init, newargv = 0x562911bb0150 newargc=11ceph-fuse[]: starting ceph client ceph-fuse[]: starting fuse
[root@localhost ~]# df -h /mnt/cephfs/
Filesystem Size Used Avail Use% Mounted on
ceph-fuse 54G .0G 53G % /mnt/cephfs
将Ceph FS导出为NFS服务器
网络文件系统(Network Filesystem,NFS)是最流行的可共享文件系统协议之一,每个基于unix的系统都可以使用它。不理解Ceph FS类型的基于unix的客户机仍然可以使用NFS访问Ceph文件系统。要做到这一点,我们需要一个NFS服务器,它可以作为NFS共享重新导出Ceph FS。NFS-ganesha是一个在用户空间中运行的NFS服务器,使用libcephfs支持Ceph FS文件系统抽象层(FSAL)。
安装软件
[root@ceph-node2 ~]# yum -y install nfs-utils nfs-ganesha
启动NFS需要的rpc服务
[root@ceph-node2 ~]# systemctl start rpcbind
[root@ceph-node2 ~]# systemctl enable rpcbind
[root@ceph-node2 ~]# systemctl status rpcbind
● rpcbind.service - RPC bind service
Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
Active: active (running) since Mon -- :: CST; 14s ago
Main PID: (rpcbind)
CGroup: /system.slice/rpcbind.service
└─ /sbin/rpcbind -w Feb :: ceph-node2 systemd[]: Starting RPC bind service...
Feb :: ceph-node2 systemd[]: Started RPC bind service.
修改配置文件
[root@ceph-node2 ~]# cat /etc/ganesha/ganesha.conf
###################################################
#
# EXPORT
#
# To function, all that is required is an EXPORT
#
# Define the absolute minimal export
#
################################################### EXPORT
{
# Export Id (mandatory, each EXPORT must have a unique Export_Id)
Export_Id = ; # Exported path (mandatory)
Path = "/"; # Pseudo Path (required for NFS v4)
Pseudo = "/"; # Required for access (default is None)
# Could use CLIENT blocks instead
Access_Type = RW;
SecType = "none";
NFS_Protocols = "";
Squash = No_ROOT_Squash;
# Exporting FSAL
FSAL {
Name = CEPH;
}
}
通过提供Ganesha.conf 启动NFS Ganesha守护进程
[root@ceph-node2 ~]# ganesha.nfsd -f /etc/ganesha/ganesha.conf -L /var/log/ganesha.log -N NIV_DEBUG
[root@ceph-node2 ~]# showmount -e
Export list for ceph-node2:
客户端挂载
[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# mkdir /mnt/cephnfs
[root@localhost ~]# mount -o rw,noatime ceph-node2:/ /mnt/cephnfs
[root@localhost ~]# df -h /mnt/cephnfs
Filesystem Size Used Avail Use% Mounted on
ceph-node2:/ - /mnt/cephnfs
ceph-文件存储的更多相关文章
- 海量小文件存储与Ceph实践
海量小文件存储(简称LOSF,lots of small files)出现后,就一直是业界的难题,众多博文(如[1])对此问题进行了阐述与分析,许多互联网公司也针对自己的具体场景研发了自己的存储方案( ...
- ceph rbd块存储挂载及文件存储建立
一.rbd块存储挂载 1 创建一个OSD pool # ceph osd pool create rbd1 128 查询存储空间使用 # ceph df GLOBAL: SIZE AVAIL RAW ...
- Ceph分层存储分析
最近弄Ceph集群考虑要不要加入分层存储 因此花了点时间研究了下 1,首先肯定要弄清Ceph分层存储的结构 ,结构图大概就是下图所示 缓存层(A cache tier)为Ceph客户端提供更好的I/O ...
- Ceph Newstore存储引擎介绍
在Ceph被越来越多地应用于各项存储业务过程中,其性能及调优策略也成为用户密切关注讨论的话题,影响性能表现关键因素之一即OSD存储引擎实现:Ceph基础组件RADOS是强一致.对象存储系统,其OSD底 ...
- 腾讯云存储专家深度解读基于Ceph对象存储的混合云机制
背景 毫无疑问,乘着云计算发展的东风,Ceph已经是当今最火热的软件定义存储开源项目.如下图所示,它在同一底层平台之上可以对外提供三种存储接口,分别是文件存储.对象存储以及块存储,本文主要关注的是对象 ...
- 006.Ceph对象存储基础使用
一 Ceph文件系统 1.1 概述 Ceph 对象网关是一个构建在 librados 之上的对象存储接口,它为应用程序访问Ceph 存储集群提供了一个 RESTful 风格的网关 . Ceph 对象存 ...
- Hadoop小文件存储方案
原文地址:https://www.cnblogs.com/ballwql/p/8944025.html HDFS总体架构 在介绍文件存储方案之前,我觉得有必要先介绍下关于HDFS存储架构方面的一些知识 ...
- Ceph块存储介绍
1. 块存储是什么 块存储简称RBD(RADOS Block Device),是一种有序的字节序块,也是在Ceph三大存储类型中最为常用的存储方式 ,Ceph的块存储是基于RADOS的,因此它也借助R ...
- 基于LAMP php7.1搭建owncloud云盘与ceph对象存储S3借口整合案例
ownCloud简介 是一个来自 KDE 社区开发的免费软件,提供私人的 Web 服务.当前主要功能包括文件管理(内建文件分享).音乐.日历.联系人等等,可在PC和服务器上运行. 简单来说就是一个基于 ...
- [ ceph ] BlueStore 存储引擎介绍
为什么需要 BlueStore 首先,Ceph原本的FileStore需要兼容Linux下的各种文件系统,如EXT4.BtrFS.XFS.理论上每种文件系统都实现了POSIX协议,但事实上,每个文件系 ...
随机推荐
- 如何 安装Yii2的高级应用程序模板
参考 https://blog.csdn.net/youngqj/article/details/46689051
- win10 网络连接怎么删除不再使用的连接
# 打开网络共享中心->更改适配器设置->右击->选择属性->选择配置->选择驱动程序->卸载
- 电感的Q值
电感的Q值又称为品质因数,即在通过一定频率信号时,感抗与等效损耗之比.品质因数越高即系统损耗越小效率越高,一般为50`100,最高500左右,再大就会烧毁.一般Q值与很多因素有关:绕线粗细,长度与直径 ...
- Unity 物体旋转会发生变形
当游戏对象的 "父物体们" 有一个是缩放的,也就是Scale不是(1,1,1)的时候,旋转这个游戏对象它就会出现变形的现象.
- 快速学习 Python 数据分析包 之 pandas
最近在看时间序列分析的一些东西,中间普遍用到一个叫pandas的包,因此单独拿出时间来进行学习. 参见 pandas 官方文档 http://pandas.pydata.org/pandas-docs ...
- 【input】——数据传入后台
1.复选框 checkbox <label class="checkbox"> <input type="checkbox" name=&qu ...
- Nginx 在Windows下搭建静态Web服务
简介 nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP ...
- 基于JQUERY 的图片查看插件
viewer是一款功能强大的图片查看器.它可以实现ACDsee等看图软件的部分功能.它可以对图片进行移动,缩放,旋转,翻转,可以前后浏览一组图片.该图片查看器还支持移动设备,支持键盘控制,功能十分强大 ...
- 数据库navicat中limit函数的用法
从t_product表中获取pic_small字段的前十条记录 示例:select pic_small from t_product limit 0,10;
- view 状态动画
stateListAnimator 一.xml配置 方法 res/xml/animate_scale.xml <?xml version="1.0" encoding=&qu ...