ceph--cephFS的使用

ceph分布式存储—cephFS的使用

1、cephfs的概念

ceph FS 即 ceph filesystem,可以实现文件系统共享功能,客户端通过 ceph 协议挂载并使
用 ceph 集群作为数据存储服务器。
Ceph FS 需要运行 Meta Data Services(MDS)服务,其守护进程为 ceph-mds,ceph-mds
进程管理与 cephFS 上存储的文件相关的元数据,并协调对 ceph 存储集群的访问。cephfs 的元数据使用的动态子树分区,把元数据划分名称空间对应到不同的 mds,写入元数
据的时候将元数据按照名称保存到不同主mds上,有点类似于nginx中的缓存目录分层一样.

1.1 cephfs的架构图

在这里插入图片描述

2、部署MDS服务

2.1 下载部署cephfs(mds)服务的安装包

#在ceph-mgr1管理节点下载mds服务安装包
root@ceph-mgr1:~# apt-cache madison ceph-mds
root@ceph-mgr1:~# apt install ceph-mds
#在部署节点上创建mds服务
cephadmin@ceph-mon1:~/ceph-cluster$ ceph-deploy mds create ceph-mgr1

2.2创建cephFS metadata和data存储池

使用 CephFS 之前需要事先为集群创建一个文件系统,并为其分别指定元数据和数据相
关的存储池。

#创建存放文件元数据的存储池
[ceph@ceph-deploy ceph-cluster]$ ceph osd pool create cephfs-metadata 32 32
#创建存放文件数据的存储池
[ceph@ceph-deploy ceph-cluster]$ ceph osd pool create cephfs-data 64 64
#验证
cephadmin@ceph-mon1:~/ceph-cluster$ ceph osd pool ls
cephfs-metadata  #存放元数据
cephfs-data      #存放数据

2.3在部署节点上创建cephFS文件系统并验证

下面创建一个名为my cephfs 的文件系统用于测试,cephfs-metadata存储池为其存放文件的元数据
,cephfs-data存储池为其存放文件的数据.

#创建cephfs文件系统:mycephfs
cephadmin@ceph-mon1:~/ceph-cluster$ ceph fs new mycephfs cephfs-metadata cephfs-data
#列出当前Ceph集群中存在的文件系统
cephadmin@ceph-mon1:~/ceph-cluster$ ceph fs ls
name: mycephfs, metadata pool: cephfs-metadata, data pools: [cephfs-data ]
#当前Ceph元数据服务器(Metadata Server)的状态信息。它返回了与Ceph集群中正在运行的元数据服务器相关的详细统计数据。
(该命令会列出每个元数据服务器的编号、名称、所在的存储池、活动状态、操作数、目录数量等信息。通过运行ceph mds stat,你可以获得关于元数据服务器的实时状态,以便监视和诊断Ceph文件系统中的元数据服务情况。这对于故障排除和性能调优非常有用。)#获取当前Ceph元数据服务器(Metadata Server)的状态信息
(该命令会列出每个元数据服务器的编号、名称、所在的存储池、活动状态、操作数、目录数量等信息。通过运行ceph mds stat,你可以获得关于元数据服务器的实时状态,以便监视和诊断Ceph文件系统中的元数据服务情况。这对于故障排除和性能调优非常有用。)
cephadmin@ceph-mon1:~/ceph-cluster$ ceph mds stat
mycephfs - 0 clients
========
RANK  STATE      MDS        ACTIVITY     DNS    INOS   DIRS   CAPS0    active  ceph-mgr1  Reqs:    0 /s    15     17     13     10POOL         TYPE     USED  AVAIL
cephfs-metadata  metadata   413k   569Gcephfs-data      data     600M   569G
STANDBY MDS
MDS version: ceph version 16.2.13 (5378749ba6be3a0868b51803968ee9cde4833a3e) pacific (stable)#参数详解如下:
mycephfs - 0 clients: 表示当前文件系统名称为"mycephfs",且没有客户端连接到该文件系统。
RANK: 元数据服务器的编号。
STATE: 元数据服务器的状态。在此示例中,元数据服务器0处于活动状态。
MDS: 元数据服务器名称。在此示例中,活动的元数据服务器名称为"ceph-mgr1"。
ACTIVITY: 元数据服务器的活动统计信息,包括每秒请求数(Reqs)等。在此示例中,平均每秒请求数为0。
DNS, INOS, DIRS, CAPS: 具体表示域名数(dentries)、索引节点数(inodes)、目录数和打开的文件描述符数。
POOL: 存储池名。
TYPE: 池的类型(metadata / data)。
USED, AVAIL: 用于表示存储池中已使用和可用的空间量。
STANDBY MDS: 表示有一个处于待命状态的元数据服务器。
MDS version: 表示Ceph集群中正在运行的元数据服务器软件版本

