YUM 仓库的创建与 NFS 共享存储


1. 各种方式建立 YUM 仓库

1.1 YUM 概述

YUM(Yellow dog Updater Modified)是基于 RPM 包构建的软件更新机制,可以自动解决依赖关系,所有软件包由集中的 YUM 软件仓库提供。

1.2 常用 YUM 仓库类型

本地 YUM 仓库
远程 YUM 仓库
网络 YUM 源

1.3 YUM 命令使用

yum -y install 软件名			#安装、升级软件包,"-y" 选项表示自动确认
yum -y remove 软件名				#卸载软件包,可自动解决其依赖关系
yum -y update 软件名				#升级软件包
yum list						#查询软件包列表
yum list installed				#查询系统中已安装的软件包
yum list available				#查询仓库中尚未安装的软件包
yum list updates				#查询可以升级版本的软件包
yum info 软件名					#查询软件包的描述信息
yum history list				#列出最近的历史
yum history info 包名			#列出安装某个包的详细信息
yum history undo 包名 			#撤销某次更改
yum search [all] 关键词			#根据某个关键词来查找相关的软件包
yum whatprovides 命令			#查询命令属于哪个软件包
yum clean all && yum makecache	#删除 yum 缓存并更新
yum -y install epel-release		#一个扩展源,安装后删除 yum 缓存并更新
yum -y install 包名 --downloadonly		#下载 rpm 包而不安装
yum -y reinstall 包名 --downloadonly	#下载已安装过的 rpm 包
yum -y install 包名 --downloadonly --downloaddir=/tmp/     #下载 rpm 包到指定目录

1.4 搭建本地 YUM 仓库

(1) 方法一

