目录
一、YUM仓库服务
1.YUM概述
YUM(Yellow dog Updater Modified)
基于RPM包构建的软件更新机制
可以自动解决依赖关系
所有软件包由集中的YUM软件仓库提供
linux本身就是以系统简洁为自身优势,所以在安装操作系统的时候并没有将所有的库文件以及编译软件包进行安装,所以在linux操作系统上进行软件安装的时候会出现软件包依赖的情况。yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云等,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度
yum软件仓库中的rpm软件包可以是由红帽官方发布的,也可以是第三方发布的,当然也可以是自己编写的
2.准备安装源
1)软件仓库的提供方法
FTP服务:ftp://……
HTTP服务:http://……
本地目录:file://……
2)RPM软件包的来源
CentOS发布的RPM包集合
第三方组织发布的RPM包集合
用户自定义的RPM包集合
3)构建CentOS 7 软件仓库
RPM包来自CentOS 7 DVD光盘
通过FTP方法提供给客户机
mkdir -p /var/ftp/cenos7
cp -rf /media/cdrom/* /var/ftp/cenos7
rpm -ivh /media/cdrom/Packages/vsftpd-3.0.2-21.el7.x86_64.rpm
systemctl start vsftpd
systemctl enable vsftpd
4)在软件仓库中加入非官方RPM包组
包括存在依赖关系的所有RPM包
使用createrepo工具建立仓库数据文件
mkdir /var/ftp/other
cd /var/ftp/other
createrepo -g /media/cdrom/repodata/repomd.xml ./
3.一键安装软件包的工具
RHEL、CentOS yum dnf
Ubuntu、Debian apt apt-get
一键安装更新软件包、自动解决软件包之间的依赖关系、软件包仓库可以集中管理并提供给多个客户机使用
4.yum软件仓库类型
FTP源:ftp://…… 一对一 安装快,但软件数量少,版本低
在线源:http://…… 一对多 同上
本地源:file://…… 一对多 软件数量多,版本新,但是安装前需要更新缓存
5.搭建yum本地源仓库、ftp源仓库
1)在仓库主机的软件包目录中准备好软件包列表,并使用 createrepo <软件包目录> 命令建立仓库数据文件
2)在客户机的 /etc/yum.repos.d/ 目录中创建yum仓库源配置文件 XXX.repo
3)在 XXX.repo yum仓库源配置文件使用 baseurl=file:// 指定本地的软件包目录
baseurl=ftp:// 指定ftp服务器地址及其子目录
4)yum makecache 更新缓存, yum install -y 安装软件
6.通过yum下载软件包
1)开启缓存
vim /etc/yum.conf
cachedir=软件包缓存目录
keepcache=1 #1为开启缓存,0为关闭缓存yum install -y 软件名 #下载并安装软件包
2)仅下载软件包
yum install -y 软件名 --downloadonly --downloaddir=软件包下载目录yumdownloader --destdir=软件包下载目录 --resolv 软件名
#--resolv代表下载软件所需的所有依赖包,不加这个选项代表仅下载指定的软件包
二、NFS 共享存储服务
1.NFS
NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。
对于大多数负载均衡群集来说,使用NFS协议来共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议。但是由于NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网中使用。
依赖于RPC(远端过程调用)
需安装nfs-utils、rpcbind软件包
系统服务:nfs、rpcbind
共享配置文件:/etc/exports
2.特点
采用TCP/IP传输网络文件
安全性低
简单易操作
适合局域网环境
节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上且可以通过网络访问,将减少本地磁盘的使用率
3.存储类型
块存储:硬盘 LVM RAID
文件存储:NFS
对象存储:OSS
三、构建NFS共享存储服务
1、在文件服务器使用 NFS 发布共享资源
1) 安装 nfs-utils、rpcbind 软件包
rpm -q rpcbind nfs-utils
yum -y install nfs-utils rpcbind
[root@bogon ~]# systemctl stop firewalld
[root@bogon ~]#
[root@bogon ~]# setenforce 0
[root@bogon ~]#
[root@bogon ~]# yum -y install nfs-utils rpcbind
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 1:nfs-utils-1.3.0-0.68.el7.2.x86_64 已安装并且是最新版本
软件包 rpcbind-0.2.0-49.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@bogon ~]#
2)设置共享目录
mkdir -p /opt/share #创建共享文件夹
chmod 777 /opt/share #设置权限vim /etc/exports #修改配置文件
/share 192.168.10.0/24(rw,sync,no_root_squash)
/var/ftp/pub 192.168.10.121(rw)/share *(rw,sync)
客户机地址可以是主机名、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服务器也不检查其父目录的权限,这样可以提高效率。
anonuid=xxx :指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx :指定NFS服务器/etc/group文件中匿名用户的GID
[root@bogon ~]# mkdir /share #创建共享文件夹
[root@bogon ~]# chmod -R 777 /share/ #设置共享文件夹的权限
[root@bogon ~]# echo "123456" > /share/123.txt #在共享文件夹下创建文件,并且添加内容
[root@bogon ~]#
[root@bogon ~]# systemctl start rpcbind
[root@bogon ~]# systemctl start nfs
[root@bogon ~]#
[root@bogon ~]# vim /etc/exports #修改配置文件
3) 启动 NFS 服务程序
#手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfsnetstat -anptu | grep 111 #查看rpcbind端口是否开启,rpcbind默认使用端口111
netstat -anptu | grep 2049 #nfs默认使用端口2049
[root@bogon ~]# systemctl start rpcbind
[root@bogon ~]# systemctl start nfs
[root@bogon ~]# systemctl enable rpcbind
[root@bogon ~]# 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@bogon ~]# netstat -anptu | grep 111 #查看rpcbind端口是否开启,rpcbind默认使用端口111
[root@bogon ~]# netstat -anptu | grep 2049 #nfs默认使用端口2049
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 192.168.10.120:2049 192.168.10.121:837 ESTABLISHED -
tcp6 0 0 :::2049 :::* LISTEN -
udp 0 0 0.0.0.0:2049 0.0.0.0:* -
udp6 0 0 :::2049 :::* -
[root@bogon ~]#
4)查看本机发布的 NFS 共享目录
exportfs -rv #发布共享
showmount -e
[root@bogon ~]# exportfs -rv
exportfs: invalid option -- '▒'
usage: exportfs [-adfhioruvs] [host:/path]
[root@bogon ~]# showmount -e
Export list for bogon:
/share 192.168.10.121
[root@bogon ~]#
2、在客户机中访问 NFS 共享资源
1)安装 nfs-utils、rpcbind 软件包
rpm -q rpcbind nfs-utils
yum -y install nfs-utils rpcbind
systemctl start rpcbind
systemctl enable rpcbind#查看NFS服务器端共享了哪些目录
showmount -e 192.168.10.120
[root@bogon ~]# systemctl stop firewalld
[root@bogon ~]#
[root@bogon ~]# setenforce 0
[root@bogon ~]# yum -y install nfs-utils rpcbind
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
local | 3.6 kB 00:00:00
软件包 1:nfs-utils-1.3.0-0.68.el7.2.x86_64 已安装并且是最新版本
软件包 rpcbind-0.2.0-49.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@bogon ~]#
[root@bogon ~]# showmount -e 192.168.10.120 #查看NFS服务器端共享了哪些目录
Export list for 192.168.10.120:
/share 192.168.10.121
[root@bogon ~]#
2)手动挂载 NFS 共享目录
mkdir /share
mount 192.168.10.120:/share/ /mntmount #确认挂载的结果,也可以使用 df -Th
[root@bogon ~]# mount 192.168.10.120:/share/ /mnt/
[root@bogon ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 13M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 36G 5.2G 30G 15% /
/dev/sda1 xfs 1014M 187M 828M 19% /boot
tmpfs tmpfs 378M 0 378M 0% /run/user/0
tmpfs tmpfs 378M 12K 378M 1% /run/user/42
192.168.10.120:/share nfs4 36G 4.7G 31G 14% /mnt
[root@bogon ~]#
[root@bogon ~]# cd /mnt/ #查看共享文件夹下内容
[root@bogon mnt]# ls
123.txt
[root@bogon mnt]# cat 123.txt
123456
[root@bogon mnt]#
3) 设置自动挂载
vim /etc/fstab
192.168.10.120:/share /mnt nfs defaults,_netdev 0 0_netdev :表示挂载设备需要网络
4) 强制卸载 NFS
如果服务器端NFS服务突然间停掉了,而客户端正在挂载使用时,在客户端就会出现执行 df -h 命令卡死的现象。这个时候直接使用umount 命令是无法直接卸载的,需要加上 -lf 选项才能卸载。
umount -lf /share
总结
部署YUM软件仓库(服务器端、客户端)
YUM工具功能(查询、安装、升级、卸载)
构建NFS共享存储服务