yum仓库 NFS共享

目录

1 YUM仓库服务

1.1安装源

1.2访问YUM仓库

1.3 YUM工具概述

1.4 本地yum源和在线源同时配置

1.5 软件包查询

2. NFS共享服务介绍

2.1 NFS概述

2.2 特点

2.3 NFS原理

3 NFS共享服务部署

3.1 实验环境

3.2 实验步骤

3.2.1 服务端配置

3.2.2在客户机中访问NES共享资源


1 YUM仓库服务

1.1安装源

  • 软件仓库的提供方式
  1. FTP服务: ftp://
  2. HTTP服务: http://
  3. 本地目录: file://
  • RPM软件包的来源
  1. CentOS发布的RPM包集合
  2. 第三方组织发布的RPM包集合
  3. 用户自定义的RPM包集台
  • 构建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.el7.x86_64.rpm
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd
复制代码
  • 在软件仓库中加入非官方PM包组

包括存在依赖关系的所有RPM包

使用reatrepo工具建立仓库数据文件

[root@localhost ~]# mkdir /var/ftp/other
[root@localhost ~]# cd /var/ftp/other
[root@localhost ~]# createrepo -g /media/cdrom/repodata/repomd.xml ./
复制代码

1.2访问YUM仓库

  • 为客户机指定YUM仓库位置

配置文件: /etc/yum.repos.d/centos7.repo

[root@localhost ~]# vi /etc/yum.repos d/centos7.repo
[base]
name=CentOS 7.3
baseurl=ftp://192.168.4.254/centos7
enabled=1
gpgcheck=1
gpgkey=file://etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7  #软件校验公钥
[other]
name=Other RPM Packages
baseurl=ftp://192.168。4.254/other
enabled=1
gpgcheck=0
复制代码
  • 本地YUM仓库

    • 直接以CentOS 7光盘作软件仓库
    1. 将CentOS7光盘放入光驱
    2. 挂载镜像到仓库位置,URL地址为file:///mnt
    [root@localhost ~]# vi /etc/yum.repos d/local.repo
    [local]
    name=local 
    baseurl=file:///mnt
    enabled=1
    gpgcheck=1
    复制代码

1.3 YUM工具概述

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

1.4 本地yum源和在线源同时配置

当既有本地yum源又有aliyun源的时候,我们在装软件包的时候当然希望先用本地的yum源去安装,本地找不到可用的包时再使用aliyun源去安装软件,这里就涉及到了优先级的问题,yum提供的插件[yum-plugin-priorities.noarch]可以解决这个问题

  • 查看是否安装了yum-plugin优先级插件
[root@localhost ~]#rpm -qa |grep yum-plugin-
复制代码
  • 如果没有安装,就安装插件
[root@localhost ~]#yum -y install yum-plugin-priorities.noarch
复制代码
  • 查看插件是否启用
[root@localhost ~]#cat /etc/yum/pluginconf.d/priorities.conf

[main]:
enabled = 1 # 1为启动,0 为禁止
复制代码
  • 修改本地yum源优先使用
[root@localhost ~]#vim local.repo
[local]
name=local
baseurl=file:///mnt/
enabled=1
gpgcheck=1 
priority=1 #数字越小优先级越高

[epel]
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
enabled=1
gpgcheck=0
priority=2
复制代码
  • 验证安装包的数量

执行yum repolist all 可显示所有仓库包

//yum 命令仅下载安装包
方式一:
yum install --downloadonly mariadb
#下载下来的安装包都是放在 /var/cache/yum/x86_64/7/ 目录下

方式二:
yumdownloader --destdir=/opt mariadb mariadb-server
#yumdownloader 仅下载指定软件包,参数 --destdir 是用来指定存放下载的安装包的目录
复制代码

1.5 软件包查询

  • 查询软件包
yum list [软件名]       // 显示已安装,未安装的包
yum info [软件名]       //查看当前安装的软件的信息,如软件来源于哪个源,软件介绍
yum search <关键词>     //查找相关功能的包
yum whatprovides<关键词>
    yum whatprovides + 指令   //来查看是哪一个软件包提供了这样要给指令
    yum whatprovides + 文件   //来查看是那儿一个软件包提供的这样的文件
复制代码

2. NFS共享服务介绍

2.1 NFS概述

NFS(Network File System )网络文件系统服务。是基于TCP/IP协议的应用,其实现主要是采用远程过程调用(自己没有这种功能,调用别人的功能)RPC机制. NFS 也是 NA 存储设备必然支持的一种协议,以完成远程到本地的映射过程。

