|
2#
楼主 |
发表于 2018-6-14 14:30:24
|
只看该作者
系统目录
|—— bin # 二进制目录,存放用户级的GNU工具(bash命令)
|—— boot # 启动目录,存放用于系统引导时使用的各种文件
|—— dev # 设备目录,存放硬件设备,创建设备节点
|—— etc # 系统配置文件目录,存放系统管理和配置文件
|—— home # 普通用户的主目录
|—— lib # 库目录,存放系统和应用程序的动态链接库
|—— lost+found # 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件
|—— media # 媒体目录,可移动媒体设备的常用挂载点
|—— mnt # 挂载目录,另一个可移动媒体设备的常用挂载点
|—— opt # 可选目录,常用于存放第三方软件包和数据文件
|—— proc # 进程目录,存放现有硬件及当前进程的相关信息,是系统内存的映射。可直接访问
这个目录来获取系统信息
|—— root # 超级用户的主目录
|—— run # 运行目录,存放系统运作时的运行时数据
|—— sbin # 系统二进制目录,存放许多GNU管理员级工具
|—— srv # 服务目录,存放本地服务的相关文件
|—— sys # 系统目录,存放系统硬件信息的相关文件
|—— tmp # 临时目录,可以在该目录中创建和删除临时工作文件,重启后清空
|—— usr # 用户二进制目录,大量用户级的GNU工具和数据文件都存储在这里
| |—— bin # 包含系统安装的可执行程序。通常,这个目录会包含许多程序
| |—— games #
| |—— include # 写程序需要使用到的一些头文件
| |—— lib # 包含由/usr/bin 目录中的程序所用的共享库
| |—— local # 是非系统发行版自带,却打算让系统使用的程序的安装目录。 通常,由源码编译
的程序会安装在/usr/local/bin 目录下
| |—— sbin # 包含许多系统管理程序
| |—— share # 存放帮助文档和共享文件
| |—— src #
|—— var # 可变目录,用以存放经常变化的文件,比如日志文件
文件权限-权限符
命令行执行: ls -l
drwxr-xr-x
# 文件类型 属主权限 成员权限 其他用户权限
d rwx r-x r-x
|—— 文件类型
| |—— - # 文件
| |—— d # 文件夹
| |—— l # 链接
| |—— c # 字符型设备
| |—— b # 块设备
| |—— n # 网络设备
|
|—— r # 可读权限
|—— w # 可写权限
|—— x # 可执行权限
文件系统
ext
Linux操作系统中引入的最早的文件系统叫作扩展文件系统 (extended filesystem,简记为ext)。它为Lin
ux提供了一个基本的类Unix文件系统:使用虚拟目录来操作硬件设备,在物理设备上按定长的块来存储
数据。
ext文件系统采用名为索引节点的系统来存放虚拟目录中所存储文件的信息。索引节点系统在每个物理
设备中创建一个单独的表(称为索引节点表)来存储这些文件的信息。存储在虚拟目录中的每一个文件
在索引节点表中都有一个条目。ext文件系统名称中的extended部分来自其跟踪的每个文件的额外数据
- 文件名
- 文件大小
- 文件的属主
- 文件的属组
- 文件的访问权限
- 指向存有文件数据的每个硬盘块的指针
Linux通过唯一的数值(称作索引节点号)来引用索引节点表中的每个索引节点,这个值是创建文件时由
文件系统分配的。文件系统通过索引节点号而不是文件全名及路径来标识文件。
ext2
最早的ext文件系统有不少限制,比如文件大小不得超过2 GB。在Linux出现后不久,ext文件系统就升级
到了第二代扩展文件系统,叫作ext2
日志文件系统
日志文件系统为Linux系统增加了一层安全性。它不再使用之前先将数据直接写入存储设备再更新索
引节点表的做法,而是先将文件的更改写入到临时文件(称作日志,journal)中
在数据成功写到存储设备和索引节点表之后,再删除对应的日志条目。如果系统在数据被写入存储设
备之前崩溃或断电了,日志文件系统下次会读取日志文件并处理上次留下的未写入的数据
ext3
2001年,ext3文件系统被引入Linux内核中,直到最近都是几乎所有Linux发行版默认的文件系统。它
采用和ext2文件系统相同的索引节点表结构,但给每个存储设备增加了一个日志文件,以将准备写入
存储设备的数据先记入日志。
ext4
ext4文件系统在 2008 年受到Linux内核官方支持,现在已是大多数流行的Linux发行版采用的默认文
件系统
除了支持数据压缩和加密,ext4文件系统还支持一个称作区段(extent)的特性。区段在存储设备上按
块分配空间,但在索引节点表中只保存起始块的位置。由于无需列出所有用来存储文件中数据的数据
块,它可以在索引节点表中节省一些空间。
ext4还引入了块预分配技术(block preallocation)。如果你想在存储设备上给一个你知道要变大的文
件预留空间,ext4文件系统可以为文件分配所有需要用到的块,而不仅仅是那些现在已经用到的块。
ext4文件系统用 0 填满预留的数据块,不会将它们分配给其他文件
Linux 中的 LVM
Linux LVM是由Heinz Mauelshagen开发的,于1998年发布到了Linux社区。它允许你在Linux上用简单
的命令行命令管理一个完整的逻辑卷管理环境
LVM1
最初的LVM包于1998年发布,只能用于Linux内核2.4版本。它仅提供了基本的逻
LVM2
LVM的更新版本,可用于Linux内核2.6版本。它在标准的LVM1功能外提供了额外的功能。
快照
最初的Linux LVM允许你在逻辑卷在线的状态下将其复制到另一个设备。这个功能叫作快照。在备
份由于高可靠性需求而无法锁定的重要数据时,快照功能非常给力。传统的备份方法在将文件复制
到备份媒体上时通常要将文件锁定。快照允许你在复制的同时,保证运行关键任务的Web服务器
或数据库服务器继续工作。遗憾的是,LVM1只允许你创建只读快照。一旦创建了快照,就不能再写
入东西了
LVM2允许你创建在线逻辑卷的可读写快照。有了可读写的快照,就可以删除原先的逻辑卷,然后将
快照作为替代挂载上。这个功能对快速故障转移或涉及修改数据的程序试验(如果失败,需要恢复
修改过的数据)非常有用。
条带化
LVM2提供的另一个引人注目的功能是条带化(striping)。有了条带化,可跨多个物理硬盘创建逻辑卷。
当Linux LVM将文件写入逻辑卷时,文件中的数据块会被分散到多个硬盘上。每个后继数据块会被写
到下一个硬盘上。条带化有助于提高硬盘的性能,因为Linux可以将一个文件的多个数据块同时写入
多个硬盘,而无需等待单个硬盘移动读写磁头到多个不同位置。这个改进同样适用于读取顺序访问
的文件,因为LVM可同时从多个硬盘读取数据。
镜像
通过LVM安装文件系统并不意味着文件系统就不会再出问题。和物理分区一样,LVM逻辑卷也容易受
到断电和磁盘故障的影响。一旦文件系统损坏,就有可能再也无法恢复。
LVM快照功能提供了一些安慰,你可以随时创建逻辑卷的备份副本,但对有些环境来说可能还不够。
对于涉及大量数据变动的系统,比如数据库服务器,自上次快照之后可能要存储成百上千条记录。
这个问题的一个解决办法就是LVM镜像。镜像是一个实时更新的逻辑卷的完整副本。当你创建镜像
逻辑卷时,LVM会将原始逻辑卷同步到镜像副本中。根据原始逻辑卷的大小,这可能需要一些时间才
能完成。
一旦原始同步完成,LVM会为文件系统的每次写操作执行两次写入——一次写入到主逻辑卷,一次写
入到镜像副本。可以想到,这个过程会降低系统的写入性能。就算原始逻辑卷因为某些原因损坏了
,你手头也已经有了一个完整的最新副本!
小结
在Linux上使用存储设备需要懂一点文件系统的知识。当工作在Linux系统下时,懂得如何在命令行
下创建和处理文件系统能帮上你的忙。Linux系统和Windows的不同之处在于前者支持大量不同的
存储文件和目录的方法。每个文件系统方法都有不同的特性,使其适用于不同的场景
fdisk 命令用来对存储设备进行分区,以便安装文件系统。在分区存储设备时,必须定义在上面使用
什么类型的文件系统。划分完存储设备分区后,你可以为该分区选用一种文件系统。流行的Linux
文件系统包括ext3和ext4。两者都提供了日志文件系统功能,降低它们在Linux系统崩溃时遇到错
误或问题的几率
在存储设备分区上直接创建文件系统的一个限制因素是,如果硬盘空间用完了,你无法轻易地改变文
件系统的大小。但Linux支持逻辑卷管理,这是一种跨多个存储设备创建虚拟分区的方法。这种方法
允许你轻松地扩展一个已有文件系统,而不用完全重建。Linux LVM包提供了跨多个存储设备创建逻
辑卷的命令行命令。
|
|