Linux文件系统/企业文件系统选型/企业常规服务应用建议/软件及软件安装包管理,rpm,yum系列知识--12272字详谈

这里先补充一下上一节的命令:

tune2fs 调整或查看ext2/ext3/ext4文件系统的参数(关闭ext4日志功能)

现在已经被淘汰但是企业笔试或者认证考试会存在

dumpe2fs 用于导出ext2,ext4,ext3文件系统信息(文件系统组成含超级块,块组,inode,block等信息)

resize2fs 调整ext2,ext3,ext4文件系统大小
df 查看磁盘挂载使用量等信息

du 查看目录及文件大小

什么是文件系统?

【文件系统】是一种【存储和组织计算机中数据文件的机制或方法】,它使得对计算机内的数据的存储、访问和查找变得更容易、简单。
文件系统在计算机里就是一个【应用软件】。

如ext2、ext3(CentOS5.x)、ext4(CentOS6.x)、xfs(CentOS7.x)、zfs和Reiserfs或FAT、NTFS等都是常见文件系统。

为什么磁盘分区后需要格式化?

磁盘分区在没有格式化前,操作系统是无法识别系统上磁盘分区格式的,也就无法存取文件目录属性和权限等内容,把分区格式化成操作系统支持的某个文件系统后,再存放数据,系统就会根据这个文件系统的格式进行存取文件了。

创建一个文件:inode,block(格式化生成文件系统时候产生的)。

常见文件系统类型

文件系统 类型 名称 用途

Second Extended filesystem ext2 最常用的Linux文件系统

Three Extended filesystemext3 ext2 的升级版,带日志功能,ext4是ext3升级版

VFAT filesystemvfatWindows95/98 采用的文件系统

NT filesystemntfsWindows NT 采用的文件系统

ISO 9660 filesystemiso9660 大部份光盘所用的文件系统

UFS filesystemufs Sun OS 所用的文件系统

XFS filesystemxfs 由SGI开发的先进的日志文件系统,支持超大容量文件

JFS filesystemjfs IBM的AIX使用的日志文件系统

ReiserFS filesystemreiserfs基于平衡树结构的文件系统suse。
[ext4,xfs]

不同的系统采用的文件系统:

SUSE Linux的默认文件系统ReiserFS文件系统。
IBM的AIX使用的jfs日志文件系统。
Sun OS所用的文件系统ufs。
CentOS7采用XFS文件系统。
CentOS6采用ext4文件系统。

文件系统体系结构

在这里插入图片描述

生产文件系统选型

SAS/SATA磁盘对应文件系统的选择:

a.业务应用是[大量小文件]可选reiserfs(100K以内)。

大量小文件访问,衡量指标是IOPS,文件系统性能瓶颈在于文件元数据操作、目录操作、数据寻址。

reiserfs对小文件作了优化,并使用B+tree组织数据,加速了数据寻址,大大降低了open/create/delete/close等系统调用开销。

mount是指定noatime, nodiratime, notail,减少不必要的inode操作,notail关闭tail package功能,以空间换取更高性能。

因此,对于随机的小I/O读写, reiserfs是很好的选择。ext4文件系统是很好的选择

IO调度算法选择deadline,block size = 4096, ext4关闭日志功能。

reiserfs mount参数:-o defaults, async, noatime, nodiratime, notail, data=writeback

ext4 mount参数:-o defaults, async, noatime, nodiratime, data=writeback, barrier=0

关闭ext4日志:tune2fs -O^has_journal /dev/sdb1CDN公司,ext2

b.高并发的数据库业务可选xfs,例如:有门户网站MySQL业务选择xfs。

c.视频下载、流媒体、数据库选择ext4、xfs、小文件业务ext4也是OK的,通用文件系统。

d.有些CDN公司的cache业务服务器,曾经还选择了ext2文件系统,因为它没有日志功能,速度快,CDN是做网站加速服务的,对数据完整性要求不高,对速度要求高。

