一、磁盘管理

  • 磁盘构成

    1、圆形磁盘

    2、磁盘读取头

    3、机械手臂

    4、主轴马达

  • 运作原理

    数据存储在具有磁性物质的圆形磁盘上,读写操作主要是通过机械手臂上的磁盘读取头来达成,实际运作时,主轴马达让磁盘转动,然后机械手臂可伸展让读取头在磁盘上进行读写

  • 结构

    sector(扇区):磁盘的最小存储单位,主要分为512byte和4Kbyte两种规格;

    track(磁道):由同一个同心圆的扇区组合成的圆就是磁道;

    cylinder(柱面):所有磁盘上面的同一磁道形成的圆柱;早期时柱面是最小的分区单位,现在可以使用扇区为最小单位;

  • MBR分区表与GPT分区表

  MBR:存放于第一个扇区,第一扇区包含主要起动记录区(MBR)446byte(储存开机管理程序)和分区表64字节(记录分区信息)。

  GPT:相对于早期的每个扇区512byte,现在可以达到4Kbyte,所以为了兼容所有硬盘,GPT采用逻辑区块地址(Logical Block Adress即LBA),每个LBA默认为512byte,第一块为LBA0,GPT使用34个LBA来记录分区信息,并且使用整个磁盘最后33个LBA最为备份。LBA0与MBR类似,由446byte储存开机管理程序和46byte的标识(用来标识GPT格式)。LBA1表头记录,记录分区表本身得大小和位置。LBA2-33实际的分区信息记录的地方,每个LBA可以记录4个分区。

  • 分区操作

    1、查看分区与目录的容量

[root@web01 ~]# df     ####直接查看所有分区
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda3            % /
tmpfs                           % /dev/shm
/dev/sda1                  % /boot
[root@web01 ~]# df -h /dev/sda1    #####-h 以人类可读的显示分区容量,接具体分区可查看具体分区容量
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       194M   29M  155M  % /boot
[root@web01 ~]# df -i /dev/sda1        ######查看分区的inode值
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/sda1                % /boot#################################Filesystem:文件系统所在的分区1K-blocks:以KB为单位显示总容量Used:使用量Available:剩余空间Use%:使用率Mounted on:挂载地址##################################[root@web01 ~]# lsblk     #######列出所有存储设备NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsda      8:0    0   20G  0 disk ├─sda1   8:1    0  200M  0 part /boot├─sda2   8:2    0    1G  0 part [SWAP]└─sda3   8:3    0 18.8G  0 part /sdb      8:16   0    8G  0 disk sr0     11:0    1  4.2G  0 rom [root@web01 ~]# blkid      #####列出所有设备的uuid/dev/sda1: UUID="ccad4cd9-7fa5-4160-aebb-d9db56f09b79" TYPE="ext4" /dev/sda2: UUID="9729cf63-ac88-4939-951a-994330570127" TYPE="swap" /dev/sda3: UUID="bafd90ed-80ae-463e-9aa6-c7ea68d4de44" TYPE="ext4"

[root@web01 ~]# du -s /etc/    ####-s 列出总量,而不列出目录下个别目录的占用量27888    /etc/[root@web01 ~]# du --max-depth=0 /etc/    ####--max-depth=0  列出当前目录容量27888    /etc/[root@web01 ~]# du --max-depth=1 /etc/    ####--max-depthp=1  列出当前目录,以下一层目录的容量28    /etc/abrt8    /etc/cron.monthly28    /etc/kdump-adv-conf...中间省略...184    /etc/fonts27888    /etc

    2、磁盘分区

[root@web01 ~]# fdisk -l    ####

Disk /dev/sda:  bytes
 heads,  sectors/track,  cylinders
Units = cylinders of  *  =  bytes
Sector size (logical/physical):  bytes /  bytes
I/O size (minimum/optimal):  bytes /  bytes
Disk identifier: 0x000bd0d6

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *                                Linux
Partition  does not end on cylinder boundary.
/dev/sda2                                 Linux swap / Solaris
Partition  does not end on cylinder boundary.
/dev/sda3                              Linux

Disk /dev/sdb:  MB,  bytes
 heads,  sectors/track,  cylinders
Units = cylinders of  *  =  bytes
Sector size (logical/physical):  bytes /  bytes
I/O size (minimum/optimal):  bytes /  bytes
Disk identifier: 0x00026c48

   Device Boot      Start         End      Blocks   Id  System

[root@web01 ~]# fdisk /dev/sdb      #####将mbr格式的硬盘分区GPT可以使用gdisk(centos7)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to         switch off the mode (command 'c') and change display units to         sectors (command 'u').

