磁盘操作- inode/Block深入实战
一 思路:
1,磁盘物理结构及大小计算 2,分区 MBR GPT知识 3,fdisk分区 挂载 自动挂载 4,格式化文件系统 5,inode block 6,软硬链接
查看磁盘:
[root@moban dev]# ls sda sda sda1 sda2 sda3
二 MBR分区机制
512 446 66 ----- 64
分区模式
注意: 分区编号,1-4只能给主分区或扩展分区使用,逻辑分区是基于扩展分区来搞的,编号从5开始.
不能对已挂载的磁盘,进行操作.
只能读写数据.
如果想重新更改文件系统,--先卸载—然后修改fs
三 mount umount
四 inode block
分区被格式化后分为两部分:
1,inode 存放文件属性(不含文件名) ,还有个指针 block存放文件内容
[root@moban ~]# ls -il .txt -rw-r--r-- root root Mar : .txt
2,备份inode
dd - convert and copy a file #做一个虚拟的文件系统 [root@moban ~]# dd if=/dev/sda of=mbr.bin bs= count= + records in + records out bytes ( B) copied, 0.000364539 s, 1.4 MB/s 解析: dd if=/dev/sda of=mbr.bin bs= count= if源 of目标 bs blocksize count 1个block [root@moban ~]# od -xa mbr.bin 48eb d08e 00bc b8b0 d88e c08e k H dle dle so P < nul nul nul so X so @ befb 7c00 00bf b906 a4f3 21ea { > nul | ? nul ack nul stx s $ j ! ack nul be00 07be 0b75 c683 fefe nul > > bel eot u vt etx F dle soh ~ ~ bel u ebf3 b416 b002 bb01 7c00 80b2 748a s k syn stx soh ; nul | nul nl t etx stx 90fa f690 80c2 nul nul nul nul $ b nul nul nul bs z dle dle v B nul 80b2 59ea 007c 8ec0 8ed8 bcd0 u stx nul j Y | nul nul @ so X so P < a0fb 7c40 ff3c c288 f652 80c2 nul sp { sp @ | < del t stx bs B R v B nul 41b4 aabb cd55 5a13 55fb t T A ; * U M dc3 Z R r I soh { U 75aa a043 7c41 c084 e183 * u C sp A | eot @ u enq etx a soh t f 4c8b be10 7c05 44c6 01ff 8b66 441e c77c vt L dle > enq | F D del soh f vt rs D | G c700 085c 44c7 eot dle nul G D stx soh nul f ht \ bs G D ack nul c031 b40c cd42 p f @ ht D eot f ht D ff B M dc3 r bb05 7deb 08b4 13cd 0a73 c2f6 0f80 enq ; nul p k } bs M dc3 s nl v B nul si f084 e900 008d 05be c67c ff44 c031 eot p nul i cr nul > enq | F D del nul f @ f088 88d2 c1ca 02e2 e888 bs p @ f ht D eot R bs J A b stx bs h f488 c031 d088 e8c0 bs t @ ht D bs @ bs P @ h stx f ht eot a166 7c44 66d2 34f7 660a d231 f ! D | f R f w bs T nl f R f766 890b 0c44 443b 7d08 8a3c f w t eot bs T vt ht D ff ; D bs } < nl 0d54 e2c0 8a06 0a4c c1fe d108 6c8a 5a0c T cr @ b ack nl L nl ~ A bs Q nl l ff Z 748a bb0b c38e db31 01b8 cd02 nl t vt ; nul p so C [ soh stx M dc3 r 8c2a 8ec3 607c b91e db8e f631 * ff C so ack H | ` rs nul soh so [ v ff31 f3fc 1fa5 ff61 be7c 7d7f 40e8 del | s % us a del & B | > del } h @ eb00 be0e 7d84 38e8 eb00 be06 7d8e 30e8 nul k so > eot } h nul k ack > so } h be00 7d93 2ae8 eb00 47fe nul > dc3 } h * nul k ~ G R U B sp nul G 6f65 006d 006b e o m nul H a r d sp D i s k nul R e 6f72 01bb b400 cd0e a d nul sp E r r o r nul ; soh nul so M ac10 003c f475 00c3 dle , < nul u t C nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul nul ack f ht nul nul nul nul sp 9f83 9f00 ! nul etx us ack em nul bs nul nul nul @ ack nul nul us 2a82 9c0e 2a00 bel em stx * so fs nul H ack nul nul nul sp nul nul * 9c0f fe83 ffff b800 si fs etx ~ del del nul H & nul nul Y stx nul nul aa55 nul nul nul nul nul nul nul nul nul nul nul nul nul nul U *
inode block
比喻:教室门口贴一张纸,inode,有大家的位置信息,以及学生身高,三围信息.座位就相当于block..书的页码
因为inode要存放文件的信息,所以inode是有大小的.C5 inode默认大小128字节.而C6默认inode大小256自己,inode大小在文件系统格式化之后就无法更改了.格式化前可以指定iniode大小,但是一般工作没这个需求.
1,一个文件至少占用1个inode和1个block 2,ext3/4 block大小有1k 2k 4k 其中c6引导1k,其他4k 3,查看inode和block大小及数量 4,1个block只能存储1个文件的内容,所以block并非越大越好.
查看inode和block
查看inode使用状况
[root@moban ~]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda3 % / tmpfs % /dev/shm /dev/sda1 % /boot [root@moban ~]#
有关block的大小:磁盘读取数据是按照block来读取的.
Block并非越大越好,Block快越大,对于单个的小文件(0.5k)业务,会非常浪费空间.因为一个文件无论多大都会必须占用一个inode和block,但是对于大文件.可以提升读取的效率,因为如果block太小.就要读多个block,这样就消耗磁盘io,如果block太大,则会读取较少的block就读完数据,从而减少磁盘的IO
Block快太小会影响磁盘读取大文件数据的效率,block块越小,同样存储一个问及爱你就需要更多的block,这样硬盘读取数据时就要读取多个block,因此效率就越低.
当前生产环境block一般设置为4k
http://blog.csdn.net/liuaigui/article/details/5521024
图解inode,block
小的好处:对于小文件
大的好处:
生产环境,block大小如何处理?
如果是大文件的业务,block尽量大一点.
如果是小文件的业务,block给小点
ext3 4最大只能4k.工作用文件几乎没小于4k的.
修改inode和block
格式化时指定inode和block
挂了一块sdb10G的硬盘 格式化时不指定 [root@moban ~]# dumpe2fs /dev/sdb [root@moban ~]# dumpe2fs /dev/sdb |grep "Inode size" dumpe2fs 1.41. (-May-) Inode size: [root@moban ~]# dumpe2fs /dev/sdb |grep "Block size" dumpe2fs 1.41. (-May-) Block size: 格式化时候指定inode和block大小 [root@moban ~]# mkfs.ext4 -I -b /dev/sdb [root@moban ~]# dumpe2fs /dev/sdb |grep "Block size" dumpe2fs 1.41. (-May-) Block size: [root@moban ~]# dumpe2fs /dev/sdb |grep "Inode size" dumpe2fs 1.41. (-May-) Inode size:
小结:
1,磁盘分区格式化文件系统后,会分为inode和block 2,inode存放文件的属性以及指向文件实体的指针,文件名不再inode里.一般商机目录的block 3,访问文件,通过文件-->inode-->blocks 4,inode一般情况默认大小256B block大小1 2 4k 默认是4k,引导分区除外 5,通过df -i 查看inode的数量及使用情况.dumpe2fs /dev/sda3查看inode及block的大小及数量 6,一个文件至少占用一个inode及一个block,单个文件可以占用同一个inode(硬链接) 7,一个block只能被一个文件使用,如果文件很小,block很大,剩余空间浪费,无法继续被其他文件使用 8,block不是越大越好,要根据业务的文件大小进行选择,一般默认4k 9,可以在格式化的时候改变inode和block的大小.
mkfs.ext4 -b -l /dev/sdb dumpe2fs /dev/sdb |grep "Inode size" dumpe2fs /dev/sdb |grep "Block size"
企业面试题:一个100M的磁盘分区,分别写入1K和1M的文件,分别可以写多少个?
磁盘操作- inode/Block深入实战的更多相关文章
- [svc][op]磁盘MBR分区机制- inode/Block深入实战
一 思路: 1,磁盘物理结构及大小计算 2,分区 MBR GPT知识 3,fdisk分区 挂载 自动挂载 4,格式化文件系统 5,inode block 6,软硬链接 查看磁盘: [root@moba ...
- # linux文件系统(inode block superblock)
先说一下格式化:每种操作系统所设置的文件属性/权限并不相同,为了存放这些文件所需的数据,因此就需要将分区格式化,以成为操作系统能够利用的文件系统格式.linux的文件格式为Ext2/Ext3,现在好像 ...
- ext2文件系统的运行—superblock/inode/block
鸟哥私房菜书上内容: superblock:记录此 filesystem 的整体信息,包括inode/block的总量.使用量.剩余量, 以及文件系统的格式与相关信息等:inode:记录文件的属性,一 ...
- Linux 文件的详解[分类/扩展名/inode/block]
关于Linux文件的介绍 Linux里文件扩展名和文件类型没有关系,Linux系统中一切皆文件 关于Linux文件分类 纯文本文件(可以cat的) 二进制文件(Linux的可执行文件等,如/b ...
- Linux 深入理解inode/block/superblock
基础命令学习目录首页 原文链接:https://blog.csdn.net/Ohmyberry/article/details/80427492 档案系统特性 传统的磁盘与档案系统之应用中,一个分割槽 ...
- inode block 软硬链接
inode block 软硬链接 1 inode 1.1 inode(索引节点)作用 (1)用于存储文件数据属性信息(2)用于存储数据指针信息 1.2 如何产生 格式化时,创建文件系统 1.3 如何查 ...
- python linux 磁盘操作
#coding:utf-8 ''' __author__ = 'similarface' connection:841196883@qq.com 磁盘操作 ''' import psutil impo ...
- linux iostat命令详解 磁盘操作监控工具
Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视. 它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况. ...
- VMware虚拟机磁盘操作占用过高问题
使用虚拟机运行Linux图形桌面时,经常因为一个网页或者编译某个程序就导致虚拟机卡死,甚至影响主机使用.明明主机内存有8G,分配给虚拟机的内存也不少,为什么就这么卡顿.打开主机上的任务管理器查看发现磁 ...
随机推荐
- 提高eclipse使用效率(二) 提高Android开发效率的小技巧
XML文件的代码提示 adt中也有xml文件的代码提示,为了让提示来的更加猛烈,我们还要设置一下 打开eclipse - Window - Preferences,在右边的目录树中切换到XML - X ...
- Swift语言
本文为熟悉使用Objective-C开发iOS快速转入swift开发提供一些便利的途径,没有过多华丽的说明底层原理,也没有过多的概念说明,只提供swift的基本使用以及一些使用示例.高手请让路哈. S ...
- ci 使用体会
1.在git review后,必须前一天commit先merge后,下一个commit 才能merge,不然就会出现merge pending的状态. 2.jenkins的gerrit trigger ...
- 基于git的工作流程
本文针对的是追求极致.快速的产品响应团队的.以下的观点和内容都是围绕这个主题,暂时不涉及个人学习和团队学习. 在说工作流程之间,想说一下我们平常工作中遇到的一些困惑或者说现象 在一个团队里,同时有好多 ...
- C# Process运行cmd命令的异步回显
以下的代码为new Process() 调用cmd命令,并将结果异步回显到Form的例子: 以下的代码为new Process() 调用cmd命令,并将结果异步回显到Form的例子: [csharp] ...
- 转 HighCharts笔记之: Bar Chart
最近需要做一些Web图标,研究了几个开源的第三方工具后,最后决定使用HighCharts开发: Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是 ...
- 问题解决——基于MSCOMM32.OCX控件的类在客户机不能创建控件
大家不要笑我了,我不喜欢用那个人家写的串口类. 所以导出了MSCOMM32.OCX的类,然后在此基础上写了一个串口打印机的小工具类. -------------声明--------------- 本文 ...
- lucene索引
一.lucene索引 1.文档层次结构 索引(Index):一个索引放在一个文件夹中: 段(Segment):一个索引中可以有很多段,段与段之间是独立的,添加新的文档可能产生新段,不同的段可以合并成一 ...
- CentOS 7 修改时区(转)
本文转载至:http://mathslinux.org/?p=637 Linux 系统(我特指发行版, 没说内核) 下大部分软件的风格就是不会仔细去考虑向后 的兼容性, 比如你上个版本能用这种程序配置 ...
- Gradle深入与实战(转)
转自:NO END FOR LEARNINGhttp://benweizhu.github.io/blog/2015/01/31/deep-into-gradle-in-action-1/ 什么是构建 ...