centos6 磁盘与文件系统管理

一、磁盘管理

  • 磁盘构成

    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 bytes 255 heads, 63 sectors/track, 2610 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: 0x000bd0d6 Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 157 1048576 82 Linux swap / Solaris Partition 2 does not end on cylinder boundary. /dev/sda3 157 2611 19717120 83 Linux 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


[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:   <none>    #####文件系统的名称(不一定会有)
Last mounted on:          /boot    ######上一次挂载的目录
Filesystem UUID:          ccad4cd9-7fa5-4160-aebb-d9db56f09b79  #####UUID
Filesystem magic number:  0xEF53
Filesystem 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_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:              1
Block size:               1024     #########单个block大小
Fragment size:            1024
Reserved GDT blocks:      256
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         2048
Inode blocks per group:   256
Flex block group size:    16
Filesystem created:       Sun Apr 29 19:23:19 2018
Last mount time:          Wed May 30 14:03:45 2018
Last write time:          Wed May 30 14:03:45 2018
Mount count:              19
Maximum mount count:      -1
Last checked:             Sun Apr 29 19:23:19 2018
Check interval:           0 (<none>)
Lifetime writes:          34 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:              128      ####inode容量大小
Journal inode:            8      #######指向记录journal区块的inode
Default directory hash:   half_md4
Directory Hash Seed:      180b408c-5ab1-49eb-9284-c2395862e7b0
Journal backup:           inode blocks
Journal features:         (none)
Journal size:             4096k    ######journal大小
Journal length:           4096  
Journal sequence:         0x00000032
Journal start:            0


Group 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/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
66384 inodes, 265064 blocks
13253 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=272629760
9 block groups
32768 blocks per group, 32768 fragments per group
7376 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376

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

This filesystem will be automatically checked every 27 mounts or
180 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] 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 2 directories and 0 files
quotacheck: 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.user
drwx------ 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值