标签(空格分隔): ceph环境,ceph,cephfs


cephfs部署之前准备工作:

1. 一个 clean+active 的cluster

cluster部署参考:centos7下搭建ceph luminous(12.2.1)--无网或网络较差

当前集群环境:

[root@node1 ~]# ceph -s
cluster:
id: b8b4aa68-d825-43e9-a60a-781c92fec20e
health: HEALTH_OK services:
mon: 1 daemons, quorum node1
mgr: node1(active)
osd: 6 osds: 6 up, 6 in data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 bytes
usage: 6338 MB used, 55101 MB / 61440 MB avail
pgs:

2. 一个元数据服务器mds

需要说明的是node1是mon+osd+mds节点,node2,node3是osd节点,另外还有一个使用ceph-deploy部署集群的admin节点。下面在node1节点上部署mds:

[cephu@admin my-cluster]$ ceph-deploy mds create node1

部署cephfs:

一个cephfs至少要求两个librados存储池,一个为data,一个为metadata。当配置这两个存储池时,注意:

  1. 为metadata pool设置较高级别的副本级别,因为metadata的损坏可能导致整个文件系统不用
  2. 建议,metadata pool使用低延时存储,比如SSD,因为metadata会直接影响客户端的响应速度

1,创建cephfs需要的两个存储池:

[root@node1 ~]# ceph osd pool create cephfs_data 128
pool 'cephfs_data' created
[root@node1 ~]# ceph osd pool create cephfs_metadata 128
pool 'cephfs_metadata' created

2,使用fs new命令enable 文件系统

[root@node1 ~]# ceph fs new cephfs cephfs_metadata cephfs_data
new fs with metadata pool 2 and data pool 1

查看cephfs信息:

[root@node1 ~]# ceph fs ls
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

查看cephfs状态:

[root@node1 ~]# ceph mds stat
cephfs-1/1/1 up {0=node1=up:active}

可以看到运行在node1节点的文件系统cephfs的状态 up:active

3,挂载cephfs:

Cephfs有两种挂载方式:kernel或fuse

node3是非mon服务器,为了区别mon服务器,这里使用node3作为client节点

3.1 挂载到kernel:

首先,在node3上创建挂载目录:

[root@node3 ~]# mkdir /mnt/mycephfs

然后,创建一个文件保存admin用户的秘钥:

[root@node3 ~]# cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
AQD5ZORZsJYbMhAAoGEw/H9SGMpEy1KOz0WsQQ==

可知用户名:admin

密钥 :AQD5ZORZsJYbMhAAoGEw/H9SGMpEy1KOz0WsQQ==

之后在当前目录创建一个文件admin.secret保存该秘钥:

[root@node3 ~]# vi admin.secret

把该秘钥粘贴过来,:wq保存

最后,挂载cephfs:

node1的ip为192.168.197.154,挂载命令如下:

[root@node3 ~]# mount -t ceph 192.168.197.154:6789:/ /mnt/mycephfs -o name=admin,secretfile=/root/admin.secret

查看挂载的文件系统:

[root@node3 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 18G 1.7G 16G 10% /
devtmpfs 482M 0 482M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 13M 480M 3% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 497M 171M 326M 35% /boot
tmpfs 99M 0 99M 0% /run/user/0
/dev/sdb1 97M 7.5M 90M 8% /var/lib/ceph/osd/ceph-2
/dev/sdc1 97M 7.2M 90M 8% /var/lib/ceph/osd/ceph-5
192.168.197.154:6789:/ 60G 6.3G 54G 11% /mnt/mycephfs

到这里已经完成了部署cephfs的整个过程,这里是把文件系统挂载到了内核空间,下面介绍一下挂载到用户空间的方法。

3.2 挂载到fuse:

为了实验,在这之前需要先umount文件系统之后挂到fuse:

[root@node3 ~]# umount /mnt/mycephfs/
[root@node3 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 18G 1.7G 16G 10% /
devtmpfs 482M 0 482M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 13M 480M 3% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 497M 171M 326M 35% /boot
tmpfs 99M 0 99M 0% /run/user/0
/dev/sdb1 97M 7.5M 90M 8% /var/lib/ceph/osd/ceph-2
/dev/sdc1 97M 7.2M 90M 8% /var/lib/ceph/osd/ceph-5

可以看到umount后没有了cephfs文件系统

首先,安装ceph-fuse工具包:

[root@node3 ~]# yum -y install ceph-fuse

其次,创建挂载目录:

[root@node3 ~]# mkdir ~/mycephfs

最后,挂载cephfs:

[root@node3 ~]# ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 192.168.197.154:6789 ~/mycephfs/
ceph-fuse[6687]: starting ceph client
2017-10-16 15:57:09.644181 7fa5be56e040 -1 init, newargv = 0x7fa5c940b500 newargc=9
ceph-fuse[6687]: starting fuse

通过命令可以看到挂载成功

[root@node3 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 18G 1.7G 16G 10% /
devtmpfs 482M 0 482M 0% /dev
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 493M 13M 480M 3% /run
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/sda1 497M 171M 326M 35% /boot
tmpfs 99M 0 99M 0% /run/user/0
/dev/sdb1 97M 7.5M 90M 8% /var/lib/ceph/osd/ceph-2
/dev/sdc1 97M 7.2M 90M 8% /var/lib/ceph/osd/ceph-5
ceph-fuse 17G 0 17G 0% /root/mycephfs

到这里已经完成了部署cephfs的整个过程,下面记录一下部署过程中遇到的问题

部署cephfs时的问题:mount error 22 = Invalid argument

在执行挂载到kernel的挂载命令时,并没有指定用户名和秘钥进行挂载,结果提示下面的错误:

[root@node3 ~]# mount -t ceph 192.168.197.154:6789:/ /mnt/mycephfs
mount error 22 = Invalid argument

通过查看系统日志

[root@node3 ~]# tail /var/log/messages
Oct 16 14:42:30 node3 dhclient[6182]: bound to 192.168.197.157 -- renewal in 755 seconds.
Oct 16 14:42:30 node3 dbus[677]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Oct 16 14:42:30 node3 dbus-daemon: dbus[677]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Oct 16 14:42:30 node3 systemd: Started Network Manager Script Dispatcher Service.
Oct 16 14:42:30 node3 nm-dispatcher: req:1 'dhcp4-change' [ens33]: new request (2 scripts)
Oct 16 14:42:30 node3 nm-dispatcher: req:1 'dhcp4-change' [ens33]: start running ordered scripts...
Oct 16 14:47:55 node3 kernel: libceph: no secret set (for auth_x protocol)
Oct 16 14:47:55 node3 kernel: libceph: error -22 on auth protocol 2 init
Oct 16 14:48:56 node3 kernel: libceph: no secret set (for auth_x protocol)
Oct 16 14:48:56 node3 kernel: libceph: error -22 on auth protocol 2 init

可以看出是因为没有secret的原因,这是因为cephfs文件系统启用了cephx认证,因此需要指定一个用户名和一个密钥

参考文档:

1.【实践】Ceph:创建Cephfs文件

2.cephfs官网部署

Centos7部署CephFS的更多相关文章

  1. [原]CentOS7部署osm2pgsql

    转载请注明原作者(think8848)和出处(http://think8848.cnblogs.com) 部署Postgresql和部署PostGis请参考前两篇文章 本文主要参考GitHub上osm ...

  2. centos7 部署ssserver

    centos7 部署shadowsocks服务端 为什么要选centos7? 以后centos7 肯定是主流,在不重要的环境还是尽量使用新系统吧 centos7 的坑 默认可能会有firewall 或 ...

  3. centos7 部署 docker compose

    =============================================== 2019/4/10_第1次修改                       ccb_warlock == ...

  4. centos7 部署 docker ce

    =============================================== 2019/4/9_第1次修改                       ccb_warlock === ...

  5. centos7 部署 open-falcon 0.2.0

    =============================================== 2019/4/29_第3次修改                       ccb_warlock 更新 ...

  6. centos7 部署 docker、shipyard

    =============================================== 2019/4/9_第3次修改                       ccb_warlock 更新说 ...

  7. centos7 部署 docker swarm

    =============================================== 2019/4/9_第3次修改                       ccb_warlock 更新说 ...

  8. CentOS7部署Nginx

    CentOS7部署Nginx 1.准备工作 Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,注意安装顺序如下: 1 SSL功能需要openssl库,直接通过yu ...

  9. centos7部署JavaWeb项目

    centos7部署JavaWeb项目共有三步 1.配置java环境 2.配置tomcat环境. 3.部署JavaWeb项目 一.配置java环境 1.1安装java 参考我的另一篇博文:https:/ ...

随机推荐

  1. css3+jQuery实现按钮水波纹效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...

  2. pyCharm上解决安装不上pandas库问题

    最近在PyCharm上安装pandas库的时候,总是安装不上,提示好像是pip除了错误.我使用的是python .4版本.最后判断应该是自己pip版本应该太旧了,最后再cmd更新了pip之后就行了.如 ...

  3. SeekBar拖动条控件

    SeekBar拖动条控件 一.简介 1. 二.SeekBar拖动条控件使用方法 1.创建SeekBar控件 <SeekBar android:id="@+id/SeekBar1&quo ...

  4. django从请求到返回都经历了什么[转]

    原文地址:http://projectsedu.com/2016/10/17/django从请求到返回都经历了什么/ 从runserver说起 ruserver是使用django自己的web serv ...

  5. poj1330lca入门题

    直接套模板,dfs的时候注意起点 #include<map> #include<set> #include<cmath> #include<queue> ...

  6. 016——VUE中v-show的使用与v-if的差异对比

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. bzero()函数

    原型:extern void bzero(void *s, int n);   用法:#include <string.h>   功能:置字节字符串s的前n个字节为零且包括‘\0’.   ...

  8. Django常用插件

    1 富文本编辑器--tinymce 2 分页器--pure pagination 视图中 all_orgs_list = CourseOrg.objects.all() try: page = req ...

  9. Python itertools模块中的product函数

    product 用于求多个可迭代对象的笛卡尔积(Cartesian Product),它跟嵌套的 for 循环等价.即: product(A, B) 和 ((x,y) for x in A for y ...

  10. Sublime Text 3打开gbk编码的文件中文乱码的问题

    正在开发Wordpress主题,网上下载了一个博客模板,打开之后,发现里面的中文全是乱码 毕竟这玩意是外国人的东西,gbk是中文专用的编码,不支持很正常. 网上查了一下资料,需要安装一个Convert ...