磁盘及文件系统管理
磁盘管理
一、定义
1、运维常说的服务器I/O泛指磁盘、网卡产生的I/O
2、设备类别:
块设备(block):随机访问,数据交换单位为‘块‘
字符设备(character):线性访问,数据交换单位为字符
3、磁盘设备文件
根据不同的接口类型,在Linux有两种名称标记不同接口的磁盘设备
(1)IDE接口:并行接口,理论传输速率133MB/s
名称:/dev/hd[a-z][#]
(2)SCSI接口:并行接口(Small Computer System Interface)
SATA接口:串行接口,Serial ATA;理论速率6Gpbs
USB接口:串行接口,480MB/s
SAS接口:串行接口
名称:/dev/sd[a-z][#]
[a-z]:标记设备
[#]:标记分区
二、机械硬盘
1、硬盘结构
磁道(track):当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道
扇区(sector):磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区
柱面(cylinder):在有多个盘片构成的盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组成的一个圆柱面
2、硬盘分区
硬盘有多个盘片组成,每个盘片的正反面都可以存储数据,每个片面都有独立的磁头。当硬盘转动时,每个盘面的磁头都会读取到自己盘面上对应的数据。故而,按照柱面数来划分分区,可以使硬盘在同时间内读写的数据量最大。
3、MBR
MBR:主引导扇区(master boot record),位于磁盘的第0磁道0扇区。大小为512bytes,分三部分:
446bytes:存储系统的引导程序,例如grub程序
64bytes:记录分区表信息,其中每16bytes标记一个分区。故而,每个硬盘都最多只能分4个主分区
2bytes:标记当前MBR是否有效的,55AA标记MBR有效
三、命令
1、fdisk
命令提供了一个交互接口来管理分区,它有许多子命令,分别用于不同的管理功能;所有的操作均在内存中完成,没有直接同步到磁盘。
fdisk DEVICE
常用子命令:
p:显示现有分区信息
n:创建新分区
d:删除现有分区
t:修改分区ID
l:查看支持哪些分区ID
w:保存退出
q:不保存退出
m:显示帮助信息
2、查看内核是否已经识别新建分区:
#cat /proc/partitions
3、通知内核强制重读分区表:
centos 5:#partprobe /dev/DEVICE
centos 6: #partx,kpartx
partx -a /dev/DEVICE
kpartx -af /dev/DEVICE
注意:有时需要多次执行强制重读的命令,才会生效
文件系统管理
一、定义
文件系统:就是一套用于定义文件的命名和组织数据的规范,其根本目的是便对文件进行查询和存取。
VFS:virtual File System 虚拟文件系统,为用户提供统一的文件系统的系统调用接口。
VFS支持的文件类型种类有:
Linux文件系统:ext2,ext3,ext4,reiserfs,xfs,btrfs
光驱:iso9660
网络文件系统:nfs,cifs
集群文件系统:gfs2,ocfs2
分布式文件系统:ceph
windows文件系统:ntfs,vfat
伪文件系统:tmpfs,hugepagefs,proc,sysfs
Unix文件系统:FFS,UFS,JFS
这些VFS文件系统系统的分为两类:
日志型文件系统:ext3,ext4
系统故障后,加速系统对文件系统的自检修复速度
非日志型文件系统:ext2
系统故障后,只能遍历所有文件,一个一个的检测然后修复
二、文件系统结构
对于存储设备上的数据,可分为两部分:
用户数据:用户实际存储的数据
管理数据:描述用户数据属性的数据,是对数据及信息资源的描述性信息。例如指示数据存储位置、历史数据、资源查找、文件记录等功能,也叫作元数据。
每个分区格式化成相同大小的数据块,根据存储在数据块上数据的不同属性可以将一个分区分为三个部分:
超级块:文件系统中的第一个块称为超级块,用来存储文件系统本身的结构信息。
i节点:inode,索引节点 index node,主要存储数据的属性信息,根据数据属性可以索引快速定位找到数据所存储的数据块。
数据区:存储实际数据的数据块区域。
如图:
由上图得出磁盘和文件系统的结构构成:
磁盘
MBR
分区:一个分区一个文件系统,每个分区的文件系统类型都可以不同。
超级块
块组
超级块副本
位图
i节点(inode)
数据块
三、Inode
inode上存储的信息:
1、indode编号
2、文件所在数据块信息
3、文件属性信息
注意:/ 根在内核中,其需要被关联至根文件系统,即rootfs;在引导文件grub.conf中指定根目录位置
四、数据块
系统读取硬盘时,连续一次性读取的多个扇区是一个数据块(block),一般是4k,即8个扇区
数据块上存储的信息:
目录
1、目录下的文件和一级子目录
2、目录下所有文件和一级子目录所对应的inode编号
文件
存储的文件数据
五、查看文件过程举例
例:查看文件/var/logs/messages文件内容的过程(读写)
根的inode --> 根目录对应的数据块 --> var对应的inode编号 --> 查inode table,找到var目录对应的inode --> var目录的数据块-->
logs对应的inode编号--> 查inode table,找到logs目录对应的inode --> logs目录的数据块 --> messages对应的inode编号--> 查inode
table,找到messages文件对应的inode --> messages的数据块(数据)
参考:http://blog.chinaunix.net/uid-23069658-id-3468489.html
六、扩展----链接文件
链接文件:访问相同文件数据的不同路径
硬链接:两个不同的文件路径指向同一个inode
判断方法:ls -i 查看文件inode编号,如果相同,其中一个是硬链接
创建方法:
cp -l Sfile Dfile
ln Sfile Dfile
特性:
1、目录不支持硬链接
2、硬链接不能跨分区(文件系统)
3、硬链接文件与源文件是指向同一个inode,创建硬链接文件会增加inode的引用计数;删除减少inode的引用计数,不会直接删除文件数据
软链接:连接文件是一个完全独立的新文件,但其指向了源文件的文件路径
创建方法:
ln -s Sfile Dfile
特性:
1、符号链接文件与原文件是两个各自独立的文件
2、目录可以创建符号链接
3、可以跨分区(文件系统)
4、删除链接不影响原文件,但删除原文件,符号链接指向的文件将不存在,因此,此时链接文件将变成失效的链接
注意:符号链接的文件大小并非真正原文件的大小,而是指向的原文件的文件路径字符串所包含的字节数
本文出自 “从头再来” 博客,请务必保留此出处http://4708705.blog.51cto.com/4698705/1692433
原文地址:http://4708705.blog.51cto.com/4698705/1692433