Command (m for help): m      #######打印帮助选项Command action   a   toggle a bootable flag   b   edit bsd disklabel   c   toggle the dos compatibility flag   d   delete a partition        ######删除一个分区   l   list known partition types   m   print this menu   n   add a new partition      ######增加一个分区   o   create a new empty DOS partition table   p   print the partition table    ####打印出分区表   q   quit without saving changes    ####不保存就离开   s   create a new empty Sun disklabel   t   change a partition's system id   u   change display/entry units   v   verify the partition table   w   write table to disk and exit    ####保存配置后离开   x   extra functionality (experts only)

Command (m for help): n        ####新增分区Command action   e   extended   p   primary partition (1-4)p                    #####选择主分区Partition number (1-4): 1First cylinder (1-1044, default 1):     #####直接回车,从默认位置Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +1G      ####给予分区1G容量

Command (m for help): p        ####打印分区

Disk /dev/sdb: 8589 MB, 8589934592 bytes255 heads, 63 sectors/track, 1044 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00026c48

   Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1         132     1060258+  83  Linux

[root@web01 ~]# partprobe     更新linux核心的分区表信息

二、文件系统管理

  • ext4索引式文件系统,文件系统在格式化的时候会区分多个区块群组,每个区块群组都是独立的。通常会将文件的权限属性与实际数据放在不同的区块,权限予属性放置到inode中,数据放置在data block区块中。主要包含如下部分(每个文件系统只有第一个是block goup里是superblock其他的都是备份)  

    、data block:数据块,用来存放文件内容数据的地方,原则上,block的大小与数量在格式化完就不能在改变,除非重新格式化;每个blocku最多只能存放一个文件的数据;
    、inode table:inode表格,记录文件的属性与数据指向block的具体位置
    、superblock:超级区块,记录整个filesystem的相关信息,包括inode与block的总量,已使用量,剩余量,大小;
    、filesystem description:文件描述符,记录每个block group开始与结束的block号码;
    、block bitmap:记录block已使用的block和未使用的block;
    、inode bitmap:记录inode已使用的inode和未使用的inode;
  • inode

  • 查看文件系统信息
[root@web01 ~]# dumpe2fs /dev/sda1    ###查看文件系统
dumpe2fs  (-May-)
Filesystem volume name:   <none>    #####文件系统的名称(不一定会有)
Last mounted on:          /boot    ######上一次挂载的目录
Filesystem UUID:          ccad4cd9-7fa5--aebb-d9db56f09b79  #####UUID
Filesystem magic number:  0xEF53
Filesystem revision #:     (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         clean      #####文件系统的状态,clean是没问题
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              51200    #####inode总数
Block count:              204800   ######block总数
Reserved block count:     10240    #####保留的block总数
Free blocks:              168662    ######空闲的block数量
Free inodes:              51162    #####空闲的inode数量
First block:
Block size:               1024     #########单个block大小
Fragment size:
Reserved GDT blocks:
Blocks per group:
Fragments per group:
Inodes per group:
Inode blocks per group:
Flex block group size:
Filesystem created:       Sun Apr  ::
Last mount time:          Wed May  ::
Last write time:          Wed May  ::
Mount count:
Maximum mount count:      -
Last  ::
Check interval:            (<none>)
Lifetime writes:           MB
Reserved blocks uid:       (user root)
Reserved blocks gid:       (group root)
First inode:
Inode size:              128      ####inode容量大小
Journal inode:            8      #######指向记录journal区块的inode
Default directory hash:   half_md4
Directory Hash Seed:      180b408c-5ab1-49eb--c2395862e7b0
Journal backup:           inode blocks
Journal features:         (none)
Journal size:             4096k    ######journal大小
Journal length:           4096  
Journal sequence:         0x00000032
Journal start:            

Group : (Blocks -) [ITABLE_ZEROED]    ####第一块block group的位置
  Checksum
  Primary superblock at , Group descriptors at -2  主要superblock的所在
  Reserved GDT blocks at -
  Block bitmap at  (+), Inode bitmap at  (+)
  Inode table at - (+)
   free blocks,  free inodes,  directories,  unused inodes
  Free blocks: -
  Free inodes: -2048......省略.........
  • 格式化分区
[root@web01 ~]# mkfs.ext4 -b   /dev/sdb1
mke2fs  (-May-)
Filesystem label=
OS type: Linux
Block size= (log=)
Fragment size= (log=)
Stride= blocks, Stripe width= blocks
 inodes,  blocks
 blocks (5.00%) reserved for the super user
First data block=
Maximum filesystem blocks=
 block groups
 blocks per group,  fragments per group
 inodes per group
Superblock backups stored on blocks:
    , , , 

