磁盘配额(Quota)

针对于Linux系统主机的Quota

分三种

  1. 限制某一群组的最大磁盘限额
  2. 限制某一用户的最大磁盘限额
  3. 限制某一目录的最大磁盘限额

    Quota的一些限制

  4. EXT文件系统中仅能针对整个系统进行限制,不能做到针对目录的磁盘限额,而XFS已经可以使用Project模式来设计不同的磁盘限额

  5. Linux核心必须支持Quota
  6. 对Root无法限额
  7. 若启用SELinux,并非能对所有目录限额

    Quota的一些规范和注意

    Quota既然作为磁盘管理,那么当然能控制inode和block的容量

  8. 限制inode,限制用户的文件数量

  9. 限制block,限制磁盘文件容量,这种相对常见

    soft和hard

    磁盘限额分为两个限额值:

  10. hard:此为不能超过的限定值,若超过了则会锁住磁盘的使用权

  11. soft:此为警告值,超过这个值后会获得一个宽恕时间,若在宽恕时间内将磁盘容量降于soft之下,宽恕时间清零,若在宽恕时间内还不下降,则锁住磁盘使用权

    磁盘列阵RAID(Redundant Arrays of Inexpensive Disks)

  12. RAID-0(stripe,等量模式,性能最佳,有损坏风险)
    例如有两块磁盘,当数据传送时,数据被等量分隔,然后不同磁盘同时存储该数据,一般越多磁盘组成RAID,速度就越快,因为每个磁盘负责的工作降低了,且尽量保持每个磁盘的容量相同(木桶短板效应),若RAID-0上任意一个磁盘损坏,可能导致文件整体的损坏

  13. RAID-1(mirror,映像模式,容量减半,有备份)
    让同一份数据,备份在两个磁头上。这样容量几乎减少了一半
  14. RAID 1+0
    以上两种模式的综合:先将两组磁盘组成RAID-1,再将两组组成RAID-0,这样当数据写入时,将数据分开,流入2个(或多个)RAID-0,在RAID-0中是两组磁盘组成的RAID-1
  15. RAID 5(兼顾性能和安全)
    RAID 5至少三颗以上的磁盘才能组成这种类型的磁盘列阵,当磁盘每次被记录时还会在每个磁盘中加入同位检查元素(Parity),这样的做法,会当一个磁盘出现损坏时,可以借其他两个磁盘的同位检查元素来恢复损坏磁盘,但是会使磁盘总容量减一,并且RAID5不支持2个或两个以上磁盘的损坏。此外RAID 6使用两个磁盘的容量来作为同位检查元素(Parity),这样在损坏两个磁盘的情况下仍然能恢复

    software RAID、hardware RAID

  16. hardware RAID:是指通过硬件的方式,有专门的芯片来处理RAID任务,不会耗费系统的I/O总线,但价格偏贵

  17. software RAID:是指通过软件的方式来实现RAID,这样会消耗一些系统计算资源

    LVM (Logic Volume Manager)

    即可弹性的改变filesystem的容量,具体方法为将多个实体的partition整合为一个磁盘,并且还可以自定义的新增和移除新的partition到该磁盘。
    LVM实现原理大概为,将不同的partition通过软件合并为一个VG,将VG经过分区后得到不同的LV,而实现filesystem的增大缩小的原理主要依靠PE:

  18. Physical Volume:PV(实体滚动条):
    LVM最底层,与系统的硬件相关:partition(或disk)的systemID转化为LVM的8e,再经过pvcreate命令转化为PV

  19. Volume Group:VG(滚动条群组):
    LVM中逻辑容量最大的。
  20. Physical Extend:PE(实体范围块):
    为LVM中最小的存储,预设为4MB大小。文件读写都是由PE处理的
  21. Logic Volume:LV(逻辑滚动条):
    在VG中可以再分为LV,LV的大小与其有多少PE有关,而实现filesystem的容量可变主要是依靠交换PE来实现的,将其他的LV中的PE转移到其他LV以降低其容量,其他LV容量则会增加。
    image.png

实际流程:
image.png
数据通过LV写入磁盘的方式有两种:

  1. linear:线性模式,若有两个partition,则当第一个partition被存储满时,才会使用另外一个partition
  2. triped:交错模式,若有两个partition,当数据读写时,将数据分开并存储到两个其他partition

    LVM的快照

    快照即把即将要变动的文件存储下来,放到快照区。
    image.png

    LVM相关指令

    image.png