文件系统与硬盘
硬盘
磁盘术语
-
磁道
一个磁道63个扇区track
-
扇区
一个扇区512个字节sector
-
柱面
-
CHS
分区表类型
dos:最多4个主分区
gpt:可以存在多个主分区
分区分类
-
主分区
dos分区只可有四个主分区
-
扩展分区
只是一个概念,一个扩展分区占一个主分区位置, 不能存放数据,用于突破4个分区的限制, 最多只能有一个扩展分区,在扩展分区里划分逻辑分区
-
逻辑分区
逻辑分区存在扩展分区中
固态硬盘ssd,与磁盘disk
每个磁盘都可以进行分区,分区表有两种,dos和gpt,系统一般默认使用dos,dos分区只可有四个主分区,可以通过扩展分区添加逻辑分区,fdisk命令用于对磁盘进行分区,参数是将要分区的磁盘文件,分区成功后,如果需要将分区挂载到对应文件首先要对分区进行格式化,每一个分区都需要一个文件系统对该分区进行管理,所以格式化时需要指定分区的文件系统,例如使用mkfs.xfs /dev/sda1 命令则是格式化a磁盘的1分区,且该分区的文件系统是xfs,格式化即可通过mount指令挂载分区到自定义文件,如果需要开机自动对分区进行挂载可修改/etc/rc.local文件,在文件尾添加mount命令,也可修改/etc/fstab实现开机自动挂载(mount -a可挂载fstab中未挂载的磁盘分区)。
相关指令
-
fdisk -l查看磁盘的个数
-
fdist /dev/sda编辑磁盘分区
m 获取帮助信息 n 新建分区 p 打印分区信息 d 删除分区 w 保存分区设置
-
df -Th
查看正在使用的分区信息
-
mkfs.xfs /dev/sda
格式化磁盘
文件系统
文件=目录项+inode+block
其中目录项保存文件名和inode编号(可查找对应inode),inode保存文件的属性信息,并保存一个指向block的指针,block保存文件的数据。
文件数据读取过程
通过目录项中的文件名查询inode结点号,通过节点号查询到inode并获取文件属性信息,判断权限,然后通过inode的block指针获取文件保存在磁盘中的信息。
主引导记录(MBR)
每一个磁盘都有一个主引导记录(MBR),其中保存了磁盘的分区信息,inode数量信息,block块信息等,共512个字节。
超级块(superblock)
每个分区中有一个superblock用于保存inode/block的使用信息,查看ext文件系统超级块信息可使用dumpe2fs /dev/sdd3,由于superblock信息重要所以会备份在不同的block组中(分区被划分为很多block,为了方便管理将一定数量的block分成一个block组);此外为了指导inode与block的空闲情况,每个block组中有inode bitmap和block bitmap记录该空间是否使用。
软连接和硬链接的区别
软连接相当于新建一个block保存链接源文件名的文件,如果源文件被删除则链接失效,硬链接则新建了一个inode号与文件相同的文件,即使文件被删除(文件在磁盘中的信息未被删除,只是文件的目录项被删除,导致无法定位文件内容在磁盘中的位置),该链接还可访问源文件内容。
为了方便多块磁盘的分区以及分区的扩展,可以使用LVM,LVM中有三个重要概念,其中PV表示物理磁盘,VG表示卷组,多个PV可以组成一个VG,相当于多个磁盘合并后被称为卷组,拥有卷组后则可以对卷组进行分区(LV),三个部分则实现了对多个物理磁盘的联合分区,后面的格式化和挂载操作与前面的描述一样
LVM(逻辑卷管理)
基本概念
PV 物理卷,由很多PE组成,可以是整个硬盘或使用fdisk等工具建立的普通分区
VG 卷组,多个PV的组合
LV 逻辑卷,对卷组进行划分形成逻辑卷
PE 物理卷中的最小存储单元(默认大小为4MB)
LE 逻辑卷中的最小存储单元,与对应物理卷中的PE大小相对应
理解
PV创建就是将物理磁盘格式化为由很多PE组成的磁盘,VG将多个PV组合在一起变成一个逻辑大磁盘,LV创建就是在VG大磁盘上划分逻辑卷,通俗的讲LVM就是用来屏蔽底层物理磁盘布局,在逻辑层面对磁盘阵列进行划分,可以方便磁盘分区的动态扩缩
操作
实例步骤
- 创建PV
pvcreate /dev/sdb /dev/sdc
- 创建VG
vgcreate vg_test /dev/sdb /dev/sdc
- 划分LV
lvcreate -L 30G -n lv_test vg_test
- 格式化LV
mkfs.xfs /dev/vg_test/lv_test
- 挂载LV
mount /dev/vg_test/lv_test /data
- 扩展LV
lvextend -L +5G /dev/vg_test/lv_test
- 重新加载已经挂载的LV
使用 resize2fs或xfs_growfs 对挂载目录在线扩容
resize2fs 针对文件系统ext2 ext3 ext4
xfs_growfs 针对文件系统xfs
xfs_growfs /dev/vg_test/lv_test
- 添加PV
pvcreate /dev/sdd
- 扩展VG
vgextend vg_test /dev/sdd
LVM删除分区注意
RAID(廉价冗余磁盘阵列)
RAID0 :读写快,无容错
RAID1 :有容错,速度慢
RAID5 :有容错,速度快