计网交流站 - NFS
type: channel
link: https://www.panfeng.top/index.php/tag/NFS
items: Linux常见日常监控
items: CentOS之NFS
items: Centos之NFS服务器部署
items: Centos之NFS网络文件系统搭建
items: Centos之NFS（精简版）
items: 网络文件系统NFS、SAMBA

Linux常见日常监控
type: item
date: 2022-04-27T02:11:00+00:00
description: # 常见日常监控 ## 系统信息 - 查看 CentOS 版本号：`cat /etc/redhat-release` --------------------------------------------------------------------- ## 综合监控 - [nmon](Nmon.md) --------------------------------------------------------------------- ## 系统负载 #### 命令：w（判断整体瓶颈） ``` 12:04:52 up 16 days, 12:54, 1 user, load average: 0.06, 0.13, 0.12 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 116.21.24.85 11:57 4.00s 16:18 0.01s w ``` - 第一行： - `12:04:52` 表示当前系统时间 - `up 16 days` 表示系统运行时间 - `1 user` 表示登录用户数 - `load average` 表示平均负载，0.06 表示一分钟内系统的平均负载值，0.13 表示五分钟内系统的平均负载值，0.12 表示十五分钟内系统的平均负载值。一般这个字不要超过服务器的 CPU 线程数（process）就没有关系。 - 查看 CPU 总的线程数：`grep 'processor' /proc/cpuinfo | sort -u | wc -l` - 第二行： - 开始表示各个登录用户的情况，当前登录者是 root，登录者 IP 116.21.24.85 - 还有一个简化版本的命令：`uptime` ``` 10:56:16 up 26 days, 20:05, 1 user, load average: 0.00, 0.01, 0.05 ``` #### 命令：vmstat（判断 RAM 和 I/0 瓶颈） - 命令：`vmstat 5 10`，每 5 秒采样一次，共 10 次。 ``` procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 72648 0 674564 0 0 0 7 0 26 1 1 99 0 0 0 0 0 72648 0 674596 0 0 0 0 442 557 1 0 99 0 0 0 0 0 72648 0 674596 0 0 0 12 438 574 0 1 99 0 0 0 0 0 72648 0 674596 0 0 0 0 430 540 0 0 100 0 0 0 0 0 72648 0 674596 0 0 0 0 448 567 0 1 99 0 0 0 0 0 72648 0 674596 0 0 0 0 459 574 1 0 99 0 0 0 0 0 72648 0 674596 0 0 0 0 425 543 0 1 99 0 0 0 0 0 72276 0 674600 0 0 0 0 480 643 2 3 95 0 0 ``` - 第二行： - `r` 表示运行和等待CPU时间片的进程数，该数字如果长期大于服务器CPU的进程数，则说明CPU不够用了。 - `b` 表示等待资源的进程数，比如等I/O，内存等。该数字如果长时间大于 1，则需要关注一下。 - `si` 表示由交换区写入到内存的数据量 - `so` 表示由内存写入到交换区的数据量 - **如果 si 和 so 的数字比较高，并且不断变化时，说明内存不够了。而且不断变化也表示对系统性能影响很大。** - `bi` 表示从块设备读取数据的量（读磁盘） - `bo` 表示从块设备写入数据的量（写磁盘） - **如果bi和bo两个数字比较高，则说明，磁盘IO压力大。** - `in` 每秒 CPU 的中断次数，包括时间中断 - `cs` 每秒上下文切换次数，例如我们调用系统函数，就要进行上下文切换，线程的切换，也要进程上下文切换，这个值要越小越好，太大了，要考虑调低线程或者进程的数目 - `wa` 表示I/O等待所占用CPU的时间比 #### 命令：sar（综合） - sar(system activity reporter 系统活动情况报告) - sar 是目前 linux 上最为全面的系统性能分析工具之一，可以从多方面对系统的活动情况进行报告。包括（文件的读写、系统调用、磁盘I/O、cpu效率…

