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

Linux 磁盘管理与系统管理

2015-09-14 23:34 591 查看

Linux文件系统管理

1、Linux磁盘磁盘类型
机械式磁盘:
track 磁道:磁道可划分扇区,磁盘外则性能好些sector 扇区:用于存数据,一般一个扇区512bytecylinder:柱面 相同编号的磁道是分区的基本单位,从最外至里划分分区:每个分区可划分独立的文件系统:分区是逻辑边界MBR:主引导扇区 (0磁道,0扇区)master boot record 512byte全局,独立OS446byte:boot loader 引导某分区操作系统64byte:filesystem allocation table (每16个字节标记一个分区)2byte:Magic Number 55AA(MBR标记是否有效)其它标记无效所有系统磁盘的划分由 MBR决定(一个磁盘受4个主分区限制、2.2TB空间限制)主分区+扩展小于=4个当中,取出部分为指针,指向扩展分区 (另外更大的空间)扩展分区只能够有一个,剩余的空间都会分配到扩展分区中。GPD:全局唯一标识分区表(GUID Partition Table,缩写:GPT)代替MBR,支持大于2TB的空间

SSD式磁盘:
基于闪存的固态硬盘是固态硬盘的主要类别,其内部构造十分简单,固态硬盘内主体其实就是一块PCB板,而这块PCB板上最基本的配件就是控制芯片、缓存芯片和用于存储数据的闪存芯片。

2、VFS:(Virtual File System 虚拟文件系统)
VFS 是一种软件机制,也许称它为 Linux 的文件系统管理者更确切点,与它相关的数据结构只存在于物理内存当中。所以在每次系统初始化期间,Linux 都首先要在内存当中构造一棵 VFS 的目录树,实际上便是在内存中建立相应的数据结构。VFS 目录树在 Linux 的文件系统模块中是个很重要的概念,希望读者不要将其与实际文件系统目录树混淆,在笔者看来,VFS 中的各目录其主要用途是用来提供实际文件系统的挂载点,当然在 VFS 中也会涉及到文件级的操作,本文不阐述这种情况。下文提到目录树或目录,如果不特别说明,均指 VFS 的目录树或目录。VFS 目录树结构:



3、Linux文件系统支持的类型:
基本文件系统:Ext2, Ext3, Ext4, Reiserfs(支持小文件), xfs(支持大文件), btrfs(CentOS7.0以后), JFS, vfat(支持WindowsFAT32), NTFS交换分区:swap集群文件系统:GFS2(全局文件系统), OCFS2网络文件系统:NFS, smbfs(CIFS) Common Internet File System光盘:iso9660分布式文件系统:ceph,moosefs, mogilefs, hdfs, gfs, glusterfsUnix: ffs, ufs, jfs, jfs2(1)日志型文件系统:非日志型文件系统:ext2日志型文件系统:ext3(2)swap: 交换分区创建文件系统:类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。

4、文件系统管理工具:
在分区上执行格式化(高级格式化):要使用某种文件系统需满足两个条件:内核中:支持此中文件系统。用户空间:有文件系统管理工具。
1.创建工具:mkfs、mke2fs、e2label、blkid、dumpe2fs、tune2fs、fsck、e2fsck
mkfs命令(make filesystem)功能:创建文件系统格式:mkfs [-V] [-t fstype] [fs-options] filesys [blocks]常用选项:-t fstype 指定要创建何种文件类型-c 在制做档案系统前,检查该分区是否有坏道-fs 指定建立文件系统时的参数实例:# mkfs -t ext4 /dev/sdb1
Ext4: mkfs -t ext4 = mkfs.ext4 = mke2fs -t ext4
mke2fs命令功能:创建ext系列文件系统,支持ext2、ext3、ext4格式:mke2fs [OPTION]... DEVICE常用选项:-t {ext2|ext3|ext4}-j : 相当于-t ext3-L Label:卷标-b {1024|2048|4096}:指定块大小-i #: #个字节给预留一个inode-N #: 直接指定预留多少个Inode-I #:Inode大小-m #:预留管理员的空间百分比,默认为5-O:指定分区特性配置文件: /etc/mke2fs.conf
//实例:新建的sda3分区,并将其格式化为ext4格式


