标签(空格分隔): ceph环境,ceph,cephfshtml
cluster部署参考:centos7下搭建ceph luminous(12.2.1)--无网或网络较差
当前集群环境:node
[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:
须要说明的是node1是mon+osd+mds节点,node2,node3是osd节点,另外还有一个使用ceph-deploy部署集群的admin节点。下面在node1节点上部署mds:centos
[cephu@admin my-cluster]$ ceph-deploy mds create node1
一个cephfs至少要求两个librados存储池,一个为data,一个为metadata。当配置这两个存储池时,注意:bash
[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
[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:activeapp
Cephfs有两种挂载方式:kernel或fuse
node3是非mon服务器,为了区别mon服务器,这里使用node3做为client节点工具
首先,在node3上建立挂载目录:ui
[root@node3 ~]# mkdir /mnt/mycephfs
而后,建立一个文件保存admin用户的秘钥:centos7
[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的整个过程,这里是把文件系统挂载到了内核空间,下面介绍一下挂载到用户空间的方法。
为了实验,在这以前须要先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的整个过程,下面记录一下部署过程当中遇到的问题
在执行挂载到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认证,所以须要指定一个用户名和一个密钥