磁盘操作- inode/Block深入实战

一 思路:

1,磁盘物理结构及大小计算

2,分区 MBR GPT知识

3,fdisk分区 挂载 自动挂载

4,格式化文件系统

5,inode block

软硬链接

查看磁盘:

[[email protected] dev]# ls sda

sda sda1 sda2 sda3

二 MBR分区机制

512

446

66

-----

64

分区模式

不能对已挂载的磁盘,进行操作.

只能读写数据.

如果想重新更改文件系统,--先卸载—然后修改fs

三 mount umount

四 inode block

分区被格式化后分为两部分:

1,inode 存放文件属性(不含文件名) ,还有个指针 block存放文件内容

[[email protected] ~]# ls -il 1.txt

1050322 -rw-r--r-- 1 root root 51 Mar 27 23:25 1.txt

2,备份inode

dd - convert and copy a file #做一个虚拟的文件系统

[[email protected] ~]# dd if=/dev/sda of=mbr.bin bs=512 count=1

1+0 records in

1+0 records out

512 bytes (512 B) copied, 0.000364539 s, 1.4 MB/s

解析:

dd if=/dev/sda of=mbr.bin bs=512 count=1

if源 of目标 bs blocksize count 1个block

[[email protected] ~]# od -xa mbr.bin

0000000 48eb 1090 d08e 00bc b8b0 0000 d88e c08e

k H dle dle so P < nul 0 8 nul nul so X so @

0000020 befb 7c00 00bf b906 0200 a4f3 21ea 0006

