Ceph FS是一个支持POSIX接口的文件系统,它使用 Ceph 存储集群来存储数据。文件系统对于客户端来说可以方便的挂载到本地使用

Ceph FS部署_java1-元数据服务器mds部署1.1-deploy方式部署ceph-deploy --overwrite-conf mds create [hostname]

[root@ecos75r018-meijia-31-161 cdmmgr]# ceph-deploy --overwrite-conf mds create ecos75r018-meijia-31-161[ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.conf[ceph_deploy.cli][INFO  ] Invoked (2.0.1): /usr/bin/ceph-deploy --overwrite-conf mds create ecos75r018-meijia-31-161[ceph_deploy.cli][INFO  ] ceph-deploy options:[ceph_deploy.cli][INFO  ]  username  : None[ceph_deploy.cli][INFO  ]  verbose   : False[ceph_deploy.cli][INFO  ]  overwrite_conf: True[ceph_deploy.cli][INFO  ]  subcommand: create[ceph_deploy.cli][INFO  ]  quiet : False[ceph_deploy.cli][INFO  ]  cd_conf   : <ceph_deploy.conf.cephdeploy.Conf instance at 0x7f32e0666ea8>[ceph_deploy.cli][INFO  ]  cluster   : ceph[ceph_deploy.cli][INFO  ]  func  : <function mds at 0x7f32e08bc398>[ceph_deploy.cli][INFO  ]  ceph_conf : None[ceph_deploy.cli][INFO  ]  mds   : [('ecos75r018-meijia-31-161', 'ecos75r018-meijia-31-161')][ceph_deploy.cli][INFO  ]  default_release   : False[ceph_deploy.mds][DEBUG ] Deploying mds, cluster ceph hosts ecos75r018-meijia-31-161:ecos75r018-meijia-31-161[ecos75r018-meijia-31-161][DEBUG ] connected to host: ecos75r018-meijia-31-161 [ecos75r018-meijia-31-161][DEBUG ] detect platform information from remote host[ecos75r018-meijia-31-161][DEBUG ] detect machine type[ceph_deploy.mds][INFO  ] Distro info: CentOS Linux 7.5.1804 Core[ceph_deploy.mds][DEBUG ] remote host will use systemd[ceph_deploy.mds][DEBUG ] deploying mds bootstrap to ecos75r018-meijia-31-161[ecos75r018-meijia-31-161][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf[ecos75r018-meijia-31-161][DEBUG ] create path if it doesn't exist[ecos75r018-meijia-31-161][INFO  ] Running command: ceph --cluster ceph --name client.bootstrap-mds --keyring /var/lib/ceph/bootstrap-mds/ceph.keyring auth get-or-create mds.ecos75r018-meijia-31-161 osd allow rwx mds allow mon allow profile mds -o /var/lib/ceph/mds/ceph-ecos75r018-meijia-31-161/keyring[ecos75r018-meijia-31-161][INFO  ] Running command: systemctl enable ceph-mds@ecos75r018-meijia-31-161[ecos75r018-meijia-31-161][INFO  ] Running command: systemctl start ceph-mds@ecos75r018-meijia-31-161[ecos75r018-meijia-31-161][INFO  ] Running command: systemctl enable ceph.target

1.2-手动部署1:创建一个mds数据点/var/lib/ceph/mds/ceph-${id}。守护程序仅使用此目录来存储其密钥环。
mkdir -p mkdir /var/lib/ceph/mds/ceph-ecos75r018-meijia-31-161
2:创建身份验证密钥:
ceph auth get-or-create mds.${id} mon 'profile mds' mgr 'profile mds' mds 'allow *' osd 'allow *' > /var/lib/ceph/mds/ceph-${id}/keyring
[root@ecos75r018-meijia-31-161 cdmmgr]# ceph auth get-or-create mds.ceph-ecos75r018-meijia-31-161 osd 'allow *' mds 'allow *' mgr 'profile mds' mon 'profile mds' > /var/lib/ceph/mds/ceph-ecos75r018-meijia-31-161/keyring[root@ecos75r018-meijia-31-161 cdmmgr]# cat /var/lib/ceph/mds/ceph-ecos75r018-meijia-31-161/keyring[mds.ceph-ecos75r018-meijia-31-161]    key = AQAcHrtfvD9pHhAAD0MVY0t/W7wyy5YJHGeH6A==
3:启动服务:
systemctl enable ceph-mds@${id}systemctl start ceph-mds@${id}systemctl enable ceph.target
可以发现,手动安装的命令和ceph-deploy日志输出中running command后的指令相似
1.3-删除mds
systemctl stop ceph-mds@${id}rm -rf /var/lib/ceph/mds/ceph-${id}