blkid命令功能:查看设备的属性,UUID和TYPE格式:Blkid /dev/SOMEDEVICE:实例://查看刚刚新建的sda1分区的文件系统类型、卷标、UUID


e2label命令功能:查看分区的卷标和为分区设定卷标格式e2label /dev/SOMEDEVICE: 查看卷标e2label /dev/SOMEDEVICE 新卷标名实例://使用e2label命令查看sda1的卷标,并把卷标修改为database


dumpe2fs命令功能:用于查看ext文件系统的超级块和快组信息格式:dumpe2fs[ OPTIONS ]... device常用选项:-h: 仅查看超级块中保存的信息
tune2fs命令功能:用于调整"ext2/ext3"文件系统中的可改参数格式:tune2fs [ OPTIONS ]... device常用选项:-l: 查看超级块中的信息-L 卷标名: 设定卷标-m: 预留管理员的空间百分比,默认为5-r: 设定文件系统保留块的大小-j: 如果原来的文件系统为ext2, -j能够将其提升为ext3-O [^] feature[,...]: 调整分区特性-o [^] mount-options[,...]: 设定其默认挂载选项async: 异步I/Osync: 同步I/Onoatime/atime: 是否更新访问时间戳,建议noatimeauto/noauto: 是否能够被mount -a选项自动挂载;diratime/nodiratime: 是否更新目录的访问时间戳;exec/noexec:是否允许执行其中的二进制程序;_netdev: 在网络设备启用之前禁止尝试挂载网络设备remount: 重新挂载acl: 启用facl 文件访问控制列表ro:挂载为只读rw:挂载为可读写user/nouser: 是否允许普通挂载此设备
fsck命令功能:用于检查并且试图修复文件系统中的错误,当文件系统发生错误时,可用fsck指令尝试加以修复常用选项:-t fstype-a:自动修复文件系统,不询问任何问题-r: 交互式修复错误-A:依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统-P:当搭配"-A"参数使用时,则会同时检查所有的文件系统-v:执行时显示详细的信息 e2fsck命令功能:用于检查文件系统的完整性,通过适当的选项可以尝试修复出现的错误常用选项:-f: 强制检测-y: 对问题自动回答为yes-b<superblock>:指定superblock,而不使用预设的superblock-B<区块大小>:指定区块的大小,单位为字节-v:执行时显示详细的信息e2fsck执行后的传回值及代表意义如下:0 没有任何错误发生。1 文件系统发生错误,并且已经修正。2 文件系统发生错误,并且已经修正。4 文件系统发生错误,但没有修正。8 运作时发生错误。16 使用的语法发生错误。128 共享的函数库发生错误。 交换分区:虚拟内存并不是真正的内存,它是在硬盘上划分出一块区域,将其格式化成物理内存相同的格式。一旦发生了物理内存不足的情况,就可以将物理内存页框中的数据移动到虚拟内存上。而物理内存空间被重新释放后,又可以将虚拟内存页框中的数据移动回去,这个过程就好像是在交换数据一样,故这一区域被称为交换分区(swap) mkswap命令功能:用于在一个文件或者设备上建立交换分区。在建立完之后要使用sawpon命令开始使用这个交换区。常用选项:-c:建立交换区前,先检查是否有损坏的区块-L label另外两个相关命令:swapon-a #标记所有的交换分区都为启用状态-p #: 在启用的时候指定其优先级swapoff-a #禁用所有实例://创建一个空间为6G的分区/dev/sdb2,然后把该分区创建为交换分区

