部署YUM仓库及NFS共享服务

本文介绍了如何搭建和管理YUM仓库,包括通过FTP和本地目录方式提供软件包,以及使用createrepo工具生成仓库数据文件。此外,详细讲解了NFS服务的配置和使用,包括NFS服务的启动、共享目录设置、客户端挂载以及NFS服务在多台服务器间的应用。最后,提到了远程YUM仓库的设置,让客户端能够通过NFS服务访问和安装软件包。
摘要由CSDN通过智能技术生成

YUM概述

YUM (Yellow dog Updater Modified)
基于RPM包构建的软件更新机制
可以自动解决依赖关系
所有软件包由集中的YUM软件仓库提供
在这里插入图片描述
准备安装源
软件仓库的提供方式

FTP服务:ftp://.......
HTTP服务:http://......   比如:在线源 
本地目录:file://......     比如:yum仓库

RPM软件包的来源

CentOS发布的RPM包集合
第三方组织发布的RPM包集合
用户自定义的RPM包集合
 baseurl=ftp://ip/centos7
构建CentOS 7 软件仓库
RPM包来自CentOS 7 DVD光盘
通过FTP方式提供给客户机
[root@localhost~]#mkdir -p /var/ftp/centos7
[root@localhost~]#cp -rf/media/cdrom/* /var/ftp/centos7

[root@localhost~]#rpm -ivh /media/cdrom/Packages/vsftpd-3.0.2-21.e17.x86 64.rpm
[root@localhost~]#systemctl start vsftpd
[root@localhost~]#systemctl enable vsftpd

在软件仓库中加入非官方RPM包组
包括存在依赖关系的所有RPM包
使用createrepo工具建立仓库数据文件

[root@localhost ~]#mkdir /var/ftp/other
[root@localhost ~]#cd /var/ftp/other     非官方的RPM要先放入该目录下
[root@localhost ~]#createrepo -g /media/cdrom/repodata/repomd.xml ./  该条命令生成repo文件   .xml=.conf

访问YUM仓库
为客户机指定YUM仓库位置
配置文件: /etc/yum.repos.d/centos7.repo

本地YUM仓库
为客户机指定YUM仓库位置
配置文件:/etc/yum.repos.d/centos7.repo
在这里插入图片描述
本地YUM仓库

将Centos 7 光盘放入光驱
挂载镜像到仓库位置,URL地址为file:///media/cdrom
[root@localhost~]#vi /etc/yum.repos.d/local.repo
......
[local]
name=CentOS 7.3
becaurl=file:///media/cdrom  media/cdrom:挂载点
enable=1
gpgcheck=0

YUM工具概述

