====== [HOWTO] Mount CephFS ====== ^ Documentation ^| ^Name:| [HOWTO] Mount CephFS | ^Description:| [HOWTO] Mount CephFS| ^Modification date :|03/07/2019| ^Owner:|dodger| ^Notify changes to:|Owner| ^Tags:| ceph, object storage| ^Scalate to:|The_fucking_bofh| ====== Variables used in this documentation ====== ^ Name ^ Description ^ Sample ^ | ''${CLIENTNAME}'' | name of the client for cephfs | export CLIENTNAME="ftp" | | ''${DATAPOOL}'' | Name of the data pool of ''cephfs'' | export DATAPOOL="cephfs_data" | ====== Instructions ====== ===== on the client ===== Add the ''nautilus'' repo: cat >/etc/yum.repos.d/ceph.repo< Install ''ceph-common'' package: yum install ceph-common Sample: avmlp-sftp-001 /etc/yum.repos.d # yum install ceph-common Loaded plugins: fastestmirror, versionlock Loading mirror speeds from cached hostfile * base: ftp.csuc.cat * epel: mirror.airenetworks.es * extras: mirror.airenetworks.es * updates: ftp.csuc.cat Resolving Dependencies --> Running transaction check ---> Package ceph-common.x86_64 2:14.2.1-0.el7 will be installed ... ... Dependencies Resolved =============================================================================================================================================================================================================================================== Package Arch Version Repository Size =============================================================================================================================================================================================================================================== Installing: ceph-common x86_64 2:14.2.1-0.el7 Ceph 18 M Installing for dependencies: fuse-libs x86_64 2.9.2-11.el7 base 93 k gperftools-libs x86_64 2.6.1-1.el7 base 272 k leveldb x86_64 1.12.0-11.el7 epel 161 k libbabeltrace x86_64 1.2.4-3.el7 epel 147 k libcephfs2 x86_64 2:14.2.1-0.el7 Ceph 478 k libibverbs x86_64 17.2-3.el7 base 246 k liboath x86_64 2.6.2-1.el7 epel 51 k librabbitmq x86_64 0.8.0-2.el7 base 37 k librados2 x86_64 2:14.2.1-0.el7 Ceph 3.3 M libradosstriper1 x86_64 2:14.2.1-0.el7 Ceph 340 k librbd1 x86_64 2:14.2.1-0.el7 Ceph 1.6 M librdmacm x86_64 17.2-3.el7 base 62 k librgw2 x86_64 2:14.2.1-0.el7 Ceph 4.6 M lttng-ust x86_64 2.4.1-4.el7 epel 176 k python-ceph-argparse x86_64 2:14.2.1-0.el7 Ceph 36 k python-cephfs x86_64 2:14.2.1-0.el7 Ceph 89 k python-rados x86_64 2:14.2.1-0.el7 Ceph 190 k python-rbd x86_64 2:14.2.1-0.el7 Ceph 168 k python-rgw x86_64 2:14.2.1-0.el7 Ceph 76 k rdma-core x86_64 17.2-3.el7 base 49 k userspace-rcu x86_64 0.7.16-1.el7 epel 73 k Transaction Summary =============================================================================================================================================================================================================================================== Install 1 Package (+21 Dependent packages) ... ... Installed: ceph-common.x86_64 2:14.2.1-0.el7 Dependency Installed: fuse-libs.x86_64 0:2.9.2-11.el7 gperftools-libs.x86_64 0:2.6.1-1.el7 leveldb.x86_64 0:1.12.0-11.el7 libbabeltrace.x86_64 0:1.2.4-3.el7 libcephfs2.x86_64 2:14.2.1-0.el7 libibverbs.x86_64 0:17.2-3.el7 liboath.x86_64 0:2.6.2-1.el7 librabbitmq.x86_64 0:0.8.0-2.el7 librados2.x86_64 2:14.2.1-0.el7 libradosstriper1.x86_64 2:14.2.1-0.el7 librbd1.x86_64 2:14.2.1-0.el7 librdmacm.x86_64 0:17.2-3.el7 librgw2.x86_64 2:14.2.1-0.el7 lttng-ust.x86_64 0:2.4.1-4.el7 python-ceph-argparse.x86_64 2:14.2.1-0.el7 python-cephfs.x86_64 2:14.2.1-0.el7 python-rados.x86_64 2:14.2.1-0.el7 python-rbd.x86_64 2:14.2.1-0.el7 python-rgw.x86_64 2:14.2.1-0.el7 rdma-core.x86_64 0:17.2-3.el7 userspace-rcu.x86_64 0:0.7.16-1.el7 Complete! ====== On the mon server ====== Create a user for the cephfs: ceph auth get-or-create client.cephfs-${CLIENTNAME} mon 'allow r' > /etc/ceph/client.cephfs-${CLIENTNAME}.keyring Modify the ACL for the user: vim /etc/ceph/client.cephfs-${CLIENTNAME}.keyring Add the capabilities, for example if you want that the client can ''rw'' on ''/'': caps mds = "allow r path=/, allow rw path=/" caps mon = "allow r" caps osd = "allow class-read object_prefix rbd_children, allow rw pool=${DATAPOOL}" You must copy the ''key'', is the "password" for the client mounting the cephfs: [client.cephfs-ftp] key = caps mds = "allow r path=/, allow rw path=/ftp" caps mon = "allow r" caps osd = "allow class-read object_prefix rbd_children, allow rw pool=cephfs_data-ftp" ===== back to the client ===== Write the copied ''key'' from the ''mon'' server to a secure location: echo ${THEKEY} > /etc/ceph/client.secret And mount the fs: mkdir /mnt/cephfs mount -t ceph monserver-001.ciberterminal.net:6789,monserver-002.ciberterminal.net:6789,monserver-003.ciberterminal.net:6789,monserver-004.ciberterminal.net:6789:/ /mnt/cephfs -o name=cephfs-${CLIENTNAME},secretfile=/etc/ceph/client.secret Add the fs to the ''fstab'': monserver-001.ciberterminal.net:6789,monserver-002.ciberterminal.net:6789,monserver-003.ciberterminal.net:6789,monserver-004.ciberterminal.net:6789:/ /mnt/cephfs ceph name=cephfs-${CLIENTNAME},secretfile=/etc/ceph/client.secret 0 0