2.文件系统的挂载和使用将额外文件系统与根文件系统某现存的目录建立关联关系,进而使得此目录作为其他文件系统访问入口的行为,称之为挂载,解除此关系关系的过程称为卸载。挂载点:mountpoint,设备挂载至目录:注意:挂载点在挂载后,其内部原有的文件会被暂时隐藏,建议使用空目录作为挂载点相关命令:mount、umount、fuser、free、df、du mount命令功能:用于挂载文件系统到指定的挂载点mount:不跟任何参数,可显示当前系统所有已挂载的设备格式:mount[options] [-t fstype] [-o option] 设备 挂载点常用选项:-tfstype 挂载的文件系统格式-a:加载文件“/etc/fstab”中描述的所有文件系统-o [^]:文件系统默认挂载选项的启用或关闭async:异步模式sync: 同步模式atime/noatime:是否更新访问时间戳;diratime/nodiratime:是否更新目录的访问时间戳;auto/noauto: 是否允许此设备被自动挂载;exec/noexec:是否允许执行此文件系统上应用程序;dev/nodev:是否支持在此设备上使用设备文件;suid/nosuid:remount:重新挂载ro:挂载为只读rw:挂载为可读写user/nouser: 是否允许普通挂载此设备;acl:是否支持此设备上使用facl;defaults:rw,suid, dev, exec, auto, nouser, and async 如挂载时没有设定特性,可使用tune2fs修改:# tune2fs -o mount-option 设备默认挂载属性# tune2fs -o ^mount-option 取消默认挂载属性几个关键的配置文件:/etc/rc.d/rc.sysinit:系统初始化脚本/etc/mtab:记载的是现在系统已经装载的文件系统,包括操作系统建立的虚拟文件等;/etc/fstab:是开机后系统自动挂载的文件系统。此文件中定义的文件系统挂载表:每行定义一个文件系统:(每行包含的内容)
要挂载的设备或伪文件系统 挂载点 文件系统类型挂载选项转储频率自检次序
1、要挂载的设备或伪文件系统设备文件、LABEL=、UUID=、伪文件系统名称2、挂载点3、文件系统类型4、挂载选项,多个选项间使用逗号分隔;defaults5、转储频率0: 从不备份1: 每日备份2: 每隔一天转储6、自检次序0: 不自检1: 首先自检,通常只有/才有1; umount命令功能:卸载已挂载的分区,(当设备空闲时才可以被卸载)格式:umount DEVICEumount MOUNT_POINT fuser命令功能:查看占用挂载的设备的进程:常用选项:fuser-v 挂载点: 查看当前正在访问该挂载点的进程fuser-km 挂载点: 终止所有正在访问该挂载点的进程: free命令功能:查看内存空间使用状态:常用选项:-m: 显示结果以MB为单位

-g: 显示结果以GB为单位

内核映射文件中内存的相关信息:# cat/proc/meminfo df命令功能:查看当前系统上已挂载的分区,及其空间使用信息、inode信息等常用选项:-a或--all:包含全部的文件系统-h或--human-readable:以可读性较高的方式来显示信息-i或--inodes:显示inode的信息-T或--print-type:显示文件系统的类型实例:

du命令功能:统计文件或目录的实际大小常用选项:-a或-all: 显示目录中个别文件的大小-h或--human-readable: 以K,M,G为显示单位-L<符号链接>或--dereference<符号链接>: 显示指定符号链接的源文件大小-S或--separate-dirs: 显示个别目录的大小时,并不含其子目录的大小-c或--total: 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和-s或--summarize: 仅显示总计,只列出最后加总的值-k或--kilobytes: 以KB(1024bytes)为单位输出-m或--megabytes: 以MB为单位输出-l或--count-links:重复计算硬件链接的文件-L<符号链接>或--dereference<符号链接>: 显示选项中所指定符号链接的源文件大小-D或--dereference-args: 显示指定符号链接的源文件大小实例:



练习:
创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至/mydata目录1、使用fdisk命令,创建一个10G的分区

2、使用partx命令更新分区表让内核能够识别到新创建的分区

3、使用e2fs命令为此分区创建文件系统,类型为ext4

4、在根目录下创建mydata目录,并使用mount命令挂载分区

5、使用blkid命令查看该分去的UUD,把该值复制下来,编辑/etc/fstab配置文件,添加一行该分区的信息,下次开机后系统将会自动挂载该分区



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux style sector justify