2.4 创建客户端账户

#创建账户
[ceph@ceph-deploy ceph-cluster]$ ceph auth add client.wsq mon 'allow r' mds 'allow rw' osd 'allow rwx pool=cephfs-data'
#验证账户
cephadmin@ceph-mon1:~/ceph-cluster$ ceph auth get client.wsq
[client.wsq]key = AQDYZ65kIHuWGBAAdFExyLsWVzEQ+lyFyHcNpA==caps mds = "allow rw"caps mon = "allow r"caps osd = "allow rwx pool=cephfs-data"
exported keyring for client.wsq#创建keyring文件
[ceph@ceph-deploy ceph-cluster]$ ceph auth get client.wsq -o ceph.client.yanyan.keyring
#创建key文件
[ceph@ceph-deploy ceph-cluster]$ ceph auth print-key client.wsq > wsq.key
#验证用户的keyring文件
cephadmin@ceph-mon1:~/ceph-cluster$ cat ceph.client.wsq.keyring
[client.wsq]key = AQDYZ65kIHuWGBAAdFExyLsWVzEQ+lyFyHcNpA==caps mds = "allow rw"caps mon = "allow r"caps osd = "allow rwx pool=cephfs-data"

2.5 客户端安装ceph

root@ceph-client:~# apt update
root@ceph-client:~# apt install ceph-common -y

2.6同步客户端认证文件

[ceph@ceph-deploy ceph-cluster]$ scp ceph.conf ceph.client.wsq.keyring  wsq.key  root@172.17.10.69:/etc/ceph/
#客户端验证权限
root@ceph-client:~# ceph --user wsq -scluster:id:     3bc181dd-a0ef-4d72-a58d-ee4776e9870fhealth: HEALTH_OKservices:mon: 3 daemons, quorum ceph-mon1,ceph-mon2,ceph-mon3 (age 8m)mgr: ceph-mgr1(active, since 8m), standbys: ceph-mgr2mds: 2/2 daemons up, 2 standbyosd: 9 osds: 9 up (since 8m), 9 in (since 22h)data:volumes: 1/1 healthypools:   3 pools, 97 pgsobjects: 93 objects, 200 MiBusage:   679 MiB used, 1.8 TiB / 1.8 TiB availpgs:     97 active+clean

3、cephfs的使用方式

客户端挂载有两种方式,内核空间和用户空间,其中内核空间挂载需要系统内核支持ceph模块,用户空间挂载需要安装ceph-fuse

3.1 客户端使用内核空间挂载ceph-fs

3.1.1客户端通过key文件挂载