常规的服务应用建议,系统默认是什么就选择什么就好,简单方便,例如:

对于CentOS5.x系列,常规应用就选默认的ext3文件系统即可。
对于CentOS6.x系列,常规应用就选默认的ext4文件系统即可。
对于CentOS7.x系列,常规应用就选默认的xfs文件系统即可。

注意:如果服务器数量少,怎么选择都可以,如果海量的服务器,考虑维护成本和性能,需要折中选择。

taobao(为了省钱) 主板接口 一个USB接口,去掉。

磁盘性能指标

使用率i/o时间百分比:过高意味i/o存在性能瓶颈

iops:(只每秒i/o请求数)(数据库服务,随机读写)

吞吐量:每秒的i、o请求大小(腾讯,爱奇艺,抖音bilibili,视频大小文件)

响应时间:指i,o请求发出收到响应的间隔时间

使用iostat查看i、o性能指标

iostat -d -x 1

在这里插入图片描述
集群搭建会详细谈到
输入iostat,没有找到命令,需要yum进行安装

在这里插入图片描述
在这里插入图片描述

iotop
前两行:进程的磁盘读写大小总数和磁盘真实的读写大小总数。因为缓存,缓冲区,i/o合并等因素,它们可能并不相等
在这里插入图片描述

Linux软件及软件安装包管理

centos7安装软件包安装方式:

rpm 软件开发商预先编译打包,安装简单 软件版本偏低

源码包:手动编译打包,安装简单 软件版本随意定制安装路径(满足定制需求)

二进制包(装mysql): 解压即可使用安装简单 不能修改源码

从源码如何创建rpm包?

什么是rpm包?

红帽公司开发用于软件包的安装,升级,卸载与查询的包管理工具
在这里插入图片描述
在这里插入图片描述

如何获取rpm软件包?

1.centos7镜像自带
2.互联网方式或镜像网站获取rpm
3.特定软件官方获取软件包

rpm软件包命令使用

rpm 【选项】【软件包名称】

  1. 安装常用选项
    -i 安装rpm
    -v 显示安装详细信息
    -h 显示安装rpm进度

