linux磁盘块,linux查看磁盘使用率
大家好,今天小编来为大家解答linux磁盘块这个问题,linux查看磁盘使用率很多人还不知道,现在让我们一起来看看吧!
UNIX磁盘共分为几个块,每个块的功能都是什么
在UNIX系统中,目录、字符设备、块设备、套接字、打印机等都被抽象成了文件,即刘遄老师所一直强调的“UNIX系统中一切都是文件”。既然平时我们打交道的都是文件,那么又应该如何找到它们呢?在Windows操作系统中,想要找到一个文件,我们要依次进入该文件所在的磁盘分区(假设这里是D盘),然后在进入该分区下的具体目录,最终找到这个文件。但是在UNIX系统中并不存在C/D/E/F等盘符,Linux系统中的一切文件都是从“根(/)”目录开始的,并按照文件系统层次化标准(FHS)采用树形结构来存放文件,以及定义了常见目录的用途。另外,Linux系统中的文件和目录名称是严格区分大小写的。例如,root、rOOt、Root、rooT均代表不同的目录,并且文件名称中不得包含斜杠(/)。Linux系统中的文件存储结构如图6-1所示。
图6-1 Linux系统中的文件存储结构
前文提到的FHS是根据以往无数Linux系统用户和开发者的经验而总结出来的,是用户在Linux系统中存储文件时需要遵守的规则,用于指导我们应该把文件保存到什么位置,以及告诉用户应该在何处找到所需的文件。但是,FHS对于用户来讲只能算是一种道德上的约束,有些用户就是懒得遵守,依然会把文件到处乱放,有些甚至从来没有听说过它。这里并不是号召各位读者去谴责他们,而是建议大家要灵活运用所学的知识,千万不要认准这个FHS协定只讲死道理,不然吃亏的可就是自己了。在UNIX系统中,最常见的目录以及所对应的存放内容如表6-1所示。
表6-1《Linux就该这么学》系统中常见的目录名称以及相应内容
目录名称应放置文件的内容
/boot开机所需文件—内核、开机菜单以及所需配置文件等
/dev以文件形式存放任何设备与接口
/etc配置文件
/home用户主目录
/bin存放单用户模式下还可以操作的命令
/lib开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数
/sbin开机过程中需要的命令
/media用于挂载设备文件的目录
/opt放置第三方的软件
/root系统管理员的家目录
/srv一些网络服务的数据文件目录
/tmp任何人均可使用的“共享”临时目录
/proc虚拟文件系统,例如系统内核、进程、外部设备及网络状态等
/usr/local用户自行安装的软件
/usr/sbin Linux系统开机时不会使用到的软件/命令/脚本
/usr/share帮助与说明文件,也可放置共享文件
/var主要存放经常变化的文件,如日志
/lost+found当文件系统发生错误时,将一些丢失的文件片段存放在这里
扇区、磁盘块、页。磁盘是如何存储数据的:磁盘的物理结构
扇区,sector
硬盘的读写以扇区为基本单位。磁盘上的每个磁道被等分为若干个弧段,这些弧段称之为扇区。硬盘的物理读写以扇区为基本单位。通常情况下每个扇区的大小是 512字节。linux下可以使用 fdisk-l了解扇区大小:
$ sudo/sbin/fdisk-l
Disk/dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1* 512= 512 bytes
Sector size(logical/physical): 512 bytes/ 512 bytes
I/O size(minimum/optimal): 512 bytes/ 512 bytes
Disklabel type: dos
Disk identifier: 0x7d9f5643
其中 Sector size,就是扇区大小,本例中为 512 bytes。
注意,扇区是磁盘物理层面的概念,操作系统是不直接与扇区交互的,而是与多个连续扇区组成的磁盘块交互。由于扇区是物理层面的概念,所以无法在系统中进行大小的更改。
磁盘块,IO Block
文件系统读写数据的最小单位,也叫磁盘簇。扇区是磁盘最小的物理存储单元,操作系统将相邻的扇区组合在一起,形成一个块,对块进行管理。每个磁盘块可以包括 2、4、8、16、32或 64个扇区。磁盘块是操作系统所使用的逻辑概念,而非磁盘的物理概念。磁盘块的大小可以通过命令 stat/boot来查看:
$ sudo stat/boot
File:/boot
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 801h/2049d Inode: 655361 Links: 3
Access:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
Access: 2019-07-06 20:19:45.487160301+0800
Modify: 2019-07-06 20:19:44.835160301+0800
Change: 2019-07-06 20:19:44.835160301+0800
Birth:-
其中 IO Block就是磁盘块大小,本例中是 4096 Bytes,一般也是 4K。
为了更好地管理磁盘空间和更高效地从硬盘读取数据,操作系统规定一个磁盘块中只能放置一个文件,因此文件所占用的空间,只能是磁盘块的整数倍,那就意味着会出现文件的实际大小,会小于其所占用的磁盘空间的情况。
test2.txt是一个只包含一个字母的文本文档。它的理论大小是一个字节,但是由于系统的磁盘块大小是4KB(文件的最小存储大小单位),所以test2.txt占据的磁盘实际空间是4KB
操作系统不能对磁盘扇区直接寻址操写,主要原因是扇区数量庞大,因此才将多个连续扇区组合一起操作。磁盘块的大小是可以通过blockdev命令更改的。
页,page
内存的最小存储单位。页的大小通常为磁盘块大小的 2^n倍,可以通过命令 getconf PAGE_SIZE来获取页的大小:
$sudo getconf PAGE_SIZE
4096
本例中为 4096 Bytes,与磁盘块大小一致。
总结两个逻辑单位:
页,内存操作的基本单位
磁盘块,磁盘操作的基本单位
命令索引
扇区大小,fdisk-l
磁盘块大小,stat/boot
内存页大小,getconf PAGE_SIZE
硬盘是如何存储数据的:硬盘的物理结构
提示:硬盘分为机械硬盘和固态硬盘这2种。这里只讲解机械硬盘,固态硬盘的存储另当别论。
要想知道硬盘是如何存储数据的,就先明白硬盘的物理结构。
1、名称机械硬盘,由于信息载体为磁性物质,故又称磁盘。 2、硬盘主要结构在硬盘盒里面其实是由许许多多的圆形盘片、机械手臂、磁头与主轴马达所组成的。 3、工作情形实际的数据都是写在具有磁性物质的盘片上,而读写主要是通过在机械手臂上的磁头(head)来达成。实际运行时,主轴马达让盘片转动,然后机械手臂可伸展让磁头在盘片上头进行读写的动作。
4、各主要部件说明(1)盘片和主马达主马达就是一个小电机,作用是让盘片转动起来。通常数据写入当然就是以圆圈转圈的方式读写啰!
对于机械硬盘,最重要的结构是这些两面涂有磁性材料的盘片,在工作时会以每分钟7200转的速度旋转。盘片的作用是记录数据,在盘片上有序的排列了很多的小颗粒材料,它们都是磁性物质,可以被永久磁化和改变磁极,这两个磁极就分别表示了计算机二进制中的0和1。由于盘片是转动后读写数据的,所以,当初设计就是在类似盘片同心圆上面切出一个一个的小区块,这些小区块整合成一个圆形,让机器手臂上的磁头去存取。这个小区块就是磁盘的最小物理储存单位,称之为扇区(sector),那同一个同心圆的扇区组合成的圆就是所谓的磁道(track)。扇区容量:原本硬盘的扇区都是设计成 512Byte(即0.5KB)的容量,但因为近期以来硬盘的容量越来越大,为了减少数据量的拆解,所以新的大容量硬盘已经有 4KByte(即4KB)的扇区设计!由于单一盘片的容量有限,因此有的硬盘内部会有两个以上的盘片喔!由于磁盘里面可能会有多个盘片,因此在所有盘片上面的同一个磁道可以组合成所谓的柱面(cylinder)。数据存储在盘片上的一个个扇区中。
1)1个扇区(磁道)可存储512Bytes的数据量;
2)一个平面中同一半径下的多个扇区共同组成了1个磁道;
3)一个盘片有2个盘面,每个盘面都对应一个磁头,负责读写数据;
4)一个硬盘可以有多个盘片;
5)同一半径下的多个磁道共同组成了1个柱面。
(2)磁头和机械手臂机械手臂的作用是控制来回磁头移动。磁头的作用是在盘片上读写数据。磁头通过改变盘片上小颗粒磁性物质的磁极方向来完成写入数据的功能,通过感知盘片上磁性物质的磁极方向来完成读取数据的功能。
5、扇区中是如何表示01数据的?
硬盘是在硬质盘片(一般是铝合金,以前 IBM也尝试过使用玻璃)上涂敷薄薄的一层铁磁性材料。这些磁粉被划分成称为磁道的若干个同心圆,在每个同心圆的磁道上就好像有无数的任意排列的小磁铁,它们分别代表着0和1的状态。当这些小磁铁受到来自磁头的磁力影响时,其排列的方向会随之改变。利用磁头的磁力控制指定的一些小磁铁方向,使每个小磁铁都可以用来储存信息。写入时,磁头线圈上加电,在周围产生磁场,磁化其下的磁性材料;电流的方向不同,所以磁场的方向也不同,可以表示 0和 1的区别。读取时,磁头线圈切割磁场线产生感应电流,磁性材料的磁场方向不同,所以产生的感应电流方向也不同。
================================优美的分割线===================================
延伸:固态硬盘的存储原理(微观)
接下来来讲固态硬盘,相比较于机械硬盘里面的各种机械结构,固态硬盘就没有太多的机械机构;它主要是靠FLASH芯片来作为储存数据的介质;由主控芯片来承担数据的中转,还有调配数据储存在闪存芯片上面
FLASH芯片储存数据的方式也不是太难理解,就是FLASH芯片里面分出了很多储存单元,这些储存单元里面有电子的位置;当一颗电子的位置里面没有存放电子,它就是0;如果存放了电子,它就是1参考:
如何查看linux服务器上有几块磁盘
使用df命令即可查看。
df是来自于coreutils软件包,系统安装时,就自带的;我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置;
示例:
[root@localhost~]# df-l
文件系统容量已用可用已用%挂载点
/dev/sda3 4956316 3565088 1135396 76%/
tmpfs 241320 12 241308 1%/dev/shm
/dev/sda6 4806904 2523708 2039012 56%/media/disk
/dev/sda1 4956284 3529796 1170656 76%/media/_
/dev/sda5 4845056 2581484 2019388 57%/media/disk-1
说明:Linux系统的分区格式使用的是xyzN的格式,xy表示的是硬盘类型,如上面的执行结果,sd表示是SCSI硬盘,z表示的是硬盘序号,第一块硬盘是a,第二块硬盘是b,所以要查询Linux系统上有几块硬盘,只要注意这一点即可。N表示的是分区号。
显然,示例中的Linux系统只有一块硬盘。