mysql block size_关于Block Size的一点总结

五一这三天一直在学习Linux文件系统的东西。

参考了一些很优秀的人的文章,收获很多啊。

总体结构如下:

3c764ffe1df6798510d71850065d744c.png

详细点的:

ba4b372f557ca340a7749b8f2c873e66.png

具体的含义就不解释了。

对于 block size 我想写几句:

想要使用一块500M的磁盘 :                      分区、格式化、新建挂载目录、挂载

方便起见,采用环回文件系统的方式:

-----------------------------------------------------------------------------------------------------------------

[root@Gypsy_110 ~]# dd if=/dev/zero of=gypsy bs=1K count=512000

记录了512000+0 的读入

记录了512000+0 的写出

524288000字节(524 MB)已复制,5.75035 秒,91.2 MB/秒

[root@Gypsy_110 ~]# mke2fs gypsy

mke2fs 1.41.12 (17-May-2010)

gypsy is not a block special device.

无论如何也要继续? (y,n) y

文件系统标签=

操作系统:Linux

块大小=1024 (log=0)

分块大小=1024 (log=0)

Stride=0 blocks, Stripe width=0 blocks

128016 inodes, 512000 blocks

25600 blocks (5.00%) reserved for the super user

第一个数据块=1

Maximum filesystem blocks=67633152

63 block groups

8192 blocks per group, 8192 fragments per group

2032 inodes per group

Superblock backups stored on blocks:

8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

正在写入inode表: 完成

Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 23 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@Gypsy_110 ~]# ls /mnt/

[root@Gypsy_110 ~]# mkdir /mnt/gypsy

[root@Gypsy_110 ~]# mount -o loop gypsy /mnt/gypsy/

[root@Gypsy_110 ~]# df -HT

Filesystem          Type   Size  Used Avail Use% Mounted on

/dev/sda2           ext4   5.2G  887M  4.1G  19% /

tmpfs               tmpfs  519M     0  519M   0% /dev/shm

/dev/sda1           ext4   102M   30M   67M  31% /boot

/dev/mapper/vg1-lv1 ext4   3.1G   72M  2.9G   3% /home

/dev/sda5           ext4   2.5G   71M  2.3G   4% /tmp

/dev/mapper/vg1-lv2 ext4   5.2G  896M  4.0G  19% /usr

/dev/sda7           ext4   3.1G  407M  2.6G  14% /var

/root/gypsy         ext2   508M  2.4M  480M   1% /mnt/gypsy

[root@Gypsy_110 ~]# ls -la /mnt/gypsy/

总用量 17

drwxr-xr-x  3 root root  1024 5月   4 19:51 .

drwxr-xr-x. 3 root root  4096 5月   4 19:52 ..

drwx------  2 root root 12288 5月   4 19:51 lost+found

[root@Gypsy_110 ~]#

-----------------------------------------------------------------------------------------------------------------

过程大家都懂,我想说的就是  block size

首先 磁盘容量大小是确定的:500M

格式化的时候,没有指定块大小,默认是1204B ,也就是1K(ext2)

那么block count 就确定了: 512000 块 (Block 编号从0开始)

由于block size决定了 Blocks per group 的最大容量,因为块组中 block bitmap 大小是1个block。用 block bitmap 每一个bit 来确定该块组的某一块是否空闲。

所以有:

1024----最多有8K个块----------块组大小为8M字节   (1024字节/block*8K块)

2048----最多有16K个块---------块组大小为32M字节

4096----最多有32K个快----------块组大小为128M字节

所以: Blocks per group:         8192  (1024*8)

这样 Group 数量就确定了:block count /block per group   ==  512000/8192 ==  62.5

所以就需要 63个Group (Group0 Group1 、、、Group62)

同时 block size 还决定了ext2 中单个文件最大长度:

(不过 ext2 里貌似只支持到三级,但是思想是相通的。)

8fd756b53f7b7865e40c4f1c1d5d09ec.png

Inode中有个长度为15的数组指向文件的数据存储的块。

前12个为直接指针,指向了数据所在的block块。

第13个数组元素是1级间接指针,

第14个数组元素为二级间接指针,

第15个元素为三级间接指针,

通过间接指针,ext2支持的文件最大长度获得了极大的扩展。

各种数据块对应的文件寻址范围

块大小     直接寻址    间接寻址     二次间接寻址  三次间接寻址

1024B     12KB          256KB          64MB             16GB

2048B     24KB          1MB             512MB           256GB

4096B     48KB          4MB             4GB               4TB

[root@Gypsy ~]# echo "(12+256+256*256+256*256*256)/1024/1024" |bc

16     --> 单位是G

[root@Gypsy ~]# echo "(12*2+512*2+512*512*2+512*512*512*2)/1024/1024" |bc

256    --> 单位是G

[root@Gypsy ~]# echo "(12*4+1024*4+1024*1024*4+1024*1024*1024*4)/1024/1024" |bc

4100   --> 单位是G

[root@Gypsy ~]# echo "(12*4+1024*4+1024*1024*4+1024*1024*1024*4)/1024/1024/1024" |bc

4      --> 单位是T

参考了一些优秀的文章:

http://blog.chinaunix.net/uid-24774106-id-3266816.htmlhttp://blog.chinaunix.net/uid-30225353-id-4998537.html

向前辈致敬!

阅读(1394) | 评论(0) | 转发(0) |

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值