CentOS之NFS
type: item
date: 2022-04-27T02:02:25+00:00
description: # NFS（Network FileSystem）介绍 ## NFS 安装 - 查看是否已安装： - CentOS：`rpm -qa | grep nfs-*` - Ubuntu：`dpkg -l | grep nfs-*` - 安装： - CentOS 5：`sudo yum install -y nfs-utils portmap` - CentOS 6：`sudo yum install -y nfs-utils rpcbind` - Ubuntu：`sudo apt-get install -y nfs-common nfs-kernel-server` ## NFS 服务器配置文件常用参数 - 配置文件介绍（记得先备份）：`sudo vim /etc/exports` - 默认配置文件里面是没啥内容的，我们需要自己加上配置内容，一行表示共享一个目录。为了方便使用，共享的目录最好将权限设置为 777（`chmod 777 folderName`）。 - 假设在配置文件里面加上：`/opt/mytest 192.168.0.0/55(rw,sync,all_squash,anonuid=501,anongid=501,no_subtree_check)` - 该配置解释： - /opt/mytest 表示我们要共享的目录 - 192.168.0.0/55 表示内网中这个网段区间的IP是可以进行访问的，如果要任意网段都可以访问，可以用 `*` 号表示 - (rw,sync,all_squash,anonuid=501,anongid=501,no_subtree_check) 表示权限 - rw：是可读写（ro是只读） - sync：同步模式，表示内存中的数据时时刻刻写入磁盘（async：非同步模式，内存中数据定期存入磁盘） - all_squash：表示不管使用NFS的用户是谁，其身份都会被限定为一个指定的普通用户身份。（no_root_squash：其他客户端主机的root用户对该目录有至高权限控制。root_squash：表示其他客户端主机的root用户对该目录有普通用户权限控制） - anonuid/anongid：要和root_squash或all_squash选项一同使用，表示指定使用NFS的用户被限定后的uid和gid，前提是本图片服务器的/etc/passwd中存在这一的uid和gid - no_subtree_check：不检查父目录的权限 - 启动服务： - `/etc/init.d/rpcbind restart` - `/etc/init.d/nfs-kernel-server restart` ## NFS 客户端访问 - 客户端要访问服务端的共享目录需要对其共享的目录进行挂载，在挂载之前先检查下：`showmount -e 192.168.1.25`（这个 IP 是 NFS 的服务器端 IP） - 如果显示：/opt/mytest 相关信息表示成功了。 - 现在开始对其进行挂载：`mount -t nfs 192.168.1.25:/opt/mytest/ /mytest/` - 在客户端机器上输入命令：`df -h` 可以看到多了一个 mytest 分区。然后我们可以再创建一个软链接，把软链接放在 war 包的目录下，这样上传的图片都会跑到另外一台服务器上了。软链接相关内容请自行搜索。 ## NFS 资料 - - - - -

