第十五章、磁碟配额(Quota)与进阶文件系统管理
最近升级日期:2009/09/10

大标题的图示重点回顾
  • Quota 可公平的分配系统上面的磁碟容量给使用者;分配的资源可以是磁碟容量(block)或可创建文件数量(inode);
  • Quota 的限制可以有 soft/hard/grace time 等重要项目;
  • Quota 仅能针对整个 filesystem 进行限制,不是针对目录喔!
  • Quota 的使用必须要核心与文件系统均支持。文件系统的参数必须含有 usrquota, grpquota
  • Quota 实作的命令有 quotacheck, quotaon, edquota, repquota 等命令;
  • 磁盘阵列 (RAID) 有硬件与软件之分,Linux 操作系统可支持软件磁盘阵列,透过 mdadm 套件来达成;
  • 磁盘阵列建置的考量依据为『容量』、『效能』、『数据可靠性』等;
  • 磁盘阵列所建置的等级常见有的 raid0, raid1, raid0+1, raid5 及 raid6
  • 硬件磁盘阵列的装置档名与 SCSI 相同,至於 software RAID 则为 /dev/md[0-9]
  • 软件磁盘阵列的状态可藉由 /proc/mdstat 文件来了解;
  • LVM 强调的是『弹性的变化文件系统的容量』;
  • 与 LVM 有关的组件有: PV/VG/PE/LV 等组件,可以被格式化者为 LV
  • LVM 拥有快照功能,快照可以记录 LV 的数据内容,并与原有的 LV 共享未更动的数据,备份与还原就变的很简单;
  • Ext3 透过 resize2fs 命令,可以弹性的调整文件系统的大小

大标题的图示本章习题
( 要看答案请将鼠标移动到『答:』底下的空白处,按下左键圈选空白处即可察看 )
  • 情境模拟题一:由於 LVM 可以弹性调整 filesystem 的大小,但是缺点是可能没有加速与硬件备份(与快照不同)的功能。 而磁盘阵列则具有效能与备份的功能,但是无法提供类似 LVM 的优点。在此情境中,我们想利用『在 RAID 上面建置 LVM』的功能,以达到两者兼顾的能力。

    • 目标:测试在 RAID 磁碟上面架构 LVM 系统;
    • 需求:需要具有磁碟管理的能力,包括 RAID 与 LVM;
    • 前提:将本章与之前章节练习所制作的分割槽全部删除,剩下默认的分割槽即可。

    那要如何处理呢?如下的流程一个步骤一个步骤的实施看看吧:

    1. 复原系统时,你必须要:

      • 利用 umount 先卸载之前挂载的文件系统;
      • 修改 /etc/fstab 里面的数据,让启动不会自动挂载;
      • 利用 fdisk 将该分割槽删除。

      最终你的系统应该会只剩下如下的模样:
      [root@www ~]# fdisk -l
         Device Boot      Start         End      Blocks   Id  System
      /dev/hda1   *           1          13      104391   83  Linux
      /dev/hda2              14        1288    10241437+  83  Linux
      /dev/hda3            1289        1925     5116702+  83  Linux
      /dev/hda4            1926        9382    59898352+   5  Extended
      /dev/hda5            1926        2052     1020096   82  Linux swap / Solaris
      

    2. 创建 RAID ,假设我们利用五个 1GB 的分割槽创建 RAID-5 ,且具有一个 spare disk , 那么你应该要如何进行?首先,请自行使用 fdisk 建置好如下的分割槽状态:
      [root@www ~]# fdisk -l
      ....(前面省略)....
      /dev/hda6            2053        2175      987966   83  Linux
      /dev/hda7            2176        2298      987966   83  Linux
      /dev/hda8            2299        2421      987966   83  Linux
      /dev/hda9            2422        2544      987966   83  Linux
      /dev/hda10           2545        2667      987966   83  Linux
      
      接下来开始创建 RAID 吧!创建的方法可以如下简单处理即可:
      [root@www ~]# mdadm --create --auto=yes /dev/md0 --level=5  \
      > --raid-devices=4 --spare-devices=1 /dev/hda{6,7,8,9,10}
      
      若无出现任何错误信息,此时你已经具有 /dev/md0 这个磁盘阵列装置了!接下来让我们处理 LVM 吧!

    3. 开始处理 LVM ,现在我们假设所有的参数都使用默认值,包括 PE ,然后 VG 名为 raidvg ,LV 名为 raidlv ,底下为基本的流程:
      [root@www ~]# pvcreate /dev/md0                  <==创建 PV
      [root@www ~]# vgcreate raidvg /dev/md0           <==创建 VG
      [root@www ~]# lvcreate -L 2.82G -n raidlv raidvg <==创建 LM
      [root@www ~]# lvdisplay
        --- Logical volume ---
        LV Name                /dev/raidvg/raidlv
        VG Name                raidvg
        LV UUID                zQsKqW-8Bt2-kpJF-8rCI-Cql1-XQYT-jw1mfH
        LV Write Access        read/write
        LV Status              available
        # open                 0
        LV Size                2.82 GB
        Current LE             722
        Segments               1
        Allocation             inherit
        Read ahead sectors     auto
        - currently set to     256
        Block device           253:0
      
      这样就搞定了 LVM 了!而且这个 LVM 是架构在 /dev/md0 上面的喔!然后就是文件系统的创建与挂载了!

    4. 尝试创建成为 Ext3 文件系统,且挂载到 /mnt/raidlvm 目录下:
      [root@www ~]# mkfs -t ext3 /dev/raidvg/raidlv
      [root@www ~]# mkdir /mnt/raidlvm
      [root@www ~]# mount /dev/raidvg/raidlv /mnt/raidlvm
      

    5. 上述就是 LVM 架构在 RAID 上面的技巧,之后的动作都能够使用本章的其他管理方式来管理, 包括 RAID 热拔插机制、LVM 放大缩小机制等等。测试完毕之后请务必要关闭本题所创建的各项资讯。
      [root@www ~]# umount /mnt/raidlvm         <==卸载文件系统
      [root@www ~]# lvremove /dev/raidvg/raidlv <==移除 LV
      [root@www ~]# vgchange -a n raidvg        <==让 VG 不活动
      [root@www ~]# vgremove raidvg             <==移除 VG
      [root@www ~]# pvremove /dev/md0           <==移除 PV
      [root@www ~]# mdadm --stop /dev/md0       <==关闭 /dev/md0 RAID
      [root@www ~]# fdisk /dev/hda              <==还原原本的分割槽
      

