当前位置: 首页 > news >正文

搭建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/rorw:可读写,ro:只读,还是与文件系统的rwx有关
    sync/asyncsync:数据会同步写入到内存与硬盘中,async:则代表数据会先暂存于内存当中
    no_root_squash/root_squashno_root_squash表示就显示root用户和root组;root_squash表示将root用户和组映射为匿名用户和组(默认设置)。
    all_squash/no_all_squashallsquash:客户端所有用户创建文件时,客户端会将文件的用户和组映射为匿名用户和组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
      eof
      cat << eof > /etc/auto.nfs
      # 添加内容
      #本地端子目录 -挂载参数  服务器所提供的目录 
      nfs 192.168.10.151:/gpfs1/nfs
      eof
      参数参数功能
      fgbg当执行挂载时,该挂载行为会在前台(fg)还是后台(bg)执行,若在前台执行,则mount会持续尝试挂载,直到成功或time out为止;若为后台执行,则mount会在后台持续多次进行mount,而不会影响到前台的程序运行。
      softhardhard表示当两者之间的任何一台主机脱机,则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.概念&#xff1a; CNFS &#xff08;Cluster Network File System&#xff09;是 GPFS 中的一种模式&#xff0c;用于配置和管理多台服务器&#xff08;节点&#xff09;之间的文件共享和数据访问 它允许多个节点同时访问和共享文件系统的数据&#xff0c;以实现高性能、高可…...

网络工程师知识点7

111、IS-IS路由器的三种类型&#xff1f; Level-1路由器&#xff08;只能创建level-1的LSDB&#xff09; Level-2路由器&#xff08;只能创建level-2的LSDB&#xff09; Level-1-2路由器&#xff08;路由器默认的类型&#xff0c;能同时创建level-1和level-2的LSDB&#xff09;…...

C++ 八股文:类析构

继承层次中&#xff0c;为什么基类析构函数是虚函数&#xff1f; 在继承层次中&#xff0c;将基类的析构函数声明为虚函数的主要原因是为了支持多态和安全的资源释放。以下是为什么基类的析构函数通常应该是虚函数的原因&#xff1a; 多态析构&#xff1a; 当使用基类指针&a…...

第三章 内存管理 八、两级页表

目录 一、定义 二、如何实现地址变换 三、注意 四、总结 一、定义 二级页表是一种分层的虚拟内存管理机制。在二级页表中&#xff0c;虚拟地址被分成两个层次&#xff0c;第一层是页目录&#xff0c;第二层是页表。通过这种方式&#xff0c;二级页表可以管理更大的虚拟内存…...

新时代高效记账:自动化智能如何进行财务管理

随着科技的不断发展&#xff0c;自动化智能已经逐渐渗透到我们生活的各个领域。在财务管理中&#xff0c;自动化智能的应用显得尤为重要。它不仅可以提高财务管理的效率和精度&#xff0c;还能帮助我们更好地规划和掌控公司的财务状况 晨曦记账本提供了多种高效财务管理工具。…...

Linux小程序---进度条

一&#xff1a;\r 和 \n \r --- 回车 --- 使光标回到这一行的开头 \n --- 换行 --- 会来到下一行与之平行的位置 缓冲区的问题&#xff1a; <1>: \n 的示例 正常输出 hehehehe 。 <2>: \r 的示例 为了方便观察&#xff0c;加入一个 sleep &#xff08;休眠函数…...

【Java笔试强训】Day1(100449-组队竞赛 、OR63 删除公共字符)

100449-组队竞赛 链接&#xff1a;组队竞赛 题目&#xff1a; 牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。 例如: 一个队伍三个…...

C语言进行实验:通过程序实现线算图取值【支持VC++ 6.0编辑器环境运行】

背景&#xff1a; 一、实验目的和要求 1、能描述数据基本类型及其常量的表示方法&#xff1b; 2、会对变量进行定义及初始化&#xff1b; 3、能使用运算符与表达式对变量赋值&#xff1b; 4、会描述C语句的概念及种类、C语言常用的输入/出方式&#xff1b; 5、会设计顺序…...

信息检索与数据挖掘|(四)索引构建