#挂载
root@ceph-client:~# mkdir /data
root@ceph-client:~# mount -t ceph 172.17.10.61:6789,172.17.10.62:6789,172.17.10.63:6789:/ /data -o  name=wsq,secretfile=/etc/ceph/wsq.key #验证写入数据
root@ceph-client:~# dd if=/dev/zero of=/data/testfile bs=1M count=100#设置开机自启动挂载
root@ceph-client:~# cat /etc/fstab
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda3 during curtin installation
/dev/disk/by-uuid/f570731e-f73a-4f9e-96a7-1648efb29cb8 / ext4 defaults 0 1
# /boot was on /dev/sda2 during curtin installation
/dev/disk/by-uuid/f44ce411-83f2-4152-9e82-8334567a867d /boot ext4 defaults 0 1
172.17.10.61:6789,172.17.10.62:6789,172.17.10.63:6789:/ /data ceph defaults,name=wsq,secretfile=/etc/ceph/wsq.key,_netdev 0 0
root@ceph-client:~# mount -a#验证
root@ceph-client:~#reboot
root@ceph-client:~#df -Th

3.1.2客户端通过密钥key挂载

root@ceph-client:/etc/ceph# ll
total 24
drwxr-xr-x   2 root root 4096 Jul 13 12:36 ./
drwxr-xr-x 100 root root 4096 Jul 13 12:56 ../
-rw-r--r--   1 root root  147 Jul 13 10:05 ceph.client.wsq.keyring
-rw-r--r--   1 root root  354 Jul 13 09:44 ceph.conf
-rw-r--r--   1 root root   92 Apr 19 23:37 rbdmap
-rw-r--r--   1 root root   40 Jul 13 10:05 wsq.key
root@ceph-client:/etc/ceph# cat wsq.key
AQDYZ65kIHuWGBAAdFExyLsWVzEQ+lyFyHcNpA==
root@ceph-client:~# mount -t ceph 172.17.10.61:6789,172.17.10.62:6789,172.17.10.63:6789:/ /data -o name=wsq,secret=AQDYZ65kIHuWGBAAdFExyLsWVzEQ+lyFyHcNpA==
#验证写入数据
root@ceph-client:~# dd if=/dev/zero of=/data/testfile bs=1M count=100#设置开机自启动挂载
root@ceph-client:~# cat /etc/fstab
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda3 during curtin installation
/dev/disk/by-uuid/f570731e-f73a-4f9e-96a7-1648efb29cb8 / ext4 defaults 0 1
# /boot was on /dev/sda2 during curtin installation
/dev/disk/by-uuid/f44ce411-83f2-4152-9e82-8334567a867d /boot ext4 defaults 0 1
172.17.10.61:6789,172.17.10.62:6789,172.17.10.63:6789:/ /data ceph defaults,name=wsq,secret=AQDYZ65kIHuWGBAAdFExyLsWVzEQ+lyFyHcNpA==,_netdev 0 0root@ceph-client:~# mount -a#验证
root@ceph-client:~#reboot
root@ceph-client:~#df -Th

3.2用户空间挂载ceph-fs

如果内核版本比较低而没有ceph模块,那么可以安装ceph-fuse挂载,但是推荐使用内核模块挂载。

注意:我用的是ubuntu1804系统内核支持ceph.ko模块挂载cephfs文件系统故无需安装ceph-fuse

root@ceph-client:~# lsmod |grep ceph
ceph                  380928  1
libceph               315392  1 ceph
fscache                65536  1 ceph
libcrc32c              16384  2 raid456,libceph
root@ceph-client:~# modinfo ceph
filename:       /lib/modules/4.15.0-213-generic/kernel/fs/ceph/ceph.ko
license:        GPL
description:    Ceph filesystem for Linux   #ceph文件系统
author:         Patience Warnick <patience@newdream.net>
author:         Yehuda Sadeh <yehuda@hq.newdream.net>
author:         Sage Weil <sage@newdream.net>
alias:          fs-ceph
srcversion:     7719B0A9AE35739551E438E
depends:        libceph,fscache
retpoline:      Y
intree:         Y
name:           ceph
vermagic:       4.15.0-213-generic SMP mod_unload modversions
signat:         PKCS#7
signer:
sig_key:
sig_hashalgo:   md4#通过ceph-fuse挂载ceph
[root@ceph-client ~]# mkdir /data
[root@ceph-client ~]# ceph-fuse --name client.wsq -m 172.17.10.61:6789,172.17.10.62:6789,172.17.10.63:6789 /data
ceph-fuse[1628]: starting ceph client
2021-06-08 10:51:24.332 7f5a3898ec00 -1 init, newargv = 0x556a48c77da0 newargc=7
ceph-fuse[1628]: starting fuse[root@ceph-client2 ~]# vim /etc/fstab
none /data fuse.ceph ceph.id=yanyan,ceph.conf=/etc/ceph/ceph.conf,_netdev,defaults 0 0
[root@ceph-client2 ~]# mount -a