简答题部分:
  • 在前一章的第一个大量新增帐号范例中, 如果我想要让每个用户均具有 soft/hard 各为 40MB/50MB 的容量时,应该如何修改这个 script ?
    你得先要依据本章的作法,先将 /home 制作好 quota 的环境然后, 你可以在 do...done 内的最后一行,新增一行内容为:
    setquota -u $username 40000 50000 0 0 /home
    这样就可以在制作用户时,指定升级口令且给予 quota 的限制!
  • 如果我想要让 RAID 具有保护数据的功能,防止因为硬件损毁而导致数据的遗失,那我应该要选择的 RAID 等级可能有哪些? (请以本章谈到的等级来思考即可)
    具有备份数据的有: RAID-1, RAID-5, RAID-6
  • 在默认的 LVM 配置中,请问 LVM 能否具有『备份』的功能?
    是有的,就是那个快照 (snopshot) 的功能,此功能即可进行数据的备份!
  • LVM 内的 LV 据说仅能达到 256 GB 的容量,请问如何克服此一容量问题?
    LV 的容量与 PE 这个数据有关,由於默认 PE 为 4MB ,所以才会有此限制。 若要修改这个限制值,则需要在建置 VG 时就给予 -s 的选项来进行 PE 数值的配置。 若给到 PE = 16MB 时,则 LV 的最大总量就能够达到 1TB 的容量了。
  • 如果你的计算机主机有提供 RAID 0 的功能,你将你的三颗硬盘全部在 BIOS 阶段使用 RAID 芯片整合成为一颗大磁碟, 则此磁碟在 Linux 系统当中的档名为何?
    由於硬件磁盘阵列是在 BIOS 阶段完成的,因此 Linux 系统会捉到一个完整的大的 RAID 磁碟, 此磁碟的档名就会是『 /dev/sda 』!

大标题的图示参考数据与延伸阅读

 
     
http://linux.vbird.org is designed by VBird during 2001-2011. ksu.edu 

本网页主要以Firefox配合解析度 1024x768 作为设计依据     鸟哥自由软件整合应用研究室