搭建CNFS文件系统
1.概念:
-
CNFS (Cluster Network File System)是 GPFS 中的一种模式,用于配置和管理多台服务器(节点)之间的文件共享和数据访问
-
它允许多个节点同时访问和共享文件系统的数据,以实现高性能、高可用性的存储解决方案
2.创建CNFS文件系统:
-
将原本的GPFS文件系统修改为cnfs文件系统:
[root@node1 ~]# mmchfs gpfs1 -o syncnfs mmchfs: Propagating the cluster configuration data to allaffected nodes. This is an asynchronous process. -
修改配置文件/etc/exports(这是nfs服务器的配置文件),
#| 共享目录 | 主机名 (权限)| /usr/qv123/nfsdata 192.168.73.0/24(rw)man exports # 查看所有参数权限参数值 说明 rw/ro rw:可读写,ro:只读,还是与文件系统的rwx有关 sync/async sync:数据会同步写入到内存与硬盘中,async:则代表数据会先暂存于内存当中 no_root_squash/root_squash no_root_squash表示就显示root用户和root组;root_squash表示将root用户和组映射为匿名用户和组(默认设置)。 all_squash/no_all_squash allsquash:客户端所有用户创建文件时,客户端会将文件的用户和组映射为匿名用户和组no_all_squash:客户端普通用户创建的文件的UID和GID是多少,服务端就显示为多少(默认设置) anonuid=anongid= 将文件的用户和组映射为指定的UID和GID,若不指定默认为65534(nfsnobody) [root@node1 ~]# cat << eof > /etc/exports /gpfs1/nfs 192.168.10.0/24(rw,fsid=11) eof [root@node2 ~]# cat << eof > /etc/exports /gpfs1/nfs 192.168.10.0/24(rw,fsid=11) eof -
使配置生效
[root@node1 ~]# exportfs -r [root@node1 ~]# exportfs -r -
在每个服务端上面设置nfsd自动启动
[root@node1 ~]# systemctl enable nfs-server Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service. [root@node2 ~]# systemctl enable nfs-server Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service. -
指定 CNFS 服务器的共享根目录,最好是一个单独小的文件系统且不被NFS共享出去
[root@node1 ~]# mmchconfig cnfsSharedRoot=/gpfs1/cnfs mmchconfig: Command successfully completed mmchconfig: Propagating the cluster configuration data to allaffected nodes. This is an asynchronous process. -
指定 CNFS(Cluster Network File System)服务器节点上用于 CNFS 服务的网络接口
ip_address_list为上面配置的专用于NFS的ip,node为这个节点在GPFS里面的主机名;CNFS 允许多个 Spectrum Scale 节点通过 RDMA(远程直接内存访问)协议来访问共享数据。
[root@node1 ~]# mmchnode --cnfs-interface=192.168.10.151 -N node1 Wed Sep 27 05:24:58 EDT 2023: mmchnode: Processing node node1 mmnfsinstall: CNFS has modified configuration file /etc/sysconfig/network-scripts/ifcfg-ens38. Restarting monitor mmchnode: Propagating the cluster configuration data to allaffected nodes. This is an asynchronous process. [root@node2 ~]# mmchnode --cnfs-interface=192.168.10.152 -N node2 Wed Sep 27 05:33:53 EDT 2023: mmchnode: Processing node node2 mmnfsinstall: CNFS has modified configuration file /etc/sysconfig/network-scripts/ifcfg-ens38. Restarting monitor mmchnode: Propagating the cluster configuration data to allaffected nodes. This is an asynchronous process. -
指定 CNFS服务器上的
mountd服务监听的端口号[root@node1 ~]# mmchconfig cnfsMountdPort=3000 -N node1 mmchconfig: Command successfully completed mmchconfig: Propagating the cluster configuration data to allaffected nodes. This is an asynchronous process. [root@node2 ~]# mmchconfig cnfsMountdPort=3000 -N node2 mmchconfig: Command successfully completed mmchconfig: Propagating the cluster configuration data to allaffected nodes. This is an asynchronous process. -
查看集群里的CNFS节点:
[root@node1 ~]# mmlscluster --cnfs GPFS cluster information ========================GPFS cluster name: gpfs.node1GPFS cluster id: 1484988891362745278 Cluster NFS global parameters -----------------------------Shared root directory: /gpfs1/cnfsrpc.mountd port number: 3000nfsd threads: 32Reboot on failure enabled: yesCNFS monitor enabled: yes Node Daemon node name IP address CNFS state group CNFS IP address list -------------------------------------------------------------------------------------------1 node1 192.168.10.101 enabled 0 192.168.10.1512 node2 192.168.10.102 enabled 0 192.168.10.152 -
测试是否存在共享目录:
[root@node1 ~]# showmount -e 192.168.10.151 Export list for 192.168.10.151: /gpfs1/nfs 192.168.10.0/24
3.客户端挂载:
-
方式一:临时挂载
-
安装nfs-utils
[root@gpfs-client ~]# yum install -y nfs-utils -
查看是否可以连接上共享目录:
[root@gpfs-client ~]# showmount -e 192.168.10.151 Export list for 192.168.10.151: /gpfs1/nfs 192.168.10.0/24 [root@gpfs-client ~]# showmount -e 192.168.10.152 Export list for 192.168.10.152: /gpfs1/nfs 192.168.10.0/24 -
创建挂载目录,挂载目录或解挂载目录
[root@gpfs-client ~]# mount -o sync,hard,intr 192.168.10.151:/gpfs1/nfs /mnt/nfs -
查看挂载:
[root@gpfs-client ~]# df -h | grep nfs 192.168.10.151:/gpfs1/nfs 20G 3.7G 17G 19% /mnt/nfs
-
-
方式二:自动挂载
-
安装autofs:
yum install -y autofs -
配置文件:
autofs.conf:针对服务autofs的配置 timeout = 300, # dismount_interval = 300 # 挂载超时时间auto.master:是针对目录对应的挂载配置文件 /misc这个目录自动挂载的信息autofs在 /etc/auto.misc中 配置语法: 目录 自动挂载配置文件的目录auto.xxx:具体的挂载的信息 cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom 挂载的目录 挂载的选项 :要挂载的设备 boot -fstype=ext2 :/dev/hda1 -
修改配置文件:
cat << eof > /etc/auto.master /mnt /etc/auto.nfs eofcat << eof > /etc/auto.nfs # 添加内容 #本地端子目录 -挂载参数 服务器所提供的目录 nfs 192.168.10.151:/gpfs1/nfs eof参数 参数功能 fgbg 当执行挂载时,该挂载行为会在前台(fg)还是后台(bg)执行,若在前台执行,则mount会持续尝试挂载,直到成功或time out为止;若为后台执行,则mount会在后台持续多次进行mount,而不会影响到前台的程序运行。 softhard hard表示当两者之间的任何一台主机脱机,则RPC会持续地呼叫,直到对方恢复连接为止。如果是soft的话,那RPC会在time out后重复呼叫,而非持续呼叫 intr 当使用上面提到的hard方式挂载时,若加上intr这个参数,则当RPC持续呼叫时,该次的呼叫是可以被中断的 rsizewsize 读出(rsize)与写入(wsize)的区块大小。这个设置值可以影响客户端与服务器端传输数据的缓冲记忆容量 -
重启autofs服务
systemctl restart autofs -
查看挂载信息:
mount | grep /nfs -
触发自动挂载,进入到子目录中触发,退出挂载目录一定时间后触发解挂载:
cd /mnt/nfs
-
3.删除cnfs节点:
mmchnode --cnfs-interface=DELETE -N "node1,node2"
相关文章:
搭建CNFS文件系统
1.概念: CNFS (Cluster Network File System)是 GPFS 中的一种模式,用于配置和管理多台服务器(节点)之间的文件共享和数据访问 它允许多个节点同时访问和共享文件系统的数据,以实现高性能、高可…...
网络工程师知识点7
111、IS-IS路由器的三种类型? Level-1路由器(只能创建level-1的LSDB) Level-2路由器(只能创建level-2的LSDB) Level-1-2路由器(路由器默认的类型,能同时创建level-1和level-2的LSDB)…...
C++ 八股文:类析构
继承层次中,为什么基类析构函数是虚函数? 在继承层次中,将基类的析构函数声明为虚函数的主要原因是为了支持多态和安全的资源释放。以下是为什么基类的析构函数通常应该是虚函数的原因: 多态析构: 当使用基类指针&a…...
第三章 内存管理 八、两级页表
目录 一、定义 二、如何实现地址变换 三、注意 四、总结 一、定义 二级页表是一种分层的虚拟内存管理机制。在二级页表中,虚拟地址被分成两个层次,第一层是页目录,第二层是页表。通过这种方式,二级页表可以管理更大的虚拟内存…...
新时代高效记账:自动化智能如何进行财务管理
随着科技的不断发展,自动化智能已经逐渐渗透到我们生活的各个领域。在财务管理中,自动化智能的应用显得尤为重要。它不仅可以提高财务管理的效率和精度,还能帮助我们更好地规划和掌控公司的财务状况 晨曦记账本提供了多种高效财务管理工具。…...
Linux小程序---进度条
一:\r 和 \n \r --- 回车 --- 使光标回到这一行的开头 \n --- 换行 --- 会来到下一行与之平行的位置 缓冲区的问题: <1>: \n 的示例 正常输出 hehehehe 。 <2>: \r 的示例 为了方便观察,加入一个 sleep (休眠函数…...
【Java笔试强训】Day1(100449-组队竞赛 、OR63 删除公共字符)
100449-组队竞赛 链接:组队竞赛 题目: 牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。 例如: 一个队伍三个…...
C语言进行实验:通过程序实现线算图取值【支持VC++ 6.0编辑器环境运行】
背景: 一、实验目的和要求 1、能描述数据基本类型及其常量的表示方法; 2、会对变量进行定义及初始化; 3、能使用运算符与表达式对变量赋值; 4、会描述C语句的概念及种类、C语言常用的输入/出方式; 5、会设计顺序…...
信息检索与数据挖掘|(四)索引构建
目录 📚硬件基础 📚基于块的排序索引方法 🐇BSBI算法(blocked sort-based indexing) 📚内存式单遍扫描索引构建方法 🐇SPIMI算法(single-pass in-memory indexing) 📚分布式索引构建方法 Ὅ…...
Ruby使用类组织对象
使用Object.new创建新对象,但是一次只使用一种方法,这是感受以对象为中心的Ruby编程的最佳方式之一。不过这种方式并不能很好地扩展,假如有一个正在运行地在线售票网站,然后其数据库必须处理数以百计地售票记录,那么可…...
Spring Boot 中常用的注解@RequestParam
Spring Boot 中常用的注解RequestParam RequestParam 是 Spring Framework 和 Spring Boot 中常用的注解之一,用于从请求中获取参数值。它通常用于处理 HTTP 请求中的查询参数(query parameters)或表单数据。下面详细解释 RequestParam 的用…...
Spark工作流程
Spark 的整个工作流程可以概括为以下步骤: 创建 SparkSession: 应用程序首先需要创建一个 SparkSession 对象,它是与 Spark 的交互入口。SparkSession 提供了对核心功能和各个模块的访问。 加载数据: 使用 SparkSession 提供的 AP…...
IDEA如何设置项目包名分级
按上面的勾选即可!...
消防应急疏散指示系统在某生物制药工厂项目的应用
安科瑞 华楠 摘要 消防应急照明和疏散指示系统由控制器、集中电源和灯具(疏散指示灯具、应急照明灯具)等几部分组成。系统采用17寸工业平板电脑、Windonws7系统,可支持联动报警、系统监控、故障报警、自检、备电、记录存储与查询、导光流、…...
C语言文件操作(上)
文章目录 一、为什么使用文件二、什么是文件1.程序文件2.数据文件3.文件名 三、文件的打开与关闭1.文件指针2.文件的打开和关闭fopen 与 fclose 四、文件的顺序读写01 字符输出函数:fputs02 字符输入函数:fgetc03 文本行输出函数:fputs04 文本…...
二叉树的前 中 后序的非递归实现(图文详解)
🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻强烈推荐优质专栏: 🍔🍟🌯C的世界(持续更新中) 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔…...
.NET验收
验收通用模板: 1.该资料计划看几天? 实际看了几天? 计划7天,实际看了9天 2.多少天一篇总结?将总结列出来。 一周总结一篇。 博客地址:3.这个资料相较于之前资料共同的内容是什么? 不同的(需要强化学习)…...
C++11——lambda表达式
文章目录 1. C98对自定义类型的排序2. lambda表达式语法2.1 捕捉列表 3. lambda底层原理 1. C98对自定义类型的排序 在C98中,想要对自定义类型就行排序,我们得自己写仿函数来表明我们相对哪一项进行排序 struct Student {Student(string name, long id…...
美国加密货币交易和借贷平台Membrane Labs完成2000万美元融资
来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,总部位于美国纽约的加密货币交易和借贷平台Membrane Labs今日宣布已完成2000万美元A轮融资。 参与本轮融资的投资机构包括:Brevan Howard Digital、Point72 Ventures、Jane Street Cap…...
8-k8s-污点与容忍
文章目录 一、概念二、相关操作三、实操污点NoSchedule四、实操污点NoExecute五、实操容忍 一、概念 污点与容忍 污点taints定义在节点之上的键值型属性数据。当节点被标记为有污点,那么意味着不允许pod调度到该节点。 容忍tolerations是定义在 Pod对象上的键值型属…...
碧蓝航线Alas脚本:解放双手的终极自动化解决方案
碧蓝航线Alas脚本:解放双手的终极自动化解决方案 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 你是否厌倦了每…...
Spike Prime避坑指南:Python控制电机和传感器时,新手最常遇到的5个错误及解决方法
Spike Prime避坑指南:Python控制电机和传感器时新手最常遇到的5个错误 第一次用Python控制Spike Prime的电机和传感器时,那种期待和兴奋很快就会被各种报错消磨殆尽。明明照着官方文档写的代码,电机就是不转;传感器读数永远为零&a…...
新手避坑指南:STM32用Makefile编译时,遇到‘junk at end of line’错误怎么办?
STM32 Makefile编译实战:彻底解决junk at end of line汇编错误 第一次用Makefile编译STM32项目时,看到满屏的junk at end of line错误提示,确实容易让人头皮发麻。这就像你兴冲冲地下载了一个开源项目准备大展身手,结果刚执行make…...
Perplexity vs ChatGPT vs Claude:用户评论情感分析对比报告(NLP模型实测,含21项维度打分)
更多请点击: https://intelliparadigm.com 第一章:Perplexity用户评论汇总 主流平台用户反馈概览 Perplexity 作为以引用驱动、实时联网为特色的AI问答工具,近期在Reddit、Product Hunt及Twitter等平台收获大量真实用户评论。高频关键词包括…...
【MySQL百日打怪升级第8天】SELECT执行流程
【第8天】每天一个MySQL知识点,百日打怪升级 SQL基础:SELECT执行流程 大家好,我是一名拥有10年以上经验的DBA老兵。 做这个系列,源于一个朴素的愿望:把踩过的坑、总结的经验系统化输出,希望能帮到刚入行或…...
SpringBoot + MyBatis-Plus 项目迁移到 PostgreSQL,踩到 ‘Bad value for type long‘ 这个坑?手把手教你排查和修复
SpringBoot MyBatis-Plus 项目迁移到 PostgreSQL 的"类型陷阱":从报错到根治指南 当Java开发者将SpringBoot项目从MySQL迁移到PostgreSQL时,经常会遇到一个看似简单却令人头疼的问题:org.postgresql.util.PSQLException: Bad valu…...
RTOS任务通知:轻量级通信机制的原理、应用与性能优化
1. 项目概述:为什么RTOS应用需要“任务通知”在嵌入式实时操作系统(RTOS)的世界里,任务间的通信与同步是决定系统效率、响应速度和稳定性的基石。传统的通信机制,如信号量、消息队列、事件标志组,我们早已驾…...
从地图导航到推荐系统:欧式距离在真实业务场景中的Python应用避坑指南
从地图导航到推荐系统:欧式距离在真实业务场景中的Python应用避坑指南 当你在外卖App上查看"3公里内的餐厅",或在电商平台看到"相似用户还买了"的推荐时,背后可能都在使用同一个数学工具——欧式距离。这个看似简单的距离…...
Mac/Linux/Win 跨平台协作难?企业网盘选型必须知道的 3 个标准(含 5 款网盘实测)
对于 2026 年的现代企业而言,业务、设计、研发三大流派往往各自盘踞不同的操作系统生态:业务团队依赖 Windows 处理报表,设计师偏爱 Mac 追求色彩与渲染,而开发者则常年驻扎在 Linux 终端。 很多企业在解决跨平台文件共享时&…...
别再用默认筛选器了!用Tableau集和计算字段打造“老板最爱看”的交互仪表板
别再用默认筛选器了!用Tableau集和计算字段打造“老板最爱看”的交互仪表板 每次给管理层汇报数据时,最怕遇到什么场景?当你精心准备了20页分析报告,老板却直接翻到最后一页说:"我只关心A事业部和B事业部的表现&a…...