4、ceph mds高可用

4.1 ceph mds高可用的作用

ceph mds作为ceph的访问入口,需要实现高性能及数据备份,假设启动4个MDS进程,设置2个Rank。这时候有2个MDS进程会分配给两个Rank,还剩下2个MDS进程分别作为另外两个的备份。

在这里插入图片描述

设置每个 Rank 备份 MDS,也就是如果此 Rank 当前的 MDS 出现问题马上切换到另个
MDS。设置备份的方法有很多,常用选项如下。

mds_standby_replay:值为 true 或 false,true 表示开启 replay 模式,这种模式下主 MDS
内的数量将实时与从 MDS 同步,如果主宕机,从可以快速的切换。如果为 false 只有宕机
的时候才去同步数据,这样会有一段时间的中断。
mds_standby_for_name:设置当前 MDS 进程只用于备份于指定名称的 MDS。
mds_standby_for_rank:设置当前 MDS 进程只用于备份于哪个 Rank,通常为 Rank 编号。
另外在存在之个 CephFS 文件系统中,还可以使用 mds_standby_for_fscid 参数来为指定不
同的文件系统。
mds_standby_for_fscid:指定 CephFS 文件系统 ID,需要联合 mds_standby_for_rank 生
效,如果设置 mds_standby_for_rank,那么就是用于指定文件系统的指定 Rank,如果没有
设置,就是指定文件系统的所有 Rank。

4.2搭建MDS高可用

ceph-mgr2 和 ceph-mon1 和 ceph-mon2 作为 mds 服务角色添加至 ceph 集群,最后实两主两备的 mds 高可用和高性能结构

4.2.1 安装mds服务

注意:安装前要查看存储的状态和当前MDS服务的状态

