博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
centos6 磁盘与文件系统管理
阅读量:5322 次
发布时间:2019-06-14

本文共 12558 字,大约阅读时间需要 41 分钟。

一、磁盘管理

  • 磁盘构成

    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       19407136 3503040  14918240  20% /tmpfs             767420       0    767420   0% /dev/shm/dev/sda1         198337   29675    158422  16% /boot[root@web01 ~]# df -h /dev/sda1    #####-h 以人类可读的显示分区容量,接具体分区可查看具体分区容量Filesystem      Size  Used Avail Use% Mounted on/dev/sda1       194M   29M  155M  16% /boot[root@web01 ~]# df -i /dev/sda1        ######查看分区的inode值Filesystem     Inodes IUsed IFree IUse% Mounted on/dev/sda1       51200    38 51162    1% /boot ################################# Filesystem:文件系统所在的分区 1K-blocks:以KB为单位显示总容量 Used:使用量 Available:剩余空间 Use%:使用率 Mounted on:挂载地址 ################################## [root@web01 ~]# lsblk     #######列出所有存储设备 NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT sda      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/abrt 8    /etc/cron.monthly 28    /etc/kdump-adv-conf ...中间省略... 184    /etc/fonts 27888    /etc

    2、磁盘分区

[root@web01 ~]# fdisk -l    ####Disk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000bd0d6   Device Boot      Start         End      Blocks   Id  System/dev/sda1   *           1          26      204800   83  LinuxPartition 1 does not end on cylinder boundary./dev/sda2              26         157     1048576   82  Linux swap / SolarisPartition 2 does not end on cylinder boundary./dev/sda3             157        2611    19717120   83  LinuxDisk /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 [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): 1 First cylinder (1-1044, default 1):     #####直接回车,从默认位置 Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +1G      ####给予分区1G容量 Command (m for help): p        ####打印分区 Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk 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其他的都是备份)  
    1、data block:数据块,用来存放文件内容数据的地方,原则上,block的大小与数量在格式化完就不能在改变,除非重新格式化;每个blocku最多只能存放一个文件的数据;2、inode table:inode表格,记录文件的属性与数据指向block的具体位置3、superblock:超级区块,记录整个filesystem的相关信息,包括inode与block的总量,已使用量,剩余量,大小;4、filesystem description:文件描述符,记录每个block group开始与结束的block号码;5、block bitmap:记录block已使用的block和未使用的block;6、inode bitmap:记录inode已使用的inode和未使用的inode;

     

  • inode

 

  • 查看文件系统信息
[root@web01 ~]# dumpe2fs /dev/sda1    ###查看文件系统dumpe2fs 1.41.12 (17-May-2010)Filesystem volume name:   
    #####文件系统的名称(不一定会有)Last mounted on: /boot    ######上一次挂载的目录Filesystem UUID: ccad4cd9-7fa5-4160-aebb-d9db56f09b79  #####UUIDFilesystem magic number: 0xEF53Filesystem revision #: 1 (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_isizeFilesystem flags: signed_directory_hash Default mount options: user_xattr aclFilesystem state: clean      #####文件系统的状态,clean是没问题Errors behavior: ContinueFilesystem OS type: LinuxInode count: 51200    #####inode总数Block count: 204800   ######block总数Reserved block count: 10240    #####保留的block总数Free blocks: 168662    ######空闲的block数量Free inodes: 51162    #####空闲的inode数量First block: 1Block size: 1024     #########单个block大小Fragment size: 1024Reserved GDT blocks: 256Blocks per group: 8192Fragments per group: 8192Inodes per group: 2048Inode blocks per group: 256Flex block group size: 16Filesystem created: Sun Apr 29 19:23:19 2018Last mount time: Wed May 30 14:03:45 2018Last write time: Wed May 30 14:03:45 2018Mount count: 19Maximum mount count: -1Last checked: Sun Apr 29 19:23:19 2018Check interval: 0 (
)Lifetime writes: 34 MBReserved blocks uid: 0 (user root)Reserved blocks gid: 0 (group root)First inode: 11Inode size: 128      ####inode容量大小Journal inode: 8      #######指向记录journal区块的inodeDefault directory hash: half_md4Directory Hash Seed: 180b408c-5ab1-49eb-9284-c2395862e7b0Journal backup: inode blocksJournal features: (none)Journal size: 4096k    ######journal大小Journal length: 4096  Journal sequence: 0x00000032Journal start: 0Group 0: (Blocks 1-8192) [ITABLE_ZEROED]    ####第一块block group的位置 Checksum 0x889e, unused inodes 2010 Primary superblock at 1, Group descriptors at 2-2  主要superblock的所在 Reserved GDT blocks at 3-258 Block bitmap at 259 (+258), Inode bitmap at 275 (+274) Inode table at 291-546 (+290) 3785 free blocks, 2010 free inodes, 6 directories, 2010 unused inodes Free blocks: 4408-8192 Free inodes: 39-2048 ......省略.........

 

  • 格式化分区
[root@web01 ~]# mkfs.ext4 -b 4096  /dev/sdb1mke2fs 1.41.12 (17-May-2010)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks66384 inodes, 265064 blocks13253 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=2726297609 block groups32768 blocks per group, 32768 fragments per group7376 inodes per groupSuperblock backups stored on blocks:     32768, 98304, 163840, 229376Writing inode tables: done                            Creating journal (8192 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 27 mounts or180 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 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] donequotacheck: 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 2 directories and 0 filesquotacheck: Old file not found.quotacheck: Old file not found.[root@web01 ~]# ll  /mnt/total 32-rw------- 1 root root  6144 May 30 18:07 aquota.group-rw------- 1 root root  6144 May 30 18:07 aquota.userdrwx------ 2 root root 16384 May 30 16:38 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限制值,单位KB hard:第一个hard,block的hard限制值,单位KB inodes:系统自动算出,不能动 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 for user user (uid 1015):      Filesystem  blocks   quota   limit   grace   files   quota   limit   grace      /dev/sdb1       0       0       0               0       0       0        Disk quotas for user test (uid 1005):      Filesystem  blocks   quota   limit   grace   files   quota   limit   grace      /dev/sdb1       0       0       0               0       0       0       #####[root@web01 ~]# quota -gvs user test    为查看用户组磁盘配额情况
  •  不改动现有环境对某目录做磁盘限额

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

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

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

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

 

 

    

转载于:https://www.cnblogs.com/suffergtf/p/9112118.html

你可能感兴趣的文章
BZOJ 2243: [SDOI2011]染色( 树链剖分 )
查看>>
BZOJ 1925: [Sdoi2010]地精部落( dp )
查看>>
三点坐标求三角形面积(数学)
查看>>
c++中的string常用函数用法总结!
查看>>
C语言学习记录_2019.02.06
查看>>
Java中Calendar工具类的一些常用方法
查看>>
常用JS调试工具使用方法,帮你快速定位问题(Firebug+ IE“开发人员工具”)
查看>>
[bzoj4552][Tjoi2016&Heoi2016]排序
查看>>
界面交互之支付宝生活圈pk微信朋友圈
查看>>
ES6入门 阮一峰
查看>>
快速理解Docker - 容器级虚拟化解决方案
查看>>
[erlang] mnesia
查看>>
request对象
查看>>
字符串比较
查看>>
epoll 技术(转)
查看>>
<转>Shell脚本相关
查看>>
使用FreeMarker加载远程主机上模板文件,比如FTP,Hadoop等(转载)
查看>>
epoll演示样本
查看>>
Java的位运算符具体解释实例——与(&amp;)、非(~)、或(|)、异或(^)
查看>>
java 注解 学习
查看>>