Centos之NFS服务器部署
type: item
date: 2021-12-07T02:44:56+00:00
description: # NFS服务器部署 NFS服务所需软件及主要配置文件： 安装NFS服务，需要安装两个软件，分别是： RPC主程序：rpcbind NFS 其实可以被视为一个 RPC 服务，因为启动任何一个 RPC 服务之前，我们都需要做好 port 的对应 (mapping) 的工作才行，这个工作其实就是『 rpcbind 』这个服务所负责的！也就是说， 在启动任何一 个 RPC 服务之前，我们都需要启动 rpcbind 才行！ (在 CentOS 5.x 以前这个软件称为 portmap，在 CentOS 6.x 之后才称为 rpcbind 的！)。 NFS主程序：nfs-utils 就是提供 rpc.nfsd 及 rpc.mountd 这两个 NFS daemons 与其他相关 documents 与说明文件、执行文 件等的软件！这个就是 NFS 服务所需要的主要软件。 NFS的相关文件： 主要配置文件：/etc/exports 这是 NFS 的主要配置文件了。该文件是空白的，有的系统可能不存在这个文件，主要手动建立。NFS的 配置一般只在这个文件中配置即可。 NFS 文件系统维护指令：/usr/sbin/exportfs 这个是维护 NFS 分享资源的指令，可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸除或重新分享。 分享资源的登录档：/var/lib/nfs/*tab 在 NFS 服务器的登录文件都放置到 /var/lib/nfs/ 目录里面，在该目录下有两个比较重要的登录档， 一个 是 etab ，主要记录了 NFS 所分享出来的目录的完整权限设定值；另一个 xtab 则记录曾经链接到此 NFS 服务器的相关客户端数据。 客户端查询服务器分享资源的指令：/usr/sbin/showmount 这是另一个重要的 NFS 指令。exportfs 是用在 NFS Server 端，而 showmount 则主要用在 Client 端。 showmount 可以用来察看 NFS 分享出来的目录资源。 ## 服务器安装NFS服务步骤： ### 第一步：安装NFS和rpc ``` [root@localhost ~]# yum install rpcbind.x86_64 #安装rpc服务 [root@localhost ~]# yum install nfs-utils.x86_64 #安装nfs服务 ``` ### 第二步：启动服务和设置开启启动： 注意：先启动rpc服务，再启动nfs服务。 ``` [root@localhost ~]# systemctl restart rpcbind #先启动rpc服务 [root@localhost ~]# systemctl enable rpcbind #设置开机启动 [root@localhost ~]# systemctl restart nfs-server nfs-secure-server #启动nfs服务和nfs安全传输服务 [root@localhost ~]# systemctl enable nfs-server nfs-secure-server 以下步骤可以略去 [root@localhost /]# firewall-cmd --permanent --add-service=nfs success #配置防火墙放行nfs服务 [root@localhost /]# firewall-cmd --reload success ``` ### 第三步：配置共享文件目录，编辑配置文件： ``` 首先创建共享目录，然后在/etc/exports配置文件中编辑配置即可。 [root@localhost /]# mkdir /public #创建共享目录 [root@localhost /]# vim /etc/exports /public 192.168.245.0/24(ro) #/public为上面自定义的目录名 /protected 192.168.245.0/24（rw） [root@localhost /]# systemctl reload nfs #重新加载NFS服务，使配置文件生效 ``` 配置文件说明： 格式： 共享目录的路径 允许访问的NFS客户端（共享权限参数） 如上，共享目录为/public , 允许访问的客户端为192.168.245.0/24网络用户，权限为只读。 请注意，NFS客户端地址与权限之间没有空格。 NFS输出保护需要用到kerberos加密（none，sys，krb5，krb5i，krb5p），格式sec=XXX none：以匿名身份访问，如果要允许写操作，要映射到nfsnob…