#安装前的检查
cephadmin@ceph-mon1:~/ceph-cluster$ ceph -scluster:id:     3bc181dd-a0ef-4d72-a58d-ee4776e9870fhealth: HEALTH_OKservices:mon: 3 daemons, quorum ceph-mon1,ceph-mon2,ceph-mon3 (age 67m)mgr: ceph-mgr1(active, since 67m), standbys: ceph-mgr2mds: 2/2 daemons up, 2 standbyosd: 9 osds: 9 up (since 67m), 9 in (since 23h)data:volumes: 1/1 healthypools:   3 pools, 97 pgsobjects: 93 objects, 200 MiBusage:   679 MiB used, 1.8 TiB / 1.8 TiB availpgs:     97 active+cleancephadmin@ceph-mon1:~/ceph-cluster$ ceph mds  stat#将分别在ceph-mon1、ceph-mon2、ceph-mon3安装mds服务
[root@ceph-mon1 ~]# apt install ceph-mds -y
[root@ceph-mon2 ~]# apt install ceph-mds -y
[root@ceph-mgr2 ~]# apt install ceph-mds -y#在ceph-mon1部署节点上把mds服务器添加至ceph存储集群
[ceph@ceph-mon1 ceph-cluster]$ ceph-deploy mds create ceph-mgr2
[ceph@ceph-mon1 ceph-cluster]$ ceph-deploy mds create ceph-mon2
[ceph@ceph-mon1 ceph-cluster]$ ceph-deploy mds create ceph-mon1#添加完成后验证mds服务器当前的状态
cephadmin@ceph-mon1:~/ceph-cluster$ ceph mds stat
mycephfs:1 {0=ceph-mgr1=up:active} 3 up:standby#验证ceph集群当前状态
当前处于激活状态的mds服务器有一台,处于备份状态的mds服务器有三台
cephadmin@ceph-mon1:~/ceph-cluster$ ceph fs status
mycephfs - 2 clients
========
RANK  STATE      MDS        ACTIVITY     DNS    INOS   DIRS   CAPS0    active  ceph-mgr1  Reqs:    0 /s    16     17     13      1POOL         TYPE     USED  AVAIL
cephfs-metadata  metadata   445k   569Gcephfs-data      data     600M   569G
STANDBY MDSceph-mon2ceph-mgr2ceph-mon1
MDS version: ceph version 16.2.13 (5378749ba6be3a0868b51803968ee9cde4833a3e) pacific (stable)#查看当前的文件系统状态
cephadmin@ceph-mon1:~/ceph-cluster$ ceph fs get mycephfs
Filesystem 'mycephfs' (1)
fs_name	mycephfs
epoch	108
flags	12
created	2023-07-12T08:32:08.110331+0000
modified	2023-07-13T06:24:40.794921+0000
tableserver	0
root	0
session_timeout	60
session_autoclose	300
max_file_size	1099511627776
required_client_features	{}
last_failure	0
last_failure_osd_epoch	141
compat	compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap,7=mds uses inline data,8=no anchortable,9=file layout v2,10=snaprealm v2}
max_mds	2
in	0,1
up	{0=114104,1=114103}
failed
damaged
stopped
data_pools	[4]
metadata_pool	3
inline_data	disabled
balancer
standby_count_wanted	1
[mds.ceph-mgr1{0:114104} state up:active seq 19 addr [v2:172.17.10.64:6800/118428332,v1:172.17.10.64:6801/118428332]compat {c=[1],r=[1],i=[7ff]}]
[mds.ceph-mon1{1:114103} state up:active seq 21 addr [v2:172.17.10.61:6800/3442732995,v1:172.17.10.61:6801/3442732995] compat {c=[1],r=[1],i=[7ff]}]#设置处于激活状态mds的数量
目前有四个 mds 服务器,但是有一个主三个备,可以优化一下部署架构,设置为为两主两
备。
cephadmin@ceph-mon1:~/ceph-cluster$ ceph fs set mycephfs max_mds 2   #设置同时活跃的主mds最大值为2
cephadmin@ceph-mon1:~/ceph-cluster$ ceph fs status
mycephfs - 2 clients
========
RANK  STATE      MDS        ACTIVITY     DNS    INOS   DIRS   CAPS0    active  ceph-mgr1  Reqs:    0 /s    16     17     13      11    active  ceph-mon1  Reqs:    0 /s    10     13     11      1POOL         TYPE     USED  AVAIL
cephfs-metadata  metadata   445k   569Gcephfs-data      data     600M   569G
STANDBY MDSceph-mon2ceph-mgr2
MDS version: ceph version 16.2.13 (5378749ba6be3a0868b51803968ee9cde4833a3e) pacific (stable)

5、MDS 高可用优化

目前的状态是 ceph-mgr1 和 ceph-mon1 分别是 active 状态,ceph-mon2 和 ceph-mgr2
分别处于 standby 状态,现在可以将 ceph-mgr2 设置为 ceph-mgr1 的 standby,将
ceph-mon2 设置为 ceph-mon1 的 standby,以实现每个主都有一个固定备份角色的结构,
则修改配置文件如下:

[ceph@ceph-deploy ceph-cluster]$ vim ceph.conf
[global]
fsid = 23b0f9f2-8db3-477f-99a7-35a90eaf3dab
public_network = 172.17.10.0/16
cluster_network = 192.168.10.0/24
mon_initial_members = ceph-mon1
mon_host = 172.17.10.61
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
mon clock drift allowed = 2
mon clock drift warn backoff = 30
mon_allow_pool_delete = true
osd pool default ec profile = /var/log/ceph_pool_healthy[mds.ceph-mgr2]
#mds_standby_for_fscid = mycephfs
mds_standby_for_name = ceph-mgr1
mds_standby_replay = true
[mds.ceph-mon2]
mds_standby_for_name = ceph-mon1
mds_standby_replay = true#分发配置文件并重启mds服务#分发配置文件保证各 mds 服务重启有效
$ ceph-deploy --overwrite-conf config push ceph-mon1
$ ceph-deploy --overwrite-conf config push ceph-mon2
$ ceph-deploy --overwrite-conf config push ceph-mgr1
$ ceph-deploy --overwrite-conf config push ceph-mgr2
[root@ceph-mon2 ~]# systemctl restart ceph-mds@ceph-mon2.service
[root@ceph-mon1 ~]# systemctl restart ceph-mds@ceph-mon1.service
[root@ceph-mgr2 ~]# systemctl restart ceph-mds@ceph-mgr2.service
[root@ceph-mgr1 ~]# systemctl restart ceph-mds@ceph-mgr1.service#验证
cephadmin@ceph-mon1:~/ceph-cluster$ ceph fs status
mycephfs - 2 clients
========
RANK  STATE      MDS        ACTIVITY     DNS    INOS   DIRS   CAPS0    active  ceph-mgr1  Reqs:    0 /s    16     17     13      11    active  ceph-mon1  Reqs:    0 /s    10     13     11      1POOL         TYPE     USED  AVAIL
cephfs-metadata  metadata   445k   569Gcephfs-data      data     600M   569G
STANDBY MDSceph-mon2ceph-mgr2
MDS version: ceph version 16.2.13 (5378749ba6be3a0868b51803968ee9cde4833a3e) pacific (stable)#查看active和standby对应关系
cephadmin@ceph-mon1:~/ceph-cluster$ ceph fs get mycephfs
Filesystem 'mycephfs' (1)
fs_name	mycephfs
epoch	108
flags	12
created	2023-07-12T08:32:08.110331+0000
modified	2023-07-13T06:24:40.794921+0000
tableserver	0
root	0
session_timeout	60
session_autoclose	300
max_file_size	1099511627776
required_client_features	{}
last_failure	0
last_failure_osd_epoch	141
compat	compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap,7=mds uses inline data,8=no anchortable,9=file layout v2,10=snaprealm v2}
max_mds	2
in	0,1
up	{0=114104,1=114103}
failed
damaged
stopped
data_pools	[4]
metadata_pool	3
inline_data	disabled
balancer
standby_count_wanted	1
[mds.ceph-mgr1{0:114104} state up:active seq 19 addr [v2:172.17.10.64:6800/118428332,v1:172.17.10.64:6801/118428332]compat {c=[1],r=[1],i=[7ff]}]
[mds.ceph-mon1{1:114103} state up:active seq 21 addr [v2:172.17.10.61:6800/3442732995,v1:172.17.10.61:6801/3442732995] compat {c=[1],r=[1],i=[7ff]}]

6、通过ganesha将cephfs导出为NFS

通过 ganesha 将 cephfs 通过 NFS 协议共享使用。

https://www.server-world.info/en/note?os=Ubuntu_20.04&p=ceph15&f=8

6.1服务端配置