Writing inode tables: done
Creating journal ( blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically  mounts or
 days, whichever comes first.  Use tune2fs -c or -i to override.

三、磁盘配额Quota

  • 模式

    1、限制某一群组能使用的最大磁盘配额(组员的资源分配不均匀,如果a,b,c三人共100G空间,如果a,b各使用了40G,那么c最多只能由20G)

    2、限制某一用户的最大磁盘限额

    注:这是根据用户在文件系统下所有的文件统计,不针对单个目录

  • 使用限制

    1、只能针对整个文件系统

    2、核心必须支持quota

    3、只对一般用户有效

  • 实现方法

    1、限制inode使用量,限制存放的文件数量

    2、限制block使用量,限制存放的文件容量

    3、hard值:绝对不能超过的值

    4、soft值:超过限制仍可以正常使用,但是系统会提示警告信息

    5、grace time:宽限时间,在超过soft值后会进入倒计时,倒计时结束前,仍可以使用,倒计时结束后,以soft值代替hard值,使用者便不能使用磁盘

  • 操作

1、开启文件系统quota支持

[root@web01 ~]# mount|grep /mnt/dev/sdb1 on /mnt type ext4 (rw)[root@web01 ~]# vim /etc/fstab /dev/sdb1               /mnt                    ext4    defaults,usrquota,grpquota       0    ####挂载参数中,启用quota[root@web01 ~]# umount /mnt[root@web01 ~]# mount -a[root@web01 ~]# mount |grep /mnt/dev/sdb1 on /mnt type ext4 (rw,usrquota,grpquota)

2、创建quota配置文件

[root@web01 ~]# quotacheck -avug   #####创建quota配置文件,不要重复创建
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sdb1 [/mnt] done
quotacheck: Cannot stat old user quota file /mnt/aquota.user: No such file or directory. Usage will not be substracted.
quotacheck: Cannot stat old group quota file /mnt/aquota.group: No such file or directory. Usage will not be substracted.
quotacheck: Cannot stat old user quota file /mnt/aquota.user: No such file or directory. Usage will not be substracted.
quotacheck: Cannot stat old group quota file /mnt/aquota.group: No such file or directory. Usage will not be substracted.
quotacheck: Checked  directories and  files
quotacheck: Old file not found.
quotacheck: Old file not found.
[root@web01 ~]# ll  /mnt/
total
-rw-------  root root   May  : aquota.group
-rw-------  root root   May  : aquota.user
drwx------  root root  May  : lost+found

3、启动,关闭与限制值配置

[root@web01 ~]# quotaon -avug    ####开启quota
/dev/sdb1 [/mnt]: group quotas turned on
/dev/sdb1 [/mnt]: user quotas turned on
[root@web01 ~]# edquota -u user    ####针对用户user做磁盘限额,以下为配置文件

Disk quotas for user user (uid 1015):  
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb1                         0          0          0          0        0        0############注释#############################Filesystem:文件系统,说明该限制是针对那个文件系统blocks:磁盘容量,系统自动算出,不能动soft:第一个soft,block的soft限制值,单位KBhard:第一个hard,block的hard限制值,单位KBinodes:系统自动算出,不能动soft:第二个soft,inode的soft限制值,单位 个hard:第二个hard,inode的hard限制值,单位 个

[root@web01 ~]# edquota -t    #########修改宽限时间

Grace period before enforcing soft limits for users:Time units may be: days, hours, minutes, or seconds  Filesystem             Block grace period     Inode grace period  /dev/sdb1                     7days                  7days

[root@web01 ~]# edquota -p user -u test  #######将用户user磁盘配额属性复制给test     [root@web01 ~]# quotaoff -a           ######关闭所有磁盘配额[root@web01 ~]# quotaoff -u /mnt    ######关闭基于用户限制的磁盘配额[root@web01 ~]# quotaoff -g /mnt           #########关闭基于组限制的磁盘配额                                             

4、查看用户磁盘配额情况

[root@web01 ~]# quota -uvs user test    ####查看用户quota情况
Disk quotas ):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdb1
Disk quotas ):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdb1                                                         #####[root@web01 ~]# quota -gvs user test    为查看用户组磁盘配额情况 
  • 不改动现有环境对某目录做磁盘限额

  1、挂载新的文件系统,例:挂载在/data目录

  2、将需要做磁盘限额的目录里的数据移动到/data目录下

  3、将需要做磁盘限额的目录软连接到/data目录

  4、对挂载在/data目录的文件系统进行磁盘配额

    

