您的位置:首页 > 运维架构 > Linux

Linux系统--Linux磁盘和文件系统管理

2015-08-30 12:51 330 查看
Linux磁盘和文件系统管理一.Linux磁盘管理:1.磁盘的物理组成部分(这里介绍的主要是机械硬盘)a.磁盘的组成主要有:盘片,机械手臂和磁头,主轴马达b.磁盘的数据存储和读取在于磁盘的盘片,在盘片上的一些概念:扇区(sector):就是将盘片划分成若干个扇区。扇区是最小的存储单位,每个扇区512个字节。柱面(Cylinder):磁盘是有多个盘片组合而成,而柱面是有不在同一磁盘上的相同位置上的扇区组成。柱面是分区的最小单位,也就是分区是根据柱面分区的。c.第一个扇区的组成:有446个字节的MBR,64字节的分区表和2字节Mgical Number 组成。其中446字节的MBR主引导分区,引导开机程序。64字节的分区表中16个字节标志一个分区,所以分区的时候最多有4个主分区,2字节Mgical Number:编辑MBR是否有效2.磁盘接口类型:磁盘接口类型从整体角度上讲:硬盘接口分为IDE、SATA、SCSI、光纤通道和SAS五种。SCSI接口得到硬盘主要应用于服务器市场,而光纤通道只在高端服务器上。并口的磁盘接口:IDE:速率:133M/sSCSI:640M/s 主要用户小型计算机系统接口(Small Computer System Interface)串口的磁盘接口:SATA:6Gbps 串口硬盘(serial ATA)SAS:6Gbps (serial attached SCSI) 串行连接SCSIUSB:480MB/s3.磁盘设备的设备文件的命名与设备文件/dev/hd:IDE/dev/sd[a-z] :SCSI,SATA,SAS,USB设备文件:块设备:block,存取单位为块,比如磁盘字符设备:char,存取单位为字符,比如键盘设备文件:关联至一个设备驱动,进而能够与之对应的硬件设备通信。设备号:主设备号:标志一个设备。此设备号:标志在同一个设备类型下的不同设备。二.Linux文件系统管理:个人理解:一个可以被挂载的数据为一个文件系统。Linux中的文件系统有:ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,ramfs,swap,光盘中iso9660Windows中的文件系统有:fat32,fat,ntfsUnix支持的文件系统:FFS,UFS,JFS2网络文件系统:NFS,CIFS集群文件系统:GFS2,OCFS2分布式文件系统:ceph,moosefs,mogilefs,Glusterfs,LustreLinux中的文件系统:xfs,(由SGI开发的先进的日志文件系统,支持超大容量文件)btrfs,目标是取代Linux目前的ext3文件系统,改善ext3的限制,特别是单一文件大小的限制,总文件系统大小限制以及加入文件校验和特性。加入目前ext3/4未支持的一些功能,例如可写的磁盘快照(snapshots),以及支持递归的快照(snapshots of snapshots),内建磁盘阵列(RAID)支持,支持子卷(Subvolumes)的概念,允许在线调整文件系统大小。reiserfs, 基于平衡树结构的文件系统jfs,IBM的AIX使用的日志文件系统ramfs:内存文件系统,速度很快 Linux的虚拟文件系统:VFS 在linux中有众多的文件系统,但是linux kernel是如何识别和管理这些文件系统的呢?其实linux系统中是通过虚拟文件系统(vritual Filesystem Switch,VFS)的功能读取文件系统的。也可以这样理解linux虚拟文件系统是众多文件系统与内核联系的接口。