Centos之NFS网络文件系统搭建
type: item
date: 2021-11-29T08:21:51+00:00
description: # NFS服务器部署 NFS服务所需软件及主要配置文件： 安装NFS服务，需要安装两个软件，分别是： RPC主程序：rpcbind NFS 其实可以被视为一个 RPC 服务，因为启动任何一个 RPC 服务之前，我们都需要做好 port 的对应 (mapping) 的工作才行，这个工作其实就是『 rpcbind 』这个服务所负责的！也就是说， 在启动任何一 个 RPC 服务之前，我们都需要启动 rpcbind 才行！ (在 CentOS 5.x 以前这个软件称为 portmap，在 CentOS 6.x 之后才称为 rpcbind 的！)。 NFS主程序：nfs-utils 就是提供 rpc.nfsd 及 rpc.mountd 这两个 NFS daemons 与其他相关 documents 与说明文件、执行文 件等的软件！这个就是 NFS 服务所需要的主要软件。 NFS的相关文件： 主要配置文件：/etc/exports 这是 NFS 的主要配置文件了。该文件是空白的，有的系统可能不存在这个文件，主要手动建立。NFS的 配置一般只在这个文件中配置即可。 NFS 文件系统维护指令：/usr/sbin/exportfs 这个是维护 NFS 分享资源的指令，可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸除或重新分享。 分享资源的登录档：/var/lib/nfs/*tab 在 NFS 服务器的登录文件都放置到 /var/lib/nfs/ 目录里面，在该目录下有两个比较重要的登录档， 一个 是 etab ，主要记录了 NFS 所分享出来的目录的完整权限设定值；另一个 xtab 则记录曾经链接到此 NFS 服务器的相关客户端数据。 客户端查询服务器分享资源的指令：/usr/sbin/showmount 这是另一个重要的 NFS 指令。exportfs 是用在 NFS Server 端，而 showmount 则主要用在 Client 端。 showmount 可以用来察看 NFS 分享出来的目录资源。 ## 服务器安装NFS服务步骤： ### 第一步：安装NFS和rpc ``` [root@localhost ~]# yum install rpcbind.x86_64 #安装rpc服务 [root@localhost ~]# yum install nfs-utils.x86_64 #安装nfs服务 ``` ### 第二步：启动服务和设置开启启动： 注意：先启动rpc服务，再启动nfs服务。 ``` [root@localhost ~]# systemctl restart rpcbind #先启动rpc服务 [root@localhost ~]# systemctl enable rpcbind #设置开机启动 [root@localhost ~]# systemctl restart nfs-server nfs-secure-server #启动nfs服务和nfs安全传输服务 [root@localhost ~]# systemctl enable nfs-server nfs-secure-server [root@localhost /]# firewall-cmd --permanent --add-service=nfs success #配置防火墙放行nfs服务 [root@localhost /]# firewall-cmd --reload success ``` ### 第三步：配置共享文件目录，编辑配置文件： ``` 首先创建共享目录，然后在/etc/exports配置文件中编辑配置即可。 [root@localhost /]# mkdir /public #创建共享目录 [root@localhost /]# vim /etc/exports /public 192.168.245.0/24(ro) #/public为上面自定义的目录名 /protected 192.168.245.0/24（rw） [root@localhost /]# systemctl reload nfs #重新加载NFS服务，使配置文件生效 ``` 配置文件说明： 格式： 共享目录的路径 允许访问的NFS客户端（共享权限参数） 如上，共享目录为/public , 允许访问的客户端为192.168.245.0/24网络用户，权限为只读。 请注意，NFS客户端地址与权限之间没有空格。 NFS输出保护需要用到kerberos加密（none，sys，krb5，krb5i，krb5p），格式sec=XXX none：以匿名身份访问，如果要允许写操作，要映射到nfsnobody用户，同时布…

Centos之NFS（精简版）
type: item
date: 2021-11-29T08:21:13+00:00
description: 环境 服务端 192.168.10.1 客户端 192.168.10.2 ``` 服务端 yum install rpcbind.x86_64 yum install nfs-utils.x86_64 mkdir /data/share #创建共享目录 vim /etc/exports #编辑配置文件 /data/share 192.168.10.1/24(rw) 配置文件参数 ro #只读 rw #读写 root_squash #当 NFS 客户端以 root 管理员访问时，映射为 NFS 服务器的匿名用户 no_root_squash #当 NFS 客户端以 root 管理员访问时，映射为 NFS 服务器的 root 管理员 all_squash #无论 NFS 客户端使用什么账户访问，均映射为 NFS 服务器的匿名用户 sync #同时将数据写入到内存与硬盘中，保证不丢失数据 async #优先将数据保存到内存，然后再写入硬盘；这样效率更高，但可能会丢失数据 ``` ``` showmount -e 192.168.10.1 #查看挂载 参数 -e 显示 NFS 服务器的共享列表 -a 显示本机挂载的文件资源的情况 -v 显示版本号 ``` ``` 客户端 yum install nfs-utils showmount -e 192.168.10.1 mkdir /1 #创建挂载目录 mount -t nfs 192.168.10.1:/data/share /1 #将共享目录挂载到/1文件夹里 df -h #查看挂载 ```

