yum仓库与NFS共享存储服务

258 阅读6分钟

部署yum仓库

CentOS使用yum和dnf 解决rpm的包依赖关系

yum概述:

YUM (Yellow dog Updater Modified)

• 基于RPM包构建的软件更新机制 • 可以自动解决依赖关系 • 所有软件包由集中的YUM软件仓库提供

扩展:

centos7 rhe17 yum ——> .rpm

centos8 rhe18 dnf yum

Ubuntu debian apt ——> .deb

yum仓库三种源方式

baseurl=file://<软件包目录> 本地源

ftp://<FTP服务地址> ftp源

http:// https://<URL地址> 在线源

ftp方式搭建云仓库

步骤:
1.服务端安装vsftpd服务程序
cd /mnt/Packages
rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm

Snipaste_2022-08-18_14-47-05.png

2.开启vsftp服务 ,并关闭防火墙
systemctl start vsftpd  #开启vsftp服务
systemctl status vsftpd  #查看vsftp服务状态
systemctl stop firewalld #关闭防火墙服务
setenforce 0

Snipaste_2022-08-18_14-53-20.png

Snipaste_2022-08-18_14-53-29.png

3.服务端切换到/var/ftp目录下新建一个文件centos7,并将光驱挂载到此目录下
[root@localhost Packages]#cd /var/ftp  #切换到ftp目录下
[root@localhost ftp]#mkdir centos7     #新建目录centos7
[root@localhost ftp]#mount /dev/sr0 centos7 #将光驱挂载在此目录下
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ftp]#cd centos7/  
[root@localhost centos7]#ls
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL

Snipaste_2022-08-18_14-52-47.png

4.客户端编写yum仓库文件
[root@localhost ~]#cd /etc/yum.repos.d/  #切换目录
[root@localhost yum.repos.d]#ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@localhost yum.repos.d]#mkdir ftp.bak   #新建文件夹
[root@localhost yum.repos.d]#mv *repo ftp.bak   #将默认的仓库文件移动到此目录下
[root@localhost yum.repos.d]#vim ftp.repo    ##编写新的仓库文件
[ftp]
name=ftp
baseurl=ftp://192.168.46.30/centos7
enabled=1
gpgcheck=0

Snipaste_2022-08-18_14-59-58.png

Snipaste_2022-08-18_15-01-19.png

6.清理yum缓存,建立元数据,并测试yum能否安装软件包
[root@localhost yum.repos.d]#yum clean all
[root@localhost yum.repos.d]#yum makecache 
[root@localhost yum.repos.d]#yum install -y httpd

Snipaste_2022-08-18_15-04-28.png

搭建阿里云仓库

默认的仓库文件是国外云仓库,速度比较慢,可以使用阿里云仓库代替

步骤:

1.切换/etc/yum.repo.d 目录下,将文件移走
[root@localhost ~]# cd /etc/yum.repos.d/      //切换至/etc/yum.repos.d/目录
 [root@localhost yum.repos.d]# mkdir bak
 [root@localhost yum.repos.d]# mv *.repo bak   //将yum仓库中以.repo结尾的文件移动到bak中
 [root@localhost yum.repos.d]# ls
 bak
2.搭建阿里云仓库
[root@localhost yum.repos.d]#wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost yum.repos.d]#ls   #查看是否搭建成功
bak  CentOS-Base.repo

或者

[root@localhost yum.repos.d]#curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3.清理缓存并安装软件
[root@localhost yum.repos.d]# yum clean all    #清理yum缓存
 [root@localhost yum.repos.d]# yum makecache    #重新建立元数据
 [root@localhost yum.repos.d]# yum install tree -y    #yum安装tree测试是否成功

yum 命令仅下载安装包

方式一:
yum install --downloadonly  软件名称
#下载下来的安装包都是放在 /var/cache/yum/x86_64/7/ 目录下,只是下载所需软件和依赖包无法安装软件
方式二:
yumdownloader --destdir=/opt mariadb mariadb-server
#yumdownloader 仅下载指定软件包,不下载依赖包  参数 --destdir 是用来指定存放下载的安装包的目录

软件包查询、安装、卸载