root@ceph-mgr1:~# apt -y install nfs-ganesha-ceph#修改配置文件
root@ceph-mgr1:~# cd /etc/ganesha/
root@ceph-mgr1:/etc/ganesha#
root@ceph-mgr1:/etc/ganesha# cat ganesha.conf
###################################################
#
# EXPORT
#
# To function, all that is required is an EXPORT
#
# Define the absolute minimal export
#
###################################################
NFS_CORE_PARAM {# disable NLMEnable_NLM = false;# disable RQUOTA (not suported on CephFS)Enable_RQUOTA = false;# NFS protocolProtocols = 4;
}
EXPORT_DEFAULTS {# default access modeAccess_Type = RW;
}
EXPORT {# uniq IDExport_Id = 1;# mount path of CephFSPath = "/";FSAL {name = CEPH;# hostname or IP address of this Nodehostname="172.17.10.64";
}# setting for root SquashSquash="No_root_squash";# NFSv4 Pseudo pathPseudo="/magedu";# allowed security optionsSecType = "sys";
}
LOG {# default log levelDefault_Log_Level = WARN;
}EXPORT
{# Export Id (mandatory, each EXPORT must have a unique Export_Id)Export_Id = 77;# Exported path (mandatory)Path = /nonexistant;# Pseudo Path (required for NFS v4)Pseudo = /nonexistant;# Required for access (default is None)# Could use CLIENT blocks insteadAccess_Type = RW;# Exporting FSALFSAL {Name = VFS;}
}

6.2客户端挂载测试

root@ceph-client:/etc/ceph# mount -t nfs 172.17.10.64:/magedu  /data/data-nfs/
root@ceph-client:/etc/ceph# df -Th
Filesystem                                              Type      Size  Used Avail Use% Mounted on
udev                                                    devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                                                   tmpfs     392M   13M  380M   4% /run
/dev/sda3                                               ext4       98G  6.3G   87G   7% /
tmpfs                                                   tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                                                   tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs                                                   tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda2                                               ext4      9.8G  152M  9.1G   2% /boot
172.17.10.61:6789,172.17.10.62:6789,172.17.10.63:6789:/ ceph      570G  200M  570G   1% /data
tmpfs                                                   tmpfs     392M     0  392M   0% /run/user/0
172.17.10.64:/magedu  nfs4      570G  200M  570G   1% /data/data-nfs#验证
root@ceph-client: dd if=/dev/zero  of=/data/data-nfs/test.file bs=1M count=100
root@ceph-client:/data/data-nfs# mkdir test
root@ceph-client:/data/data-nfs# ll
total 204802
drwxr-xr-x 4 nobody 4294967294 209715226 Jul 13 16:27 ./
drwxr-xr-x 1 root   root               5 Jul 13 16:27 ../
drwxr-xr-x 2 nobody 4294967294         0 Jul 13 16:27 test/
-rw-r--r-- 1 nobody 4294967294 104857600 Jul 13 12:58 test.file
#验证
root@ceph-client: dd if=/dev/zero  of=/data/data-nfs/test.file bs=1M count=100
root@ceph-client:/data/data-nfs# mkdir test
root@ceph-client:/data/data-nfs# ll
total 204802
drwxr-xr-x 4 nobody 4294967294 209715226 Jul 13 16:27 ./
drwxr-xr-x 1 root   root               5 Jul 13 16:27 ../
drwxr-xr-x 2 nobody 4294967294         0 Jul 13 16:27 test/
-rw-r--r-- 1 nobody 4294967294 104857600 Jul 13 12:58 test.file

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/26919.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB

安装 数据存放路径&#xff1a;D:\data\db 安装目录&#xff1a;D:\MongoDB\mongodb-windows-x86_64-5.0.19\mongodb-win32-x86_64-windows-5.0.19\bin 配置环境变量 开启服务端&#xff0c;客户端 # 开启服务端&#xff0c;指定数据存放路径 mongod --dbpath D:\data\…

【HCIA】11.ACL与NAT地址转换

ACL 通过ACL可以实现对网络中报文流的精确识别和控制&#xff0c;达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的。 ACL是由permit或deny语句组成的一系列有顺序的规则的集合&#xff1b;它通过匹配报文的相关字段实现对报文的分类。ACL是能够匹配一个IP数据包…