关于YUM命令
由软件包yum-3.4.33-150.el7.centos.noarch提供
用来访问YUM仓库,查询、下载及安装、卸载软件包
YUM的配置文件
基本设置:/etc/yum.conf
仓库设置:/etc/yum.repos.d/*.repo
日志文件:/var/log/yum.log

YUM缓存目录

存放下载的软件包、仓库信息等数据
位于/var/cache/yum/$basearch/(硬件架构,如x86_64)$releasever(OS版本)
[root@localhost~]#yum clean all    清理缓存数据
[root@localhost~]#yum makecache  建立数据缓存

软件包查询

查询软件包
yum list [软件包]
yum into [软件名]
yum search <关键词>
yum whatprovides <关键词>
示例
[root@localhost ~]#yum list    列出所有软件
[root@localhost ~]#yum list httpd
[root@localhost ~]#yum info vsftpd
[root@localhost ~]#yum search gcc
[root@localhost ~]#yum whatprovides vim
查询软件包组(带*号,不需要下载依赖包)
yum grouplist[包组名]
yum groupinto <包组名>
示例
[root@localhost ~]#yum grouplist
[root@localhost ~]#yum grouplist gnome-desktop (建议直接[root@localhost ~]#yum grouplist gnome-desktop* )
[root@localhost ~]#yum groupinfo gnome-desktop

软件安装、升级

安装软件
yum install [软件名]
yum groupinstall <包组名>
升级软件
yum updata
yum groupupdate
示例   -y表示自动确认
[root@localhost ~]#yum -y install net-snmp
[root@localhost ~]#yum -y groupinstall gnome-desktop
[root@localhost ~]#yum -y update

软件卸载

卸载软件
yum remove<软件名>
yum groupremove<包组名>
示例
[root@localhost ~]#yum -y remove autofs
[root@localhost ~]#yum -y groupremove gnome-desktop

NFS服务简介

什么是NFS?
NFS就是Network File System 的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;NFS一般用来存储共享视频,图片等静态数据。
NFS挂载原理:
在这里插入图片描述
1.首先服务器端启动RPC服务,并开启111端口
2.服务器端启动NFS服务,并向RPC注册端口信息
3.客户端启动RPC(portmap服务),向服务端RPC(portmap)服务请求服务端的NFS端口
4.服务端的RPC(portmap)服务反馈NFS端口信息给客户端。
5.客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。

RPC与NFS通讯原理
因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此NFS的功能对应的端口并不固定,客户端要知道NFS服务器的相关端口才能建立连接进行数据传输,而RPC就是用来统一管理NFS端口的信息,并其统一对外的端口是111,PRC会记录NFS端口的信息,如此我们就能通过RPC实现服务端和客户端沟通端口信息。PRC最主要的功能就是指定每个NFS功能所对应的port number,并且通知客户端,记客户端可以连接到正常端口上去。
那么PRC又是如何知道每个NFS功能的端口呢?
首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC
vi /etc/exports时里面的权限参数
用于配置NFS服务程序配置文件的参数:
参数 作用

ro 只读
rw 读写

root squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
no root squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
all squas 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
sync同时将数据写入到内存与硬盘中,保证不丢失数据
async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

NFS共享存储服务 (独立的一个服务器)

NFS(Network File System)网络文件系统
依赖于RPC(远端过程调用)
需安装nfs-utils、rpcbind软件包
系统服务:nfs、rpcbind
共享配置文件:/etc/exports

使用NFS发布共享资源

安装nfs-utils、rpcbind软件包
[root@localhost~]yum -y install nfs-utils rpcbind
[root@localhost~]#systemctl enable nfs
[root@localhost~]#systemctl enable rpcbind
设置共享目录
[root@localhost~]#mkdir -p /opt/wwwroot    目录的作用是做挂载点
[root@localhost~]#vi /etc/exports
/opt/wwwroot  192.168.7.0/24(rw.sync.no_root_squash)
/var/ftp/pub    192.168.4.11(ro) 192.168.4.110(rw)
例
[root@serverl ~]# chkconfig --level 35 nfs on     两个都是开机自启动的命令
注意:正在将请求转发到“systemctl enable nfs.service”。
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@serverl ~]# chkconfig --level 35 rpcbind on
注意:正在将请求转发到“systemctl enable rpcbind.service”。

server1,server2做web客户机1.2.2 服务器做nfs 名字分别修改server1,server2,nfs
三者要保证在同一网段 三者网段为20.0.0.10 20.0.0.11 20.0.0.12
客户机(nsf)开启服务:

[root@server1 ~]# yum -y install rpcbind nfs   安装该软件包
建立共享目录:
[root@nfs ~]# mkdir /opt/web1 
[root@nfs ~]# mkdir /opt/web2
[root@nfs ~]# cd /opt/web1
[root@nfs web1]# vi index.html
<html><head><title>web1</title></head><body><h1>this is web1!</h1></body></html>
[root@nfs ~]# cd /opt/web2
[root@nfs web2]# vi index.html
<html><head><title>web2</title></head<body>><h1>this is web2!<h1></body></html>
[root@server1 web2]# cd
[root@nfs ~]# vi /etc/exports  
/opt/web1 20.0.0.10(ro)
/opt/web2 20.0.0.11(ro)
[root@nfs ~]# systemctl start nfs
[root@nfs ~]# systemctl start rpcbind
[root@nfs ~]# netstat -anpt   出现下面两条,说明服务已开启
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd 
tcp6       0      0 :::2049                 :::*                    LISTEN      - 
[root@server1 ~]# showmount -e 20.0.0.12
Export list for 20.0.0.12:
/opt/web2 20.0.0.11
/opt/web1 20.0.0.10   

客户机1. 2:[root@server1 ~]# yum -y install httpd 安装软件包
客户机1: apache已启好

[root@serverl1 ~]# showmount -e 20.0.0.12      验证
Export list for 20.0.0.12:
/opt/web2 20.0.0.11
/opt/web1 20.0.0.10
mount 20.0.0.12:/opt/web1 /var/www/html/
df -Th

客户机2: apache已启好

[root@serverl2 ~]# showmount -e 20.0.0.12    验证
Export list for 20.0.0.12:
/opt/web2 20.0.0.11
/opt/web1 20.0.0.10
mount 20.0.0.12:/opt/web2 /var/www/html/
df -Th
nfs服务端:
[root@nfs ~]# chkconfig --level 35 nfs on
注意:正在将请求转发到“systemctl enable nfs.service”。
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@nfs ~]# chkconfig --level 35 rpcbind on
注意:正在将请求转发到“systemctl enable rpcbind.service”。

客户机1:

vi /etc/httpd/conf/httpd.conf
#ServerName www.example.com:80 修改为ServerName www.example.com:80
systemctl start httpd   重启服务
netstat -anpt | grep httpd 查看80端口是否开启
curl http://localhost  查看网页
进虚拟机里面:网页输入 http://localhost

客户机2

systemctl start httpd
netstat -anpt | grep httpd 查看80端口是否开启
curl http://localhost  查看网页
进虚拟机里面:网页输入 http://localhost
清理缓存数据
yum clean all
建立yum缓存
yum makecache
nfs(共享存储服务)

在这里插入图片描述
server : 192.168.1.100 (需要安装rpcbind和nfs软件包)
client1 : 192.168.1.101 预装apache
client2 : 192.168.1.102 预装apache
nfs-utils来实现nfs的共享发布与访问,rpcbind依赖rpc(远程过程调用),充当nfs客户端与服务器的中介,完成运
项目需求:利用nfs存储服务来实现制作两个不同的网页,将这两个网页分别作为两个网站的主页。

yum -y install nfs-utils rpcbind
chkconfig --level 35 nfs on   #chkconfig工具管理nfs服务
chkconfig --level 35 rpcbind on   #chkconfig工具管理rpcbind服务
mkdir /opt/web1
cd /opt/web1
vi index.html
<html><time>web1</title><body><h1>this is the web1!</h1><body></html>
mkdir -p /opt/web2
vi index.html
<html><title>web2</title><body><h1>this is the web2!</h1></body></html>
vi /etc/exports
/opt/web1 192.168.1.101(ro)权限是只读,不允许更改(rw是读写权限,sync是服务器和客户机间开启同步,no_r)
/opt/web2 192.168.1.102(ro)
service rpcbind start
service nfs start
netstat -anpt | grep 111
netstat -anpt | grep nfs
showmount -e 查询nfs服务器发布的共享目录  (nfs服务器本地查看自己共享的目录 )
showmount -e 192.168.1.100 客户机查询nfs服务器发布的共享目录
客户机挂载使用nfs资源
yum -y install httpd(两客户机需要安装apache服务,默认apache没有主页)

客户机1:

mount 192.168.1.100:/opt/web1 /var/www/html  将服务器上的目录文件挂载到本地
tail -l /etc/mtab  (测试挂载结果,成功与否)  /df -Th
systemctl start httpd
netstat -anpt | grep httpd

客户机2:

mount 192.168.1.100:/opt/web2 /var/www.html
tail -l /etc/mtab / df -Th
systemctl start httpd
systemctl enable httpd
netstat -anpt | grep httpd

测试:

客户机1: hhtp://localhost
客户机2: hhtp://localhost
将存储服务器上的资源永久挂载需要改/etc/fstab
客户机1:
vi /etc/fstab
192.168.1.100:/opt/web1 /var/www/html nfs defaults,_netdey 0 0 #_netdey代表需要使用网络
客户机2:
vi /etc/fstab
192.168.1.100:/opt/web2 /var/www/html nfs defaults,_netdev 0 0

时间的同步的作用:
NTP:(Network TimeProtocol,网络时间协议)是用来使计算机时间同步的一种协议。它可以使计算机对其服务器或时钟源做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒)。对于服务器群集来说,这个是一个很重要的服务,因为群集需要保证每个服务器的时间是保持一致的,这样它们在执行同一个任务时才不会出现有的服务器有滞后的现象,这样群集的状态才是健康的。
NTP的工作模式:C/S模式
NTP的协议及端口号:UDP协议123号端口
配置步骤:
服务器端:

yum -y insatll ntp ntpdate
ntpdate ntp.aliyun.com(先保证自己的)

1.修改配置文件

vi /etc/ntp.conf
8 restrict default nomodify
#restrict、default定义默认访问规则,nomodify禁止远程主机修改本地服务器配置。
17 restrict 20.0.0.0 mask 255.255.255.0 nomodify notrap
#从20.0.0.1-20.0.0.254的主机都可以使用我们的NTP服务器来同步时间
21-24行删除
加两行
fudge 127.127.1.0 stratum10  设置本机的时间层级为10级,0级代表时间层级是0级,是向其他服务器提供时间同步源的意思,不要设置为0级
Stratum 0
NTP网络从权威时间源获取时间。这些权威的时间源,也称为第0层设备,是高精度的计时设备,被认为是准确的,并且几乎没有延迟或与之相关联。图中的时钟表示第0层设备

Stratum 1
第1层设备直接连接到权威时间源。它们充当主要的网络时间标准。

Stratum 2 and Lower
第2层服务器通过网络连接到第1层设备。诸如NTP客户端之类的第2层设备通过使用第1层服务器的NTP数据包来同步其时间。它们还可以充当第3层设备的服务器
较小的层号表示服务器比较大的层号更接近授权时间源,层数越大,层数越低。最大跃点数为15.
层16(最低层级别)指示设备未同步。可以将同一层级别上的时间服务器配置为与同一层级别上的其他时间服务器作为对等方,以备份或验证时间。
server 127.127.1.10 #指定本机为时间同步源

2.启动服务

systemctl start ntpd

3.检查服务开放情况

netstat -aupu | grep ntpd

4.设置周期性任务计划

crontab -e

* * * * * /usr/sbin/ntpdate   ntp.aliyun.com

5.验证效果

data  验证下时间(获取本地时间,格式是年月日时分秒)

客户端:

1.安装同步软件 
yum -y install ntpdate
2.设定同步源
ntpdate 20.0.0.10
3.创建任务计划
crontab -e
* * * * * /usr/sbin/ntpdate  20.0.0.10
4.验证效果
data 验证下时间

远程yum仓库

远程yum仓库
用一台服务器,去搭建一个yum仓库的服务,被远程的另外一台服务器所使用,直接可以进行访问
自定义yum仓库,同时不仅本地可以使用,其他服务器也可以使用

利用ftp的模式可以有效通过
IP:20.0.0.11 主机名:server1
作为服务端,提供软件源环境

IP:20.0.0.12 主机名:server2
作为客户端,享有软件包源

服务端:连接镜像
在这里插入图片描述
挂载镜像

[root@server1 ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@server1 ~]# df -HT  //查看镜像文件是否成功挂载
[root@server1 ~]# ls /mnt/ //查看挂载目录中的内容
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

安装ftp服务,并在/var目录下查看是否生成ftp文件

[root@server1 var]# yum -y install vsftpd
[root@server1 ~]# cd /var/
 ftp 
[root@server1 var]# cd ftp/
[root@server1 ftp]# ls
pub(公共的包)

创建文件,作为yum仓库的源点(官方源)

[root@server1 ftp]# mkdir centos7
[root@server1 ftp]# ls
centos7  pub
[root@server1 ftp]# ls centos7/
[root@server1 ftp]# cp -rf /mnt/* centos7/ &  //将/mnt目录下所以的文件复制到新建的目录下,并放在后台允许
[1] 12585
[root@server1 ftp]# jobs 
[1]+  运行中                cp -i -rf /mnt/* centos7/ &

创建一个扩展的目录(扩展源)

[root@server1 ftp]# mkdir other
[root@server1 ftp]# ls
centos7  other  pub
[root@server1 ftp]# createrepo -g /mnt/repodata/repomd.xml other/
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

查看两个目录内容是否已存在

[root@server1 ftp]# cd centos7/
[root@server1 centos7]# ls
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@server1 centos7]# cd ../other/
[root@server1 other]# ls
repodata
[root@server1 other]# cd repodata/
[root@server1 repodata]# ls
01a3b489a465bcac22a43492163df43451dc6ce47d27f66de289756b91635523-filelists.sqlite.bz2
401dc19bda88c82c403423fb835844d64345f7e95f5b9835888189c03834cc93-filelists.xml.gz
5dc1e6e73c84803f059bb3065e684e56adfc289a7e398946574d79dac6643945-primary.sqlite.bz2
5f62201963ee83e178738d9f88078560377cc06f972a4c0094ab3be00cae515f-repomd.xml
6bf9672d0862e8ef8b8ff05a2fd0208a922b1f5978e6589d87944c88259cb670-other.xml.gz
7c36572015e075add2b38b900837bcdbb8a504130ddff49b2351a7fc0affa3d4-other.sqlite.bz2
c48538ac0f65ece36eb71d41b76f1eb1f98c58cc26777348490feaed8f38ab56-repomd.xml.gz
dabe2ce5481d23de1f4f52bdcfee0f9af98316c9e0de2ce8123adeefa0dd08b9-primary.xml.gz
repomd.xml

开启ftp服务

[root@server1 repodata]# cd ~
[root@server1 ~]# systemctl start vsftpd

查看21号端口(连接端口(连接服务器))是否开启

[root@server1 ~]# netstat -ntap | grep 21
tcp6       0      0 :::21                   :::*                    LISTEN      12961/vsftpd 

查看20号端口(数据传输端口(控制上传和下载))是否开启(此时,没有开启)

[root@server1 ~]# netstat -ntap | grep 20

关闭防火墙和核心防护

[root@server1 ~]# systemctl stop  firewalld.service 
[root@server1 ~]# setenforce 0

客户端测试是否能通过ftp服务连接上服务端
客户端:

下载ftp服务:[root@server2 ~]# yum -y install ftp
访问服务端:
[root@server2 ~]# ftp 20.0.0.11
Connected to 20.0.0.11 (20.0.0.11).
220 (vsFTPd 3.0.2)
Name (20.0.0.11:root): ftp  (使用匿名登录)
331 Please specify the password.
Password:  (匿名登录不需要密码。直接回车)
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls  //查看文件,发现登录的是站点目录
227 Entering Passive Mode (20,0,0,11,96,132).
150 Here comes the directory listing.
drwxr-xr-x    8 0        0             220 Dec 29 07:53 centos7
drwxr-xr-x    3 0        0              22 Dec 29 08:19 other
drwxr-xr-x    2 0        0               6 Aug 03  2017 pub
226 Directory send OK.
ftp> bye  //退出
221 Goodbye.

在yum仓库源中,创建新目录

[root@server2 ~]# cd /etc/yum.repos.d/  (本地yum仓库存放的镜像文件位置)
[root@server2 yum.repos.d]# mkdir bak
将同路径所以以.repo结尾的文件放到bak中
[root@server2 yum.repos.d]# mv *.repo bak/
[root@server2 yum.repos.d]# ls
backup  bak
[root@server2 yum.repos.d]# ls bak/
local.repo

[root@server2 yum.repos.d]# yum clean all(清除yum仓库缓存)
[root@server2 yum.repos.d]# yum list (列出资源库中特定的可以安装或更新以及已经安装的rpm包)
[root@server2 yum.repos.d]# vim centos7.repo (创建文件)(以下为内部添加的内容)
[base]
name=centos7.Packages
baseurl=ftp://20.0.0.11/centos7
enabled=1
gpgcheck=1
gpgkey=ftp://20.0.0.11/centos7/RPM-GPG-KEY-CentOS-7

[other]
name=other.Packages
baseurl=ftp://20.0.0.11/other
enabled=1
gpgcheck=0

[root@server2 yum.repos.d]# yum list(列出资源库中特定的可以安装或更新以及已经安装的rpm包)

测试是否能安装软件包:(发现可以安装成功)

[root@server2 yum.repos.d]# yum install httpd -y
已安装:  httpd.x86_64 0:2.4.6-67.el7.centos   
[root@server2 yum.repos.d]# systemctl start httpd
[root@server2 yum.repos.d]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 二 2020-12-29 17:33:35 CST; 17s ago

关闭防火墙和核心防护

[root@server2 yum.repos.d]# systemctl stop firewalld.service 
[root@server2 yum.repos.d]# setenforce 0
可以访问apache网站

在这里插入图片描述

[root@server2 yum.repos.d]# yum update (yum更新)
[root@server2 yum.repos.d]# yum upgrade(也是yum更新)
两者之间的区别
yum update(更新软件包,更新软件和系统内核)
yum upgrade(只更新软件包)

[root@server2 yum.repos.d]# yum upgrade (提示没有更新包,是因为此时服务端的包是最新的)
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
No packages marked for update

服务器是可以更新包的
[root@server1 other]# yum upgrade 

附加:

yum 是 Fedora RHEL Centos SUSE等linux 发行版的 软件包管理工具
通过 执行 man yum 查看yum的帮助信息 可以知道
yum makecache 是 将服务器上的软件包信息 现在本地缓存,以提高 搜索 安装软件的速度
yum 主要的一下命令如下:
yum search 软件包   搜索软件包
yum install 软件包   安装软件包
yum remove 软件包
yum update  更新系统
等等

若安装软件报错,可以尝试
yum clean all 
yum list
来解决

NFS

服务器:20.0.0.11 主机名:server1
客户端:20.0.0.12 主机名:server2

服务端配置:
服务器端提供存储空间,供其他人用
服务器添加一块磁盘,40G,确定,并重启虚拟机,做验证

[root@server1 ~]# ls /dev/(查看磁盘是否添加成功)
sdb
[root@server1 ~]# fdisk /dev/sdb  //分区
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x080492dd 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@server1 ~]# mkfs.xfs /dev/sdb1 //格式化分区
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242624, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@server1 ~]# vim /etc/fstab  //挂载
/dev/sdb1       /mnt    xfs     defaults        0       0
[root@server1 ~]# mount -a
[root@server1 ~]# df -Th
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sdb1      xfs        20G   33M   20G    1% /mnt

安装两个包

[root@server1 ~]# yum -y install nfs-utils rpcbind (rpcbind:远程过程调用   nfs-utils:工具包)

两个服务设置为开机自启动,不影响实验

[root@server1 ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@server1 ~]# systemctl enable rpcbind.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/rpcbind.service to /usr/lib/systemd/system/rpcbind.service. 

修改共享(存储)的配置文件

[root@server1 ~]# vim /etc/exports(里面内容是空的,需要自己添加)
/mnt    20.0.0.0/24(rw,sync,no_root_squash)(/mnt提供资源磁盘的挂载点)(20.0.0.0/24:接收提供服务的网段)(rw:支持他人可读可写)(sync:同步)(no_root_squash:不然对 方降级处理)

启动服务(nfs、rpcbind)

[root@server1 ~]# systemctl start nfs
[root@server1 ~]# systemctl start rpcbind
查看服务是否启动
[root@server1 ~]# netstat -anpt | grep rpcbind
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      2567/rpcbind        
tcp6       0      0 :::111                  :::*                    LISTEN      2567/rpcbind    

关闭防火墙,核心防护

[root@server1 ~]# systemctl stop firewalld.service 
[root@server1 ~]# setenforce 0

查看资源服务是否已经提供出去

[root@server1 ~]# showmount -e
Export list for server1:
/mnt 20.0.0.0/24

客户端验证(磁盘资源是否正常使用)

关闭防火墙,核心防护
[root@server2 ~]# systemctl stop firewalld.service 
[root@server2 ~]# setenforce 0

安装httpd服务

[root@server2 ~]# yum -y install httpd
httpd服务网站站点位置:[root@server2 ~]#  cd /var/www/html/

站点如何使用服务端提供的存储空间?

第一种方式:
[root@server2 ~]# mount 20.0.0.11:/mnt /var/www/html/
[root@server2 ~]# df -Th(查看是否挂载成功)
20.0.0.11:/mnt nfs4       40G   33M   40G    1% /var/www/html

第二种方式:

[root@server2 ~]# umount /var/www/html/  (取消挂载,避免对第二种方案产生影响)

启动自动挂载:
[root@server2 ~]# vim /etc/fstab
20.0.0.11:/mnt  /var/www/html   nfs     defaults,_netdev        0       0
[root@server2 ~]# mount -a
[root@server2 ~]# df -Th
20.0.0.11:/mnt nfs4       40G   33M   40G    1% /var/www/html

挂载上去之后,就可以写入数据

[root@server2 ~]# cd /var/www/html/
[root@server2 html]# ls
[root@server2 html]# vim index.html
<h1>this is nfs web</h1>
[root@server2 html]#  cat index.html 
<h1>this is nfs web</h1>

启动httpd服务

[root@server2 html]# systemctl start httpd

其他设备进行访问

在这里插入图片描述
验证该文件存储在服务器还是本地中:
服务器上查看:(发现存在与远程服务器上,这就叫做远程存储)

[root@server1 ~]# cd /mnt/
[root@server1 mnt]# ls
index.html
[root@server1 mnt]# cat index.html 
<h1>this is nfs web</h1>

如果此时服务器突然宕机:模拟宕机

[root@server1 mnt]# systemctl stop nfs

客户端操作:
[root@server1 mnt]# df -TH(输入之后无显示内容)

如何解决:(xshell另起一台终端)tty(控制终端数量)

[root@server2 ~]# umount -lf /var/www/html(l:解除正在繁忙的挂载点  f:强制)(不要用tab键,否正会卡住)
[root@server2 ~]# df -HT(此时内容才恢复出来)
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs        42G  4.8G   37G   12% /
devtmpfs       devtmpfs  941M     0  941M    0% /dev
tmpfs          tmpfs     956M     0  956M    0% /dev/shm
tmpfs          tmpfs     956M   18M  938M    2% /run
tmpfs          tmpfs     956M     0  956M    0% /sys/fs/cgroup
/dev/sda5      xfs        21G   34M   21G    1% /home
/dev/sr0       iso9660   4.6G  4.6G     0  100% /mnt
/dev/sda1      xfs       1.1G  182M  882M   18% /boot
tmpfs          tmpfs     192M  4.1k  192M    1% /run/user/42
tmpfs          tmpfs     192M   37k  192M    1% /run/user/0
附加:mount -a
mount -a 就是重新加载fstab文件中的内容,相当于更新你刚刚修改fstab文件内容

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值