centos6 磁盘与文件系统管理的更多相关文章

  1. 磁盘及文件系统管理(以及btrfs)

    Linux系统管理 磁盘分区及文件系统管理 raid lvm 网络属性管理 程序包管理 sed及awk 进程查看和管理 内核管理(内核的编译和安装) 系统启动流程 定制,编译内核,busybox 系统 ...

  2. Linux学习笔记之Linux磁盘及文件系统管理笔记

    Linux磁盘及文件系统管理 CPU,memory(RAM),I/O i/o: disks,ehtercard disks:持久存储数据 接口类型: IDE(ata): 并口,133MB/s;并行总线 ...

  3. linux(3)磁盘与文件系统管理/查看硬盘、内存空间/文件系统的操作/ 文件的压缩和打包

    一.磁盘与文件系统管理 1.分区与文件系统分区:记录每一个分区的开始柱面和结束柱面主引导区(master boot recorder):记录分区的数据,记录硬盘里所有的分区信息分区划分好后,要将分区格 ...

  4. Linux之磁盘与文件系统管理

    磁盘及文件系统管理详解 [参考文献:马哥视频] 原文:http://blog.csdn.net/u013008795/article/details/51150075 目前市场上主流的磁盘是机械式硬盘 ...

  5. Linux磁盘与文件系统管理笔记

    ### Linux磁盘与文件系统管理 linux 最传统的文件系统格式是EXT2,centos7 默认文件系统是xfs(日志式文件系统) 磁盘的组成: 盘片 机械手臂 主轴马达 (机械硬盘) 磁盘格式 ...

  6. Linux学习笔记—Linux磁盘与文件系统管理(转载)

    认识EXT2文件系统 文件的系统特性 Linux的正规文件系统为Ext2 文件数据除了文件实际内容外,还包括其他属性(文件权限.文件属性). 文件系统将这两部分数据分别存放在不同的块,权限和属性放在i ...

  7. Linux磁盘与文件系统管理概要

    Linux磁盘与文件系统管理 硬盘组成与分区 硬盘组成 圆形的盘片(主要记录数据) 机械手臂与磁头(可读取盘片上的数据) 主轴马达,转动盘片,让机械手臂的磁头在盘片上读取数据 扇区(Sector)为最 ...

  8. Linux磁盘及文件系统管理

    在LINUX中我们知道一个很重要的概念,那就是"一切皆文件",这里的一切表示所有在LINUX系统的对象,自然也包括了LINUX中的硬盘设备.在LINUX中所有设备都被抽象成一个文件 ...

  9. Linux入门-3 Linux磁盘及文件系统管理

    1. 磁盘基本概念 1.1 磁盘结构:盘片(单碟vs多碟).磁头(读写数据) 1.2 磁盘在Linux中的表示 1.3 分区概念 2 使用fdisk进行磁盘管理 3 Linux文件系统 mke2fs ...

随机推荐

  1. bzoj 1853: [Scoi2010]幸运数字&&2393: Cirno的完美算数教室【容斥原理】

    翻了一些blog,只有我用状压预处理嘛2333,.把二进制位的0当成6,1当成8就行啦.(2393是2和9 然后\( dfs \)容斥,加上一个数的\( lcm \),减去两个数的\( lcm \), ...

  2. hibernate简单实现连接数据库,并实现数据的操作

    1:创建实体类 package com.yinfu.entity; public class User { private int id; private String username; priva ...

  3. c语言中的rand()函数用法

    rand() rand()函数作用:用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的. rand()函数返回:返回一个范围在 ...

  4. 51nod 1088 最长回文子串

    1088 最长回文子串 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串. 输入一 ...

  5. 递推DP UVA 607 Scheduling Lectures

    题目传送门 题意:教授给学生上课,有n个主题,每个主题有ti时间,上课有两个限制:1. 每个主题只能在一节课内讲完,不能分开在多节课:2. 必须按主题顺序讲,不能打乱.一节课L时间,如果提前下课了,按 ...

  6. APP增量更新

    增量更新的概念: 当我们手机上安装的app版本与服务器的最新版本不一致的时候,传统做法是重新下载安装一个最新版的apk文件,不过这种方式比较耗流量,不利于用户体验.增量更新就是只下载当前app版本与最 ...

  7. Java实现三角形计数

    题: 解: 这道题考的是穷举的算法. 一开始看到这道题的时候,本能的想到用递归实现.但使用递归的话数据少没问题,数据多了之后会抛栈溢出的异常.我查了一下,原因是使用递归创建了太多的变量, 每个变量创建 ...

  8. 窗体WINFORM

    窗体的事件:删除事件:先将事件页面里面的挂好的事件删除,再删后台代码里面的事件 Panel是一个容器 1.Label -- 文本显示工具Text:显示的文字取值.赋值:lable1.Text 2.Te ...

  9. ava的动态代理机制详解

    在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的 ...

  10. AJPFX关于Java Object类常用方法小总结

    java.lang.Object   java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. Object类 ...