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协议,但事实上,每个文件系 ...
随机推荐
- py---------常用模块
一.认识模块? 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1. 使用pytho ...
- linux查看当前用户登陆信息
@(Linux基础)[linux查看当前用户登陆信息] linux查看当前用户登陆信息 作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动.有些时候,你甚至需要知道他(她)们正 ...
- 使用Koa.js,离不开这十个中间件
随着ES6的普及,async/await的语法受到更多JS开发者的青睐,Koa.js作为比较早支持使用该语法的Node框架越来越受到大家的喜爱,虽然Koa.js本身支持的功能很有限,但官方和社区提供了 ...
- Linux安装mysql记录 重置密码
重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor ...
- ElasticSearch 服务搭建
一.搭建环境 操作系统:Win7 ElasticSearch:1.73 Java JDK:1.7 二.搭建操作 1.安装Java JDK,然后配置系统环境变量,新建CLASS_PATH(jre所在目录 ...
- selenium-webdriver(python) (十四) -- webdriver原理(转)
之前看乙醇视频中提到,selenium 的ruby 实现有一个小后门,在代码中加上$DEBUG=1 ,再运行脚本的过程中,就可以看到客户端请求的信息与服务器端返回的数据:觉得这个功能很强大,可以帮助理 ...
- chrome 修改请求头的小工具
chrome 网上应用店中搜索 ModHeader
- sqlserver 2012 部署详解
01,下载 官网下载: https://www.microsoft.com/zh-cn/download/details.aspx?id=29066 02,安装 检查系统环境配置 成功了就继续,其他的 ...
- derby
/** * @Title: T.java * @Package test * @Description: TODO please write your description <BR> * ...
- Java基础04-数据的输入
1.为什么要有数据的输入? 实现人机进行交互 2.什么是数据的输入? 利用扫描仪Scanner进行数据输入 3.怎么使用扫描仪Scanner? (1)放在类声明之前,引入扫描仪 import java ...