1 Linux文件系统
1.1 基本的Linux文件系统
ext
扩展文件系统(extended filesystem),采用索引节点系统来存放虚拟目录中所存储文件的信息ext2
第二代扩展文件系统,文件大小2G变为2TB(ext2
后期版本增加到了32TB),通过按组分配磁盘块来减轻碎片化
1.2 日志文件系统
方法 | 描述 |
---|---|
数据模式 | 索引节点和文件都会被写入日志;丢失数据风险低,但性能差 |
有序模式 | 只有索引节点数据会被写入日志,但只有数据成功写入后才删除;在性能和安全性之间取得了良好的折中 |
回写模式 | 只有索引节点数据会被写入日志,但不控制文件数据何时写入;丢失数据风险高,但仍比不用日志好 |
ext3
,默认用有序模式的日志功能ext4
,支持数据压缩和加密,支持区段(extent)的特性,引入块预分配技术(block preallocation)ReiserFS
,只支持回写日志模式,可以在线调整已有文件系统的大小,支持尾部压缩(tailpacking)技术Journaled File System(JFS)
,默认用有序日志模式,采用基于区段的文件分配,减少存储设备上的碎片XFS
,采用回写日志模式,可以在线调整已有文件系统的大小(只能扩大)
1.3 写时复制文件系统
写时复制(copy-on-write,COW)的技术:COW利用快照兼顾了安全性和性能。如果要修改数据,会使用克隆或可写快照。修改过的数据并不会直接覆盖当前数据,而是被放入文件系统中的另一个位置上。即便是数据修改已经完成,之前的旧数据也不会被重写。
ZFS
Btrf
,B树文件系统
2 操作文件系统
2.1 创建分区
分区可以按主分区(primary partition)或扩展分区(extended partition)创建。主分区可以被文件系统直接格式化,而扩展分区则只能容纳其他逻辑分区(logical partition)。扩展分区出现的原因是每个存储设备上只能有4个分区。可以通过创建一个扩展分区,然后在扩展分区内创建逻辑分区进行扩展。
fdisk
交互式分区命令(拥有root权限,且指定正确的设备,-l
列出系统中磁盘设备以及分区表,不加-l
则进入另一个模式)m
显示命令选项p
显示当前分区表n
添加一个新分区w
将分区表写入磁盘
2.2 创建文件系统
工具 | 用途 |
---|---|
mkefs | 创建一个ext文件系统 |
mke2fs | 创建一个ext2文件系统 |
mkfs.ext3 | 创建一个ext3文件系统 |
mkfs.ext4 | 创建一个ext4文件系统 |
mkreiserfs | 创建一个ReiserFS文件系统 |
jfs_mkfs | 创建一个JFS文件系统 |
mkfs.xfs | 创建一个XFS文件系统 |
mkfs.zfs | 创建一个ZFS文件系统 |
mkfs.btrfs | 创建一个Btrfs文件系统 |
2.3 文件系统的检查与修复
fsck
检查和修复Linux文件系统
3 逻辑卷管理
Linux逻辑卷管理器(logical volume manager,LVM)软件包正好可以让你在无需重建整个文件系统的情况下,轻松地管理磁盘空间
3.1 逻辑卷管理布局
- 物理卷(physical volume,PV):每个物理卷都会映射到硬盘上特定的物理分区
- 卷组(volume group,VG):多个物理卷集中在一起可以形成一个卷组,视为一个物理硬盘,卷组提供了一个创建逻辑分区的平台
- 逻辑卷(logical volume,LV):逻辑卷为Linux提供了创建文件系统的分区环境,作用类似于Linux中的物理硬盘分区,Linux系统将逻辑卷视为物理分区
3.2 使用Linux LVM
- 创建物理卷
fdisk
t
改变分区类型(改成8e
,表示这个分区将会被用作Linux LVM系统的一部分)pvcreate
创建物理卷(命令软件包名lvm2
)pvdisplay
显示已创建的物理卷列表
- 创建卷组
vgcreate
创建卷组(指定卷组名、物理卷名)vgdisplay
显示创建的卷组的细节
- 创建逻辑卷
lvcreate
创建逻辑卷-l
指定空间大小(例:100%FREE
)-n
指定逻辑卷的名称
lvdisplay
查看创建的逻辑卷的详细情况
- 修改LVM
命令 | 功能 |
---|---|
vgchange | 激活和禁用卷组 |
vgremove | 删除卷组 |
vgextend | 将物理卷加到卷组中 |
vgreduce | 从卷组中删除物理卷 |
lvextend | 增加逻辑卷的大小 |
lvreduce | 减小逻辑卷的大小 |