文章目录
计算机系统
5G云计算
第五章 LINUX部署YUM仓库及NFS共享服务
一、YUM仓库服务
1.部署YUM软件仓库
1)YUM概述
①YUM(Yellow dog Updater Modified)
②基于RPM包构建的软件更新机制
③可以自动解决依赖关系
④所有软件包集中的YUM软件仓库提供
系统类型 | 文件类型(扩展名) | 对应的程序 |
---|---|---|
RHEL、CentOS | .rpm | yum |
Ubuntu、Debian | .deb | apt |
2)准备安装源
①软件仓库的提供方式:
FTP服务:ftp://…
HTTP服务:http://…
本地目录:file://…
软件仓库类型 | baseurl | 支持的访问数量 | 优缺点 |
---|---|---|---|
本地源 | =file://… | 一对一 | 安装快,软件数量少,版本低 |
ftp源 | =ftp://… | 一对多 | 同上 |
在线源 | =http://… | 一对多 | 软件数量多,版本新,但安装前需要更新缓存,安装速度较慢 |
②RPM软件包的来源:
CentOS发布的RPM包集合
第三方组织发布的RPM包集合
用户自定义的RPM包集合
③构建CentOS 7软件仓库:
RPM包来自CentOS 7 DVD光盘
通过FTP方式提供给客户机
④在软件仓库中加入非官方RPM包组
包括存在依赖关系的所有RPM包
使用createrepo工具建立仓库数据文件(创建软件包依赖关系索引表)
createrepo -g 软件包目录 依赖关系索引表文件的所在目录
-g:指定依赖关系索引表文件的所在目录
2.使用YUM工具管理软件包
yum常用的操作命令:
###安装、升级软件包,"-y" 选项表示自动确认
yum -y install 软件名
###卸载软件包,可自动解决其依赖关系(只删除软件包,不删除其配置文件)
yum -y remove 软件名
###卸载软件包,可自动解决其依赖关系(删除软件包的同时删除其配置文件)
yum -y erase 软件名
###升级软件包
yum -y update 软件名
###查询软件包列表
yum list
###查询系统中已安装的软件包
yum list installed
###查询仓库中尚未安装的软件包
yum list available
###查询可以升级版本的软件包
yum list updates
###查询软件包的描述信息
yum info 软件名
###根据某个关键词来查找相关的软件包
yum search [all] 关键词
###查询命令属于哪个软件包
yum whatprovides 命令
###使用yum方式进行安装
yum install -y gcc gCC-C++ make
3.如何使本地yum源和在线源分优先级
yum -y install yum-plugin-priorities
下载yum服务的扩展包,下载完成后自动生效
配置文件:/etc/yum/pluginconf.d/priorities.conf
{ [main]
enabled=1
}
enabled=1则为开启状态(默认),=0则为关闭状态
4.yum下载软件包的方式
1)开启缓存下载
yum下载软件包虽然会自动下载依赖包以保证正常安装所需软件包,但是依赖包会在安装完后自动删除,可以修改配置文件:/etc/yum.conf让依赖包不会被自动删除,即可得到所有下载的软件包
vim /etc/yum.conf
{###可以指定下载的缓存目录
cachedir=缓存目录
###=1为开启缓存(即不删除缓存),=0为关闭缓存(下载完即删除)
keepcache=1
2)通过yum命令的选项下载
yum -y install 软件 --downloadonly --downloaddir=下载目录
--downloadonly:下载该软件时,仅下载软件包,不进行安装(默认自动安装)
--downloaddir=:指定软件包的下载目录
3)通过yumdownloader命令进行下载
yumdownloader 软件 --destdir=下载目录 --resolve
--destdir=:指定软件包的下载目录
--resolve:自动解决依赖关系,连同依赖包一起下载
二、NFS共享存储服务
系统类型 | 程序 |
---|---|
windows共享存储服务 | cifs |
linux共享存储服务 | nfs |
存储类型 | 使用的设备及服务 |
---|---|
块存储 | 硬盘、LVM、RAID |
文件存储 | NFS |
对象存储 | OSS |
1.使用NFS发布共享资源
1)NFS(Network File System)网络文件系统
依赖RPC(Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程
所以需要安装nfs-utils、rpcbind软件包来提供NFS共享服务
系统服务:nfs(端口号2049)、rpcbind(端口号111),前者用于NFS共享发布和访问,后者用于RPC支持
共享配置文件:/etc/exports(文件为空,需自己添加自己想要的配置)
###配置文件的格式
共享的目录位置 客户机地址/网段(权限选项)
###客户机地址/网段和后面的括号之间一定不要有空格
2)NFS概述
NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。
对于大多数负载均衡群集来说,使用NFS协议来共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议。但是由于NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网中使用。
2.在客户端访问NFS共享
1)安装软件,启动服务
yum -y install nfs-utils rpcbind
###优先启动rpcbind,否则客户端NFS服务可能会找不到服务端的NFS
systemctl start rpcbind
systemctl start nfs
###开机自动启动该服务
systemctl enable rpcbind
systemctl enable nfs
###关闭防火墙和selinux
systemctl stop firewalld
setenforce 0
2)准备共享目录
先准备硬盘/LVM/RAID,格式化后挂载到需要共享的目录(比如/share),并设置相应的权限
###如果无需客户端写入文件则省略
chmod 777 /share
3)修改共享配置文件
vim /etc/exports
共享目录 客户端地址/网段(共享参数选项,...)
.....
###共享参数选项用“,”相隔,可有多条共享目录
参数选项 | 说明 |
---|---|
ro | 该主机对该共享目录有只读权限 |
rw | 该主机对该共享目录有读写权限 |
root_squash | 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户(默认) |
no_root_squash | 客户机用root访问该共享文件夹时,不映射root用户 |
all_squash | 客户机上的任何用户访问该共享目录时都映射成匿名用户 |
anonuid= | 将客户机上的用户映射成指定的本地用户ID的用户 |
anongid= | 将客户机上的用户映射成属于指定的本地用户组ID |
sync | 资料同步写入到内存与硬盘中(占用大量的I/O) |
async | 资料会先暂存于内存中,在必要时写入硬盘 |
insecure | 允许从这台机器过来的非授权访问 |
subtree_check | 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认) |
no_subtree_check | 和上面相对,不检查父目录权限,这样可以提高效率 |
wdelay | 如果多个用户要写入NFS目录,则归组写入(默认) |
no_wdelay | 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置 |
hide | 在NFS共享目录中不共享其子目录 |
no_hide | 共享NFS目录的子目录 |
secure | NFS通过1024以下的安全TCP/IP端口发送 |
insecure | NFS通过1024以上的端口发送 |
4)发布共享目录
###对NFS配置文件做了修改后,可用以下两条命令重新刷新配置
systemctl restart nfs
###如果客户端正在挂载nfs共享存储目录,重启nfs服务可能会不生效,有延迟,甚至卡死,可用下面的命令发布新的nfs配置(共享目录)
exportfs -avr
5)客户端挂载使用
###在服务端和客户端查看有哪些共享目录发布
showmount -e 服务端IP
###客户端临时挂载nfs共享目录
mount [-t nfs] 服务端IP:共享目录 本地挂载点
###客户端永久挂载nfs共享目录
vim /etc/fstab
{服务端IP:共享目录 本地挂载点 nfs defaults,_netdev 0 0}
###如果客户端正在挂载中,服务端突然发生事故,nfs服务宕机了,客户端挂载目录会出现卡死现象,可使用命令强制解除挂载
umount -lf