目录 &#x1f4da;硬件基础 &#x1f4da;基于块的排序索引方法 &#x1f407;BSBI算法(blocked sort-based indexing) &#x1f4da;内存式单遍扫描索引构建方法 &#x1f407;SPIMI算法(single-pass in-memory indexing) &#x1f4da;分布式索引构建方法 &#x1f4d…...

Ruby使用类组织对象

使用Object.new创建新对象&#xff0c;但是一次只使用一种方法&#xff0c;这是感受以对象为中心的Ruby编程的最佳方式之一。不过这种方式并不能很好地扩展&#xff0c;假如有一个正在运行地在线售票网站&#xff0c;然后其数据库必须处理数以百计地售票记录&#xff0c;那么可…...

Spring Boot 中常用的注解@RequestParam

Spring Boot 中常用的注解RequestParam RequestParam 是 Spring Framework 和 Spring Boot 中常用的注解之一&#xff0c;用于从请求中获取参数值。它通常用于处理 HTTP 请求中的查询参数&#xff08;query parameters&#xff09;或表单数据。下面详细解释 RequestParam 的用…...

Spark工作流程

Spark 的整个工作流程可以概括为以下步骤&#xff1a; 创建 SparkSession&#xff1a; 应用程序首先需要创建一个 SparkSession 对象&#xff0c;它是与 Spark 的交互入口。SparkSession 提供了对核心功能和各个模块的访问。 加载数据&#xff1a; 使用 SparkSession 提供的 AP…...

IDEA如何设置项目包名分级

按上面的勾选即可&#xff01;...

消防应急疏散指示系统在某生物制药工厂项目的应用

安科瑞 华楠 摘要 消防应急照明和疏散指示系统由控制器、集中电源和灯具&#xff08;疏散指示灯具、应急照明灯具&#xff09;等几部分组成。系统采用17寸工业平板电脑、Windonws7系统&#xff0c;可支持联动报警、系统监控、故障报警、自检、备电、记录存储与查询、导光流、…...

C语言文件操作(上)

文章目录 一、为什么使用文件二、什么是文件1.程序文件2.数据文件3.文件名 三、文件的打开与关闭1.文件指针2.文件的打开和关闭fopen 与 fclose 四、文件的顺序读写01 字符输出函数&#xff1a;fputs02 字符输入函数&#xff1a;fgetc03 文本行输出函数&#xff1a;fputs04 文本…...

二叉树的前 中 后序的非递归实现(图文详解)

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;强烈推荐优质专栏: &#x1f354;&#x1f35f;&#x1f32f;C的世界(持续更新中) &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;…...

.NET验收

验收通用模板&#xff1a; 1.该资料计划看几天&#xff1f; 实际看了几天&#xff1f; 计划7天&#xff0c;实际看了9天 2.多少天一篇总结&#xff1f;将总结列出来。 一周总结一篇。 博客地址:3.这个资料相较于之前资料共同的内容是什么&#xff1f; 不同的(需要强化学习)…...

C++11——lambda表达式

文章目录 1. C98对自定义类型的排序2. lambda表达式语法2.1 捕捉列表 3. lambda底层原理 1. C98对自定义类型的排序 在C98中&#xff0c;想要对自定义类型就行排序&#xff0c;我们得自己写仿函数来表明我们相对哪一项进行排序 struct Student {Student(string name, long id…...

美国加密货币交易和借贷平台Membrane Labs完成2000万美元融资

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于美国纽约的加密货币交易和借贷平台Membrane Labs今日宣布已完成2000万美元A轮融资。 参与本轮融资的投资机构包括&#xff1a;Brevan Howard Digital、Point72 Ventures、Jane Street Cap…...

8-k8s-污点与容忍

文章目录 一、概念二、相关操作三、实操污点NoSchedule四、实操污点NoExecute五、实操容忍 一、概念 污点与容忍 污点taints定义在节点之上的键值型属性数据。当节点被标记为有污点&#xff0c;那么意味着不允许pod调度到该节点。 容忍tolerations是定义在 Pod对象上的键值型属…...

openclaw里面如何添加channel

在 OpenClaw 中添加 Channel&#xff08;消息通道 / 渠道&#xff09;&#xff0c;核心是通过 CLI 命令 或直接编辑 配置文件&#xff0c;将 Telegram、Discord、飞书、WhatsApp 等 IM 平台接入网关&#xff08;Gateway&#xff09;&#xff0c;并绑定到 Agent。以下是完整、可…...