下载rpm(http://nginx.org/packages/)

https://nginx.org/en/linux_packages.html#RHEL

rpm -ivh 包名

可以是
1.网址 http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-module-xslt-1.18.0-2.el7.ngx.x86_64.rpm
2.全路径带包名
3.包名

在这里插入图片描述
在这里插入图片描述
[root@calms src]# rpm -ivh nginx-1.18.0-2.el7.ngx.x86_64.rpm
warning: nginx-1.18.0-2.el7.ngx.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
Preparing… ################################# [100%]
Updating / installing…
1:nginx-1:1.18.0-2.el7.ngx ################################# [100%]

升级rpm
-U 升级新版本

rpm -Uvh 包名

[root@calms src]# rpm -Uvh nginx-1.18.0-2.el7.ngx.x86_64.rpm
warning: nginx-1.18.0-2.el7.ngx.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
Preparing… ################################# [100%]
package nginx-1:1.18.0-2.el7.ngx.x86_64 is already installed
[root@calms src]#

升级前做好备份
测试环境测试好

1.可以先卸载,在安装

查询rpm -qa安装包
[root@calms src]# rpm -qa nginx
nginx-1.18.0-2.el7.ngx.x86_64
在这里插入图片描述

[root@calms src]# rpm -qa |grep nginx
nginx-1.18.0-2.el7.ngx.x86_64

这一种效率低

2.含有nginxwulin会出来

rpm -qi查看指定软件的详细信息

在这里插入图片描述

rpm -ql nginx查看安装软件包所安装的目录

在这里插入图片描述

rpm -qc 查询指定软件包的配置文件

在这里插入图片描述

rpm -qf查询文件或目录属于哪一个RPM软件

在这里插入图片描述
在这里插入图片描述
缺点:要查看的文件或·命令不存在就会查找不到(替代 yum provides 查询内容【ifconfig】)联网查询

在这里插入图片描述
在这里插入图片描述依赖关系强制
rpm -qip 包名(了解)查询未安装的rpm软件包详细信息

rpm -qlp 查询未安装的软件包会产生哪些文件

卸载常用选项

  1. 卸载常用选项
    选项 描述
    –e 卸载软件
    – –force强制
    – –nodeps忽略依赖关系

rpm –qa nginx
rpm -e nginx

yum install samba -y

rpm -qa samba
rpm -e samba
在这里插入图片描述

强制卸载依赖关系rpm –c ––force ––nodeps 包名

rpm缺点,安装a不能成功,得先安装b,安装不了,先去按c,一层层安装。并且要进行手动安装

删除有关,都有谨慎 rm,mv find+xargs rpm –e ––nodeps yum remove
会卸载依赖,永远不用(不启动即可)

练习:

如何查询arp命令是由哪个RPM软件包安装的?

which arp
rpm –qf $(which arp)
在这里插入图片描述

yum provides arp
在这里插入图片描述

查询tree软件包都有哪些文件

rpm –ql tree

在这里插入图片描述

rpm使用痛点

1.依赖关系

挂载光盘
mount -t iso9660 /dev/cdrom /

ls /mnt/Packages/
rpm-ivh /mnt/packages/bind-9.11.4-16.p2.e17.x86 64.rpm
错误:依赖检测失败

2. 需要肉眼去寻找

rpm的常用用途是查询,尽量不用其安装

rpm -ivh bind.

yum软件能够自动帮管理员解决依赖,并安装

yum智能软件包管理器

什么是yum?

yum是Redhat及centos中软件包管理器,能够通过互联网下载rpm包并且进行安装,并可以自动处理依赖性关系,无需一次次安装(yum生产常用安装工具)

什么是yum源?

使用yum工具安装,更新软件需要一个包含有各种rpm软件包的仓库软件,这样的软件仓库就被称为yum源

yum源分为:

  • 互联网yum源(阿里云,网易,清华源)
  • 局域网源(自己制作一个yum源,http/ftp)
    1.速度快 2.编译rpm放到yum源
  • 服务器本地yum源(上不了网,把ISO作为yum源)

常见互联网yum源

  1. yum官方源:很多软件集合在线仓库,也称为base基础源
  2. epel源,也称为扩展源,拥有很多base源没有软件

(一般我们要配置两个源,在前面软件安装我们已经安装过了)

  1. 第三方源:nginx,zabbix,docker等软件开源软件的官方仓库

yum源默认都是放在/etc/yum.repos.d/目录下,以*repo结尾
在这里插入图片描述

(在这里要学会配置局域网yum源 ,后期去做搭建集群如果去官方下载yum源非常缓慢)

Linux系统本地yum源配置

1.互联网阿里云yum源配置
默认系统是国外源,需要替换国内的源

方法一

wget –0 /etc/yum repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-7.repo

方法二

curl -s-o /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-7.repo

2.互联网epel源配置
扩展源,很多软件在基本中没有

wget -o /etc/yum.repos.d/epel.repo
http://mirrors.aliyun.com/repo/epel-7.repo

方法3

yum install epel–release

3.互联网特定软件官方源配置
Nginx web软件官方源,最新的nginx版本,查找方法:

1.进入nginx.org 进入download页面
2.结尾显示 Linux packages for stable and mainline versios即可
3.配置
vim /etc/yum.repos.d/nginx.repo
[nginx]
name =nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gdgchek=0
enabled=1
PS. http://nginx.org/en/linux_packages.html

yum源实践

使用yum查询软件包的方式

yum list(查看包)
在这里插入图片描述

yum list tree (不需要yum list)
在这里插入图片描述

yum info ftp #看软件包详细信息。
在这里插入图片描述

使用yum安装软件包的方式
[root@calms ~]# yum install tree #需要确认
[root@calms ~]# yum install tree -y #非交互

#安装本地的rpm包, 如果有依赖关系, 会自动从互联网软件仓库中下载所需依赖
[root@wulin ~]# yum localinstall /mnt/Packages/bind-9.11.4-16.P2.el7.x86_64.rpm

you could try using --skip-breken to work arouund the problem

yum install 安装报错:
you could try using --skip-broken to work around the problem
解决方式:

  1. /etc/yum.repos.d清除此目录下所有无关repo结尾文件,只保留默认的
  2. yum clean all
  3. yum install openssl–devel 验证成功

#直接安装网络上的rpm包
[root@calms ~]# yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release
-3.4-2.el7.noarch.rpm

3.使用yum重新安装软件包的方式(了解,工作中不用)

[root@wulin ~]# yum install vsftpd

#1.如果不小心删除vsftpd配置文件
[root@wulin ~]# rm -f /etc/vsftpd/vsftpd.conf

#2.可以对软件进行重新安装
[root@wulin ~]# yum reinstall vsftpd

#3.检查软件的配置文件
[root@wulin ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf

3.使用yum更新软件包(慎用)

#对比Linux已安装的软件和yum仓库中的软件, 有哪些需要升级
[root@wulin ~]# yum check-update

#更新acl软件
[root@wulin ~]# yum update acl -y

#如下的执行很危险,这代表更新整个系统所有的软件,包括内核
[root@wulin ~]# yum update -y

#注意事项:
1)生产线慎用,最好不用。
2)安装系统之后,上线前。
3)测试环境,模拟正式环境。然后上正式。

