ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## 磁盘的块大小(Block Size)和扇区大小(Sector Size) 操作系统操作需要与内存、硬盘这两种硬件设备打交道。 都需要虚拟一种单位来操作。与内存操作,是虚拟一个页的概念来作为最小单位。 与硬盘打交道,就是以块为最小单位。 ## 扇区 Sector ~~~bash # fdisk -l Disk /dev/cciss/c0d0: 146.7 GB, 146778685440 bytes 255 heads, 63 sectors/track, 17844 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes ~~~ heads/sectors/cylinders,分别就是磁头/扇区/柱面,每个扇区512byte(现在新的硬盘每个扇区有4K)了 硬盘容量就是heads*sectors*cylinders*512=255*63*17844*512=146771896320b=146.7G >[info] 注意:硬盘的最小存储单位就是扇区了,而且硬盘本身并没有block的概念。 > ## 确定物理扇区大小 从理论上讲,Linux 内核应该在 /sys/block/sdX/queue/physical_block_size ## 块 Block 文件系统不是一个扇区一个扇区的来读数据,太慢了,所以有了block(块)的概念,它是一个块一个块的读取的,block才是文件存取的最小单位。 先来知道是哪种文件系统 ~~~ # df -T /dev/cciss/c0d0p5 ext3 112738028 81733116 25185772 77% / # tune2fs -l /dev/cciss/c0d0p5 | grep "Block size" Block size: 4096 ~~~ 一个block是4K,也就是说我所使用的文件系统中1个块是由连续的8个扇区组成。 >[info] 简单的说扇区是对硬盘而言,块是对文件系统而言。 ## 4K 对齐 [parted命令对齐分区][1] [是否4K 对齐][2] ## 磁盘保留空间 查看保留空间大小 ``` tune2fs -l /dev/sda8 reserved blocks ``` 调整保留空间大小(系统默认5%) ``` tune2fs -m 0.5 /dev/sda8 ``` [1]:http://bbs.ceph.org.cn/article/48 [2]:https://yq.aliyun.com/articles/169081