Centos7部署CephFS
标签(空格分隔): 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。当配置这两个存储池时,注意:
- 为metadata pool设置较高级别的副本级别,因为metadata的损坏可能导致整个文件系统不用
- 建议,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的更多相关文章
- [原]CentOS7部署osm2pgsql
		转载请注明原作者(think8848)和出处(http://think8848.cnblogs.com) 部署Postgresql和部署PostGis请参考前两篇文章 本文主要参考GitHub上osm ... 
- centos7 部署ssserver
		centos7 部署shadowsocks服务端 为什么要选centos7? 以后centos7 肯定是主流,在不重要的环境还是尽量使用新系统吧 centos7 的坑 默认可能会有firewall 或 ... 
- centos7 部署 docker compose
		=============================================== 2019/4/10_第1次修改 ccb_warlock == ... 
- centos7 部署 docker ce
		=============================================== 2019/4/9_第1次修改 ccb_warlock === ... 
- centos7 部署 open-falcon 0.2.0
		=============================================== 2019/4/29_第3次修改 ccb_warlock 更新 ... 
- centos7 部署 docker、shipyard
		=============================================== 2019/4/9_第3次修改 ccb_warlock 更新说 ... 
- centos7 部署 docker swarm
		=============================================== 2019/4/9_第3次修改 ccb_warlock 更新说 ... 
- CentOS7部署Nginx
		CentOS7部署Nginx 1.准备工作 Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,注意安装顺序如下: 1 SSL功能需要openssl库,直接通过yu ... 
- centos7部署JavaWeb项目
		centos7部署JavaWeb项目共有三步 1.配置java环境 2.配置tomcat环境. 3.部署JavaWeb项目 一.配置java环境 1.1安装java 参考我的另一篇博文:https:/ ... 
随机推荐
- 使用ConcurrentLinkedQueue惨痛的教训
			服务端原本有个定时任务对一个集合ArrayList 中的消息做处理. 因为考虑到处理消息是先进先出原则,所以优化的时候考虑改用ConcurrentLinkedQueue 当时没仔细深入研究过这个集合就 ... 
- 五十一  Python分布式爬虫打造搜索引擎Scrapy精讲—scrapyd部署scrapy项目
			scrapyd模块是专门用于部署scrapy项目的,可以部署和管理scrapy项目 下载地址:https://github.com/scrapy/scrapyd 建议安装 pip3 install s ... 
- Openstack Mitaka 负载均衡 LoadBalancerv2
			 最近研究了一下Openstack负载均衡,yum源和源码级别的安装都尝试成功了.网上有很多文章都是LoadBalancerv1,这个已经被放弃了.所以写一下自己是如何使用LoadBalancerv ... 
- 转:oracle驱动表
			以一个比较两本字典来做例子: 一本字典有索引目录(dict a), 一本没有(dict b) 现在要找出所有a开头的单词的异同 那么比较的时候,你会怎么比较? ... 
- python 在头文件添加 #include \"stdafx.h\"\r\n
			import osimport shutil#-*- coding:cp936 -*-import codecsfrom sys import argv def replace_all_files(p ... 
- C#当中利用Attribute实现简易AOP
			首先看一段简单的代码: public partial class Form1 : Form { public Form1() { InitializeComponent(); } //来自UI层的调用 ... 
- Juint 单元测试(2)
			单元测试(junit testing),是指对软件中的最小可测试单元进行检查和验证.Java里单元指一个类. JUnit ,是一个开源的Java单元测试框架,是 Java的标准单元测试库,是非常重要第 ... 
- Unity在协程(Coroutines)内开启线程(Threading )
			孙广东 2017.6.13 http://blog.csdn.NET/u010019717 为什么要在协程中开启线程, 因为很多时候我们是需要线程执行完成后回到主线程的.然后主线程在继续执行后续的操 ... 
- OneDrive网页版打不开的解决办法
			发现OneDrive文件被误删了,想去网页版找回历史文件,发现网页版无法打开,而客户端是可以正常使用的,于是猜测是域名指向的主IP被封了,于是想通过客户端的IP访问 第一步,WireShark抓包 第 ... 
- opencv 学习笔记集锦
			整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的.如果有好的资源,也欢迎介绍和分享. 1:OpenCV学习笔记 作者:CSDN数量:55篇博文网址: ... 
