《Linux命令行与shell脚本编程大全》 第八章管理文件系统

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 8.1 探索linux文件系统 8.1.1 基本的Linux文件系统 ext:最早的文件系统,叫扩展文件系统。使用虚拟目录操作硬件设备,在物理设备上按定长的块来存储数据。 用索引节点的系统来存放虚拟目录中所存储的文件信息。

8.1 探索linux文件系统

8.1.1 基本的Linux文件系统

ext:最早的文件系统,叫扩展文件系统。使用虚拟目录操作硬件设备,在物理设备上按定长的块来存储数据。

用索引节点的系统来存放虚拟目录中所存储的文件信息。

有一张索引节点表:对应每个文件都有一个条目,存储了(文件名,文件大小,文件属主,文件属组,访问权限,还有一个指针)

通过索引节点号来标识文件

文件大小不得超过2GB。

在文件写入到物理设备时,存储数据很容易分散在整个设备中(碎片化),降低文件系统的性能。查找起来费时。

 

ext2:第二代扩展文件系统:

增加了创建时间值,修改时间值,最后访问时间值。最大文件大小增加到2TB。(ext2后期增加到32TB)

按组分配磁盘块来减轻碎片化,将数据块分组,读取文件时就不需要为了数据块查找整个物理设备了。

 

致命问题:每次存储或更新文件,都要同新信息来更新索引节点表,这个操作并非总是一气呵成的。容易在系统崩溃或断电时损坏。

 

8.1.2 日志文件系统

增加了安全性。不再将数据直接写入存储设备再更新索引节点的做法,而是先将文件的更改写到临时文件(称为日志,journal)。成功写入存储设备和索引节点之后,再删除对应日志条目。

这样即使断电了,日志文件系统会读取日志文件并处理之前留下的未写入的数据。

有三种广泛使用的日志方法,每种的保护等级都不相同:

数据模式(最安全,性能最差),有序模式,回写模式(性能最好,安全性差点)。

这样很安全,但是比较慢,因为都要写两次。第一次写入日志,第二次写入存储设备。

下面介绍常见的linux日志文件系统。

1 ext3:

用的是有序模式的日志功能。

不足:无法恢复误删的文件,没有任何内建的数据压缩功能,不支持加密文件

2 ext4:  2008年受到linux内核官方支持。大部分linux发行版的默认文件系统

支持数据压缩和加密。还支持一个特性(区段)

还有一项技术块预分配技术:

3 Reiser 文件系统:

只支持回写日志模式

4 JFS文件系统:

目前在用的最古老的日志文件系统之一。采用的是有序日志的方法。

这个文件系统没有流行起来。

5.XFS文件系统:

回写模式。

 

8.1.3 写时复制文件系统(COW技术, copy-on-write)

如果要修改数据,会使用克隆或可写快照。修改过的数据不会直接覆盖当前数据,而是放在另一个位置。即使数据修改已经完成,之前的旧数据也不会被重写。

COW技术已经日渐流行,下面是两种比较流行的。

1.ZFS文件系统

Sun公司2005年搞的,是一个稳定的文件系统。

弱点:没有使用GPL许可

2.Btrf文件系统

B树文件系统。Oracle2007年搞的。稳定性较好。

 

8.2操作文件系统

8.2.1 创建分区

一开始必须在存储设备上创建分区来容纳文件系统。分区可以是整个硬盘,也可以是部分硬盘。

Fdisk工具用来帮助管理安装在系统上的任何存储设备上的分区。

要启动fdisk命令需要指定到分区的存储设备的设备名,还要有超级用户权限

 

$sudo fdisk /dev/sdb    // 插入一个U盘就有了/dev/sdb

其余的步骤可以根据提示去做

 

8.2.2创建文件系统

将数据存储到分区以前,必须用某种文件系统对其进行格式化,这样linux才能使用它。

每种文件系统类型都用自己的命令行程序来格式化分区。

$type mkfs.ext4  // 查看这个工具是否可用。

$ sudo mkfs.ext4 /dev/sdb1  // 这样就是创建一个默认的稳健性系统,还可以加参数

为分区创建文件系统之后,下一步是将它挂载到虚拟目录下的某个挂载点,这样就可以将数据存储在新文件系统中了。

 

$mkdir my_partition

$sudo mount –t ext4 /dev/sdb1  curr_dir/my_partition

这种挂载是临时的,重启就没有了。在linux启动时就自动挂载可以将其添加到/etc/fstab文件中去。

 

总结:要操作文件系统需要三个步骤:

(1)先创建分区, sudo fdisk /dev/sdb

(2)对分区格式化,并创建文件系统:$ sudo mkfs.ext4 /dev/sdb1

(3)将文件系统挂载到虚拟目录下的某个挂载点:

$sudo mount –t ext4 /dev/sdb1  curr_dir/my_partition

 

8.2.3 文件系统的检查与修复。

fsck 命令能够检查和修复大部分类型的linux文件系统。

命令格式:  fsck options filesystem

只能在未挂载的文件系统上运行fsck命令,对于已挂载的,可以先卸载,检查完成再挂载。

 

8.3 逻辑卷管理

(这一节不是很明白,尴尬)

用标准分区在硬盘上创建了文件系统,为已有文件系统添加额外的空间是一件麻烦的事情。

只能在同一个物理硬盘的可用空间范围内调整分区大小,如果硬盘上没有地方了,只能搞个更大的硬盘,再手动将已有的文件系统移动到新的硬盘上。

 

逻辑卷管理器(LVM):可以通过将另一个硬盘上的分区加入已有的文件系统,动态的添加存储空间。

优点是:不需要重建整个文件系统的情况下,轻松的管理磁盘空间。

 

8.3.1逻辑卷管理布局

核心在于如何处理安装在系统上的硬盘分区。

硬盘称为物理卷(PV),每个物理卷都会映射到硬盘上特定的物理分区。

多个物理卷集中在一起可以形成一个卷组(VG)。

逻辑卷管理系统将卷组视为一个物理硬盘。

整个结构的最后一层的逻辑卷(LV),逻辑卷为linux提供了创建文件系统的分区环境,类似于目前为止我们探讨的linux的物理硬盘分区。

Linux系统将逻辑卷视为物理分区。

 

8.3.2 linux中的LVM

Heina Mauelshagen开发的,1998年发布到Linux社区。允许你在linux上用简单的命令行管理一个完整的逻辑卷管理环境。

Linux LVM有两个可用的版本:

(1)LVM1:只能用于Linux内核2.4版本,仅提供基本的逻辑卷管理功能

(2)LVM2:可用于Linux内核2.6版本,提供了额外的功能

 

8.3.3使用Linux LVM

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4月前
|
监控 数据可视化 Ubuntu
|
5月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
7天前
|
Ubuntu Shell Linux
Linux命令行解释器的模拟实现
Linux命令行解释器的模拟实现
|
5月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
1月前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
111 15
|
2月前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
274 7
|
2月前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
67 7
|
2月前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
3月前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
117 3
|
3月前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
115 8