1.查询软件包

yum list [软件名]
yum info [软件名]
yum search <关键词>
yum whatprovides <关键词>

2.安装软件

yum install [软件名]
yum groupinstall <包组名>

3.升级软件

yum update
yum groupupdate

4.软件卸载

yum remove <软件名>
yum groupremove <包组名>

NFS共享存储服务

1、NFS的概念

NFS(Network File System 网络文件服务)是一种基于TCP/IP传输的网络文件系统协议

2、NFS优点与缺点

通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源;对于大多数负载均衡群集来说,使用NFS协议来共享数据存储是比较常见的方法,NFS也是NAS存储设备必然支持的一种协议

由于NFS没有用户认证机制,并且数据网络上是明文传输,所以安全性较差,一般只在局域网中使用。

扩展:

nfs 不是存储设备

硬盘 内存 光盘 LVM 块存储设备

nas iscsi san 企业级网络文件存储设备

配合nfs服务把以上存储设备的文件数据通过网络共享给其他服务器使用

3、NFS的使用要求:

NFS服务的实现依赖于RPC(Remote Process Call,远程过程调用)机制,以完成远程到本地的映射过程

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

依赖于RPC (远端过程调用)

需安装nfs-utils、rpcbind软件包

系统服务: nfs、rpcbind

4、NFS的配置文件

NFS的配置文件为/etc/exports

格式:

共享的目录名称 客户机地址/网段(共享参数)

共享参数:

“rw” 表示允许读写,“ro” 表示为只读

sync :写入数据同步写入到内存和硬盘中(保证数据的安全,不会丢失,写入会受到硬盘IO性能的影响,可能会影响读写速度)

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/passwd文件中匿名用户的GID

NFS共享存储服务配置的步骤

1.服务端配置

安装nfs_utils和rpcbind程序

yum install -y nfs-utils
yum install -y rpcbind

Snipaste_2022-08-18_16-33-53.png

Snipaste_2022-08-18_16-34-01.png

设置共享目录

cd /opt
mkdir share      #新建目录
chomd 777 share             #赋予权限
vim /etc/exports              #编辑共享配置文件
/opt/share 192.168.46.0/24(rw,no_root_squash)   #新增配置

Snipaste_2022-08-18_16-37-00.png

Snipaste_2022-08-18_16-40-15.png

关闭防火墙和系统安全服务,启动rpcbind和nfs服务,并查看rpcbind的端口是否打开

注意:先启动rpcbind服务,在启动nfs服务

systemctl  start rpcbind   #开启rpchind
systemctl  start nfs       #开启nfs
​
systemctl enable rpcbind            #将rpcbind设为自启动
systemctl enable nfs                #将nfs设为自启动
​
netstat -anpt | grep rpcbind        #查看rpcbind是否开启

Snipaste_2022-08-18_16-43-05.png

在线发布nfs共享目录并查看

exportfs -rv     #在线发布nfs共享目录
showmount -e     #查看nfs共享目录

Snipaste_2022-08-18_16-48-10.png

2.客户端配置

安装rpcbind服务

yum install -y rpcbind

Snipaste_2022-08-18_16-48-52.png

查看服务端的共享目录,并进行挂载(可以手动或自动挂载)

showmount -e 192.168.229.30                            #查看服务器NFS共享目录
mkdir /data                                #新建目录                       
mount 192.168.229.30:/opt/share  /data/     #进行手动挂载
df -hT                                              #查看挂载情况
 
设置自动挂载:
vim /etc/fstab
192.168.229.30:/opt/share   /data   nfs  defaults,_netdev     0 0
 ##_netdev:表示挂载设备需要网络

Snipaste_2022-08-18_16-51-37.png

测试:

客户机:

Snipaste_2022-08-18_17-10-35.png

服务端

Snipaste_2022-08-18_17-10-55.png

3.强制卸载nfs

如果服务端nfs服务突然停止使用,而客户端正在挂载中,客户端使用df -h 命令查看挂载点时会出现卡死现象,如果使用umount命令卸载挂载点是无法卸载的,需要强制卸载挂载点

umount -lf /data   #强制卸载