存储技术之卷管理和文件系统
卷管理通过划分 PE ,将物理的磁盘分割,并进行再重组。这样就可以在某个逻辑卷空间不足时将其他逻辑卷的 PE 搬一些
过来使用。所以对于上层操作系统而言,逻辑卷是灵活多了。但是,这些关系是如此的繁杂,卷管理需要维护这些对应关系,
所以需要在磁盘上保存卷配置信息,比如 PE 大小、初始偏移、 PV 的数量和信息、排列顺序等。存储这个配置信息的区域
叫做 VGDA(Volume Group Descriptor Area) 。当卷管理器初始化时需要从 VGDA 上加载信息,并生成映射公式,当上层系
统发起 IO 请求时,卷管理器需要换算成实际磁盘及物理扇区位置 ( 当然这些磁盘和物理扇区本身可能都是虚拟的 ) ,并通过
驱动程序告知下层的控制器如何存取磁盘。
卷管理器甚至还具有软 RAID 功能,可以将逻辑卷看成物理磁盘,组成 RAID 。
分区
分区实际上也可以看成一种简单的卷管理,是操作系统自带的卷管理程序,但是只能管理单个磁盘,不能将多个磁盘组合成
虚拟卷再划分,不具备灵活的功能。我们通常见到的 C:D:E:... 盘就是通过分区得到的逻辑卷。操作系统可以针对分区 ( 逻辑
卷 ) 进行格式化。
BIOS 在进行引导时,总是会执行 LBA1 扇区上的指令,以加载操作系统,这个扇区称为 MBR(Master Boot Recorder) ,其
中还保存着分区表。通常第一条指令都是跳转到活动分区读取操作系统的代码并执行。在修改了分区设置的后,分区表会被
更新。
卷管理程序同样需要遵从 BIOS 和 MBR ,只不过它除了各个磁盘上写入 VGDA 外,也要更新 MBR 中的分区表,划分出一
个小分区,将启动操作系统的代码放在这个分区中,并表明 bootable 类型。在 Linux 中,这个分区就是 /boot 分区,其中包
含有操作系统的启动代码,大约只需要 100MB 。
BIOS 执行的第一条指令位置总是 LBA1 ,这是固定的。现在提出的新的 EFI 规范,可以配置第一条指令的所在扇区
在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等 IDE 或 SCSI 设备也不例外。 Linux 把各种
IDE 设备分配了一个由 hd 前缀组成的文件;而对于各种 SCSI 设备,则分配了一个由 sd 前缀组成的文件。例如,第一个
IDE 设备, Linux 就定义为 hda ;第二个 IDE 设备就定义为 hdb ;下面以此类推。而 SCSI 设备就应该是 sda 、 sdb 等。每
一个硬盘设备最多能有 4 个主分区(其中包含扩展分区)构成,任何一个扩展分区都要占用一个主分区号码,也就是在一个
硬盘中,主分区和扩展分区一共最多是 4 个。主分区的作用就是计算机用来进行启动操作系统的,因此每一个操作系统的引
导程序,都应该存放在主分区上。扩展分区可以进一步划分为逻辑分区。