1.磁盘的分区:在linux上对一个磁盘的分区要用到fdisk,partx,sfdisk命令。磁盘分区是以磁盘柱面为单位进行分区的。分区步骤如下:1.fdisk DEVICE_NAME (要进行分区的磁盘)2.执行这个命令后,将会进入交互式,根据提示进行相应的分区:Command (m for help):常用的选项有: n add a new partition:创建新分区 p print the partition table:打印已有分区 d delete a partition:删除已有分区 m print this menu:获取帮助 l list known partition types:列表所分区id t change a partition's system id:调整分区id w write table to disk and exit:写入并退出 q: quit, 放弃更新并退出3.产看内核是否已经识别新的分区:cat /proc/partations4.通知内核重新读取硬盘分区表:partx -a /dev/DEVICEkpartx -a /dev/DEVICECentOS 5中使用partprobe来让内核读取硬盘分区表partprobe [/dev/DEVICE]
2.创建文件系统(格式化):创建分区之后,就要对相应的分区创建文件系统了,也就是格式化分区。创建文件系统的命令有:mkfs,mke2fs,mkswap1.mkfs命令:(1).# mkfs.FS_TYPE /dev/DEVICEFS_TYPE :ext3,ext4,xfs,btrfs,vfat(2) # mkfs -t FS_TYPE /dev/DEVICE选项:-L ‘LABEL’ :设定卷标2.mke2fs命令:ext系列文件系统专用工具:常用选线:-t {ext2|ext3|ext4}:指定文件系统-b {1024|2048|4096}:指定块大小-L ‘LABEL’:指定卷标-j:格式化成ext3 文件系统-i #:指定数据空间中每多少个字节创建一个iNode;此大小不应小于块大小;-N #:为数据空间创建多少个iNode-O FEATURE[,...]:启用给指定特性 ^FEATURE:关闭指定特性3.mkswap命令:创建交换分区mkswap [OPTIONS] device-L ‘LABEL’:指定卷标注意:格式化的分区是交换分区,要提前调整分区ID为82
3.管理文件系统的工具:管理文件系统的工具有:blkid,e2label,tune2fs,dumpe2fs.blkid:块设备属性信息查看blkid [OPTION]... [DEVICE]-U UUID: 根据指定的UUID来查找对应的设备-L LABEL:根据指定的LABEL来查找对应的设备e2label:管理ext系列文件系统的LABEL# e2label DEVICE [LABEL]tune2fs:重新设定ext系列文件系统可调整参数的值-l:查看指定文件系统超级块信息;super block-L 'LABEL':修改卷标-m #:修预留给管理员的空间百分比-j: 将ext2升级为ext3-O: 文件系统属性启用或禁用-o: 调整文件系统的默认挂载选项-U UUID: 修改UUID号;dumpe2fs:-h:查看超级块信息5.文件系统检测:命令有:fsck和e2fsckfsck: File System CheCkfsck.FS_TYPEfsck -t FS_TYPE -a: 自动修复错误 -r: 交互式修复错误 e2fsck:ext系列文件专用的检测修复工具 -y:自动回答为yes; -f:强制修复;6.Linux文件系统是如何运行:在linux系统中文件和目录是由权限(rwx),属性(属主,属组,时间戳等)和数据组成。其中元数据(权限和属性)是存在inode中,而文件的数据是存放在date block中。还有一个超级块:这个超级块会记录整个文件系统的整个整体信息,包括inode和block数量,block和inode的大小,使用量和未使用量等等。inode:记录一个文件的属性和权限,以及记录此文件的block编码,除了文件名以外,元信息都存在inode中block:记录文件内容,如果文件太大时,会使用多个block。inode bitmap:inode位视图:用来标记使用和未使用的inode号码block bitmap:(块对照表):用来记录使用与未使用的block号码文件系统新创建一个目录,会分配一个inode和至少一个block给该目录。inode记录该目录的属性和权限,以及记录分配到的block号码。而block记录这个目录下的文件名和inode对照表。 目录占用的block记录的数据试图如下


查找一个文件的过程:首先会先找到该文件所在目录的inode号,根据inode号记录的block号码,去找到记录文件名和inode对照表的block。根据文件名和inode对照表中文件的block号码,从而找到文件的date block。假如我们查看目录/tmp/下的kk文件如下图:


软连接和硬链接 硬链接:一般情况下,文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问 不能够对目录进行 不能跨越分区进行 多个文件指向同一个inode的多个不同路径,创建文件的硬链接即为为inode创建性的引用路经,因此会增加起引用计数 创建硬链接: ln SRC DEST 符号连接: 可以对目录进行 可以跨分区 指向的是一个文件路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数 创建软连接:ln sv SRC DEST
6.挂载:分区格式化之后就可以挂载使用这个分区了。将额外文件系统与跟根文件系统某现存的目录建立起关联关系,进而使得其目录作为其他文件访问入口的行为称为挂载。把设备关联挂载点:挂载点:Mount Point卸载时:可以使用设备也可以使用挂载点,使用命令umount假如在挂载点下有文件,则在挂在后挂载点中的文件将会被暂时隐藏挂载方法:mount:通过查看/etc/mtab文件显示当前系统一挂载的所有设备。查看内核追踪到自己已挂载的所有设备:cat /proc/mountsmount [fnrsvw] [-t vfstype] [-o OPTOION] DEVICE DIRdevice :指明挂载设备:(1)设备文件(2)卷标:-L "LABEL" (3)UUID,-U ‘UUID'(4)伪文件系统:proc,sysfs,devtmpfs,configfsdir:挂载点:事先存在,最好使用空目录正在使用中的设备是无法卸载的常用选项:-t vsftype:指定要挂载的设备上的文件系统类型-r:readonly,只读挂载-w:read and write:读写挂载-n:不更新/etc/mtab文件 (但是在/proc/mounts能看到)/etc/mtab-a:自动挂载所有支持自动挂载的设备;(定义在/etc/fstab文件中,且挂载选项中有“自动挂载”功能)-L:‘LABEL’ :一卷表指定挂载设备-U;'UUID":-B: --bind :绑定目录当另一个目录上-o option:(挂载文件系统的选项) async:异步模式; sync:同步模式.数据安全性高,但是性能高 atime : noatime :每次访问挂载点下的文件或目录时,访问时间戳是不会改变的 diratime: nodiratime:每次访问挂载点下的目录时,访问时间戳是不会改变的 auto/noauto:是否支持自动挂载 exec/noexec:是否支持将文件系统上应用程序运行为进程 dev/nodev:是否支持在此文件系统使用设备文件 suid/nosuid: remount:重新挂载。 ro: rw: user/nouser:是否允许普通用户挂载此设备 acl:启用此文件系统上的acl功能卸载:umount 挂载点或者挂载设备查看正在访问挂载设备文件系统的程序进程:fuser -v /MOUNT_POINT终止正在访问挂载设备文件系统的程序进程fuser -km /MOUNT_POINT挂载交换分区:启用:swaponswapon [option]... [device]-a;激活所有的交换分区-p PRIORITY:指定优先级:禁用:swapoff
至此一个磁盘经过分区,格式化,挂载之后用户就可以使用这个磁盘中的分区了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息