DeepSeek-Coder-V2-Lite-Instruct跨平台兼容性测试:在不同环境中的运行表现

DeepSeek-Coder-V2-Lite-Instruct跨平台兼容性测试&#xff1a;在不同环境中的运行表现 【免费下载链接】DeepSeek-Coder-V2-Lite-Instruct 开源代码智能利器——DeepSeek-Coder-V2&#xff0c;性能比肩GPT4-Turbo&#xff0c;全面支持338种编程语言&#xff0c;128K超长上下文…...

Graphormer入门指南:无需编程基础,通过Web界面完成专业级分子建模

Graphormer入门指南&#xff1a;无需编程基础&#xff0c;通过Web界面完成专业级分子建模 1. 什么是Graphormer&#xff1f; Graphormer是微软研究院开发的一款基于纯Transformer架构的图神经网络模型&#xff0c;专门用于分子属性预测。它能够直接处理分子图结构&#xff08…...

开关电源拓扑结构解析:从反激到正激的实战应用

1. 开关电源拓扑结构入门指南 第一次接触开关电源设计时&#xff0c;我被各种拓扑结构搞得晕头转向。直到有次把电源板烧冒烟了才明白&#xff0c;选错拓扑就像用菜刀砍柴——不是不能用&#xff0c;但效率低还危险。开关电源拓扑结构决定了电能转换的基本框架&#xff0c;就像…...

别再只用Arduino了!用ESP32+TSW-30浑浊度传感器做个智能鱼缸水质监测器(附完整代码)

ESP32TSW-30浑浊度传感器打造智能鱼缸水质监测系统 养鱼爱好者都知道&#xff0c;水质是鱼类健康生长的关键因素。传统的人工检测方式不仅费时费力&#xff0c;还难以做到实时监控。今天我们就来动手打造一个基于ESP32和TSW-30浑浊度传感器的智能鱼缸水质监测系统&#xff0c;让…...

如何通过LeaguePrank实现游戏界面个性化:打造独特的英雄联盟视觉体验

如何通过LeaguePrank实现游戏界面个性化&#xff1a;打造独特的英雄联盟视觉体验 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank LeaguePrank是一款专注于英雄联盟客户端界面自定义的开源工具&#xff0c;它通过安全的官方LCU…...

Qwen3-Embedding-4B GPU算力优化:CUDA Stream并发执行向量化与相似度计算,吞吐提升1.8倍

Qwen3-Embedding-4B GPU算力优化&#xff1a;CUDA Stream并发执行向量化与相似度计算&#xff0c;吞吐提升1.8倍 1. 引言&#xff1a;当语义搜索遇上性能瓶颈 想象一下&#xff0c;你正在使用一个智能语义搜索工具&#xff0c;输入“我想吃点东西”&#xff0c;它立刻为你找到…...

OpenClaw极简配置:Qwen3.5-9B基础功能5分钟体验

OpenClaw极简配置&#xff1a;Qwen3.5-9B基础功能5分钟体验 1. 为什么选择极简配置&#xff1f; 上周我在测试OpenClaw时&#xff0c;被它复杂的配置流程折腾得够呛——飞书机器人接入、多模型切换、技能市场筛选……这些功能虽然强大&#xff0c;但对于只想快速验证核心价值…...

Python程序设计期末考试高频大题精讲:二维列表数据处理实战与深度解析

Python程序设计期末考试高频大题精讲&#xff1a;二维列表数据处理实战与深度解析 摘要&#xff1a;本文以高校计算机科学与技术专业《Python程序设计》期末考试中一道典型大题——“统计学生捐款次数”为切入点&#xff0c;系统讲解二维列表&#xff08;嵌套列表&#xff09;的…...

SAP 生产订单批量创建与下达实战:基于 BAPI_PRODORD_CREATE 的自动化方案

1. 为什么需要批量创建生产订单&#xff1f; 在制造业的实际业务场景中&#xff0c;生产计划部门经常需要根据销售订单、预测数据或库存情况&#xff0c;一次性生成大量生产订单。想象一下&#xff0c;一个汽车零部件工厂每月要处理上千个零部件的生产计划&#xff0c;如果每个…...