目录
简介NFS(Network File System 网络文件服务)
yum概述
yum简介
yum是基于RPM包构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中大量查找安装依赖包的时间
依赖关系的产生是因为linux本身是以系统简洁为自身优势,所有在安装操作系统时候没有将所有的库文件以及编译软件包进行安装,所以在linux操作系统上进行软件安装的时候会出现软件包依赖的情况。yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上,也可以存放在一台服务器上;可以由官方提供服务,也可以由第三方来提供,比如国内的阿里云、搜狐云,等等。官方源一般在国外,下载速度肯定有限,手动更改国内的云可以大幅提升下载速度。
yum实现过程
要有安装包
安装包包括:光驱里自带 挂载提供软件包
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
yum配置文件
主配置文件:/etc/yum.conf
日志文件位置
yum命令
命令 | 不加信息 | 加信息(包名,包组) |
yum list | 显示所有可用包 | 单个的可安装包 |
yum info | 显示所有可用包的信息 | 单个具体的信息 |
yum search | \ | 模糊查找所有的相关信息 |
yum provides | \ | 精确查找 |
yum grouplist | 显示所有可用包组 | 显示具体的包组 |
yum groupinfo | 显示所有的包组具体信息 | 显示具体的包组的具体信息 |
yum install | \ | 安装具体的软件包 |
yum groupinstall | \ | 安装具体的软件包组 |
yum update | 所有软件升级 | 具体软件升级 |
yum groupupdate | 所有包组升级 | 具体包组升级 |
yum remove | \ | 卸载具体软件 |
yum groupremove | \ | 卸载具体包组软件 |
yum history | 查看当前yum操作历史 | \ |
yum historyundo | 加入序号卸载序号里安装的软件 | \ |
yum historyredo | 加入序号重新执行序号里的操作 | \ |
查询
yum list 软件名
显示可用安装包,不加软件名,会显示所有已安装的软件包
yum info 软件名
显示安装包详细信息
yum group 包组名
安装包组的查询,不加包组名,就是显示所有
yum serach 关键词
根据关键字查找软件安装包
yum provides 关键词
知道某个命令却不知道具体的包
yum grouplist 包组名
安装包组的查询
yum groupinfo 包组名
显示包组详细信息
yum install 软件名
安转软件包
yum groupinstall 包组名
安装包组
yum update
更新包组
yum groupupdate
包组更新
软件卸载
yum remove 软件名
yum groupremove 包组名
卸载包组
yum history
查看历史的使用记录
可用yum history undo 具体数字 卸载,可以将所有的依赖关系都删除
如果后悔卸载
yum history redo 具体数字 重新安装
yum history undo 最后一次 卸载上次卸载等于重新安装
搭建仓库的方式
http服务
服务端
[root@jjj ~]# systemctl stop firewalld
[root@jjj ~]# setenforce 0
[root@jjj ~]# yum install httpd -y
[root@jjj ~]# cd /var/www/html
[root@jjj html]# mkdir centos7
[root@jjj html]# mount /dev/sr0 centos7
[root@jjj html]# systemctl start httpd
去网页看下,如下图, 则配置成功,他人就可以来下载
客户端
[root@yyy ~]# cd /etc/yum.repos.d
[root@yyy yum.repos.d]# mkdir bak
[root@yyy yum.repos.d]# mv *.repo bak
[root@yyy yum.repos.d]# vim http.repo
[root@yyy yum.repos.d]# yum clean all
[root@yyy yum.repos.d]# yum makecache
ftp服务
服务端安装vsftp服务
[root@jjj ~]# systemctl stop firewalld
[root@jjj ~]# setenforce 0
[root@jjj ~]# yum install vsftp -y
[root@jjj ~]# cd /var/ftp
#切换到ftp目录下新建一个目录
[root@jjj ftp]# mkdir centos7
[root@jjj ftp]# mount /dev/sr0 centos7
#将光驱里的文件包全拷到centos7
[root@jjj ftp]# systemctl start vsftpd
客户端
[root@yyy ~]# systemctl stop firewalld
[root@yyy ~]# setenforce 0
[root@yyy ~]# yum install ftp -y
ftp连接测试一下
[root@yyy ~]# cd /etc/yum.repos.d
[root@yyy yum.repos.d]# mkdir bak
[root@yyy yum.repos.d]# mv *.repo bak
[root@yyy yum.repos.d]# vim ftp.repo
本地仓库搭建
[root@jjj ~]# mount /dev/sr0 /mnt
[root@jjj ~]# cd /etc/yum.repos.d
[root@jjj yum.repos.d]# mkdir bak
[root@jjj yum.repos.d]# mv *.repo bak
[root@jjj yum.repos.d]# vim mjy.repo
[root@jjj yum.repos.d]# yum clean all
[root@jjj yum.repos.d]# yum makecache
网络源下载地址
阿里云(centos7)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
网易(centos7)
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
存储和NFS共享
存储分为三种
- DAS:直连式存储 存储和主机直连,存储和主机在一台机器上,如家用电脑
- NAS:网络附加存储 主机和存储设备相对较远,只提供空间,不提供其他服务,相当于多块硬盘
- SAN:存储区域网络 存储在远程,文件系统也在远程,文件共享NFS、FTP等都是
DAS | NAS | SAN | |
---|---|---|---|
传输类型 | SCSI、FC | IP | IP、FC、SAS |
数据类型 | 数据块 | 文件 | 数据块 |
典型应用 | 任何 | 文件服务器 | 数据库应用 |
优点 | 磁盘与服务器分离,便于统一管理 |
|
|
缺点 |
| 不适合存储量大的块级应用数据备份及恢复占用网络带宽 | 相比NAS成本较高安装和升级比NAS复杂 |
应用场景 | 虽较老,但适用于数据量不大,对磁盘访问速度要求较高的中小企业 | 多适用于文件服务器,用来存储非结构化数据,虽受限于以太网速度,但部署灵活,成本低 | 适用于大型应用或数据库系统,但成本高,较为复杂 |
简介NFS(Network File System 网络文件服务)
NFS是一种基于TCP/ip传输的网络文件系统协议,通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源
特点
- 采用TCP/IP传输网络文件
- 安全性低
- 简单易操作
- 适合局域网环境
原理
NFS优势
节省本地存储空间,将常用的数据如:/home目录,存放在NFS服务器上且可以通过网络访问,将减少本地磁盘的使用率。
NFS软件简介
软件包:nfs-utils
相关软件包:rpcbind(必须)
NFS端口号不固定
RPC端口号111
NFS服务主要进程
- rpc.nfsd最主要的NFS进程,管理客户端是否可登录
- rpc.mountd挂载和卸载NFS文件系统,包括权限管理
- rpc.lockd非必要,管理文件锁,避免同时写出错
- rpc.statd非必要,检查文件一致性,可修复文件
日志文件位置:/var/lib/nfs
NFS配置文件
/etc/exports
/etc/exports.d/*.exports
共享过程
服务端
[root@yyy ~]# yum install nfs-utils.x86_64 -y
[root@yyy ~]# systemctl start nfs
[root@yyy ~]# cd data/
[root@yyy data]# mkdir nfs
[root@yyy data]# cd nfs
[root@yyy nfs]# cp /etc/passwd /etc/fstab .
[root@yyy nfs]# ll
总用量 8
-rw-r--r--. 1 root root 465 12月 23 13:46 fstab
-rw-r--r--. 1 root root 2149 12月 23 13:46 passwd
[root@yyy nfs]# vim /etc/exports
[root@yyy nfs]# exportfs -r
#不重启生效,不用重启是怕他人在用
[root@yyy nfs]# exportfs -v
#查看详细的nfs信息
[root@yyy nfs]# chmod 777 /data -R
#给文件夹加权限
客户端
[root@jjj ~]# yum install nfs-utils.x86_64 -y
[root@jjj ~]# systemctl start nfs-server.service
[root@jjj ~]# showmount -e 192.168.247.110
#查看共享
Export list for 192.168.247.110:
/data/nfs 192.168.247.110
[root@jjj ~]# mount 192.168.247.110:/data/nfs /mnt/
[root@jjj ~]# ls /mnt
fstab passwd
[root@jjj ~]# cd /mnt
[root@jjj mnt]# touch 11
[root@jjj mnt]# ll
总用量 8
-rw-r--r--. 1 nfsnobody nfsnobody 0 12月 23 14:19 11
-rwxrwxrwx. 1 root root 465 12月 23 13:52 fstab
-rwxrwxrwx. 1 root root 2149 12月 23 13:52 passwd
权限不够情况
[root@jjj mnt]# touch 11
touch: 无法创建"11": 只读文件系统
#未加服务权限,要去expots里赋上
[root@jjj mnt]# touch 11
touch: 无法创建"11": 权限不够
#文件夹权限不够
为防止多用户uid,或gid相同混乱可将所有用户统一成同一用户
先创建一个同一用户身份
[root@yyy nfs]# useradd www
[root@yyy nfs]# id www
uid=1001(www) gid=1001(www) 组=1001(www)
再给服务配置权限
[root@yyy nfs]# vim /etc/exports
刷新查看一下
[root@yyy nfs]# exportfs -r
[root@yyy nfs]# exportfs -v
/data/nfs 192.168.247.100(rw,sync,wdelay,hide,no_subtree_check,anonuid=1001,anongid=1001,sec=sys,secure,root_squash,all_squash)
去客户端测试一下
永久挂载
强制解挂载
进入配置件添加
检查一下