4.使用yum删除软件包
[root@wulin ~]# yum install vsftpd -y
[root@wulin ~]# yum remove samba -y

#注意:慎用,尽量不用。

5.与yum仓库相关指令(扩展了解)

#列出yum源可用的软件仓库
[root@oldboy ~]# yum repolist
#列出全部yum源可用和禁用的仓库
[root@oldboy ~]# yum repolist all

#查找某个命令或文件属于那个软件包(生产常用)
[root@wulin ~]# yum provides /etc/my.cnf
[root@wulin ~# yum provides cd

cat /etc/yum.conf
看两项
Keepcache=0不缓存
cachedir(地址)
在这里插入图片描述

打包压缩命令: tar ***** gzip *** 用数据库备份 -d解包 gzip /etc/yum.repos.d/* #打包
gzip -d * #解包,删除源文件。 zip unzip *** 用于解包(zip包) zcat

配置缓存rpm包

修改yum.conf配置

sed -i.bak ‘s#keepcache=0#keepcache=1#g’ /etc/yum.conf grep keepcache
grep keepcazhe /etc/yum.conf

会显示:
Keepcache=1

测试:
rpm –e nmap–ncat

find /var/cache/yum/x86_64/7/ -name “*.rpm”

为什么要缓存?

1.配置yum仓库,rpm来源
2.rpm更新了,旧的找不到了

缓存rpm包方式二,只下载不安装

root@wulin ~]# yum install -y yum-plugin-downloadonly #插件
[root@wulin ~]# yum install httpd -y --downloadonly --downloaddir=/tmp

#3.清除所有yum缓存的软件包以及元数据
[root@wulin ~]# yum clean all
[root@oldboy ~]# find /var/cache/yum/x86_64/7/ -name “*.rpm”
#4.只清除缓存的软件包
[root@wulin ~]# yum clean packages
软件包,真正的软件。
元数据,数据的数据。
7.组包相关指令
[root@wulin ~]# yum groups list
#安装一整个组的软件
[root@wulin ~]# yum groups install Development tools
Compatibility libraries
Base Debugging Tools
#yum删除包组
[root@wulin ~]# yum groups remove -y Base

安装系统reboot后。
1)在CentOS安装完毕,首先应该修改更新源,并升级到最新的系统。修改更新yum源的命令如下:
curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2)把软件更新到最新(生产上线之前)
yum update -y
3)常用软件包。
CentOS6和CentOS7都要安装的企业运维常用基础工具包
yum install tree nmap dos2unix lrzsz nclsof wget tcpdump htop iftop iotop sysstat nethogs -y

CentOS7要安装的企业运维常用基础工具包
yum install psmisc net-tools bash-completion vim-enhanced -y
查看有哪些组包:
yum groups list
[root@wulin ~]# yum groups mark convert #转换到原始的格式
[root@wulin ~]# yum groups list #查看
Available Environment Groups: #可用的环境组包
Minimal Install
Compute Node
Infrastructure Server
File and Print Server
Cinnamon Desktop
MATE Desktop
Basic Web Server
Virtualization Host
Server with GUI
GNOME Desktop #安装桌面环境

软件包:真正的软件 元数据:数据的数据

CentOS7要安装的企业运维常用基础工具包
yum install psmisc net-tools bash-completion vim-enhanced -y

查看有哪些组包:
yum groups list
[root@wulin ~]# yum groups mark convert #转换到原始的格式
[root@wulin ~]# yum groups list #查看
Available Environment Groups: #可用的环境组包
Minimal Install
Compute Node
Infrastructure Server
File and Print Server
Cinnamon Desktop
MATE Desktop
Basic Web Server
Virtualization Host
Server with GUI
GNOME Desktop #安装桌面环境

SoulfulBondWxinZ:
KDE Plasma Workspaces
Development and Creative Workstation
Installed Groups: #已经安装的组包。
Compatibility Libraries
Development Tools
Milkymist
Security Tools
System Administration Tools
Available Groups: #可用的组包。
Cinnamon
Console Internet Tools
Educational Software
Electronic Lab
Fedora Packager
General Purpose Desktop
Graphical Administration Tools
Haskell
LXQt Desktop
Legacy UNIX Compatibility

SoulfulBondWxinZ:
MATE
Scientific Support
Smart Card Support
System Management
TurboGears application framework
Xfce
Done
#安装环境组包,桌面环境包。
yum groupinstall “GNOME Desktop”
yum groupinstall “Smart Card Support”
#写一起
yum groupinstall “GNOME Desktop” “Smart Card Support”
#yum删除包组(不用)
[root@wulin ~]# yum groups remove -y Base
[root@wulin ~]# yum search --help
yum [options] COMMAND
check 检查 RPM 数据库问题
check-update 检查是否有可用的软件

SoulfulBondWxinZ:
包更新
clean 删除缓存数据 ***
deplist 列出软件包的依赖关系
downgrade 降级软件包
erase 从系统中移除一个或多个软件包
groups 显示或使用、组信息***
help 显示用法提示
history 显示或使用事务历史
info 显示关于软件包或组的详细信息
install 向系统中安装一个或多个软件包*****
list 列出一个或一组软件包*****
load-transaction 从文件名中加载一个已存事务
makecache 创建元数据缓存***
provides 查找提供指定内容的软件包*****
reinstall 覆盖安装软件包
repo-pkgs 将一个源当作一个软件包组,这样我们就可以一次性安装/移除

SoulfulBondWxinZ:
全部软件包。
repolist 显示已配置的源
search 在软件包详细信息中搜索指定字符串***
shell 运行交互式的 yum shell
update 更新系统中的一个或多个软件包***
upgrade 更新软件包同时考虑软件包取代关系***
version 显示机器和/或可用的源版本。
G点:yum命令常用
install 向系统中安装一个或多个软件包*****
provides 查找提供指定内容的软件包*****
list 列出一个或一组软件包*****
clean 删除缓存数据 ***
groups 显示或使用、组信息***
makecache 创建元数据缓存***

这一篇小编先写到这里了,希望对大家有所帮助,可以关注小编的专栏!!!

  • 50
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值