linux磁盘管理学习笔记(上)
要玩儿转linux,磁盘管理是必须的,为期三篇的文章,就详细将一下Linux磁盘管理吧。
本篇主要讲一下磁盘的相关基础知识。
首先说说硬盘基础知识
硬盘最小的物理组成单位为扇区(sector),数个扇区组成同心圆时,就成为柱面(cylinder)。
1个硬盘分为两个区域,一个是MBR(主引导分区),一个是数据区域。
MBR里记录了两个重要信息,分别是引导程序与磁盘分区表。
分区表定义了“第n个磁盘块是从第x个柱面到第y个柱面”,所以,系统每次都取n磁盘块时,就只会读取第x到第y个扇区之间数据。
由于MBR容量有限,设计的时候,就只有设计成4个分区记录,4个主分区或者3个主分区和一个扩展分区。
如果超过四个分区,系统允许在额外的硬盘空间放另一份磁盘分区信息,那就是扩展分区,当硬盘被出一个扩展分区的时候,实际上扩展分区在MBR磁盘分区表中的信息为另外那份分区表的位置。所以,在扩展分区里面还要划分逻辑分区才能使用。
主分区每个硬盘最多只允许4个,其他的分区只能放在扩展分区中。
一个磁盘扇区512个字节,操作系统引进逻辑块概念,加快磁头读取扇区速度,一个逻辑块只能保存1个文件,如果分配磁盘空间的时候,划分大块,而存储的都是小文件,就会造成磁盘空间浪费。
磁盘分区时,每个分区就是一个文件系统,每个文件系统的第一个块,为超级块,保存了当前文件系统的相关信息。
磁盘的基本知识就是这样啦,windows和Linux是通用的,在windows下也是只能建立4个分区的。
下面再讲讲linux下的文件系统ext2
ext2文件系统把linux文件分为属性和内容两部分,在ext2中,分为inode和块分别存储文件的属性(包括属性信息,文件内容块指针)和文件内容。所以,分区格式化为ext2时,就必须要指定inode与块大小。
接下来说说linux如何读取一个文件内容
目录:
建立一个目录时,ext2给该目录分配一个inode和至少一个块。inode记录该目录的相关属性,和目录的块指针。块记录在这个目录下的相关文件(或目录)的关联性。
文件:
建立文件时,ext2会给该文件分配至少一个inode与对于该文件大小的块数量。inode本身不记录文件名,而是记录文件的相关属性,文件名记录在目录所属块块中。文件相关连接都会记录在目录块数据区。所以读取一个文件内容时,linux会先由根(/)递归获取该文件的上级目录所在inode,再由该目录所记录的文件关联性获取该文件的inode,最后通过inode内提供的块指针来获取最终文件内容。
一个分区所能容纳的最大文件数和inode的数量有关,因为一个文件至少占一个inode。
一个目录下面的文件数太多,无法容纳所有相关信息,linux就会给予该目录多个块继续记录关联数据。
通常inode数量设置为“分区容量”除以“一个inode预计要控制的容量”。
比如:
若块规划为4K,假设一个inode控制两个块,即一个文件大小在8k左右,分区容量为1G,则inode数量inode数量有:(1G*1024M/G*1024K/M)/(8K)=131072个。而一个inode占128个字节,则inode表为16M,也就是说1G分区,没有使用前,已经少了16M容量。
因此inode数量比块多是没有意义的。
块越小,inode数量越多,可利用的空间就越多,但大文件写入的效率就差,适用于小文件系统。
块越大,inode数量越少,大文件写入效率较好,但可能浪费更多时间,使用大文件系统。
基础知识就是这么多啦,相信大家对Linux磁盘管理有了大体的了解,接下来几篇就会讲讲linux磁盘管理的具体操作命令了。
-CONTINUE-
建议继续学习:
- 提升磁盘IO性能的几个技巧 (阅读:7606)
- 如何查看Linux 硬件配置信息 (阅读:5866)
- 确保数据存入磁盘 (阅读:4853)
- linux磁盘管理学习笔记(下):linux分区、挂载 (阅读:3091)
- linux磁盘管理学习笔记(中):df命令、du命令 (阅读:2872)
- 关于磁盘的一些知识点 (阅读:2855)
- 使用Pure-ftpd和Pure-ftpd-mysql进行FTP权限和磁盘配额管理 (阅读:2921)
- LVM介绍 (阅读:2806)
- 使用smartmontools监控磁盘状况 (阅读:2745)
- 数据的存储介质-磁盘的RAID (阅读:2681)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:西西鱼 来源: SourceJoy
- 标签: 磁盘
- 发布时间:2010-08-26 09:32:08
- [46] IOS安全–浅谈关于IOS加固的几种方法
- [45] Oracle MTS模式下 进程地址与会话信
- [45] 图书馆的世界纪录
- [45] 如何拿下简短的域名
- [43] android 开发入门
- [42] 【社会化设计】自我(self)部分――欢迎区
- [41] 界面设计速成
- [41] 读书笔记-壹百度:百度十年千倍的29条法则
- [39] 视觉调整-设计师 vs. 逻辑
- [35] Go Reflect 性能