可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

在Centos 7系统中,需要安装nfs-utils、 rpcbind 软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者用RPC支持。

手动加载NFS共享服务时,应该先启动rpcbind, 再启动nfs。

  1. nfs端口:2049/tcp
  2. RPC端口:111/tcp

NFS的配置文件为/etc/exports

格式为:

共享的目录位置 客户机地址(权限选项)

2.2 特点

采用TCP/IP传输网络文件

安全性低

简单易操作

适合局域网环境

2.3 NFS原理

yum仓库 NFS共享_第1张图片

 

  • 工作原理
  1. 首先服务器端启动RPC服务,并开启111端口
  2. 启动NFS服务,并向RPC注册端口信息
  3. 客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口
  4. 服务端的RPC(portmap)服务反馈NFS端口信息给客户端。
  5. 客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。
  • NFS优势

节省本地存储空间,将常用的数据,如:/home目录,存放在NFS服务器上且可以通过网络访问,本地终端将可减少自身存储空间的使用

  • NFS服务主要进程:
    • rpc.nfsd 最主要的NFS进程,管理客户端是否可登录
    • rpc.mountd 挂载和卸载NFS文件系统,包括权限管理
    • rpc.lockd 非必要,管理文件锁,避免同时写出错
    • rpc.statd 非必要,检查文件一致性,可修复文件

3 NFS共享服务部署

3.1 实验环境

  • 服务端
    • IP:192.168.200.100
    • 主机名:localhost
  • 客户端
    • IP:192.168.200.102
    • 主机名:192

3.2 实验步骤

3.2.1 服务端配置

  • 安装nfs-utils和rpcbind软件包
[root@localhost ~]# rpm -q rpcbind nfs-utils
[root@localhost ~]# yum -y install nfs-utils rpcbind
复制代码
  • 设置共享目录 ​​​​​​​
[root@localhost ~]# mkdir -p /data
[root@localhost ~]# chmod 777 /data   ##让普通用户也可读可写
[root@localhost ~]# vim /etc/exports
/data 192.168.200.0/24 (rw,sync,no_root_squash)

`客户机地址可以是主机名、IP地址、网段地址,允许使用“*” 、 “?” 通配符。
“rw”表示允许读写,“ro”表示为只读。
syne:表示同步写入到内存与硬盘中。
no_root_squash :表示当客户机以root身份访问时赋予本地root权限(默认是root_squash) 。
root_squash :表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户。`

其它常用选项
all_squash:所有访问用户都映射为匿名用户或用户组。
async:将数据先保存在内存缓冲区中,必要时才写入磁盘。
subtree_check (默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限。
no_subtree_check:即使输出目录是--个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。
anonuid=xxx :指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx :指定NFS服务器/etc/group文件中匿名用户的GID
复制代码
  • 启动NES服务程序
    • 手动加载NFS共享服务时,应该先启动 rpcbind,再启动 nfs
[root@localhost ~]#systemctl start rpcbind
[root@localhost ~]#systemctl start nfs
[root@localhost ~]#systemctl enable rpcbind
[root@localhost ~]#systemctl enable nfs
[root@localhost ~]#netstat -anptu| grep 111    #查看rpcbind端口是否开启,rpcbind默认 使用端口111
[root@localhost ~]#netstat -anptu| grep 2049   #rpcbind默认使用端口2049
复制代码
  • 查看本机发布的NES共享目录
[root@localhost ~]#exportfs -rv
复制代码
  • 发布共享
[root@localhost ~]#showmount -e
复制代码

3.2.2在客户机中访问NES共享资源

  • 安装nfs-utils、 rpcbind 软件包
[root@192 ~]# rpm -q rpcbind 
[root@192 ~]# yum -y install rpcbind
复制代码
  • 将服务端的共享目录/data,挂载到本地的/opt目录下。
[root@192 ~]#  mount 192.168.200.100:/data /opt
[root@192 ~]#  df -hT
复制代码
  • 测试在服务端的共享目录中新建文件1.txt,观察客户端能否查看到

客户端,在/opt目录中新建文件1.txt

[root@192 opt]# cd /opt
[root@192 opt]# echo 'this is test file' > 1.txt
[root@192 opt]# ls
1.txt
复制代码

服务端,查看共享目录挂载点内的文件

 [root@localhost data ]# ls 
1.txt
复制代码

你可能感兴趣的:(linux,服务器,centos)