2-创建ceph文件系统 一个 Ceph 文件系统需要至少两个 RADOS 存储池,一个用于数据、一个用于元数据
ceph osd pool create cephfs_data <pg_num> <pgp_num>
ceph osd pool create cephfs_metadata <pg_num> <pgp_num> 
ceph osd pool create cephfs_data 32 32 ceph osd pool create cephfs_metadata 16 16

ps:

{pg-num}

描述:存储池拥有的归置组总数。关于如何计算合适的数值,请参见归置组。默认值 8 对大多数系统都不合适。

类型:整数

是否必须:Yes

默认值:8


{pgp-num}

描述:用于归置的归置组总数。此值应该等于归置组总数,归置组分割的情况下除外。

类型:整数

是否必须:没指定的话读取默认值、或 Ceph 配置文件里的值。

默认值:8


关于该参数的值,需根据实际情况设置,不建议使用默认值,具体分配规则可以参考:

http://docs.ceph.org.cn/rados/configuration/pool-pg-config-ref/



创建好存储池后,就可以用fs new命令创建文件系统了:
ceph fs new <fs_name> <metadata> <data>

[root@ecos75r018-meijia-31-161 cdmmgr]# ceph fs new cephfs_mj cephfs_metadata cephfs_datanew fs with metadata pool 6 and data pool 5
查看创建好的文件系统:
ceph fs ls
[root@ecos75r018-meijia-31-161 cdmmgr]# ceph fs lsname: cephfs_mj, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
创建好文件系统后,查看mds服务器状态,就可以看到active状态了:
ceph mds stat
[root@ecos75r018-meijia-31-161 cdmmgr]# ceph mds statcephfs_mj:1 {0=ecos75r018-meijia-31-161=up:active}
MDS为active状态后,就可以挂载此文件系统了

3-挂载文件系统3-1用内核驱动挂载ceph文件系统创建挂载目录:
mkdir -p /opt/mycephfs
如果未启用cephx认证,则挂载命令为:
mount -t ceph 10.0.31.161:6789:/ /opt/mycephfs
如果启用了cephx认证:
查看admin密钥:
[root@ecos75r018-meijia-31-161 opt]# cat /etc/ceph/ceph.client.admin.keyring[client.admin]    key = AQDmrzNfNwbqCBAAkWCeTEyKnKH1ZsyYS4KVQw==    caps mds = "allow *"    caps mgr = "allow *"    caps mon = "allow *"    caps osd = "allow *"
挂载命令为:
mount -t ceph 10.0.31.161:6789:/ /opt/mycephfs -o name=admin,secret=AQDmrzNfNwbqCBAAkWCeTEyKnKH1ZsyYS4KVQw==
上述方式会将密码遗留在Bash历史中,可以改用:
mount -t ceph 10.0.31.161:6789:/ /opt/mycephfs -o name=admin,secret=secretfile=/etc/ceph/admin.secret
卸载使用:
umount /opt/mycephfs

3-2用户空间挂载即使用ceph-fuse方式在client节点挂载cephfs,该方式读写效率较低,如果内核版本低于2.6.34,可以使用该方式
在客户端上,将集群mon节点上的配置文件拷贝至本地/etc/ceph目录下
mkdir -p /etc/cephscp {user}@{server-machine}:/etc/ceph/ceph.conf /etc/ceph/ceph.conf
在客户端上,将集群mon节点上的ceph密钥拷贝至本地/etc/ceph目录下
scp {user}@{server-machine}:/etc/ceph/ceph.keyring /etc/ceph/ceph.keyring
通过ceph-fuse用户空间文件系统方式挂载:
mkdir -p /opt/mycephfsceph-fuse -m 10.0.31.161:6789 /opt/mycephfs