Centos7部署CephFS

標籤(空格分隔): ceph環境,ceph,cephfshtml


cephfs部署以前準備工做:

1. 一個 clean+active 的cluster

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:

2. 一個元數據服務器mds

須要說明的是node1是mon+osd+mds節點,node2,node3是osd節點,另外還有一個使用ceph-deploy部署集羣的admin節點。下面在node1節點上部署mds:centos

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

部署cephfs:

一個cephfs至少要求兩個librados存儲池,一個爲data,一個爲metadata。當配置這兩個存儲池時,注意:bash

  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:activeapp

3,掛載cephfs:

Cephfs有兩種掛載方式:kernel或fuse
node3是非mon服務器,爲了區別mon服務器,這裏使用node3做爲client節點工具

3.1 掛載到kernel:

首先,在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的整個過程,這裏是把文件系統掛載到了內核空間,下面介紹一下掛載到用戶空間的方法。

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官網部署

相關文章
相關標籤/搜索