目录
一、YUM仓库服务
1、YUM仓库概述
- 基于RPM包构建的软件更新机制
- 可以自动解决依赖关系
- 所有软件包由集中的YUM软件仓库提供
2、准备安装源
2.1、软件仓库的提供方式
- FTP服务:ftp://..
- HTTP服务:http://..
- 本地目录:file://....
2.2、 RPM软件包的来源
- Centos发布的RPM包集合
- 第三方组织发布的RPM包集合
- 用户自定义的RPM包集合
3、YUM主配置文件
cat /etc/yum.conf #查看主配置文件
4、软件卸载
yum remove <软件名> #卸载软件包
yum groupremove <包组名> #卸载同软件包
5、YUM源的提供方式
5.1、配置本地YUM源仓库
cd /etc/yum.repos.d/ #切换至YUM仓库配置目录
vim local.repo #编辑或创建YUM仓库配置文件
mount /dev/sr0 /mnt/ #挂载设备
yum clean all #清理YUM缓存
yum makecache #重建YUM缓存
yum repolist #列出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 bak
[root@localhost yum.repos.d]# mv *.repo bak/
[root@localhost yum.repos.d]# vim local.repo
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost yum.repos.d]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 16G 4.3G 12G 28% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 9.1M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 497M 172M 326M 35% /boot
tmpfs 378M 4.0K 378M 1% /run/user/42
tmpfs 378M 24K 378M 1% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /mnt
[root@localhost yum.repos.d]# yum clean all && yum makecache
已加载插件:fastestmirror, langpacks
正在清理软件源: local
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
已加载插件:fastestmirror, langpacks
local | 3.6 kB 00:00:00
(1/4): local/group_gz | 156 kB 00:00:00
(2/4): local/filelists_db | 3.1 MB 00:00:00
(3/4): local/primary_db | 3.1 MB 00:00:00
(4/4): local/other_db | 1.2 MB 00:00:00
Determining fastest mirrors
元数据缓存已建立
[root@localhost yum.repos.d]# yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识 源名称 状态
local local 3,894
repolist: 3,894
5.2、配置ftp源
5.2.1、服务端配置
rpm -qa |grep vsftpd #查询已安装的vsftpd软件包
yum install -y vsftpd #安装vsftpd软件包
mkdir /var/ftp/centos7 #创建目录/var/ftp/centos7
mount /dev/sr0 /mnt/ #挂载设备到/mnt/
目录
cp -rf /mnt/* /var/ftp/centos7/ & #复制/mnt/
下的所有文件到/var/ftp/centos7/目录中
mkdir /var/ftp/other #创建目录/var/ftp/other
cd /var/ftp/other/ #进入目录/var/ftp/other
createrepo -g /mnt/repodata//repomd.xml ./ #使用createrepo
创建YUM仓库
systemctl start vsftpd #启动vsftpd服务
[root@localhost ~]# rpm -qa |grep vsftpd
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# yum install -y vsftpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 vsftpd.x86_64.0.3.0.2-29.el7_9 将被 安装
--> 解决依赖关系完成
依赖关系解决
==========================================================================
Package 架构 版本 源 大小
==========================================================================
正在安装:
vsftpd x86_64 3.0.2-29.el7_9 updates 173 k
事务概要
==========================================================================
安装 1 软件包
总下载量:173 k
安装大小:353 k
Downloading packages:
vsftpd-3.0.2-29.el7_9.x86_64.rpm | 173 kB 00:05
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : vsftpd-3.0.2-29.el7_9.x86_64 1/1
验证中 : vsftpd-3.0.2-29.el7_9.x86_64 1/1
已安装:
vsftpd.x86_64 0:3.0.2-29.el7_9
完毕!
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]#
[root@localhost ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]#
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 26G 4.0G 22G 16% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 9.2M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 497M 172M 326M 35% /boot
tmpfs 378M 4.0K 378M 1% /run/user/42
tmpfs 378M 32K 378M 1% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /mnt
[root@localhost ~]# cp -rf /mnt/* /var/ftp/centos7/ &
[1] 14633
[root@localhost ~]#
[root@localhost ~]# mkdir /var/ftp/other
[root@localhost ~]#
[root@localhost ~]# cd /var/ftp/other/
[root@localhost other]#
[root@localhost other]#
[root@localhost other]# createrepo -g /mnt/repodata//repomd.xml ./
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[1]+ 完成 cp -i -rf /mnt/* /var/ftp/centos7/(工作目录:~)
(当前工作目录:/var/ftp/other)
[root@localhost other]#
[root@localhost other]# systemctl start vsftpd
5.2.2、客户端配置
cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak/
mount /dev/sr0 /mnt/
vim centos7.repoyum clean all
yum makecache
yum repolist
- vim编辑内容
二、NFS共享存储
1、NFS基本概述
NFS(Network File System,网络文件系统)是一种允许在网络上共享文件系统资源的协议。它允许一个计算机系统通过网络透明地访问远程文件系统中的文件
- 依赖于RPC(远端过程调用)
- 需安装nfs-utils、rpcbind软件包
- 系统服务:nfs、rpcbind
- 共享配置文件:/etc/exports
2、NFS特点
- 采用TCP/IP传输网络文件
- 安全性低
- 简单易操作
- 适合局域网环境
常见的文件服务器有NFS、GFS(gluster fs)、FastDFS NFS系统和Windows网络共享、网络驱动器类 似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站,会用到更复杂的分布 式文件系统FastDFS、glusterfs、HDFS、ceph。
3、为什么使用NFS
实现多台服务器之间数据共享
实现多台服务器之间数据一致
4、NFS实现原理
三、NFS配置
1、服务端操作
1.1、安装nfs和rpcbind软件
rpm -q rpcbind nfs-utils #查看是否安装软件
yum -y install nfs-utils rpcbind #安装软件
1.2、修改配置文件设置共享
mkdir /opt/web #创建共享文件夹
vim /etc/exports #修改配置文件
/opt/web 172.16.88.0/24(rw,sync,no_squash)
/opt/web: 这是指定的共享目录路径,即共享给客户端的文件系统位置。
172.16.88.0/24: 这是指定可以访问该共享的网络地址范围。172.16.88.0/24
表示从172.16.88.0
到172.16.88.255
的所有IP地址,共计256个地址。在这个例子中,所有属于这个网段的主机都可以访问共享。
(rw,sync,no_squash): 这是NFS共享的权限和选项设置的部分。
- rw: 表示客户端拥有读写权限,可以对共享中的文件进行读写操作。
- sync: 表示数据同步写入。当客户端写入数据时,服务器将等待数据写入磁盘后再返回成功消息,以确保数据的持久性。这可能会降低性能,但可以提高数据的一致性和可靠性。
- no_squash: NFS默认会将客户端的root用户权限映射为匿名用户权限,这个选项禁止了这种映射。也就是说,客户端使用的是自己的用户权限而不是匿名用户权限。
1.3、启动 NFS 服务程序
systemctl start rpcbind #需要先启动rpc服务,因为nfs要向rpc注册端口
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfsnetstat -anpu |grep 111
netstat -anpu |grep 2049
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# 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@localhost ~]#
[root@localhost ~]# netstat -anptu |grep 111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp6 0 0 :::111 :::* LISTEN 1/systemd
udp 0 0 0.0.0.0:111 0.0.0.0:* 14596/rpcbind
udp6 0 0 :::111 :::* 14596/rpcbind
[root@localhost ~]# netstat -anptu |grep 2049
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp6 0 0 :::2049 :::* LISTEN -
udp 0 0 0.0.0.0:2049 0.0.0.0:* -
udp6 0 0 :::2049 :::* -
1.4、查看 NFS 共享目录
exportfs -rv #验证结果
showmount -e
2、客户端操作
2.1、安装 nfs-utils和rpcbind 软件包
rpm -q nfs-utils rpcbind
yum -y install nfs-utils rpcbindshowmount -e 172.16.88.22
2.2、挂载共享目录
mount -t nfs 192.168.10.120:/opt/web/ /mnt
2.3、修改/etc/fstab实现自动挂载
vim /etc/fstab
2.4、卸载NFS
NFS 客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端 NFS 服务突然间停 掉了,那么在客户端就会出现执行 df -h 命令卡死的现象。这个时候使用 umount 命令是无法直接卸载 的,需要加上 -lf 才能卸载 -l 表示解除正在繁忙的文件系统,-f 表示强制。
- 服务端会卡住
- 解决办法
umount -lf 强制卸载