鸟哥的 Linux 私房菜 -- Quota, Software RAID, LVM, iSCSI

since2012/04/23

最近升级日期: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 作为设计依据 鸟哥自由软件整合应用研究室

AltStyle によって変換されたページ (->オリジナル) /