网络文件系统NFS、SAMBA
type: item
date: 2021-10-07T06:55:00+00:00
description: # NFS ## 1.基本概念 ``` 网络文件系统--NFS是网络附加储存的一种，其功能允许客户端主机可以像访问本地存储一样通过网络访问服务器端文件。 主要用在 Linux和LInux系统之间提供共享存储。 ``` ## 2.操作实例 ### 2.1 安装和配置基本的NFS共享目录 #### server ``` 第一步：apt install nfs-kernel-server #安装服务 第二步：systemctl status nfs-server #查看服务状态信息 第三步：mkdir -p /nfs/yu #创建文件夹 第四步：echo "hello yu" >> /nfs/yu/1.txt #输入内容 第五步：vim /etc/exports #打开配置文件 /nfs/yu *(ro,no_subtree_check) 第六步：exportfs -av #使配置文件生效 ``` #### client ``` 第一步：apt install nfs-common #安装客户端测试 第二步：showmount -e 192.168.10.1 #查看此IP是否提供nfs挂载路径 第三步：mkdir /kk #创建文件夹 第四步：mount -t nfs 192.168.10.1:/nfs/yu /kk #将nfs挂载在/kk目录下 第五步：df -lh #查看挂载状态 第六步：mount | grep /kk #查看详细挂载信息 第七步：cd /kk #进入路径 第八步：touch 2.txt #尝试创建文件 touch: cannot touch '2.txt': Read-only file system ``` ### 2.2 配置NFS共享支持可读写的目录 #### server ``` 第一步：apt install nfs-kernel-server #安装服务 第二步：systemctl status nfs-server #查看服务状态信息 第三步：mkdir -p /nfs/yu #创建文件夹 第四步：echo "hello yu" >> /nfs/yu/1.txt #输入内容 第五步：chmod 777 /nfs/yu #赋予权限 第六步：vim /etc/exports #打开配置文件 /nfs/yu *(rw,sync,no_subtree_check) 第七步：exportfs -av #使配置文件生效 ``` #### client ``` 第一步：apt install nfs-common #安装客户端测试 第二步：showmount -e 192.168.10.1 #查看此IP是否提供nfs挂载路径 第三步：mkdir /kk #创建文件夹 第四步：mount -t nfs 192.168.10.1:/nfs/yu /kk #将nfs挂载在/kk目录下 第五步：df -lh #查看挂载状态 第六步：mount | grep /kk #查看详细挂载信息 第七步：cd /kk #进入路径 第八步：touch 2.txt #创建文件 第九步：ls -lh #查看创建的文件 ``` ### 2.3 NFS客户端和服务器端的用户映射 #### client ```` 第一步：su - demo #切换用户为demo用户 第二步：cd /kk #进入路径 第三步：touch demo.txt #创建文件 第四步：ls -lh #查看拥有者和所属组 -rw-r--r-- 1 demo demo 0 Sep 11 12:48 demo.txt 第五步：exit #退出用户 第六步：cd /kk #进入路径 第七步：touch root.txt #创建文件 第八步：ls -lh #查看拥有者和所属组 -rw-r--r-- 1 nobody nogroup 0 Sep 11 12:52 root.txt 当你以普通用户创建文件时， 它对应的拥有者和所属组都是你自己 当你以root用户创建文件时，它对应的是nobody nogroup ```` ### 2.4 取消nfs对于root用户的匿名映射 #### server ``` 第一步：apt install nfs-kernel-server #安装服务 第二步：systemctl status nfs-server #查看服务状态信息 第三步：mkdir -p /nfs/yu #创建文件夹 第四步：echo "hello yu" >> /nfs/yu/1.txt #输入内容 第五步：chmod 777 /nfs/yu #赋予权限 第六步：vim /etc/exports #打开配置文件 /nfs/yu *(rw,sync,no_subtree_che…