vue 通过多组复选框来过滤数据

1.通过if else 来筛选数据 <template> <div><div><label><input type"checkbox" v-model"checkedNames" value"北京"> 北京</label><label><input type"checkbox" v-model"chec…

【Web UI自动化测试】Web UI自动化测试之框架篇(全网最全)

本文大纲截图&#xff1a; UnitTest框架&#xff1a; PyTest框架&#xff1a; 框架&#xff1a; 框架英文单词 framework&#xff0c;为解决一类事情的功能的集合。需要按照框架的规定&#xff08;套路&#xff09;去书写代码。 一、UnitTest框架介绍【文末分享自动化测试学习…

【iOS】—— 编译链接

【iOS】—— 编译链接 文章目录 【iOS】—— 编译链接编译流程预处理&#xff08;预编译Prepressing&#xff09;编译&#xff08;Compilation&#xff09;汇编&#xff08;Assembly&#xff09;链接&#xff08;Linking&#xff09; 编译流程 编译流程分为四步 预处理&#…

Windows搭建Nginx实现RTMP转为HLS流

所需软件 nginx-1.7.11.3-Gryphon&#xff08;这个包含必须的RTMP模块&#xff0c;普通的Ngxin没有这个&#xff09;ffmpegVLC 配置Nginx 1为Nginx配置RTMP和HLS 这里定义了一个叫live的RTMP路径。同时设置其开启HLS功能&#xff0c;那么所有推送到这个地址的RTMP流都会自动生…

csapp 深入理解计算机系統 笔记

csapp 深入理解计算机系統 笔记 参考lab 第1章&#xff1a;计算机系统漫游第 2 章&#xff1a;信息的表示和处理Data Lab 第03章&#xff1a;程序的机器级表示Bomb Lab 参考 计算机速成课 | Crash Course 字幕组 (全40集 2018-5-1 精校完成)csapp重点解读深入理解计算机系統 c…

讯为RK3568开发板到手编译buildroot系统入坑一

从事单片机开发多年一直想买一个开发板学习Linux系统&#xff0c;这次狠心花了800多打样买了一个讯为的RK3568低配。裸板配置。 因为讯为没有编译系统的视频教程&#xff0c;只有文档的教程&#xff0c;而且只有瑞芯微官方带的Linux源码中的系统编译后文档教程。像ubuntu是没有…

安装hive数据仓库

部署hive数据库 环境准备 需要安装部署完成的Hadoop的环境如果不会搭建的可以参考&#xff1a; 安装mysql 卸载Centos7自带的mariadb rpm -qa|grep mariadbrpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodepsrpm -qa|grep mariadb mariadb-libs-5.5.64-1.el7.x86_64是使用…

蓝牙耳机选购攻略:开放式耳机篇!如何选购开放式耳机?开放式蓝牙耳机哪些品牌比较好?过来人告诉你如何选购开放式耳机!

作为一个耳机爱好者&#xff0c;最近更是喜欢上了开放式蓝牙耳机&#xff0c;实际用过的起码有十几款&#xff0c;但其实最终能留下来的也只有四五款。由于前期并不知道应该如何选择开放式耳机&#xff0c;经常都会高价买到些质量差、音质也不好、漏音大的开放式耳机&#xff0…

关键点检测SIFT算法笔记

SIFT算法 SIFT&#xff08;Scale Invariant Feature Transform&#xff09;&#xff0c;尺度不变特征变换。具有旋转不变性、尺度不变性、亮度变化保持不变性&#xff0c;是一种非常稳定的局部特征。在目标检测和特征提取方向占据着重要的地位。 SIFT算法所查找到的关键点是一些…

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍 1.大语言模型的预训练 1.LLM预训练的基本概念 预训练属于迁移学习的范畴。现有的神经网络在进行训练时&#xff0c;一般基于反向传播&#xff08;Back Propagation&…