{ > nul | ? nul ack 9 nul stx s $ j ! ack nul

0000040 be00 07be 0438 0b75 c683 8110 fefe 7507

nul > > bel 8 eot u vt etx F dle soh ~ ~ bel u

0000060 ebf3 b416 b002 bb01 7c00 80b2 748a 0203

s k syn 4 stx 0 soh ; nul | 2 nul nl t etx stx

0000100 0080 8000 6224 0000 0800 90fa f690 80c2

nul nul nul nul $ b nul nul nul bs z dle dle v B nul

0000120 0275 80b2 59ea 007c 3100 8ec0 8ed8 bcd0

u stx 2 nul j Y | nul nul 1 @ so X so P <

0000140 2000 a0fb 7c40 ff3c 0274 c288 f652 80c2

nul sp { sp @ | < del t stx bs B R v B nul

0000160 5474 41b4 aabb cd55 5a13 7252 8149 55fb

t T 4 A ; * U M dc3 Z R r I soh { U

0000200 75aa a043 7c41 c084 0575 e183 7401 6637

* u C sp A | eot @ u enq etx a soh t 7 f

0000220 4c8b be10 7c05 44c6 01ff 8b66 441e c77c

vt L dle > enq | F D del soh f vt rs D | G

0000240 1004 c700 0244 0001 8966 085c 44c7 0006

eot dle nul G D stx soh nul f ht \ bs G D ack nul

0000260 6670 c031 4489 6604 4489 b40c cd42 7213

p f 1 @ ht D eot f ht D ff 4 B M dc3 r

0000300 bb05 7000 7deb 08b4 13cd 0a73 c2f6 0f80

enq ; nul p k } 4 bs M dc3 s nl v B nul si

0000320 f084 e900 008d 05be c67c ff44 6600 c031

eot p nul i cr nul > enq | F D del nul f 1 @

0000340 f088 6640 4489 3104 88d2 c1ca 02e2 e888

bs p @ f ht D eot 1 R bs J A b stx bs h

0000360 f488 8940 0844 c031 d088 e8c0 6602 0489

bs t @ ht D bs 1 @ bs P @ h stx f ht eot

0000400 a166 7c44 3166 66d2 34f7 5488 660a d231

f ! D | f 1 R f w 4 bs T nl f 1 R

0000420 f766 0474 5488 890b 0c44 443b 7d08 8a3c

f w t eot bs T vt ht D ff ; D bs } < nl

0000440 0d54 e2c0 8a06 0a4c c1fe d108 6c8a 5a0c

T cr @ b ack nl L nl ~ A bs Q nl l ff Z

0000460 748a bb0b 7000 c38e db31 01b8 cd02 7213

nl t vt ; nul p so C 1 [ 8 soh stx M dc3 r

0000500 8c2a 8ec3 4806 607c b91e 0100 db8e f631

* ff C so ack H | ` rs 9 nul soh so [ 1 v

0000520 ff31 f3fc 1fa5 ff61 4226 be7c 7d7f 40e8

1 del | s % us a del & B | > del } h @

0000540 eb00 be0e 7d84 38e8 eb00 be06 7d8e 30e8

nul k so > eot } h 8 nul k ack > so } h 0

0000560 be00 7d93 2ae8 eb00 47fe 5552 2042 4700

nul > dc3 } h * nul k ~ G R U B sp nul G

0000600 6f65 006d 6148 6472 4420 7369 006b 6552

e o m nul H a r d sp D i s k nul R e

0000620 6461 2000 7245 6f72 0072 01bb b400 cd0e

a d nul sp E r r o r nul ; soh nul 4 so M

0000640 ac10 003c f475 00c3 0000 0000 0000 0000

dle , < nul u t C nul nul nul nul nul nul nul nul nul

0000660 0000 0000 0000 0000 6686 0009 0000 2080

nul nul nul nul nul nul nul nul ack f ht nul nul nul nul sp

0000700 0021 9f83 1906 0800 0000 4000 0006 9f00

! nul etx us ack em nul bs nul nul nul @ ack nul nul us

0000720 1907 2a82 9c0e 4800 0006 0000 0020 2a00

bel em stx * so fs nul H ack nul nul nul sp nul nul *

0000740 9c0f fe83 ffff 4800 0026 b800 0259 0000

si fs etx ~ del del nul H & nul nul 8 Y stx nul nul

0000760 0000 0000 0000 0000 0000 0000 0000 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使用状况

[[email protected] ~]# df -i

Filesystem Inodes IUsed IFree IUse% Mounted on

/dev/sda3 1234576 59472 1175104 5% /

tmpfs 125596 1 125595 1% /dev/shm

/dev/sda1 51200 38 51162 1% /boot

[[email protected] ~]#

有关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的硬盘

格式化时不指定

[[email protected] ~]# dumpe2fs /dev/sdb

[[email protected] ~]# dumpe2fs /dev/sdb |grep "Inode size"

dumpe2fs 1.41.12 (17-May-2010)

Inode size:     256

[[email protected] ~]# dumpe2fs /dev/sdb |grep "Block size"

dumpe2fs 1.41.12 (17-May-2010)

Block size: 4096

格式化时候指定inode和block大小

[[email protected] ~]# mkfs.ext4 -I 2048 -b 2048 /dev/sdb

[[email protected] ~]# dumpe2fs /dev/sdb |grep "Block size"

dumpe2fs 1.41.12 (17-May-2010)

Block size: 2048

[[email protected] ~]# dumpe2fs /dev/sdb |grep "Inode size"

dumpe2fs 1.41.12 (17-May-2010)

Inode size:     2048

小结:

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 2048 -l 2048 /dev/sdb

dumpe2fs /dev/sdb |grep "Inode size"

dumpe2fs /dev/sdb |grep "Block size"

企业面试题:一个100M的磁盘分区,分别写入1K和1M的文件,分别可以写多少个?

时间: 2024-08-03 09:40:46

磁盘操作- inode/Block深入实战的相关文章

Linux的Ext2文件系统(Inode&Block)详解

前述:Linux系统管理员很重要的任务之一就是管理好自己的磁盘文件系统,每个分区不可太大也不可以太小,太大会导致磁盘容量的浪费,太小会导致产生的文件无法存储的问题.在Linux里面文件是由两部分数据组成,一部分是metadata,另一部分是data.那么这些数据都存放在文件系统的什么地方呢?这就让我们必须得了解文件系统的Inode与Block的基本原理了,而Linux最传统的磁盘文件系统使用的是Ext2,所以我们了解下它的内部原理. 第一部分:磁盘的组成和分区(基础) 磁盘的机械部分: 1.圆形

EDKII: 磁盘操作之 BlockIo(2), DiskIo(2)

EDKII中提供了几种磁盘操作方法,包括同步/异步,块操作/任意操作.整理如下: 函数 备注 BlockIo BlockIo2 DiskIo DiskIo2 操作方式   按Block 按Block 任意大小.位置 任意大小.位置 同.异步   阻塞 异步 阻塞 异步 成员Revision   有 无 有 有 成员Media 设备信息 有 有 无 无 函数Reset   有 有(阻塞) 无 无 函数ReadBlocks   有 有 有 有 函数WriteBlocks   有 有 有 有 函数Fl

Linux 深入理解inode/block/superblock

基础命令学习目录首页 原文链接:https://blog.csdn.net/Ohmyberry/article/details/80427492 档案系统特性 传统的磁盘与档案系统之应用中,一个分割槽就是只能够被格式化成为一个档案系统,所以我们可以说一个filesystem就是一个partition.但是由于新技术的利用,例如我们常听到的LVM与软体磁盘阵列(software raid),这些技术可以将一个分割槽格式化为多个档案系统(例如LVM),也能够将多个分割槽合成一个档案系统(LVM, R

inode block 软硬链接

inode block 软硬链接 1 inode 1.1 inode(索引节点)作用 (1)用于存储文件数据属性信息(2)用于存储数据指针信息 1.2 如何产生 格式化时,创建文件系统 1.3 如何查看:df -i 1.4 特点 (1)一个文件会占用一个inode(2)大量小文件会占用大量inode 2 block 2.1 block作用 用于存储文件数据内容 2.2 如何产生 格式化时,创建文件系统 2.3 如何查看:df 2.4 特点 (1)一个文件数据会占用多个block(2)一个bloc

python linux 磁盘操作

#coding:utf-8 ''' __author__ = 'similarface' connection:[email protected] 磁盘操作 ''' import psutil import os import commands import logging import re logger = logging.getLogger('Disk') logger.setLevel(logging.ERROR) ch = logging.StreamHandler() # 定义han

Linux修复磁盘操作

Linux修复磁盘操作 1.卸载分区 umount /data 修复磁盘,先判读是磁盘坏了,还是文件系统坏了:一般可以修复,但是建议换磁盘. 2.fsck  -y /dev/sda1  ##-y 参数意思是全部修复: 3.把/data磁盘挂载上,看看修复是否成功:

Hadoop集群hdfs添加磁盘操作

Hadoop集群hdfs添加磁盘操作 目前的环境是cdh.服务器部署在Azure:一个cdhmaster(一个namenode,一个datanode),四个cdhslave节点(各一个datanode). hdfs现状: 首先是在Azure控制台对每台服务器添加一块磁盘(我这添加的是4T) 在到服务器中对每台服务器进行添加磁盘操作: 因为在Linux中,常用2种分区表: MBR分区表(即主引导记录) 所支持的最大分区:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区 [fdisk

Java.io下的方法是对磁盘上的文件进行磁盘操作

File类(java.io.*)可表示一个文件,也有可能是一个目录(在JAVA中文件和目录都属于这个类中,而且区分不是非常的明显). Java.io下的方法是对磁盘上的文件进行磁盘操作,但是无法读取文件的内容. 注意:创建一个文件对象和创建一个文件在JAVA中是两个不同的概念.前者是在虚拟机中创建了一个文件,但却并没有将它真正地创建到OS的文件系统中,随着虚拟机的关闭,这个创建的对象也就消失了.而创建一个文件才是在系统中真正地建立一个文件. 1 package TomTexts; 2 impor

文件系统的运行—superblock/inode/block

鸟哥私房菜书上内容: superblock:记录此 filesystem 的整体信息,包括inode/block的总量.使用量.剩余量, 以及文件系统的格式与相关信息等:inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的 block 号码:block:实际记录文件的内容,若文件太大时,会占用多个 block . 每个 inode 与 block 都有编号,而每个文件都会占用一个 inode ,inode 内则有文件数据放置的 block 号码.因此,我们可以知道的