VMware 虚拟机设置里 CD/DVD 一栏设备状态勾选已连接
#将光盘挂载到 /mnt 目录下
mount /dev/cdrom /mnt/ 或 mount /dev/sr0 /mnt/    
#将原 repo 文件备份
cd /etc/yum.repos.d/ && mkdir repos.backup && mv ./*.repo repos.backup    
#添加新的本地 repo 文件
cat > CentOS-local.repo << EOF    
[local]
name=local
baseurl=file:///mnt     #指定 URL 访问路径为光盘挂载目录
gpgcheck=0              #不验证软件包的签名
enabled=1               #开启此 yum 源,此为默认项,可省略,0 为关闭
EOF
#重建 yum 缓存
yum clean all && yum makecache
#测试是否生效
yum info vsftpd  				

(2) 方法二

#创建 iso 挂载点,并上传 centos 镜像文件到 /media
mkdir /media/CentOS
#挂载
mount -t iso9660 /media/CentOS-7-x86_64-DVD-1908.iso /media/CentOS
#备份 
cd /etc/yum.repos.d/ && mkdir repos.backup && mv ./*.repo repos.backup
#启用 CentOS-Media
cp -a repos.backup/CentOS-Media.repo ./ && sed -i 's/enabled=0/enabled=1/g' CentOS-Media.repo  
yum clean all && yum makecache  
yum info vsftpd 

1.5 搭建远程 YUM 仓库

(1) FTP 服务端配置

#安装 vsftpd 服务端软件
yum -y install vsftpd
#创建光盘挂载目录
mkdir /var/ftp/centos7
#镜像挂载
VMware 虚拟机设置里 CD/DVD 一栏设备状态勾选已连接
mount /dev/sr0 /mnt
#复制所有 rpm 软件包到光盘挂载目录,& 代表后台工作,jobs 查看后台进程
cp -rf /mnt/* /var/ftp/centos7/  &
# 创建目录 repodata 数据文件
mkdir /var/ftp/other    
#使用工具建立仓库数据文件,执行 yum -y install createrepo 安装
cd /var/ftp/other/ 
createrepo -g /mnt/repodata/repomd.xml ./    
#启动 vsftpd 服务
systemctl start vsftpd && systemctl enable vsftpd

(2) 客户端配置

#安装 ftp 服务
yum -y install ftp

#测试能否连接 FTP 服务端
[root@c7-2 ~]#ftp 192.168.10.20
Connected to 192.168.10.20 (192.168.10.20).
220 (vsFTPd 3.0.2)
Name (192.168.10.20: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 (192,168,10,20,105,11).
150 Here comes the directory listing.
drwxr-xr-x    8 0        0             220 Sep 01 04:19 centos7
drwxr-xr-x    3 0        0              22 Sep 01 04:22 other
drwxr-xr-x    2 0        0               6 Jun 09 16:15 pub
226 Directory send OK.
ftp> quit
221 Goodbye.
#-----------------------

#备份原仓库文件
cd /etc/yum.repos.d/ && mkdir repos.backup && mv ./*.repo repos.backup	

#创建新的 ftp.repo 仓库文件
vi /etc/yum.repos.d/ftp.repo 

[ftp]   	#仓库类别
name=ftp  	#仓库名称(说明)
baseurl=ftp://192.168.10.20/centos7  # URL 访问路径 
enabled=1   #启用此软件仓库
gpgcheck=0  #不验证软件包的签名

[other]
name=ftp
baseurl=ftp://192.168.10.20/other
enabled=1  
gpgcheck=0 

#这里没有使用验证,如果想验证,添加如下两行(去掉注释)
#gpgcheck=1		#验证软件包的签名
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7	# GPG 公钥文件的位置
#-----------------------

yum clean all && yum makecache
yum info vsftpd		#测试一下

1.6 构建网络 YUM 仓库

  我们默认安装的 Linux 系统其实就是使用的网络 YUM 源,只不过是官方的 YUM 源,服务器在国外,速度可能不太好,我们可以将其换成国内的网络 YUM 源。

构建阿里云网络 YUM 源:

#我们以 Centos7 为例
cd /etc/yum.repos.d/ && mkdir repos.backup && mv ./*.repo repos.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo    
yum clean all && yum makecache

其他国内 YUM 源地址:

#清华
https://mirrors.tuna.tsinghua.edu.cn/help/centos/
# 163
http://mirrors.163.com/.help/centos.html
#搜狐
http://mirrors.sohu.com/
#上海交大
http://ftp.sjtu.edu.cn/centos
#中科大
http://centos.ustc.edu.cn

2. NFS 共享存储服务

2.1 NFS 概述

  NFS(Network File System)网络文件系统是一种基于 TCP/IP 传输的网络文件系统协议。通过使用 NFS 协议,客户机可以像本地目录一样访问远程服务器中的共享资源。
  对于大多数负载均衡群集来说,使用 NFS 协议来共享数据存储是比较常见的做法,NFS 也是 NAS 存储设备必然支持的一种协议,但是由于 NFS 没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网中使用。
  NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。所以需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。

共享配置文件:

/etc/exports

2.2 服务端配置

(1) 安装 nfs-utils、rpcbind 软件包

yum -y install nfs-utils rpcbind

(2) 设置共享目录

mkdir -p /opt/share
chmod 777 /opt/share

(3) 编辑配置文件

[root@c7-1 ~]#vim /etc/exports

/opt/share 192.168.10.0/24(rw,sync,no_root_squash)

#从左到右字段含义分别为
共享目录 允许访问的网段 可读写 同步写入磁盘内存 当客户以root身份访问时赋予本地root权限

说明:

客户机地址可以是主机名、IP地址、网段地址,允许使用 "*""?" 通配符
"rw" 表示允许读写,"ro" 表示为只读
sync:表示同步写入到内存与硬盘中
no_root_squash:表示当客户机以root身份访问时赋予本地root权限(默认是root_squash)
root_squash:表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户
all_squash:所有访问用户都映射为匿名用户或用户组
async:将数据先保存在内存缓冲区中,必要时才写入磁盘
subtree_check(默认):若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
no_subtree_check:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率

(4) 启动 NFS 共享服务程序

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

systemctl start rpcbind && systemctl enable rpcbind
systemctl start nfs && systemctl enable nfs

查看 rpcbind 端口是否开启,rpcbind 服务默认使用 tcp 端口 111

netstat -anpt | grep rpcbind

(5) 查看本机发布的 NFS 共享目录

[root@c7-1 ~]#exportfs -rv
exporting 192.168.10.0/24:/opt/share
[root@c7-1 ~]#showmount -e
Export list for c7-1:
/opt/share 192.168.10.0/24

2.3 客户端配置

(1) 安装软件包并启动

yum -y install nfs-utils rpcbind
systemctl start rpcbind && systemctl enable rpcbind

(2) 查看 NFS 服务器端共享了哪些目录

[root@c7-2 ~]#showmount -e 192.168.10.20
Export list for 192.168.10.20:
/opt/share 192.168.10.0/24

(3) 手动挂载 NFS 共享目录

在客户机中创建一个资源共享的目录,然后把服务端共享的目录挂载在客户机创建的资源共享目录上

[root@c7-2 ~]#mkdir /testshare
[root@c7-2 ~]#mount 192.168.10.20:/opt/share /testshare
[root@c7-2 ~]#df -Th | grep share
192.168.10.20:/opt/share nfs4       50G  1.7G   49G   4% /testshare

(4) 设置自动挂载

# _netdev 表示挂载设备需要网络
[root@c7-2 ~]#echo "192.168.10.20:/opt/share /testshare nfs defaults,_netdev 0 0" >> /etc/fstab
[root@c7-2 ~]#mount -a
[root@c7-2 ~]#df -Th | grep share
192.168.10.20:/opt/share nfs4       50G  1.7G   49G   4% /testshare

(5) 测试是否可以共享文件

客户端:

[root@c7-2 ~]#cd /testshare/
[root@c7-2 /testshare]#touch 1.txt
[root@c7-2 /testshare]#ll
total 0
-rw-r--r-- 1 root root 0 Sep  1 14:58 1.txt

服务端:

[root@c7-1 ~]#ll /opt/share/
总用量 0
-rw-r--r-- 1 root root 0 91 14:58 1.txt

(6) 强制卸载 NFS

  如果服务端 NFS 服务突然停掉了,而客户端正在挂载使用时,在客户端执行 df -h 命令会出现卡死的现象,这个时候直接使用 umount 命令是无法直接卸载的,需要加上 -lf 选项:

umount -lf /testshare

NFS 参考: [NFS 共享存储](https://mp.weixin.qq.com/s/k_cqICW5zPhirPQkALbDTA)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值