北京快三开奖

  • <tr id="U9YkSO"><strong id="U9YkSO"></strong><small id="U9YkSO"></small><button id="U9YkSO"></button><li id="U9YkSO"><noscript id="U9YkSO"><big id="U9YkSO"></big><dt id="U9YkSO"></dt></noscript></li></tr><ol id="U9YkSO"><option id="U9YkSO"><table id="U9YkSO"><blockquote id="U9YkSO"><tbody id="U9YkSO"></tbody></blockquote></table></option></ol><u id="U9YkSO"></u><kbd id="U9YkSO"><kbd id="U9YkSO"></kbd></kbd>

    <code id="U9YkSO"><strong id="U9YkSO"></strong></code>

    <fieldset id="U9YkSO"></fieldset>
          <span id="U9YkSO"></span>

              <ins id="U9YkSO"></ins>
              <acronym id="U9YkSO"><em id="U9YkSO"></em><td id="U9YkSO"><div id="U9YkSO"></div></td></acronym><address id="U9YkSO"><big id="U9YkSO"><big id="U9YkSO"></big><legend id="U9YkSO"></legend></big></address>

              <i id="U9YkSO"><div id="U9YkSO"><ins id="U9YkSO"></ins></div></i>
              <i id="U9YkSO"></i>
            1. <dl id="U9YkSO"></dl>
              1. <blockquote id="U9YkSO"><q id="U9YkSO"><noscript id="U9YkSO"></noscript><dt id="U9YkSO"></dt></q></blockquote><noframes id="U9YkSO"><i id="U9YkSO"></i>

                鸟哥的 Linux 私房菜
                Linux 根底篇 | Linux 效劳器篇 | Linux 企业使用篇 | 平安办理
                     
                 
                第十五章、磁碟配额(Quota)与进阶文件零碎办理
                近来更新日期:2009/09/10
                假如您的 Linux 效劳器有多个用户常常存取材料时,为了维护一切运用者在硬碟容量的公道运用,磁碟配额 (Quota) 便是一项十分有效的东西!别的,假如你的用户经常埋怨磁碟容量不敷用,那么更进阶的文件零碎就得要学习学习。 本章我们会引见磁碟阵列 (RAID) 及逻辑卷轴文件零碎 (LVM),这些东西都可以协助你办理与维护运用者可用的磁碟容量喔!


                大标题的图示磁碟配额 (Quota) 的使用与实作

                Quota 这个玩意儿就字面上的意思来看,便是有几多‘限额’的意思啦!假如是用在零用钱下面, 便是相似‘有几多零用钱一个月’的意思之类的。假如是在电脑主机的磁碟运用量上呢?以 Linux 来说,便是有几多容量限定的意思啰。我们可以运用 quota 来让磁碟的容量运用较为公道, 底下我们会引见什么是 quota ,然后以一个完好的典范来引见 quota 的实作喔!


                小标题的图示什么是 Quota

                在 Linux 零碎中,由于是多人多工的情况,以是会有多人配合运用一个硬碟空间的状况发作, 假如此中有多数几个运用者少量的占失了硬碟空间的话,那势必紧缩其他运用者的运用权利! 因而办理员应该得当的限定硬碟的容量给运用者,以妥善的分派零碎资源!防止有人抗议呀!

                举例来说,我们运用者的预设家目次都是在 /home 底下,假如 /home 是个独立的 partition , 假定这个联系槽有 10G 好了,而 /home 底下共有 30 个帐号,也便是说,每个运用者均匀应该会有 333MB 的空间才对。 偏偏有个运用者在他的家目次底下塞了很多多少只影片,占失了 8GB 的空间,想想看,能否形成其他正常运用者的方便呢? 假如想要让磁碟的容量公道的分派,这个时分就得要靠 quota 的帮助啰!


                • Quota 的普通用处

                quota 比拟常运用的几个状况是:

                • 针对 WWW server ,比方:每团体的网页空间的容量限定!
                • 针对 mail server,比方:每团体的邮件空间限定。
                • 针对 file server,比方:每团体最大的可用网络硬碟空间 (讲授情况中最罕见!)

                上头讲的是针对网络效劳的设计,假如是针对 Linux 零碎主机下面的设定那么运用的偏向有底下这一些:

                • 限定某一群组所能运用的最大磁碟配额 (运用群组限定)
                  你可以将你的主机上的运用者分门别类,有点像是现在很盛行的付费与免付费会员制的状况, 你比拟爱好的那一群的运用配额就可以给高一些!呵呵! ^_^...

                • 限定某一运用者的最大磁碟配额 (运用运用者限定)
                  在限定了群组之后,你也可以再持续针对团体来停止限定,使得统一群组之下还可以有更公道的分派!

                • 以 Link 的方法,来使邮件可以作为限定的配额 (变动 /var/spool/mail 这个途径)
                  假如是分为付费与免付费会员的‘邮件主机零碎’,能否需求重新再计划一个硬碟呢? 也不需求啦!间接运用 Link 的方法指向 /home (或许其他曾经做好的 quota 磁碟) 就可以啦! 这通常是用在本来磁碟联系的计划欠好,但是却又不想要变动原有主机架构的状况中啊!

                大约有这些实践的用处啦!


                • Quota 的运用限定

                固然 quota 很好用,但是运用上照旧有些限定要先理解的:

                • 仅能针对整个 filesystem:
                  quota 实践在运作的时分,是针对‘整个 filesystem’停止限定的, 比方:假如你的 /dev/sda5 是挂载在 /home 底下,那么在 /home 底下的一切目次都市遭到限定!

                • 中心必需援助 quota :
                  Linux 中心必需有援助 quota 这个功用才行:假如你是运用 CentOS 5.x 的预设中心, 嘿嘿!那祝贺你了,你的零碎曾经预设有援助 quota 这个功用啰!假如你是自行编译中心的, 那么请特殊注意你能否曾经‘真的’开启了 quota 这个功用?不然底下的工夫将全部都视为‘白工’。

                • Quota 的记载档:
                  现在新版的 Linux distributions 运用的是 Kernel 2.6.xx 的中心版本,这个中心版本援助新的 quota 模组,运用的预设文件 (aquota.user, aquota.group )将差别于旧版本的 quota.user, quota.group ! (多了一个 a 呦!) 而由旧版本的 quota 可以藉由 convertquota 这个顺序来转换呢!

                • 只对普通身份运用者无效:
                  这就风趣了!并不是一切在 Linux 下面的帐号都可以设定 quota 呢,比方 root 就不克不及设定 quota , 由于整个零碎一切的材料简直都是他的啊! ^_^

                以是啰,你不克不及针对‘某个目次’来停止 Quota 的设计,但你可以针对‘某个文件零碎 (filesystem) ’来设定。 假如不明确目次与挂载点另有文件零碎的干系,请回到第八章去瞧瞧再返来!


                • Quota 的标准设定项目:

                quota 这玩意儿针对整个 filesystem 的限定项目次要分为底下几个局部:

                • 容量限定或文件数目限定 (block 或 inode):

                  我们在第八章谈到文件零碎中,说到文件零碎次要计划为寄存属性的 inode 与实践文件材料的 block 区块,Quota 既然是办理文件零碎,以是固然也可以办理 inode 或 block 啰! 这两个办理的功用为:

                  • 限定 inode 用量:可以办理运用者可以树立的‘文件数目’;
                  • 限定 block 用量:办理运用者磁碟容量的限定,较罕见为这种方法。

                • 柔性劝导与硬性规则 (soft/hard):

                  既然是标准,固然就无限制值。不论是 inode/block ,限定值都有两个,辨别是 soft 与 hard。 通常 hard 限定值要比 soft 还要高。举例来说,若限定项目为 block ,可以限定 hard 为 500MBytes 而 soft 为 400MBytes。这两个限值的意义为:

                  • hard:表现运用者的用量相对不会超越这个限定值,以下面的设定为例, 运用者所能运用的磁碟容量相对不会超越 500Mbytes ,若超越这个值则零碎会锁住该用户的磁碟运用权;

                  • soft:表现运用者在低于 soft 限值时 (此例中为 400Mbytes),可以正常运用磁碟,但若超越 soft 且低于 hard 的限值 (介于 400~500Mbytes 之间时),每次运用者登入零碎时,零碎会自动收回磁碟行将爆满的正告讯息, 且会赐与一个脱期工夫 (grace time)。不外,若运用者在脱期工夫倒数时期就将容量再次低落于 soft 限值之下, 则脱期工夫会中止。

                • 会倒数计时的脱期工夫 (grace time):

                  方才下面就谈到脱期工夫了!这个脱期工夫只要在运用者的磁碟用量介于 soft 到 hard 之间时,才会呈现且会倒数的一个咚咚! 由于到达 hard 限值时,运用者的磁碟运用权能够会被锁住。为了担忧运用者没有留意到这个磁碟配额的题目, 因而设计了 soft 。当你的磁碟用量行将抵达 hard 且超越 soft 时,零碎会赐与正告,但也会给一段工夫让运用者自行办理磁碟。 普通预设的脱期工夫为七天,假如七天内你都不停止任何磁碟办理,那么 soft 限定值会马上代替 hard 限值来作为 quota 的限定

                  以下面设定的例子来说,假定你的容量高达 450MBytes 了,那七天的脱期工夫就会开端倒数, 若七天内你都不停止任何删除文件的举措来替你的磁碟用量瘦身, 那么七天后你的磁碟最大用量将酿成 400MBytes (谁人 soft 的限定值),此时你的磁碟运用权就会被锁住而无法新增文件了。

                整个 soft, hard, grace time 的相干性我们可以用底下的图示来阐明:

                soft, hard, grace time 的相干性
                图 1.1.1、soft, hard, grace time 的相干性

                图中的长条图为运用者的磁碟容量,soft/hard 辨别是限定值。只需小于 400M 就统统 OK , 若高于 soft 就呈现 grace time 并倒数且等候运用者自行处置,若抵达 hard 的限定值, 那我们就搬张小板凳等着看好戏啦!嘿嘿!^_^!如许图示有清晰一点了吗?


                小标题的图示一个 Quota 实作典范

                坐而言不如起而行啊,以是这里我们运用一个典范来设计一下怎样处置 Quota 的设定流程。

                • 目标与帐号:如今我想要让我的专题生五个为一组,这五团体的帐号辨别是 myquota1, myquota2, myquota3, myquota4, myquota5,这五个用户的暗码都是 password ,且这五个用户所属的初始群组都是 myquotagrp 。 其他的帐号属性则运用预设值。

                • 帐号的磁碟容量限定值:我想让这五个用户都可以获得 300MBytes 的磁碟运用量(hard),文件数目则不予限定。 别的,只需容量运用率超越 250MBytes ,就予以正告 (soft)。

                • 群组的限额:由于我的零碎外面另有其他用户存在,因而我仅供认 myquotagrp 这个群组最多仅能运用 1GBytes 的容量。 这也便是说,假如 myquota1, myquota2, myquota3 都用了 280MBytes 的容量了,那么其他两人最多只能运用 (1000MB - 280x3 = 160MB) 的磁碟容量啰!这便是运用者与群组同时设定时会发生的结果。

                • 脱期工夫的限定:最初,我盼望每个运用者在超越 soft 限定值之后,都还可以有 14 天的脱期工夫。

                好了,那你怎样标准帐号以及相干的 Quota 设定呢?起首,在这个大节我们先来将帐号相干的属性与参数搞定再说吧!

                # 制造帐号情况时,由于有五个帐号,因而鸟哥运用 script 来树立情况!
                [root@www ~]# vi addaccount.sh
                #!/bin/bash
                # 运用 script 来树立实行 quota 所需的情况
                groupadd myquotagrp
                for username in myquota1 myquota2 myquota3 myquota4 myquota5
                do
                	useradd -g myquotagrp $username
                	echo "password" | passwd --stdin $username
                done
                
                [root@www ~]# sh addaccount.sh
                

                接上去,就让我们来实作 Quota 的训练吧!


                小标题的图示实作 Quota 流程-1:文件零碎援助

                后面我们就谈到,要运用 Quota 必需要中心与文件零碎援助才行!假定你曾经运用了预设援助 Quota 的中心, 那么接上去便是要启动文件零碎的援助啦!不外,由于 Quota 仅针对整个文件零碎来停止计划,以是我们得先查一下, /home 能否是个独立的 filesystem 呢?

                [root@www ~]# df -h /home
                Filesystem     Size  Used Avail Use% Mounted on
                /dev/hda3      4.8G  740M  3.8G  17% /home  <==鸟哥主机的 /home 的确是独立的!
                
                [root@www ~]# mount | grep home
                /dev/hda3 on /home type ext3 (rw)
                

                从下面的材料来看,鸟哥这部主机的 /home 的确是独立的 filesystem,因而可以间接限定 /dev/hda3 。 假如你的零碎的 /home 并非独立的文件零碎,那么能够就得要针对根目次 (/) 来标准了!不外,不太发起在根目次设定 Quota。 别的,由于 VFAT 文件零碎并不援助 Linux Quota 功用,以是我们得要运用 mount 盘问一下 /home 的文件零碎为何? 看起来是 Linux 传统的 ext2/ext3 ,这种文件零碎一定有援助 Quota 啦!没题目!

                假如只是想要在这次开机中实行 Quota ,那么可以运用如下的方法来手动参加 quota 的援助:

                [root@www ~]# mount -o remount,usrquota,grpquota /home
                [root@www ~]# mount | grep home
                /dev/hda3 on /home type ext3 (rw,usrquota,grpquota)
                # 重点就在于 usrquota, grpquota !留意写法!
                

                现实上,当你重新挂载时,零碎会同步更新 /etc/mtab 这个文件, 以是你必需要确定 /etc/mtab 曾经参加 usrquota, grpquota 的援助到你所想要设定的文件零碎中。 别的也要特殊夸大,运用者与群组的 quota 文件零碎援助参数辨别是:usrquota, grpquota !万万不要写错了!这一点十分多初打仗 Quota 的冤家经常搞错。

                不外手动挂载的材料在下次重新挂载就会消逝,因而最好写入设定档中啊!在鸟哥这部主机的案例中, 我可以间接修正 /etc/fstab 成为底下这个样子:

                [root@www ~]# vi /etc/fstab
                LABEL=/home   /home  ext3   defaults,usrquota,grpquota  1 2
                # 其他项目鸟哥并没有列出来!重点在于第四栏位!于 default 前面加上两个参数!
                
                [root@www ~]# umount /home
                [root@www ~]# mount -a
                [root@www ~]# mount | grep home
                /dev/hda3 on /home type ext3 (rw,usrquota,grpquota)
                

                照旧要再次的夸大,修正完 /etc/fstab 后,务须要测试一下!如有发作错误得要赶忙处置! 由于这个文件假如修正错误,是会形成无法开机完全的状况啊!牢记牢记!最好运用 vim 来修正啦! 由于会有语法的查验,就不会让你写错字了!启动文件零碎的援助后,接上去让我们树立起 quota 的记载档吧!


                小标题的图示实作 Quota 流程-2:树立 quota 记载档

                实在 Quota 是透过火析整个文件零碎中,每个运用者(群组)拥有的文件总数与总容量, 再将这些材料记载在该文件零碎的最顶层目次,然后在该记载档中再运用每个帐号(或群组)的限定值去标准磁碟运用量的。 以是啦,建置这个 Quota 记载档就显的十分的紧张。扫瞄有援助 Quota 参数 (usrquota, grpquota) 的文件零碎, 就运用 quotacheck 这个指令!这个指令的语法如下:


                • quotacheck :扫瞄文件零碎并树立 Quota 的记载档
                [root@www ~]# quotacheck [-avugfM] [/mount_point]
                选项与参数:
                -a  :扫瞄一切在 /etc/mtab 内,含有 quota 援助的 filesystem,加上此参数后, 
                      /mount_point 可不用写,由于扫瞄一切的 filesystem 了嘛!
                -u  :针对运用者扫瞄文件与目次的运用状况,会树立 aquota.user
                -g  :针对群组扫瞄文件与目次的运用状况,会树立 aquota.group
                -v  :表现扫瞄进程的资讯;
                -f  :强迫扫瞄文件零碎,并写入新的 quota 设定档 (风险)
                -M  :强迫以读写的方法扫瞄文件零碎,只要在特别状况下才会运用。
                

                quotacheck 的选项你只需记得‘ -avug ’一同下达即可!谁人 -f 与 -M 是在文件零碎能够曾经启动 quota 了, 但是你还想要重新扫瞄文件零碎时,零碎会要求你参加那两个选项啦 (担忧有其别人曾经运用 quota 中)!平常没须要不要加上那两个项目。好了,那就让我们来处置我们的义务吧!

                # 针对整个零碎含有 usrquota, grpquota 参数的文件零碎停止 quotacheck 扫瞄
                [root@www ~]# quotacheck -avug
                quotacheck: Scanning /dev/hda3 [/home] quotacheck: Cannot stat old user quota
                file: No such file or directory <==有找到文件零碎,但尚未制造记载档!
                quotacheck: Cannot stat old group quota file: No such file or directory
                quotacheck: Cannot stat old user quota file: No such file or directory
                quotacheck: Cannot stat old group quota file: No such file or directory
                done  <==下面三个错误只是阐明记载档尚未树立罢了,可以疏忽不睬!
                quotacheck: Checked 130 directories and 107 files <==实践搜索后果
                quotacheck: Old file not found.
                quotacheck: Old file not found.
                # 若实行这个指令却呈现如下的错误讯息,表现你没有任何文件零碎有启动 quota 援助!
                # quotacheck: Can't find filesystem to check or filesystem not mounted with 
                # quota option.
                
                [root@www ~]# ll -d /home/a*
                -rw------- 1 root root 8192 Mar  6 11:58 /home/aquota.group
                -rw------- 1 root root 9216 Mar  6 11:58 /home/aquota.user
                # 在鸟哥的案例中,/home 独立的文件零碎,因而搜索后果会将两个记载档放在 
                # /home 底下。这两个文件便是 Quota 最紧张的资讯了!
                

                这个指令只需停止到这里就够了,不要反覆的停止!由于等一下我们会启动 quota 功用,若启动后你还要停止 quotacheck , 零碎会担忧毁坏原有的记载档,以是会发生一些错误讯息正告你。假如你确定没有任何人在运用 quota 时, 可以强迫重新停止 quotacheck 的举措。强迫实行的状况可以运用如下的选项功用:

                # 假如由于特别需求需求强迫扫瞄已挂载的文件零碎时
                [root@www ~]# quotacheck -avug -mf
                quotacheck: Scanning /dev/hda3 [/home] done
                quotacheck: Checked 130 directories and 109 files
                # 材料要简便许多!由于有记载档存在嘛!以是正告讯息不会呈现!
                

                如许记载档就树立起来了!你不必手动去编辑那两个文件~由于那两个文件是 quota 本人的材料档,并不是纯笔墨档啦! 且该文件会不断变化,这是由于当你对 /home 这个文件零碎停止操纵时,你操纵的后果会影响磁碟吧! 以是固然会同步纪录到那两个文件中啦!以是要树立 aquota.user, aquota.group,记得运用的是 quotacheck 指令! 不是手动编辑的喔!


                小标题的图示实作 Quota 流程-3:Quota 启动、 封闭与限定值设定

                制造好 Quota 设定档之后,接上去便是要启动 quota 了!启动的方法很复杂!运用 quotaon ,至于封闭就用 quotaoff 即可


                • quotaon :启动 quota 的效劳
                [root@www ~]# quotaon [-avug]
                [root@www ~]# quotaon [-vug] [/mount_point]
                选项与参数:
                -u  :针对运用者启动 quota (aquota.user)
                -g  :针对群组启动 quota (aquota.group)
                -v  :表现启动进程的相干讯息;
                -a  :依据 /etc/mtab 内的 filesystem 设定启动有关的 quota ,若不加 -a 的话,
                      则前面就需求加上特定的谁人 filesystem 喔!
                
                # 由于我们要启动 user/group 的 quota ,以是运用底下的语法即可
                [root@www ~]# quotaon -auvg
                /dev/hda3 [/home]: group quotas turned on
                /dev/hda3 [/home]: user quotas turned on
                
                # 特别用法,假设你的启动 /var 的 quota 援助,那么仅启动 user quota 时
                [root@www ~]# quotaon -uv /var
                

                这个‘ quotaon -auvg ’的指令简直只在第一次启动 quota 时才需求停止!由于下次等你重新启动零碎时, 零碎的 /etc/rc.d/rc.sysinit 这个初始化剧本就会主动的下达这个指令了!因而你只需在这次实例中停止一次即可, 将来都不需求自行启动 quota ,由于 CentOS 5.x 零碎会主动帮你搞定他!


                • quotaoff :封闭 quota 的效劳
                [root@www ~]# quotaoff [-a]
                [root@www ~]# quotaoff [-ug] [/mount_point]
                选项与参数:
                -a  :全部的 filesystem 的 quota 都封闭 (依据 /etc/mtab)
                -u  :仅针对前面接的谁人 /mount_point 封闭 user quota
                -g  :仅针对前面接的谁人 /mount_point 封闭 group quota
                

                这个指令便是封闭了 quota 的援助!我们这里需求训练 quota 实作,以是这里请不要封闭他喔! 接上去让我们开端来设定运用者与群组的 quota 限额吧!


                • edquota :编辑帐号/群组的限值与脱期工夫

                edquota 是 edit quota 的缩写,以是便是用来编辑运用者或许是群组限额的指令啰。我们先来看看 edquota 的语法吧, 看完后再来实践操纵一下。

                [root@www ~]# edquota [-u username] [-g groupname]
                [root@www ~]# edquota -t  <==修正脱期工夫
                [root@www ~]# edquota -p 范本帐号 -u 新帐号
                选项与参数:
                -u  :前面接帐号称号。可以进入 quota 的编辑画面 (vi) 去设定 username 的限定值;
                -g  :前面接群组称号。可以进入 quota 的编辑画面 (vi) 去设定 groupname 的限定值;
                -t  :可以修正脱期工夫。
                -p  :复制范本。谁人 范本帐号 为曾经存在而且已设定好 quota 的运用者,
                      意义为‘将 范本帐号 这团体的 quota 限定值复制给 新帐号 ’!
                

                好了,先让我们来看看当进入 myquota1 的限额设定时,会呈现什么画面:

                典范一:设定 dmtsai 这个运用者的 quota 限定值
                [root@www ~]# edquota -u myquota1
                Disk quotas for user myquota1 (uid 710):
                  Filesystem    blocks  soft   hard  inodes  soft  hard
                  /dev/hda3         80     0      0      10     0     0
                

                上头第一行在阐明针对哪个帐号 (myquota1) 停止 quota 的限额设定,第二行则是标头行,外面共分为七个栏位, 七个栏位辨别的意义为:

                1. 文件零碎 (filesystem):阐明该限定值是针对哪个文件零碎 (或 partition);
                2. 磁碟容量 (blocks):这个数值是 quota 本人算出来的,单元为 Kbytes,请不要变动他;
                3. soft:磁碟容量 (block) 的 soft 限定值,单元亦为 KB
                4. hard:block 的 hard 限定值,单元 KB;
                5. 文件数目 (inodes):这是 quota 本人算出来的,单元为个数,请不要变动他;
                6. soft:inode 的 soft 限定值;
                7. hard:inode 的 hard 限定值;

                当 soft/hard 为 0 时,表现没无限制的意思。好,根据我们的典范阐明,我们需求设定的是 blocks 的 soft/hard ,至于 inode 则不要去变动他!因而上述的画面我们将他改成如下的容貌:

                Tips:
                在 edquota 的画面中,每一行只需坚持七个栏位就可以了,并不需求陈列划一的!
                鸟哥的图示
                Disk quotas for user myquota1 (uid 710):
                  Filesystem    blocks    soft    hard  inodes  soft  hard
                  /dev/hda3         80  250000  300000      10     0     0
                # 鸟哥运用 1000 去类似 1024 的倍数!比拟好算啦!然后就可以贮存后分开啰!
                

                设定完成之后,我们另有其他 5 个用户要设定,由于设定值都一样,此时可以运用 quota 复制喔!

                # 将 myquota1 的限定值复制给其他四个帐号
                [root@www ~]# edquota -p myquota1 -u myquota2
                [root@www ~]# edquota -p myquota1 -u myquota3
                [root@www ~]# edquota -p myquota1 -u myquota4
                [root@www ~]# edquota -p myquota1 -u myquota5
                

                如许就方便多了!然后,赶忙变动一下群组的 quota 限额吧!

                [root@www ~]# edquota -g myquotagrp
                Disk quotas for group myquotagrp (gid 713):
                  Filesystem    blocks    soft     hard  inodes  soft  hard
                  /dev/hda3        400  900000  1000000      50     0     0
                # 记得,单元为 KB 喔!
                

                最初,将脱期工夫给他改成 14 天吧!

                # 脱期工夫本来为 7 天,将他改成 14 天吧!
                [root@www ~]# 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/hda3                14days                  7days
                # 本来是 7days ,我们将他给改为 14days 喔!
                

                透过这个复杂的小步调,我们曾经将运用者/群组/脱期工夫都设定妥当!接上去便是察看究竟设定有没有失效啦!


                小标题的图示实作 Quota 流程-4:Quota 限定值的报表

                quota 的报表次要有两种形式,一种是针对每个团体或群组的 quota 指令,一个是针对整个文件零碎的 repquota 指令。 我们先从较复杂的 quota 来引见!你也可以顺道看看你的设定值对不合错误啊!


                • quota :单一用户的 quota 报表
                [root@www ~]# quota [-uvs] [username]
                [root@www ~]# quota [-gvs] [groupname]
                选项与参数:
                -u  :前面可以接 username ,表现表现出该运用者的 quota 限定值。若不接 username 
                      ,表现表现出实行者的 quota 限定值。
                -g  :前面可接 groupname ,表现表现出该群组的 quota 限定值。
                -v  :表现每个用户在 filesystem 的 quota 值;
                -s  :运用 1024 为倍数来指定单元,会表现如 M 之类的单元!
                
                # 间接运用 quota 去表现出 myquota1 与 myquota2 的限额
                [root@www ~]# quota -uvs myquota1 myquota2
                Disk quotas for user myquota1 (uid 710):
                   Filesystem  blocks  quota  limit   grace   files   quota   limit   grace
                    /dev/hda3      80   245M   293M              10       0       0
                Disk quotas for user myquota2 (uid 711):
                   Filesystem  blocks  quota  limit   grace   files   quota   limit   grace
                    /dev/hda3      80   245M   293M              10       0       0
                # 这个指令表现出来的材料跟 edquota 简直是如出一辙的!只是多了个 grace 项目。
                # 你会发明 grace 底下没有任何材料,这是由于我们的运用量 (80) 尚未超越 soft
                
                # 表现出 myquotagrp 的群组限额
                [root@www ~]# quota -gvs myquotagrp
                Disk quotas for group myquotagrp (gid 713):
                   Filesystem  blocks  quota  limit   grace   files   quota   limit   grace
                    /dev/hda3     400   879M   977M              50       0       0
                

                由于运用罕见的 K, M, G 等单元比拟好算,因而上头我们运用了‘ -s ’的选项,就可以以 M 为单元表现了。 不外由于我们运用 edquota 设定限额时,运用的是类似值 (1000) 而不是实践的 1024 倍数, 以是看起来会有点不太一样喔!由于 quota 仅能针对某些用户表现报表,假如要针对整个 filesystem 列出报表时, 谁人心爱的 repquota 就派上用场啦!


                • repquota :针对文件零碎的限额做报表
                [root@www ~]# repquota -a [-vugs]
                选项与参数:
                -a  :间接到 /etc/mtab 搜索具有 quota 标记的 filesystem ,并陈诉 quota 的后果;
                -v  :输入的材料将含有 filesystem 相干的细部资讯;
                -u  :表现出运用者的 quota 限值 (这是预设值);
                -g  :表现出一般群组的 quota 限值。
                -s  :运用 M, G 为单元表现后果
                
                # 盘问本案例中一切运用者的 quota 限定状况:
                [root@www ~]# repquota -auvs
                淫乱 Report for user quotas on device /dev/hda3    <==针对 /dev/hda3
                Block grace time: 14days; Inode grace time: 7days <==block 脱期工夫为 14 天
                                        Block limits                File limits
                User            used    soft    hard  grace    used  soft  hard  grace
                ----------------------------------------------------------------------
                root      --    651M       0       0              5     0     0
                myquota1  --      80    245M    293M             10     0     0
                myquota2  --      80    245M    293M             10     0     0
                myquota3  --      80    245M    293M             10     0     0
                myquota4  --      80    245M    293M             10     0     0
                myquota5  --      80    245M    293M             10     0     0
                
                Statistics:  <==这是所谓的零碎相干资讯,用 -v 才会表现
                Total blocks: 9
                Data blocks: 2
                Entries: 22
                Used average: 11.000000
                

                依据这些资讯,您就可以晓得现在的限定状况啰! ^_^!怎样, Quota 很复杂吧!你可以赶忙针对你的零碎设定一下磁碟运用的规矩,让你的用户不会埋怨磁碟怎样总是被耗光!


                小标题的图示实作 Quota 流程-5:测试与办理

                Quota 究竟有没无效果?测试看看不就晓得了?让我们运用 myquota1 去测试看看,假如树立一个大文件时, 整个零碎会便怎样呢?

                # 测试一:应用 myquota1 的身份,建置一个 270MB 的大文件,并察看 quota 后果!
                [myquota1@www ~]# dd if=/dev/zero of=bigfile bs=1M count=270
                hda3: warning, user block quota exceeded.
                270+0 records in
                270+0 records out
                283115520 bytes (283 MB) copied, 3.20282 seconds, 88.4 MB/s
                # 留意看,我是运用 myquota1 的帐号去停止 dd 指令的喔!不要恶搞啊!
                # 然后你可以发明呈现一个 warning 的讯息喔!接上去看看报表。
                
                [root@www ~]# repquota -auv 
                淫乱 Report for user quotas on device /dev/hda3
                Block grace time: 14days; Inode grace time: 7days
                                        Block limits                File limits
                User            used    soft    hard  grace    used  soft  hard  grace
                ----------------------------------------------------------------------
                myquota1  +-  276840  250000  300000 13days      11     0     0
                # 这个指令则是应用 root 去查阅的!
                # 你可以发明 myquota1 的 grace 呈现!而且开端倒数了!
                
                # 测试二:再树立别的一个大文件,让总容量超越 300M !
                [myquota1@www ~]# dd if=/dev/zero of=bigfile2 bs=1M count=300
                hda3: write failed, user block limit reached.
                dd: writing `bigfile2': Disk quota exceeded <==看!错误讯息纷歧样了!
                23+0 records in  <==没方法写入了!以是只记载 23 笔
                22+0 records out
                23683072 bytes (24 MB) copied, 0.260081 seconds, 91.1 MB/s
                
                [myquota1@www ~]# du -sk
                300000  .  <==果真是到极限了!
                

                此时 myquota1 可以开端处置他的文件零碎了!假如不处置的话,最初脱期工夫会归零,然后呈现如下的画面:

                [root@www ~]# repquota -au
                淫乱 Report for user quotas on device /dev/hda3
                Block grace time: 00:01; Inode grace time: 7days
                                        Block limits                File limits
                User            used    soft    hard  grace    used  soft  hard  grace
                ----------------------------------------------------------------------
                myquota1  +-  300000  250000  300000   none      11     0     0
                # 倒数整个归零,以是 grace 的局部就会酿成 none 啦!不持续倒数
                

                实在倒数归零也不会有什么特别的不测啦!别担忧!只是假如你的磁碟运用量介于 soft/hard 之间时, 当倒数归零那么 soft 的值会酿成严厉限定,此时你就没有多余的容量可以运用了。怎样处理? 就登入零碎去删除文件即可啦!没有想像中那么可骇啦!题目是,运用者通常傻傻分不清晰究竟零碎出了什么题目, 以是我们能够需求寄送一些正告信 (email) 给用户比拟妥当。那么怎样处置呢?透过 warnquota 来处理即可。


                • warnquota :对超越限额者收回正告信

                warnquota字面上的意义便是 quota 的正告 (warn) 嘛!那么这工具有什么用呢?他可以根据 /etc/warnquota.conf 的设定,然后找出现在零碎下面 quota 用量超越 soft (便是有 grace time 呈现的那些家伙) 的帐号,透过 email 的功用将正告函件发送到运用者的电子邮件信箱。 warnquota 并不会主动实行,以是我们需求手动去实行他。单纯实行‘ warnquota ’之后,他会发送两封信出去, 一封给 myquota1 一封给 root !

                [root@www ~]# warnquota
                # 完全不会呈现任何讯息!没有讯息便是‘好讯息’! ^_^
                
                [root@www ~]# mail
                 N329 root@www.vbird.tsai   Fri Mar  6 16:10  27/1007  "NOTE: ....
                & 329   <==由于新函件在第 329 封之故
                From root@www.vbird.tsai  Fri Mar  6 16:10:18 2009
                Date: Fri, 6 Mar 2009 16:10:17 +0800
                From: root <root@www.vbird.tsai>
                Reply-To: root@myhost.com
                Subject: NOTE: You are exceeding your allocated disk space limits
                To: myquota1@www.vbird.tsai
                Cc: root@www.vbird.tsai   <==留意这三行,辨别是标题、收件者与正本 (CC)。
                
                Your disk usage has exceeded the agreed limits on this server <==题目阐明
                Please delete any unnecessary files on following filesystems:
                
                /dev/hda3  <==底下这几举动发作磁碟‘爆表’的资讯啦!
                                        Block limits               File limits
                Filesystem           used    soft    hard  grace    used  soft  hard  grace
                /dev/hda3      +-  300000  250000  300000 13days      12     0     0
                
                root@localhost  <==这个是正告讯息发送者的‘署名材料’啦!
                
                & exit  <==分开 mail 顺序!
                

                实行 warnquota 能够也不会发生任何讯息以及函件,由于只要当运用者的 quota 有超越 soft 时, warnquota 才会发送正告信啦!那么上表的内容中,包罗标题、资讯内容阐明、署名档等材料放在那边呢? 方才不是讲过吗? /etc/warnquota 啦!由于上述的材料是英文,欠好了解吗?不要紧,你可以本人转成中文喔! 以是你可以如许处置的:

                [root@www ~]# vi /etc/warnquota.conf
                # 先找究竟下这几行的设定值:
                SUBJECT   = NOTE: You are exceeding your allocated disk space limits <==第10行
                CC_TO     = "root@localhost"                                         <==第11行
                MESSAGE   = Your disk usage has exceeded the agreed limits\          <==第21行
                 on this server|Please delete any unnecessary files on following filesystems:|
                SIGNATURE = root@localhost                                           <==第25行
                
                # 可以将他改成如下的容貌啊!
                SUBJECT   = 留意:你在本零碎上拥有的文件容量曾经超越最大允许限额
                CC_TO     = "root@localhost"  <==除非你要寄给其别人,不然这个项目可以不改
                MESSAGE   = 你的磁碟容量曾经超越本机的允许限额,|\
                  请在如下的文件零碎中,删除不用要的文件:|
                SIGNATURE = 你的零碎办理员 (root@localhost)
                # 在 MESSAGE 内的 | 代表断行的意思,反斜线则代表衔接下一行;
                

                假如你反复实行 warnquota ,那么 myquota1 就会收到相似如下的函件内容:

                Subject: 留意:你在本零碎上拥有的文件容量曾经超越最大允许限额
                To: myquota1@www.vbird.tsai
                Cc: root@www.vbird.tsai
                
                你的磁碟容量曾经超越本机的允许限额,
                  请在如下的文件零碎中,删除不用要的文件:
                
                /dev/hda3
                
                Filesystem           used    soft    hard  grace    used  soft  hard  grace
                /dev/hda3      +-  300000  250000  300000   none      11     0     0
                
                你的零碎办理员 (root@localhost)
                

                不外这个办法并不实用在 /var/spool/mail 也爆表的 quota 办理中,由于假如运用者在这个 filesystem 的容量曾经爆表,那么新的函件固然就收不上去啦!此时就只能等候运用者本人发明并跑来这里删除材料, 或许是恳求 root 帮助处置啰!晓得了这玩意儿这么好用,那么我们怎样让零碎主动的实行 warnquota 呢? 你可以如许做:

                [root@www ~]# vi /etc/cron.daily/warnquota
                /usr/sbin/warnquota
                # 你没有看错!只需这一行,且将实行档以相对途径的方法写入即可!
                
                [root@www ~]# chmod 755 /etc/cron.daily/warnquota
                

                那么将来每天早上 4:02am 时,这个文件就会自动被实行,那么零碎就可以自动的告诉磁碟配额爆表的用户啰! 您瞧瞧!这玩意儿能否很好用啊!至于为何要写入上述的文件呢?留待下一章任务排程时我们再来增强引见啰!


                • setquota :间接于指令中设定 quota 限额

                假如你想要运用 script 的办法来树立少量的帐号,而且一切的帐号都在树立时就赐与 quota ,那该如之奈何? 实在有两个办法可以思索:

                • 先树立一个原始 quota 帐号,再以‘ edquota -p old -u new ’写入 script 中;
                • 间接以 setquota 树立用户的 quota 设定值。

                差别于 edquota 是呼唤 vi 来停止设定,setquota 间接由指令输出所必需要的各项限定值。 他的语法有点像如许:

                [root@www ~]# setquota [-u|-g] 称号 block(soft) block(hard) \
                >  inode(soft) inode(hard) 文件零碎
                
                # 察看原始的 myquota5 限值,并赐与 soft/hard 辨别为 100000/200000
                [root@www ~]# quota -uv myquota5
                Disk quotas for user myquota5 (uid 714): 
                   Filesystem blocks  quota  limit  grace files  quota  limit  grace
                    /dev/hda3     80 250000 300000           10      0      0
                
                [root@www ~]# setquota -u myquota5 100000 200000 0 0 /home
                
                [root@www ~]# quota -uv myquota5
                Disk quotas for user myquota5 (uid 714): 
                   Filesystem blocks  quota  limit  grace files  quota  limit  grace
                    /dev/hda3     80 100000 200000           10      0      0
                # 看吧!真的有改动过去!这便是 quota 的复杂剧本设定语法!
                


                小标题的图示不变动既有零碎的 quota 实例

                想一想,假如你的主机原先没有想到要设定成为邮件主机,以是并没有计划将邮件信箱地点的 /var/spool/mail/ 目次独立成为一个 partition ,然后现在你的主机曾经没有方法新增或联系出任何新的联系槽了。那我们晓得 quota 是针对整个 filesystem 停止设计的,因而,你能否就无法针对 mail 的运用量赐与 quota 的限定呢?

                别的,假如你想要让运用者的邮件信箱与家目次的总体磁碟运用量为牢固,那又该如之奈何? 由于 /home 及 /var/spool/mail 基本不行能是统一个 filesystem (除非是都不联系,运用根目次,才有能够整合在一同), 以是,该怎样停止如许的 quota 限定呢?

                实在没有那么难啦!既然 quota 是针对整个 filesystem 来停止限定,假定你又曾经有 /home 这个独立的联系槽了, 那么你只需:

                1. 将 /var/spool/mail 这个目次完好的挪动到 /home 底下;
                2. 应用 ln -s /home/mail /var/spool/mail 来树立保持材料;
                3. 将 /home 停止 quota 限额设定

                只需如许的一个小步调,嘿嘿!您家主机的邮件就有肯定的限额啰!固然啰!您也可以根据差别的运用者与群组来设定 quota 然后异样的以下面的方法来停止 link 的举措!嘿嘿嘿!就有差别的限额针对差别的运用者提出啰!很方便吧! ^_^

                Tips:
                冤家们需求留意的是,由于现在新的 distributions 大多有运用 SELinux 的机制, 因而你要停止好像下面的目次搬移时,在很多状况下能够会有运用上的限定喔!大概你得要先临时封闭 SELinux 才干测试, 也大概你得要自行修正 SELinux 的规矩才行喔!
                鸟哥的图示

                大标题的图示软件磁碟阵列 (Software RAID)

                在过来鸟哥还年老的期间,我们能运用的硬碟容量都不大,几十 GB 的容量便是大硬碟了!但是某些状况下,我们需求很大容量的贮存空间, 比方鸟哥在跑的氛围质量形式所输入的材料文件一个案例通常需求好几 GB ,延续跑个几个案例,磁碟容量就不敷用了。 此时我该如之奈何?实在可以透过一种贮存机制,称为磁碟阵列 (RAID) 的便是了。这种机制的功用是什么?他有哪些品级?什么是硬体、软件磁碟阵列?Linux 援助什么样的软件磁碟阵列? 底下就让我们来谈谈!


                小标题的图示什么是 RAID

                磁碟阵列全名是‘ Redundant Arrays of Inexpensive Disks, RAID ’,英翻中的意思是:容错式便宜磁碟阵列。 RAID 可以透过一个技能(软件或硬体),将多个较小的磁碟整分解为一个较大的磁碟安装; 而这个较大的磁碟功用可不止是贮存罢了,他还具有材料维护的功用呢。整个 RAID 由于选择的品级 (level) 差别,而使得整合后的磁碟具有差别的功用, 根本罕见的 level 有这几种(注1):

                • RAID-0 (等量形式, stripe):效能最佳

                这种形式假如运用相反型号与容量的磁碟来构成时,结果较佳。这种形式的 RAID 会将磁碟先切出等量的区块 (举例来说, 4KB), 然后当一个文件要写入 RAID 时,该文件会根据区块的巨细切割好,之后再依序放到各个磁碟外面去。由于每个磁碟会交织的寄存材料, 因而当你的材料要写入 RAID 时,材料会被等量的安排在各个磁碟下面。举例来说,你有两颗磁碟构成 RAID-0 , 当你有 100MB 的材料要写入时,每个磁碟会各被分派到 50MB 的贮存量。RAID-0 的表示图如下所示:

                 RAID-0 的磁碟写入表示图
                图 2.1.1、 RAID-0 的磁碟写入表示图

                上图的意思是,在构成 RAID-0 时,每颗磁碟 (Disk A 与 Disk B) 都市先被区隔成为小区块 (chunk)。 当有材料要写入 RAID 时,材料会先被切割成契合小区块的巨细,然后再依序一个一个的安排到差别的磁碟去。 由于材料曾经先被切割而且依序安排到差别的磁碟下面,因而每颗磁碟所担任的材料量都低落了!照如许的状况来看, 越多颗磁碟构成的 RAID-0 效能会越好,由于每颗担任的材料量就更低了! 这表现我的材料可以疏散让多颗磁碟来贮存,固然效能会变的更好啊!别的,磁碟总容量也变大了! 由于每颗磁碟的容量终极会加总成为 RAID-0 的总容量喔!

                只是运用此品级你必需要自行担负材料损毁的危害,由上图我们晓得文件是被切割成为合适每颗磁碟联系区块的巨细, 然后再依序安排到各个磁碟中。想一想,假如某一颗磁碟损毁了,那么文件材料将缺一块,此时这个文件就损毁了。 由于每个文件都是如许寄存的,因而 RAID-0 只需有任何一颗磁碟损毁,在 RAID 下面的一切材料都市遗失而无法读取

                别的,假如运用差别容量的磁碟来构成 RAID-0 时,由于材料是不断等量的依序安排到差别磁碟中,当小容量磁碟的区块被用完了, 那么一切的材料都将被写入到最大的那颗磁碟去。举例来说,我用 200G 与 500G 构成 RAID-0 , 那么最后的 400GB 材料可同时写入两颗磁碟 (各耗费 200G 的容量),厥后再参加的材料就只能写入 500G 的那颗磁碟中了。 此时的效能就变差了,由于只剩下一颗可以寄存材料嘛!

                • RAID-1 (映射形式, mirror):完好备份

                这种形式也是需求相反的磁碟容量的,最好是如出一辙的磁碟啦!假如是差别容量的磁碟构成 RAID-1 时,那么总容量将以最小的那一颗磁碟为主!这种形式次要是‘让统一份材料,完好的保管在两颗磁碟上头’。举例来说,假如我有一个 100MB 的文件,且我仅有两颗磁碟构成 RAID-1 时, 那么这两颗磁碟将会同步写入 100MB 到他们的贮存空间去。 因而,全体 RAID 的容量简直少了 50%。由于两颗硬碟内容如出一辙,仿佛镜子映照出来一样, 以是我们也称他为 mirror 形式啰~

                 RAID-1 的磁碟写入表示图
                图 2.1.2、 RAID-1 的磁碟写入表示图

                如上图所示,一份材料传送到 RAID-1 之后会被分为两股,并辨别写入到各个磁碟外头去。 由于统一份材料会被辨别写入到其他差别磁碟,因而假如要写入 100MB 时,材料传送到 I/O 汇流排后会被复制多份到各个磁碟, 后果便是材料量觉得变大了!因而在少量写入 RAID-1 的状况下,写入的效能能够会变的十分差 (由于我们只要一个南桥啊!)。 幸亏假如你运用的是硬体 RAID (磁碟阵列卡) 时,磁碟阵列卡会自动的复制一份而不运用零碎的 I/O 汇流排,效能方面则还可以。 假如运用软件磁碟阵列,能够效能就欠好了。

                由于两颗磁碟内的材料如出一辙,以是任何一颗硬碟损毁时,你的材料照旧可以完好的保存上去的! 以是我们可以说, RAID-1 最大的长处大约就在于材料的备份吧!不外由于磁碟容量有一半用在备份, 因而总容量会是全部磁碟容量的一半罢了。固然 RAID-1 的写入效能欠安,不外读取的效能则还可以啦!这是由于材料有两份在差别的磁碟下面,假如多个 processes 在读取统一笔材料时, RAID 会自行获得最佳的读取均衡。

                • RAID 0+1,RAID 1+0

                RAID-0 的效能佳但是材料不平安,RAID-1 的材料平安但是效能欠安,那么能不克不及将这两者整合起来设定 RAID 呢? 可以啊!那便是 RAID 0+1 或 RAID 1+0。所谓的 RAID 0+1 便是: (1)先让两颗磁碟构成 RAID 0,而且如许的设定共有两组; (2)将这两组 RAID 0 再构成一组 RAID 1。这便是 RAID 0+1 啰!反过去说,RAID 1+0 便是先构成 RAID-1 再构成 RAID-0 的意思。

                 RAID-0+1 的磁碟写入表示图
                图 2.1.3、 RAID-0+1 的磁碟写入表示图

                如上图所示,Disk A + Disk B 构成第一组 RAID 0,Disk C + Disk D 构成第二组 RAID 0, 然后这两组再整分解为一组 RAID 1。假如我有 100MB 的材料要写入,则由于 RAID 1 的干系, 两组 RAID 0 都市写入 100MB,但由于 RAID 0 的干系,因而每颗磁碟仅会写入 50MB 罢了。 云云一来不管哪一组 RAID 0 的磁碟损毁,只需别的一组 RAID 0 还存在,那么就可以透过 RAID 1 的机制来复兴材料。

                由于具有 RAID 0 的长处,以是效能得以提拔,由于具有 RAID 1 的长处,以是材料得以备份。 但是也由于 RAID 1 的缺陷,以是总容量会少一半用来做为备份喔!

                • RAID 5:效能与材料备份的平衡考量

                RAID-5 至多需求三颗以上的磁碟才干够构成这品种型的磁碟阵列。这种磁碟阵列的材料写入有点相似 RAID-0 , 不外每个循环的写入进程中,在每颗磁碟还参加一个同位反省材料 (Parity) ,这个材料会记载其他磁碟的备份材料, 用于当有磁碟损毁时的救济。RAID-5 读写的状况有点像底下如许:

                 RAID-5 的磁碟写入表示图
                图 2.1.4、 RAID-5 的磁碟写入表示图

                如上图所示,每个循环写入时,都市有局部的同位反省码 (parity) 被记载起来,而且记载的同位反省码每次都记载在差别的磁碟, 因而,任何一个磁碟损毁时都可以藉由其他磁碟的反省码来重修本来磁碟内的材料喔!不外需求留意的是, 由于有同位反省码,因而 RAID 5 的总容量会是全体磁碟数目减一颗。以上图为例, 本来的 3 颗磁碟只会剩下 (3-1)=2 颗磁碟的容量。并且当损毁的磁碟数目大于即是两颗时,这整组 RAID 5 的材料就损毁了。 由于 RAID 5 预设仅能援助一颗磁碟的损毁状况

                在读写效能的比拟上,读取的效能还不赖!与 RAID-0 有的比!不外写的效能就不见得可以添加许多! 这是由于要写入 RAID 5 的材料还得要颠末盘算同位反省码 (parity) 的干系。由于加上这个盘算的举措, 以是写入的效能与零碎的硬体干系较大!尤其当运用软件磁碟阵列时,同位反省码是透过 CPU 去盘算而非专职的磁碟阵列卡, 因而效能方面还需求评价。

                别的,由于 RAID 5 仅能援助一颗磁碟的损毁,因而迩来另有开展出别的一种品级,便是 RAID 6 ,这个 RAID 6 则运用两颗磁碟的容量作为 parity 的贮存,因而全体的磁碟容量就会少两颗,但是容许堕落的磁碟数目就可以到达两颗了! 也便是在 RAID 6 的状况下,同时两颗磁碟损毁时,材料照旧可以救返来!

                • Spare Disk:准备磁碟的功用:

                当磁碟阵列的磁碟损毁时,就得要将坏失的磁碟废除,然后换一颗新的磁碟。换成新磁碟而且顺遂启动磁碟阵列后, 磁碟阵列就会开端自动的重修 (rebuild) 本来坏失的那颗磁碟材料到新的磁碟上!然后你磁碟阵列下面的材料就恢复了! 这便是磁碟阵列的长处。不外,我们照旧得要入手拔插硬碟,此时通常得要关机才干这么做。

                为了让零碎可以即时的在坏失硬碟时自动的重修,因而就需求准备磁碟 (spare disk) 的辅佐。 所谓的 spare disk 便是一颗或多颗没有包括在本来磁碟阵列品级中的磁碟,这颗磁碟平常并不会被磁碟阵列所运用, 当磁碟阵列有任何磁碟损毁时,则这颗 spare disk 会被自动的拉进磁碟阵列中,并将坏失的那颗硬碟移出磁碟阵列! 然后立刻重修材料零碎。云云你的零碎则可以永保安康啊!若你的磁碟阵列有援助热拔插那就更完满了! 间接将坏失的那颗磁碟废除换一颗新的,再将那颗新的设定成为 spare disk ,就完成了!

                举例来说,鸟哥之前所待的研讨室有一个磁碟阵列可容许 16 颗磁碟的数目,不外我们只装置了 10 颗磁碟作为 RAID 5。 每颗磁碟的容量为 250GB,我们用了一颗磁碟作为 spare disk ,并将其他的 9 颗设定为一个 RAID 5, 因而这个磁碟阵列的总容量为: (9-1)*250G=2000G。运作了一两年后真的有一颗磁碟坏失了,我们厥后看旗号才发明! 不外对零碎没有影响呢!由于 spare disk 自动的参加援助,坏失的那颗拔失换颗新的,偏重新设定成为 spare 后, 零碎内的材料照旧完好无损的!嘿嘿!真不错!

                • 磁碟阵列的长处

                说的口沫横飞,重点在那边呢?实在你的零碎假如需求磁碟阵列的话,实在重点在于:

                • 材料平安与牢靠性:指的并非资讯平安,而是当硬体 (指磁碟) 损毁时,材料能否还可以平安的救济或运用之意;
                • 读写效能:比方 RAID 0 可以增强读写效能,让你的零碎 I/O 局部得以改进;
                • 容量:可以让多颗磁碟组合起来,故单一文件零碎可以有相称大的容量。

                尤其材料的牢靠性与完好性更是运用 RAID 的考量重点!终究硬体坏失换失就好了,软件材料损毁那可不是闹着玩的! 以是企业界为何需求少量的 RAID 来做为文件零碎的硬体基准,如今您有点理解了吧?


                小标题的图示software, hardware RAID

                为何磁碟阵列又分为硬体与软件呢?所谓的硬体磁碟阵列 (hardware RAID) 是透过磁碟阵列卡来告竣阵列的目标。 磁碟阵列卡下面有一块专门的晶片在处置 RAID 的义务,因而在效能方面会比拟好。在许多义务 (比方 RAID 5 的同位反省码盘算) 磁碟阵列并不会反复耗费本来零碎的 I/O 汇流排,实际上效能会较佳。别的现在普通的中高阶磁碟阵列卡都援助热拔插, 亦即在不关机的状况下抽换破坏的磁碟,关于零碎的恢复与材料的牢靠性方面十分的好用。

                不外一块好的磁碟阵列卡动不动就上万元台币,廉价的在主机板下面‘附赠’的磁碟阵列功用能够又不援助某些高阶功用, 比方低阶主机板如有磁碟阵列晶片,通常仅援助到 RAID0 与 RAID1 ,鸟哥喜好的 RAID 5 并没有援助。 别的,作业零碎也必需要拥有磁碟阵列卡的驱动顺序,才干够准确的捉到磁碟阵列所发生的磁碟机!

                由于磁碟阵列有许多良好的功用,但是硬体磁碟阵列卡偏偏又贵的很~因而就有开展出应用软件来模仿磁碟阵列的功用, 这便是所谓的软件磁碟阵列 (software RAID)。软件磁碟阵列次要是透过软件来模仿阵列的义务, 因而会消耗较多的零碎资源,比方说 CPU 的运算与 I/O 汇流排的资源等。不外现在我们的团体电脑真实曾经十分疾速了, 因而曩昔的速率限定如今曾经不存在!以是我们可以来玩一玩软件磁碟阵列!

                我们的 CentOS 提供的软件磁碟阵列为 mdadm 这套软件,这套软件会以 partition 或 disk 为磁碟的单元,也便是说,你不需求两颗以上的磁碟,只需有两个以上的联系槽 (partition) 就可以设计你的磁碟阵列了。别的, mdadm 援助方才我们后面提到的 RAID0/RAID1/RAID5/spare disk 等! 并且提供的办理机制还可以到达相似热拔插的功用,可以线上 (文件零碎正常运用) 停止联系槽的抽换! 运用上也十分的方便呢!

                别的你必需要晓得的是,硬体磁碟阵列在 Linux 底下看起来便是一颗实践的大磁碟,因而硬体磁碟阵列的安装档名为 /dev/sd[a-p] ,由于运用到 SCSI 的模组之故。至于软件磁碟阵列则是零碎模仿的,因而运用的安装档名是零碎的安装档, 档名为 /dev/md0, /dev/md1...,两者的安装档名并不相反!不要搞混了喔!由于许多冤家经常以为奇异, 怎样他的 RAID 档名跟我们这里测试的软件 RAID 档名差别,以是这里特殊夸大阐明喔!


                小标题的图示软件磁碟阵列的设定

                软件磁碟阵列的设定很复杂呢!复杂到让你很想笑喔!由于你只需运用一个指令即可!那便是 mdadm 这个指令。 这个指令在树立 RAID 的语法有点像如许:

                [root@www ~]# mdadm --detail /dev/md0
                [root@www ~]# mdadm --create --auto=yes /dev/md[0-9] --raid-devices=N \
                > --level=[015] --spare-devices=N /dev/sdx /dev/hdx...
                选项与参数:
                --create :为树立 RAID 的选项;
                --auto=yes :决议树立前面接的软件磁碟阵列安装,亦即 /dev/md0, /dev/md1...
                --raid-devices=N :运用几个磁碟 (partition) 作为磁碟阵列的安装
                --spare-devices=N :运用几个磁碟作为备用 (spare) 安装
                --level=[015] :设定这组磁碟阵列的品级。援助许多,不外发起只需用 0, 1, 5 即可
                --detail :前面所接的谁人磁碟阵列安装的细致资讯
                

                下面的语法中,最初面会接很多的安装档名,这些安装档名可以是整颗磁碟,比方 /dev/sdb , 也可以是联系槽,比方 /dev/sdb1 之类。不外,这些安装档名的总数必需要即是 --raid-devices 与 --spare-devices 的个数总和才行!鸟哥应用我的测试机来建置一个 RAID 5 的软件磁碟阵列给您瞧瞧! 起首,将零碎外面过来训练过而现在用不到的联系槽统统删撤除:

                [root@www ~]# fdisk -l
                Disk /dev/hda: 41.1 GB, 41174138880 bytes
                255 heads, 63 sectors/track, 5005 cylinders
                Units = cylinders of 16065 * 512 = 8225280 bytes
                
                   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        5005    24740100    5  Extended
                /dev/hda5            1926        2052     1020096   82  Linux swap / Solaris
                /dev/hda6            2053        2302     2008093+  83  Linux
                /dev/hda7            2303        2334      257008+  82  Linux swap / Solaris
                /dev/hda8            2335        2353      152586   83  Linux
                /dev/hda9            2354        2366      104391   83  Linux
                
                [root@www ~]# df
                Filesystem           1K-blocks      Used Available Use% Mounted on
                /dev/hda2              9920624   3858800   5549756  42% /
                /dev/hda1               101086     21408     74459  23% /boot
                tmpfs                   371332         0    371332   0% /dev/shm
                /dev/hda3              4956316   1056996   3643488  23% /home
                # 从下面可以发明,我的 /dev/hda6~/dev/hda9 没有效到!将他删除看看!
                
                [root@www ~]# fdisk /dev/hda
                Command (m for help): d
                Partition number (1-9): 9
                
                Command (m for help): d
                Partition number (1-8): 8
                
                Command (m for help): d
                Partition number (1-7): 7
                
                Command (m for help): d
                Partition number (1-6): 6
                
                Command (m for help): p
                
                Disk /dev/hda: 41.1 GB, 41174138880 bytes
                255 heads, 63 sectors/track, 5005 cylinders
                Units = cylinders of 16065 * 512 = 8225280 bytes
                
                   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        5005    24740100    5  Extended
                /dev/hda5            1926        2052     1020096   82  Linux swap / Solaris
                
                Command (m for help): w
                
                [root@www ~]# partprobe
                # 这个举措很紧张!还记得吧!将中心的 partition table 更新!
                

                底下是鸟哥盼望做成的 RAID 5 情况:

                • 应用 4 个 partition 构成 RAID 5;
                • 每个 partition 约为 1GB 巨细,需确定每个 partition 一样大较佳;
                • 应用 1 个 partition 设定为 spare disk
                • 这个 spare disk 的巨细与其他 RAID 所需 partition 一样大!
                • 将此 RAID 5 安装挂载到 /mnt/raid 目次下

                终极我需求 5 个 1GB 的 partition 。由于鸟哥的零碎仅有一颗磁碟,这颗磁碟剩余容量约 20GB 是够用的, 联系槽代号仅运用到 5 号,以是要制造成 RAID 5 应该是不可题目!接上去便是延续的建置流程啰!


                • 建置所需的磁碟安装

                如前所述,我需求 5 个 1GB 的联系槽,请应用 fdisk 来建置吧!

                [root@www ~]# fdisk /dev/hda
                Command (m for help): n
                First cylinder (2053-5005, default 2053): <==间接按下 [enter]
                Using default value 2053
                Last cylinder or +size or +sizeM or +sizeK (2053-5005, default 5005): +1000M
                # 上述的举措请作五次!
                
                Command (m for help): p
                
                Disk /dev/hda: 41.1 GB, 41174138880 bytes
                255 heads, 63 sectors/track, 5005 cylinders
                Units = cylinders of 16065 * 512 = 8225280 bytes
                
                   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        5005    24740100    5  Extended
                /dev/hda5            1926        2052     1020096   82  Linux swap / Solaris
                /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
                # 下面的 6~10 号,便是我们需求的 partition 啰!
                
                Command (m for help): w
                
                [root@www ~]# partprobe
                


                • 以 mdadm 建置 RAID

                接上去就复杂啦!透过 mdadm 来树立磁碟阵列先!

                [root@www ~]# mdadm --create --auto=yes /dev/md0 --level=5 \
                > --raid-devices=4 --spare-devices=1 /dev/hda{6,7,8,9,10}
                # 细致的参数阐明请归去后面看看啰!这里我透过 {} 将反复的项目简化!
                
                [root@www ~]# mdadm --detail /dev/md0
                /dev/md0:                                        <==RAID 安装档名
                        Version : 00.90.03
                  Creation Time : Tue Mar 10 17:47:51 2009       <==RAID 被树立的工夫
                     Raid Level : raid5                          <==RAID 品级为 RAID 5
                     Array Size : 2963520 (2.83 GiB 3.03 GB)     <==此 RAID 的可用磁碟容量
                  Used Dev Size : 987840 (964.85 MiB 1011.55 MB) <==每个安装的可用容量
                   Raid Devices : 4                              <==用作 RAID 的安装数目
                  Total Devices : 5                              <==全部的安装数目
                Preferred Minor : 0
                    Persistence : Superblock is persistent
                
                    Update Time : Tue Mar 10 17:52:23 2009
                          State : clean
                 Active Devices : 4                              <==启动的(active)安装数目
                Working Devices : 5                              <==可举措的安装数目
                 Failed Devices : 0                              <==呈现错误的安装数目
                  Spare Devices : 1                              <==准备磁碟的数目
                
                         Layout : left-symmetric
                     Chunk Size : 64K      <==便是图2.1.4内的小区块
                
                           UUID : 7c60c049:57d60814:bd9a77f1:57e49c5b <==此安装(RAID)辨认码
                         Events : 0.2
                
                    Number   Major   Minor   RaidDevice State
                       0       3        6        0      active sync   /dev/hda6
                       1       3        7        1      active sync   /dev/hda7
                       2       3        8        2      active sync   /dev/hda8
                       3       3        9        3      active sync   /dev/hda9
                
                       4       3       10        -      spare   /dev/hda10
                # 最初五行便是这五个安装现在的状况,包罗四个 active sync 一个 spare !
                # 至于 RaidDevice  指的则是此 RAID 内的磁碟次序
                

                由于磁碟阵列的建置需求一些工夫,以是你最好等候数分钟后再运用‘ mdadm --detail /dev/md0 ’去查阅你的磁碟阵列细致资讯! 不然有能够看到某些磁碟正在‘spare rebuilding’之类的建置字样!透过下面的指令, 你就可以树立一个 RAID5 且含有一颗 spare disk 的磁碟阵列啰!十分复杂吧! 除了指令之外,你也可以查阅如下的文件来看看零碎软件磁碟阵列的状况:

                [root@www ~]# cat /proc/mdstat
                Personalities : [raid6] [raid5] [raid4]
                md0 : active raid5 hda9[3] hda10[4](S) hda8[2] hda7[1] hda6[0]    <==第一行
                      2963520 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU] <==第二行
                
                unused devices: <none>
                

                上述的材料比拟紧张的在特殊指出的第一行与第二行局部(注2):

                • 第一行局部:指出 md0 为 raid5 ,且运用了 hda9, hda8, hda7, hda6 等四颗磁碟安装。每个安装前面的中括号 [] 内的数字为此磁碟在 RAID 中的次序 (RaidDevice);至于 hda10 前面的 [S] 则代表 hda10 为 spare 之意。

                • 第二行:此磁碟阵列拥有 2963520 个block(每个 block 单元为 1K),以是总容量约为 3GB, 运用 RAID 5 品级,写入磁碟的小区块 (chunk) 巨细为 64K,运用 algorithm 2 磁碟阵列演算法。 [m/n] 代表此阵列需求 m 个安装,且 n 个安装正常运作。因而本 md0 需求 4 个安装且这 4 个安装均正常运作。 前面的 [UUUU] 代表的是四个所需的安装 (便是 [m/n] 外面的 m) 的启动状况,U 代表正常运作,若为 _ 则代表不正常。

                这两种办法都可以晓得现在的磁碟阵列形态啦!


                • 款式化与挂载运用 RAID

                接上去便是开端运用款式化东西啦!这局部就复杂到爆!未几说了,间接停止吧!

                [root@www ~]# mkfs -t ext3 /dev/md0
                # 风趣吧!是 /dev/md0 做为安装被款式化呢!
                
                [root@www ~]# mkdir /mnt/raid
                [root@www ~]# mount /dev/md0 /mnt/raid
                [root@www ~]# df
                Filesystem     1K-blocks      Used Available Use% Mounted on
                /dev/hda2        9920624   3858820   5549736  42% /
                /dev/hda1         101086     21408     74459  23% /boot
                tmpfs             371332         0    371332   0% /dev/shm
                /dev/hda3        4956316   1056996   3643488  23% /home
                /dev/md0         2916920     69952   2698792   3% /mnt/raid
                # 看吧!多了一个 /dev/md0 的安装,并且真的可以让你运用呢!还不赖!
                


                小标题的图示模仿 RAID 错误的救济形式

                俗话说‘天有意外风云、人有朝夕祸福’,谁也不晓得你的磁碟阵列内的安装啥时会出过失,因而, 理解一下软件磁碟阵列的救济照旧必需的!底下我们就来玩一玩救济的机制吧!起首来理解一下 mdadm 这方面的语法:

                [root@www ~]# mdadm --manage /dev/md[0-9] [--add 安装] [--remove 安装] \
                > [--fail 安装] 
                选项与参数:
                --add :会将前面的安装参加到这个 md 中!
                --remove :会将前面的安装由这个 md 中移除
                --fail :会将前面的安装设定成为堕落的形态
                


                • 设定磁碟为错误 (fault)

                起首,我们来处置一下,该怎样让一个磁碟酿成错误,然后让 spare disk 主动的开端重修零碎呢?

                # 0. 先复制一些工具到 /mnt/raid 去,假定这个 RAID 曾经在运用了
                [root@www ~]# cp -a /etc /var/log /mnt/raid
                [root@www ~]# df /mnt/raid ; du -sm /mnt/raid/*
                Filesystem   1K-blocks      Used Available Use% Mounted on
                /dev/md0       2916920    188464   2580280   7% /mnt/raid
                118     /mnt/raid/etc <==看吧!的确有材料在外面喔!
                8       /mnt/raid/log
                1       /mnt/raid/lost+found
                
                # 1. 假定 /dev/hda8 这个安装堕落了!实践模仿的方法:
                [root@www ~]# mdadm --manage /dev/md0 --fail /dev/hda8
                mdadm: set /dev/hda8 faulty in /dev/md0
                
                [root@www ~]# mdadm --detail /dev/md0
                ....(后面省略)....
                          State : clean, degraded, recovering
                 Active Devices : 3
                Working Devices : 4
                 Failed Devices : 1  <==堕落的磁碟有一个!
                  Spare Devices : 1
                ....(两头省略)....
                    Number   Major   Minor   RaidDevice State
                       0       3        6        0      active sync   /dev/hda6
                       1       3        7        1      active sync   /dev/hda7
                       4       3       10        2      spare rebuilding   /dev/hda10
                       3       3        9        3      active sync   /dev/hda9
                
                       5       3        8        -      faulty spare   /dev/hda8
                # 看到没!这的举措要快做才会看到! /dev/hda10 启动了而 /dev/hda8 去世失了
                
                [root@www ~]# cat /proc/mdstat
                Personalities : [raid6] [raid5] [raid4]
                md0 : active raid5 hda9[3] hda10[4] hda8[5](F) hda7[1] hda6[0]
                      2963520 blocks level 5, 64k chunk, algorithm 2 [4/3] [UU_U]
                      [>.......]  recovery =  0.8% (9088/987840) finish=14.3min speed=1136K/sec
                

                下面的画面你得要疾速的延续输出那些 mdadm 的指令才看的到!由于你的 RAID 5 正在重修零碎! 若你等候一段工夫再输出前面的察看指令,则会看到如下的画面了:

                # 2. 曾经藉由 spare disk 重修终了的 RAID 5 状况
                [root@www ~]# mdadm --detail /dev/md0
                ....(后面省略)....
                    Number   Major   Minor   RaidDevice State
                       0       3        6        0      active sync   /dev/hda6
                       1       3        7        1      active sync   /dev/hda7
                       2       3       10        2      active sync   /dev/hda10
                       3       3        9        3      active sync   /dev/hda9
                
                       4       3        8        -      faulty spare   /dev/hda8
                
                [root@www ~]# cat /proc/mdstat
                Personalities : [raid6] [raid5] [raid4]
                md0 : active raid5 hda9[3] hda10[2] hda8[4](F) hda7[1] hda6[0]
                      2963520 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
                

                看吧!又规复正常了!真好!我们的 /mnt/raid 文件零碎是完好的!并不需求卸载!很棒吧!


                • 将堕落的磁碟移除并参加新磁碟

                起首,我们再树立一个新的联系槽,这个联系槽要与其他联系槽一样大才好!然后再应用 mdadm 移除错误的并参加新的!

                # 3. 树立新的联系槽
                [root@www ~]# fdisk /dev/hda
                Command (m for help): n
                First cylinder (2668-5005, default 2668): <==这里按 [enter]
                Using default value 2668
                Last cylinder or +size or +sizeM or +sizeK (2668-5005, default 5005): +1000M
                
                Command (m for help): w
                
                [root@www ~]# partprobe
                # 此时零碎会多一个 /dev/hda11 的联系槽喔!
                
                # 4. 参加新的废除有题目的磁碟
                [root@www ~]# mdadm --manage /dev/md0 --add /dev/hda11 --remove /dev/hda8
                mdadm: added /dev/hda11
                mdadm: hot removed /dev/hda8
                
                [root@www ~]# mdadm --detail /dev/md0
                ....(后面省略)....
                       0       3        6        0      active sync   /dev/hda6
                       1       3        7        1      active sync   /dev/hda7
                       2       3       10        2      active sync   /dev/hda10
                       3       3        9        3      active sync   /dev/hda9
                
                       4       3       11        -      spare   /dev/hda11
                

                嘿嘿!你的磁碟阵列内的材料不光不断存在,并且你可以不断顺遂的运作 /mnt/raid 内的材料,即便 /dev/hda8 损毁了!然后透过办理的功用就可以参加新磁碟且废除坏失的磁碟!留意,这统统都是在上线 (on-line) 的状况下停止! 以是,您说如许的咚咚好欠好用啊! ^_^


                小标题的图示开机主动启动 RAID 并主动挂载

                新的 distribution 大多会本人搜索 /dev/md[0-9] 然后在开机的时分赐与设定好所需求的功用。不外鸟哥照旧发起你, 修正一下设定档吧! ^_^。software RAID 也是有设定档的,这个设定档在 /etc/mdadm.conf !这个设定档内容很复杂, 你只需晓得 /dev/md0 的 UUID 就可以设定这个文件啦!这里鸟哥仅引见他最复杂的语法:

                [root@www ~]# mdadm --detail /dev/md0 | grep -i uuid
                        UUID : 7c60c049:57d60814:bd9a77f1:57e49c5b
                # 前面那一串材料,便是这个安装向零碎注册的 UUID 辨认码!
                
                # 开端设定 mdadm.conf
                [root@www ~]# vi /etc/mdadm.conf
                ARRAY /dev/md0 UUID=7c60c049:57d60814:bd9a77f1:57e49c5b
                #     RAID安装      辨认码内容
                
                # 开端设定开机主动挂载并测试
                [root@www ~]# vi /etc/fstab
                /dev/md0    /mnt/raid    ext3    defaults     1 2
                
                [root@www ~]# umount /dev/md0; mount -a
                [root@www ~]# df /mnt/raid
                Filesystem           1K-blocks      Used Available Use% Mounted on
                /dev/md0               2916920    188464   2580280   7% /mnt/raid
                # 你得确定可以顺遂挂载,而且没有发作任何错误!
                

                假如到这里都没有呈现任何题目!接上去就请 reboot 你的零碎并等候看看可否顺遂的启动吧! ^_^


                小标题的图示封闭软件 RAID(紧张!)

                除非你将来便是要运用这颗 software RAID (/dev/md0),不然你势须要跟鸟哥一样,将这个 /dev/md0 封闭! 由于他终究是我们在这个测试机下面的训练安装啊!为什么要关失他呢?由于这个 /dev/md0 实在照旧运用到我们零碎的磁碟联系槽, 在鸟哥的例子外面便是 /dev/hda{6,7,8,9,10,11},假如你只是将 /dev/md0 卸载,然后遗忘将 RAID 封闭, 后果便是....将来你在重新联系 /dev/hdaX 时能够会呈现一些莫名的错误情况啦!以是才需求封闭 software RAID 的步调! 那怎样封闭呢?也是复杂到爆炸!(请留意,确认你的 /dev/md0 的确不要用且要封闭了才停止底下的玩意儿)

                # 1. 先卸载且删除设定档内与这个 /dev/md0 有关的设定:
                [root@www ~]# umount /dev/md0
                [root@www ~]# vi /etc/fstab
                /dev/md0    /mnt/raid     ext3    defaults      1 2
                # 将这一行删撤除!或许是表明失也可以!
                
                # 2. 间接封闭 /dev/md0 的办法!
                [root@www ~]# mdadm --stop /dev/md0
                mdadm: stopped /dev/md0  <==不啰唆!如许就封闭了!
                
                [root@www ~]# cat /proc/mdstat
                Personalities : [raid6] [raid5] [raid4]
                unused devices: <none>  <==看吧!的确不存在任何阵列安装!
                
                [root@www ~]# vi /etc/mdadm.conf
                ARRAY /dev/md0 UUID=7c60c049:57d60814:bd9a77f1:57e49c5b
                # 一样啦!删除他或是表明他!
                
                Tips:
                在这个训练中,鸟哥运用统一颗磁碟停止软件 RAID 的实行。不外冤家们要留意的是,假如真的要实作软件磁碟阵列, 最好是由多颗差别的磁碟来构成较佳!由于如许才干够运用到差别磁碟的读写,效能才会好! 而材料分派在差别的磁碟,当某颗磁碟损毁时材料才干够藉由其他磁碟援救返来!这点得特殊注意呢!
                鸟哥的图示

                大标题的图示逻辑卷轴办理员 (Logical Volume Manager)

                想像一个状况,你在现在计划主机的时分将 /home 只给他 50G ,比及运用者浩繁之后招致这个 filesystem 不敷大, 此时你能怎样作?少数的冤家都是如许:再加一颗新硬碟,然后重新联系、款式化,将 /home 的材料完好的复制过去, 然后将本来的 partition 卸载重新挂载新的 partition 。啊!好繁忙啊!如果第二次联系却给的容量太多!招致许多磁碟容量被糜费了! 你想要将这个 partition 减少时,又该怎样作?将上述的流程再搞一遍!唉~烦去世了,尤其复制很花工夫ㄟ~有没有更复杂的办法呢? 有的!那便是我们这个大节要引见的 LVM 这玩意儿!

                LVM 的重点在于‘可以弹性的调解 filesystem 的容量!’而并非在于效能与材料保全下面。 需求文件的读写效能或许是材料的牢靠性,请参考后面的 RAID 大节。 LVM 可以整合多个实体 partition 在一同, 让这些 partitions 看起来就像是一个磁碟一样!并且,还可以在将来新增或移除其他的实体 partition 到这个 LVM 办理的磁碟当中。 云云一来,整个磁碟空间的运用上,真实是相称的具有弹性啊! 既然 LVM 这么好用,那就让我们来瞧瞧这玩意吧!


                小标题的图示什么是 LVM: PV, PE, VG, LV 的意义

                LVM 的全名是 Logical Volume Manager,中文可以翻译作逻辑卷轴办理员。之以是称为‘卷轴’能够是由于可以将 filesystem 像卷轴一样伸长或延长之故吧!LVM 的作法是将几个实体的 partitions (或 disk) 透过软件组分解为一块看起来是独立的大磁碟 (VG) ,然后将这块大磁碟再颠末联系成为可运用联系槽 (LV), 终极就可以挂载运用了。但是为什么如许的零碎可以停止 filesystem 的扩大或减少呢?实在与一个称为 PE 的项目有关! 底下我们就得要针对这几个项目来好好聊聊!

                • Physical Volume, PV, 实体卷轴

                我们实践的 partition 需求调解零碎辨认码 (system ID) 成为 8e (LVM 的辨认码),然后再颠末 pvcreate 的指令将他转成 LVM 最底层的实体卷轴 (PV) ,之后才干够将这些 PV 加以应用! 调解 system ID 的方是便是透过 fdisk 啦!

                • Volume Group, VG, 卷轴群组

                所谓的 LVM 大磁碟便是将很多 PV 整分解这个 VG 的工具便是啦!以是 VG 便是 LVM 组合起来的大磁碟!这么想就好了。 那么这个大磁碟最大可以到几多容量呢?这与底下要阐明的 PE 有关喔~由于每个 VG 最多仅能包括 65534 个 PE 罢了。 假如运用 LVM 预设的参数,则一个 VG 最大可达 256GB 的容量啊!(参考底下的 PE 阐明)

                • Physical Extend, PE, 实体延伸区块

                LVM 预设运用 4MB 的 PE 区块,而 LVM 的 VG 最多仅能含有 65534 个 PE ,因而预设的 LVM VG 会有 4M*65534/(1024M/G)=256G。 这个 PE 很风趣喔!他是整个 LVM 最小的贮存区块,也便是说,实在我们的文件材料都是藉由写入 PE 来处置的。 复杂的说,这个 PE 就有点像文件零碎外面的 block 巨细啦。 如许说应该就比拟好了解了吧?以是调解 PE 会影响到 VG 的最大容量喔!

                • Logical Volume, LV, 逻辑卷轴

                终极的 VG 还会被切成 LV,这个 LV 便是最初可以被款式化运用的相似联系槽的咚咚了!那么 LV 能否可以随意指定巨细呢? 固然不行以!既然 PE 是整个 LVM 的最小贮存单元,那么 LV 的巨细就与在此 LV 内的 PE 总数有关。 为了方便运用者应用 LVM 来办理其零碎,因而 LV 的安装档名通常指定为‘ /dev/vgname/lvname ’的款式!

                别的,我们方才有谈到 LVM 可弹性的变卦 filesystem 的容量,那是怎样办到的?实在他便是透过‘交流 PE ’来停止材料转换, 将本来 LV 内的 PE 移转到其他安装中以低落 LV 容量,或将其他安装的 PE 加到此 LV 中以加大容量! VG、LV 与 PE 的干系有点像下图:

                PE 与 VG 的相干性图示
                图 3.1.1、PE 与 VG 的相干性图示

                如上图所示,VG 内的 PE 会分给虚线局部的 LV,假如将来这个 VG 要扩大的话,加上其他的 PV 即可。 而最紧张的 LV 假如要扩大的话,也是透过参加 VG 内没有运用到的 PE 来扩大的!

                • 实作流程

                透过 PV, VG, LV 的计划之后,再应用 mkfs 就可以将你的 LV 款式化成为可以应用的文件零碎了!并且这个文件零碎的容量在将来还可以停止扩大或增加, 并且外面的材料还不会被影响!真实是很‘福分啦!’那实作方面要怎样停止呢?很复杂呢! 整个流程由根底到终极的后果可以如许看:

                LVM 各元件的完成流程图示
                图 3.1.2、 LVM 各元件的完成流程图示

                云云一来,我们就可以应用 LV 这个玩意儿来停止零碎的挂载了。不外,你应该要以为奇异的是, 那么我的材料写入这个 LV 时,究竟他是怎样写入硬碟当中的? 呵呵!好题目~实在,根据写入机制的差别,而有两种方法:

                • 线性形式 (linear):假设我将 /dev/hda1, /dev/hdb1 这两个 partition 参加到 VG 当中,而且整个 VG 只要一个 LV 时,那么所谓的线性形式便是:当 /dev/hda1 的容量用完之后,/dev/hdb1 的硬碟才会被运用到, 这也是我们所发起的形式。

                • 交织形式 (triped):那什么是交织形式?很复杂啊,便是我将一笔材料拆成两局部,辨别写入 /dev/hda1 与 /dev/hdb1 的意思,觉得上有点像 RAID 0 啦!云云一来,一份材料用两颗硬碟来写入,实际上,读写的效能会比拟好。

                根本上,LVM 最次要的用途是在完成一个可以弹性调解容量的文件零碎上, 而不是在树立一个效能为主的磁碟上,以是,我们应该应用的是 LVM 可以弹性办理整个 partition 巨细的用处上,而不是着眼在效能上的。因而, LVM 预设的读写形式是线性形式啦! 假如你运用 triped 形式,要留意,当任何一个 partition ‘去世’时,一切的材料都市‘损毁’的! 以是啦,不是很合适运用这种形式啦!假如要夸大效能与备份,那么就间接运用 RAID 即可, 不需求用到 LVM 啊!


                小标题的图示LVM 实作流程

                LVM 必须要中心有援助且需求装置 lvm2 这个软件,好佳在的是, CentOS 与其他较新的 distributions 曾经预设将 lvm 的援助与软件都装置妥当了!以是你不需求担忧这方面的题目!用就对了!

                鸟哥运用的测试机又要出动了喔!方才我们才训练过 RAID,必需要将一堆现在没有效到的联系槽先杀失, 然后再重修新的联系槽。而且由于鸟哥仅有一个 40GB 的磁碟,以是底下的训练都仅针对统一颗磁碟来作的。 我的要求有点像如许:

                • 先联系出 4 个 partition ,每个 partition 的容量均为 1.5GB 左右,且 system ID 需求为 8e;
                • 全部的 partition 整分解为一个 VG,VG 称号设定为 vbirdvg;且 PE 的巨细为 16MB;
                • 全部的 VG 容量都丢给 LV ,LV 的称号设定为 vbirdlv;
                • 终极这个 LV 款式化为 ext3 的文件零碎,且挂载在 /mnt/lvm 中

                鸟哥就不细心的引见实体联系了,请您自行参考第八章的 fdisk 来告竣底下的典范:(留意:修正零碎辨认码请运用 t 这个 fdisk 内的指令来处置即可)

                [root@www ~]# fdisk /dev/hda  <==其他流程请自行参考第八章处置
                [root@www ~]# partprobe       <==别遗忘这个举措了!粉紧张!
                [root@www ~]# fdisk -l
                Disk /dev/hda: 41.1 GB, 41174138880 bytes
                255 heads, 63 sectors/track, 5005 cylinders
                Units = cylinders of 16065 * 512 = 8225280 bytes
                
                   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        5005    24740100    5  Extended
                /dev/hda5            1926        2052     1020096   82  Linux swap / Solaris
                /dev/hda6            2053        2235     1469916   8e  Linux LVM
                /dev/hda7            2236        2418     1469916   8e  Linux LVM
                /dev/hda8            2419        2601     1469916   8e  Linux LVM
                /dev/hda9            2602        2784     1469916   8e  Linux LVM
                

                下面的 /dev/hda{6,7,8,9} 这四个联系槽便是我们的实体联系槽!也便是底下会实践用到的资讯! 留意看,谁人 8e 的呈现会招致 system 酿成‘ Linux LVM ’哩!实在没有设定成为 8e 也不要紧, 不外某些 LVM 的探测指令能够会探测不到该 partition 便是了!接上去,就一个一个的处置各流程吧!


                • PV 阶段

                要树立 PV 实在很复杂,只需间接运用 pvcreate 即可!我们来谈一谈与 PV 有关的指令吧!

                • pvcreate :将实体 partition 树立成为 PV ;
                • pvscan :搜索现在零碎外面任何具有 PV 的磁碟;
                • pvdisplay :表现出现在零碎下面的 PV 形态;
                • pvremove :将 PV 属性移除,让该 partition 不具有 PV 属性。

                那就间接来瞧一瞧吧!

                # 1. 反省有无 PV 在零碎上,然后将 /dev/hda6~/dev/hda9 树立成为 PV 款式
                [root@www ~]# pvscan
                  No matching physical volumes found <==找不就任何的 PV 存在喔!
                
                [root@www ~]# pvcreate /dev/hda{6,7,8,9}
                  Physical volume "/dev/hda6" successfully created
                  Physical volume "/dev/hda7" successfully created
                  Physical volume "/dev/hda8" successfully created
                  Physical volume "/dev/hda9" successfully created
                # 这个指令可以一口吻树立这四个 partition 成为 PV 啦!留意大括号的用处
                
                [root@www ~]# pvscan
                  PV /dev/hda6         lvm2 [1.40 GB]
                  PV /dev/hda7         lvm2 [1.40 GB]
                  PV /dev/hda8         lvm2 [1.40 GB]
                  PV /dev/hda9         lvm2 [1.40 GB]
                  Total: 4 [5.61 GB] / in use: 0 [0   ] / in no VG: 4 [5.61 GB]
                # 这就辨别表现每个 PV 的资讯与零碎一切 PV 的资讯。尤其最初一行,表现的是:
                # 全体 PV 的量 / 曾经被运用到 VG 的 PV 量 / 剩余的 PV 量
                
                # 2. 更细致的列示出零碎下面每个 PV 的一般资讯:
                [root@www ~]# pvdisplay
                  "/dev/hda6" is a new physical volume of "1.40 GB"
                  --- NEW Physical volume ---
                  PV Name               /dev/hda6  <==实践的 partition 安装称号
                  VG Name                          <==由于尚未分派出去,以是空缺!
                  PV Size               1.40 GB    <==便是容量阐明
                  Allocatable           NO         <==能否已被分派,后果是 NO
                  PE Size (KByte)       0          <==在此 PV 内的 PE 巨细
                  Total PE              0          <==共联系出几个 PE
                  Free PE               0          <==没被 LV 用失的 PE
                  Allocated PE          0          <==尚可分派出去的 PE 数目
                  PV UUID               Z13Jk5-RCls-UJ8B-HzDa-Gesn-atku-rf2biN
                ....(底下省略)....
                # 由于 PE 是在树立 VG 时才赐与的参数,因而在这里看到的 PV 外头的 PE 都市是 0
                # 并且也没有多余的 PE 可供分派 (allocatable)。
                

                讲是很难,作是很复杂!如许就将 PV 树立了两个啰!复杂到不可吧! ^_^!持续来玩 VG 去!


                • VG 阶段

                树立 VG 及 VG 相干的指令也不少,我们来看看:

                • vgcreate :便是次要树立 VG 的指令啦!他的参数比拟多,等一下引见。
                • vgscan :搜索零碎下面能否有 VG 存在?
                • vgdisplay :表现现在零碎下面的 VG 形态;
                • vgextend :在 VG 内添加额定的 PV ;
                • vgreduce :在 VG 内移除 PV;
                • vgchange :设定 VG 能否启动 (active);
                • vgremove :删除一个 VG 啊!

                与 PV 差别的是, VG 的称号是自订的!我们晓得 PV 的称号实在便是 partition 的安装代号, 但是这个 VG 称号则可以随意你本人取啊!在底下的例子当中,我将 VG 称号取名为 vbirdvg 。树立这个 VG 的流程是如许的:

                [root@www ~]# vgcreate [-s N[mgt]] VG称号 PV称号
                选项与参数:
                -s :前面接 PE 的巨细 (size) ,单元可以是 m, g, t (巨细写均可)
                
                # 1. 将 /dev/hda6-8 树立成为一个 VG,且指定 PE 为 16MB 喔!
                [root@www ~]# vgcreate -s 16M vbirdvg /dev/hda{6,7,8}
                  Volume group "vbirdvg" successfully created
                
                [root@www ~]# vgscan
                  Reading all physical volumes.  This may take a while...
                  Found volume group "vbirdvg" using metadata type lvm2
                # 的确存在这个 vbirdvg 的 VG 啦!
                
                [root@www ~]# pvscan
                  PV /dev/hda6   VG vbirdvg   lvm2 [1.39 GB / 1.39 GB free]
                  PV /dev/hda7   VG vbirdvg   lvm2 [1.39 GB / 1.39 GB free]
                  PV /dev/hda8   VG vbirdvg   lvm2 [1.39 GB / 1.39 GB free]
                  PV /dev/hda9                lvm2 [1.40 GB]
                  Total: 4 [5.57 GB] / in use: 3 [4.17 GB] / in no VG: 1 [1.40 GB]
                # 嘿嘿!发明没!有三个 PV 被用去,剩下一个 /dev/hda9 的 PV 没被用失!
                
                [root@www ~]# vgdisplay
                  --- Volume group ---
                  VG Name               vbirdvg
                  System ID
                  Format                lvm2
                  Metadata Areas        3
                  Metadata Sequence No  1
                  VG Access             read/write
                  VG Status             resizable
                  MAX LV                0
                  Cur LV                0
                  Open LV               0
                  Max PV                0
                  Cur PV                3
                  Act PV                3
                  VG Size               4.17 GB   <==全体的 VG 容量有这么大
                  PE Size               16.00 MB  <==外部每个 PE 的巨细
                  Total PE              267       <==统共的 PE 数目共有这么多!
                  Alloc PE / Size       0 / 0
                  Free  PE / Size       267 / 4.17 GB
                  VG UUID               4VU5Jr-gwOq-jkga-sUPx-vWPu-PmYm-dZH9EO
                # 最初那三行指的便是 PE 可以运用的状况!由于尚未切出 LV,因而一切的 PE 
                # 均可自在运用。
                

                如许就树立一个 VG 了!假定我们要添加这个 VG 的容量,由于我们另有 /dev/hda9 嘛!此时你可以如许做:

                # 2. 将剩余的 PV (/dev/hda9) 丢给 vbirdvg 吧!
                [root@www ~]# vgextend vbirdvg /dev/hda9
                  Volume group "vbirdvg" successfully extended
                
                [root@www ~]# vgdisplay
                ....(后面省略)....
                  VG Size               5.56 GB
                  PE Size               16.00 MB
                  Total PE              356
                  Alloc PE / Size       0 / 0
                  Free  PE / Size       356 / 5.56 GB
                  VG UUID               4VU5Jr-gwOq-jkga-sUPx-vWPu-PmYm-dZH9EO
                # 根本上,不难吧!如许就可以抽换整个 VG 的巨细啊!
                

                我们多了一个安装喔!接上去为这个 vbirdvg 停止联系吧!透过 LV 功用来处置!


                • LV 阶段

                发明出 VG 这个大磁碟之后,再来便是要树立联系区啦!这个联系区便是所谓的 LV 啰!假定我要将方才谁人 vbirdvg 磁碟,联系成为 vbirdlv ,整个 VG 的容量都被分派到 vbirdlv 外面去!先来看看能运用的指令后,就间接任务了先!

                • lvcreate :树立 LV 啦!
                • lvscan :盘问零碎下面的 LV ;
                • lvdisplay :表现零碎下面的 LV 形态啊!
                • lvextend :在 LV 外面添加容量!
                • lvreduce :在 LV 外面增加容量;
                • lvremove :删除一个 LV !
                • lvresize :对 LV 停止容量巨细的调解!
                [root@www ~]# lvcreate [-L N[mgt]] [-n LV称号] VG称号
                [root@www ~]# lvcreate [-l N] [-n LV称号] VG称号
                选项与参数:
                -L  :前面接容量,容量的单元可以是 M,G,T 等,要留意的是,最小单元为 PE,
                      因而这个数目必需要是 PE 的倍数,若不符合,零碎会自行盘算最相近的容量。
                -l  :前面可以接 PE 的‘个数’,而不是数目。若要这么做,得要自行盘算 PE 数。
                -n  :前面接的便是 LV 的称号啦!
                更多的阐明应该可以自行查阅吧! man lvcreate 
                
                # 1. 将整个 vbirdvg 统统分派给 vbirdlv 啊,要留意, PE 共有 356 个。
                [root@www ~]# lvcreate -l 356 -n vbirdlv vbirdvg
                  Logical volume "vbirdlv" created
                # 由于本案例中每个 PE 为 16M ,因而上述的指令也可以运用如下的方法来树立:
                # lvcreate -L 5.56G -n vbirdlv vbirdvg
                
                [root@www ~]# ll /dev/vbirdvg/vbirdlv
                lrwxrwxrwx 1 root root 27 Mar 11 16:49 /dev/vbirdvg/vbirdlv ->
                /dev/mapper/vbirdvg-vbirdlv
                # 瞥见了没有啊!这便是我们最紧张的一个玩意儿了!
                
                [root@www ~]# lvdisplay
                  --- Logical volume ---
                  LV Name                /dev/vbirdvg/vbirdlv  <==这个才是 LV 的全名!
                  VG Name                vbirdvg
                  LV UUID                8vFOPG-Jrw0-Runh-ug24-t2j7-i3nA-rPEyq0
                  LV Write Access        read/write
                  LV Status              available
                  # open                 0
                  LV Size                5.56 GB               <==这个 LV 的容量这么大!
                  Current LE             356
                  Segments               4
                  Allocation             inherit
                  Read ahead sectors     auto
                  - currently set to     256
                  Block device           253:0
                

                云云一来,整个 partition 也预备好啦!接上去,便是针对这个 LV 来处置啦!要特殊留意的是, VG 的称号为 vbirdvg , 但是 LV 的称号必需运用全名!亦便是 /dev/vbirdvg/vbirdlv 才对喔! 后续的处置都是如许的!这点首次打仗 LVM 的冤家很容易搞错!


                • 文件零碎阶段

                这个局部鸟哥我就不再多加表明了!间接来停止吧!

                # 1. 款式化、挂载与察看我们的 LV 吧!
                [root@www ~]# mkfs -t ext3 /dev/vbirdvg/vbirdlv <==留意 LV 全名!
                [root@www ~]# mkdir /mnt/lvm
                [root@www ~]# mount /dev/vbirdvg/vbirdlv /mnt/lvm
                [root@www ~]# df
                Filesystem           1K-blocks      Used Available Use% Mounted on
                /dev/hda2              9920624   3858984   5549572  42% /
                /dev/hda3              4956316   1056996   3643488  23% /home
                /dev/hda1               101086     21408     74459  23% /boot
                tmpfs                   371332         0    371332   0% /dev/shm
                /dev/mapper/vbirdvg-vbirdlv
                                       5741020    142592   5306796   3% /mnt/lvm
                [root@www ~]# cp -a /etc /var/log /mnt/lvm
                

                实在 LV 的称号建置成为 /dev/vbirdvg/vbirdlv 是为了让运用者直觉式的找到我们所需求的材料, 实践上 LVM 运用的安装是安排到 /dev/mapper/ 目次下的!以是你才会看到上表当中的特别字体局部。 透过如许的功用,我们如今曾经建置好一个 LV 了!你可以自在的使用 /mnt/lvm 内的一切资源!


                小标题的图示缩小 LV 容量

                我们不是说 LVM 最大的特征便是弹性调解磁碟容量吗?好!那我们就来处置一下,假如要缩小 LV 的容量时, 该怎样停止完好的步调呢?实在一点都不难喔!你只需如许做即可:

                1. 用 fdisk 设定新的具有 8e system ID 的 partition
                2. 应用 pvcreate 建置 PV
                3. 应用 vgextend 将 PV 参加我们的 vbirdvg
                4. 应用 lvresize 将新参加的 PV 内的 PE 参加 vbirdlv 中
                5. 透过 resize2fs 将文件零碎的容量的确添加!

                此中最初一个步调最紧张!我们在第八章当中晓得, 整个文件零碎在最后款式化的时分就树立了 inode/block/superblock 等资讯,要改动这些资讯是很难的! 不外由于文件零碎款式化的时分建置的是多个 block group ,因而我们可以透过在文件零碎当中添加 block group 的方法来增减文件零碎的量!而增减 block group 便是应用 resize2fs 啦!以是最初一步是针对文件零碎来处置的, 后面几步则是针对 LVM 的实践容量巨细!

                # 1. 处置出一个 3GB 的新的 partition ,在鸟哥的零碎中应该是 /dev/hda10
                [root@www ~]# fdisk /dev/hda <==其他的举措请自行处置
                [root@www ~]# partprobe
                [root@www ~]# fdisk -l
                   Device Boot      Start         End      Blocks   Id  System
                ....(两头省略)....
                /dev/hda10           2785        3150     2939863+  8e  Linux LVM
                # 这个便是我们要的新的 partition 啰!
                
                # 2. 树立新的 PV:
                [root@www ~]# pvcreate /dev/hda10
                  Physical volume "/dev/hda10" successfully created
                [root@www ~]# pvscan
                  PV /dev/hda6    VG vbirdvg   lvm2 [1.39 GB / 0    free]
                  PV /dev/hda7    VG vbirdvg   lvm2 [1.39 GB / 0    free]
                  PV /dev/hda8    VG vbirdvg   lvm2 [1.39 GB / 0    free]
                  PV /dev/hda9    VG vbirdvg   lvm2 [1.39 GB / 0    free]
                  PV /dev/hda10                lvm2 [2.80 GB]
                  Total: 5 [8.37 GB] / in use: 4 [5.56 GB] / in no VG: 1 [2.80 GB]
                # 可以看到 /dev/hda10 是新参加而且尚未被运用的喔!
                
                # 3. 加大 VG ,应用 vgextend 功用!
                [root@www ~]# vgextend vbirdvg /dev/hda10
                  Volume group "vbirdvg" successfully extended
                [root@www ~]# vgdisplay
                  --- Volume group ---
                  VG Name               vbirdvg
                  System ID
                  Format                lvm2
                  Metadata Areas        5
                  Metadata Sequence No  4
                  VG Access             read/write
                  VG Status             resizable
                  MAX LV                0
                  Cur LV                1
                  Open LV               1
                  Max PV                0
                  Cur PV                5
                  Act PV                5
                  VG Size               8.36 GB
                  PE Size               16.00 MB
                  Total PE              535
                  Alloc PE / Size       356 / 5.56 GB
                  Free  PE / Size       179 / 2.80 GB
                  VG UUID               4VU5Jr-gwOq-jkga-sUPx-vWPu-PmYm-dZH9EO
                # 不光全体 VG 变大了!并且剩余的 PE 共有 179 个,容量则为 2.80G
                
                # 4. 缩小 LV 吧!应用 lvresize 的功用来添加!
                [root@www ~]# lvresize -l +179 /dev/vbirdvg/vbirdlv
                  Extending logical volume vbirdlv to 8.36 GB
                  Logical volume vbirdlv successfully resized
                # 如许就添加了 LV 了喔!lvresize 的语法很复杂,根本上异样透过 -l 或 -L 来添加!
                # 若要添加则运用 + ,若要增加则运用 - !细致的选项请参考 man lvresize 啰!
                
                [root@www ~]# lvdisplay
                  --- Logical volume ---
                  LV Name                /dev/vbirdvg/vbirdlv
                  VG Name                vbirdvg
                  LV UUID                8vFOPG-Jrw0-Runh-ug24-t2j7-i3nA-rPEyq0
                  LV Write Access        read/write
                  LV Status              available
                  # open                 1
                  LV Size                8.36 GB
                  Current LE             535
                  Segments               5
                  Allocation             inherit
                  Read ahead sectors     auto
                  - currently set to     256
                  Block device           253:0
                
                [root@www ~]# df /mnt/lvm
                Filesystem           1K-blocks      Used Available Use% Mounted on
                /dev/mapper/vbirdvg-vbirdlv
                                       5741020    261212   5188176   5% /mnt/lvm
                

                看到了吧?终极的后果中 LV 真的有缩小到 8.36GB 喔!但是文件零碎却没有绝对添加! 并且,我们的 LVM 可以线上间接处置,并不需求特殊给他 umount 哩!真是兽性化! 但是照旧得要处置一下文件零碎的容量啦!开端察看一下文件零碎,然后运用 resize2fs 来处置一下吧!

                # 5.1 先看一下本来的文件零碎内的 superblock 记载状况吧!
                [root@www ~]# dumpe2fs /dev/vbirdvg/vbirdlv
                dumpe2fs 1.39 (29-May-2006)
                ....(两头省略)....
                Block count:              1458176    <==这个filesystem的 block 总数
                ....(两头省略)....
                Blocks per group:         32768      <==几多个 block 设定成为一个 block group
                Group 0: (Blocks 0-32767)            <==括号内为 block 的号码
                ....(两头省略)....
                Group 44: (Blocks 1441792-1458175)   <==这是本零碎中最初一个 group
                ....(前面省略)....
                
                # 5.2 resize2fs 的语法
                [root@www ~]# resize2fs [-f] [device] [size]
                选项与参数:
                -f      :强迫停止 resize 的举措!
                [device]:安装的文件称号;
                [size]  :可以加也可以不加。假如加上 size 的话,那么就必需要赐与一个单元,
                          譬如 M, G 等等。假如没有 size 的话,那么预设运用‘整个 partition’
                          的容量来处置!
                
                # 5.3 完好的将 LV 的容量扩大到整个 filesystem 吧!
                [root@www ~]# resize2fs /dev/vbirdvg/vbirdlv
                resize2fs 1.39 (29-May-2006)
                Filesystem at /dev/vbirdvg/vbirdlv is mounted on /mnt/lvm; on-line resizing 
                Performing an on-line resize of /dev/vbirdvg/vbirdlv to 2191360 (4k) blocks.
                The filesystem on /dev/vbirdvg/vbirdlv is now 2191360 blocks long.
                # 可骇吧!这一版的 lvm 居然还可以线上停止 resize 的功用哩!真好!
                
                [root@www ~]# df /mnt/lvm
                Filesystem           1K-blocks      Used Available Use% Mounted on
                /dev/mapper/vbirdvg-vbirdlv
                                       8628956    262632   7931368   4% /mnt/lvm
                [root@www ~]# ll /mnt/lvm
                drwxr-xr-x 105 root root 12288 Mar 11 16:59 etc
                drwxr-xr-x  17 root root  4096 Mar 11 14:17 log
                drwx------   2 root root 16384 Mar 11 16:59 lost+found
                # 方才复制出来的材料可照旧存在的喔!并没有消逝不见!
                

                嘿嘿!真的缩小了吧!并且假如你曾经有填材料在 LVM 磁区当中的话!这个材料是不会去世失的喔!照旧持续存在本来的磁区当中啦! 整个举措居然这么复杂就完成了!本来的材料照旧不断存在而不会消逝~您说, LVM 好欠好用啊!

                别的,假如你再以 dumpe2fs 来反省 /dev/vbirdvg/vbirdlv 时,就会发明后续的 Group 添加了! 假如照旧搞不清晰什么是 block group 时,请回到第八章看一下该章内图1.3.1的引见吧!


                小标题的图示减少 LV 容量

                上一大节我们谈到的是缩小容量,如今来谈到的是减少容量喔!假定我们想将 /dev/hda6 抽离出来! 那该怎样处置啊?就让上一大节的流程倒转过去即可啊!我们就间接来玩吧!

                # 1. 先找出 /dev/hda6 的容量巨细,并实验盘算文件零碎需减少到几多
                [root@www ~]# pvdisplay
                  --- Physical volume ---
                  PV Name               /dev/hda6
                  VG Name               vbirdvg
                  PV Size               1.40 GB / not usable 11.46 MB
                  Allocatable           yes (but full)
                  PE Size (KByte)       16384
                  Total PE              89
                  Free PE               0
                  Allocated PE          89
                  PV UUID               Z13Jk5-RCls-UJ8B-HzDa-Gesn-atku-rf2biN
                # 从这里可以看出 /dev/hda6 有多大,并且含有 89 个 PE 的量喔!
                # 那假如要运用 resize2fs 时,则总量减去 1.40GB 就对了!
                
                [root@www ~]# pvscan
                  PV /dev/hda6    VG vbirdvg   lvm2 [1.39 GB / 0    free]
                  PV /dev/hda7    VG vbirdvg   lvm2 [1.39 GB / 0    free]
                  PV /dev/hda8    VG vbirdvg   lvm2 [1.39 GB / 0    free]
                  PV /dev/hda9    VG vbirdvg   lvm2 [1.39 GB / 0    free]
                  PV /dev/hda10   VG vbirdvg   lvm2 [2.80 GB / 0    free]
                  Total: 5 [8.36 GB] / in use: 5 [8.36 GB] / in no VG: 0 [0   ]
                # 从下面可以发明假如扣除 /dev/hda6 则剩余容量有:1.39*3+2.8=6.97
                
                # 2. 就间接低落文件零碎的容量吧!
                [root@www ~]# resize2fs /dev/vbirdvg/vbirdlv 6900M
                resize2fs 1.39 (29-May-2006)
                Filesystem at /dev/vbirdvg/vbirdlv is mounted on /mnt/lvm; on-line resizing
                On-line shrinking from 2191360 to 1766400 not supported.
                # 容量仿佛不克不及够写小数点位数,因而 6.9G 是错误的,鸟哥就运用 6900M 了。
                # 别的,缩小可以线上间接停止,减少文件零碎好像无法援助!以是要如许做:
                
                [root@www ~]# umount /mnt/lvm
                [root@www ~]# resize2fs /dev/vbirdvg/vbirdlv 6900M
                resize2fs 1.39 (29-May-2006)
                Please run 'e2fsck -f /dev/vbirdvg/vbirdlv' first.
                # 他要我们先辈行磁碟反省!不啰唆!那就间接停止吧!
                
                [root@www ~]# e2fsck -f /dev/vbirdvg/vbirdlv
                e2fsck 1.39 (29-May-2006)
                Pass 1: Checking inodes, blocks, and sizes
                Pass 2: Checking directory structure
                Pass 3: Checking directory connectivity
                Pass 4: Checking reference counts
                Pass 5: Checking group summary information
                /dev/vbirdvg/vbirdlv: 2438/1087008 files (0.1% non-contiguous), 
                
                [root@www ~]# resize2fs /dev/vbirdvg/vbirdlv 6900M
                resize2fs 1.39 (29-May-2006)
                Resizing the filesystem on /dev/vbirdvg/vbirdlv to 1766400 (4k) blocks.
                The filesystem on /dev/vbirdvg/vbirdlv is now 1766400 blocks long.
                # 再来 resize2fs 一次就可以乐成了!如上所示啊!
                
                [root@www ~]# mount /dev/vbirdvg/vbirdlv /mnt/lvm
                [root@www ~]# df /mnt/lvm
                Filesystem           1K-blocks      Used Available Use% Mounted on
                /dev/mapper/vbirdvg-vbirdlv
                                       6955584    262632   6410328   4% /mnt/lvm
                

                然后再来便是将 LV 的容量低落!要留意的是,我们想要抽离的是 /dev/hda6,这个 PV 有 89 个 PE (下面的 pvdisplay 盘问到的后果)。以是要如许停止:

                # 3. 低落 LV 的容量,同时我们晓得 /dev/hda6 有 89 个 PE
                [root@www ~]# lvresize -l -89 /dev/vbirdvg/vbirdlv
                  WARNING: Reducing active and open logical volume to 6.97 GB
                  THIS MAY DESTROY YOUR DATA (filesystem etc.)
                Do you really want to reduce vbirdlv? [y/n]: y
                  Reducing logical volume vbirdlv to 6.97 GB
                  Logical volume vbirdlv successfully resized
                # 会有正告讯息!但是我们的实践材料量照旧比 6.97G 小,以是就 y 下去吧!
                
                [root@www ~]# lvdisplay
                  --- Logical volume ---
                  LV Name                /dev/vbirdvg/vbirdlv
                  VG Name                vbirdvg
                  LV UUID                8vFOPG-Jrw0-Runh-ug24-t2j7-i3nA-rPEyq0
                  LV Write Access        read/write
                  LV Status              available
                  # open                 1
                  LV Size                6.97 GB
                  Current LE             446
                  Segments               5
                  Allocation             inherit
                  Read ahead sectors     auto
                  - currently set to     256
                  Block device           253:0
                

                很复杂吧!如许就将 LV 减少了!接上去就要将 /dev/hda6 移出 vbirdvg 这个 VG 之外啰! 我们得要先确定 /dev/hda6 外面的 PE 完全不被运用后,才干够将 /dev/hda6 抽离! 以是得要如许停止:

                # 4.1 先确认 /dev/hda6 能否将 PE 都移除了!
                [root@www ~]# pvdisplay
                  --- Physical volume ---
                  PV Name               /dev/hda6
                  VG Name               vbirdvg
                  PV Size               1.40 GB / not usable 11.46 MB
                  Allocatable           yes (but full)
                  PE Size (KByte)       16384
                  Total PE              89
                  Free PE               0
                  Allocated PE          89
                  PV UUID               Z13Jk5-RCls-UJ8B-HzDa-Gesn-atku-rf2biN
                ....(两头省略)....
                
                  --- Physical volume ---
                  PV Name               /dev/hda10
                  VG Name               vbirdvg
                  PV Size               2.80 GB / not usable 6.96 MB
                  Allocatable           yes
                  PE Size (KByte)       16384
                  Total PE              179
                  Free PE               89
                  Allocated PE          90
                  PV UUID               7MfcG7-y9or-0Jmb-H7RO-5Pa5-D3qB-G426Vq
                # 搞了老半天,没有被运用的 PE 居然在 /dev/hda10 !此时得要搬移 PE 啰!
                
                [root@www ~]# pvmove /dev/hda6 /dev/hda10
                # pvmove 泉源PV 目的PV ,可以将 /dev/hda6 内的 PE 统统挪动到 /dev/hda10
                # 尚未被运用的 PE 去 (Free PE)。
                
                # 4.2 将 /dev/hda6 移出 vbirdvg 中!
                [root@www ~]# vgreduce vbirdvg /dev/hda6
                  Removed "/dev/hda6" from volume group "vbirdvg"
                
                [root@www ~]# pvscan
                  PV /dev/hda7    VG vbirdvg   lvm2 [1.39 GB / 0    free]
                  PV /dev/hda8    VG vbirdvg   lvm2 [1.39 GB / 0    free]
                  PV /dev/hda9    VG vbirdvg   lvm2 [1.39 GB / 0    free]
                  PV /dev/hda10   VG vbirdvg   lvm2 [2.80 GB / 0    free]
                  PV /dev/hda6                 lvm2 [1.40 GB]
                  Total: 5 [8.37 GB] / in use: 4 [6.97 GB] / in no VG: 1 [1.40 GB]
                
                [root@www ~]# pvremove /dev/hda6
                  Labels on physical volume "/dev/hda6" successfully wiped
                

                很风趣吧!如许你的文件零碎以及实践的 LV 与 VG 统统变小了,并且谁人 /dev/hda6 还真的可以拿出来! 可以停止其他的用处啦!十分复杂吧!


                小标题的图示LVM 的零碎快照

                如今你晓得 LVM 的益处咯,将来假如你有想要添加某个 LVM 的容量时,就可以透过这个缩小、减少的功用来处置。 那么 LVM 除了这些功用之外,另有什么才能呢?实在他另有一个紧张的才能,那便是零碎快照 (snapshot)。 什么是零碎快照啊?快照便是将事先的零碎资讯记载上去,就仿佛照相记载普通! 将来如有任何材料变动了,则原始材料会被搬移到快照区,没有被变动的地区则由快照区与文件零碎共享。 用讲的仿佛很难明,我们用图讲解明一下好了:

                LVM 零碎快照地区的备份表示图
                图 3.5.1、LVM 零碎快照地区的备份表示图(虚线为文件零碎,长虚线为快照区)

                左图为最后建置零碎快照区的情况,LVM 会预留一个地区 (左图的左侧三个 PE 区块) 作为材料寄存处。 此时快照区内并没有任何材料,而快照区与零碎区共享一切的 PE 材料, 因而你会看到快照区的内容与文件零碎是如出一辙的。 比及零碎运作一阵子后,假定 A 地区的材料被变动了 (下面右图所示),则变动前零碎会将该地区的材料挪动到快照区, 以是在右图的快照区被占用了一块 PE 成为 A,而其他 B 到 I 的区块则照旧与文件零碎共用!

                照如许的状况来看,LVM 的零碎快照黑白常棒的‘备份东西’,由于他只要备份有被变动到的材料, 文件零碎内没有被变卦的材料照旧坚持在本来的区块内,但是 LVM 快照功用会晓得那些材料安排在那边, 因而‘快照’事先的文件零碎就得以‘备份’上去,且快照所占用的容量又十分小!以是您说,这不是很棒的东西又是什么?

                那么快照区要怎样树立与运用呢?起首,由于快照区与本来的 LV 共用许多 PE 区块,因而快照区与被快照的 LV 必需要在统一个 VG 上头。但是我们方才将 /dev/hda6 移除 vbirdvg 了,现在 vbirdvg 剩下的容量为 0 !因而,在这个大节外面我们得要再参加 /dev/hda6 到我们的 VG 后, 才干持续树立快照区啰!底下的举措赶忙再来玩玩看!


                • 快照区的树立

                底下的举措次要再添加需求的 VG 容量,然后再透过 lvcreate -s 的功用树立快照区

                # 1. 先察看 VG 还剩下几多剩余容量
                [root@www ~]# vgdisplay
                  --- Volume group ---
                  VG Name               vbirdvg
                ....(其他省略)....
                  VG Size               6.97 GB
                  PE Size               16.00 MB
                  Total PE              446
                  Alloc PE / Size       446 / 6.97 GB
                  Free  PE / Size       0 / 0  <==没有多余的 PE 可用!
                
                # 2. 将方才移除的 /dev/hda6 参加这个 VG 吧!
                [root@www ~]# pvcreate /dev/hda6
                  Physical volume "/dev/hda6" successfully created
                [root@www ~]# vgextend vbirdvg /dev/hda6
                  Volume group "vbirdvg" successfully extended
                [root@www ~]# vgdisplay
                  --- Volume group ---
                  VG Name               vbirdvg
                ....(其他省略)....
                  VG Size               8.36 GB
                  PE Size               16.00 MB
                  Total PE              535
                  Alloc PE / Size       446 / 6.97 GB
                  Free  PE / Size       89 / 1.39 GB  <==多出了 89 个 PE 可用啰!
                
                # 3. 应用 lvcreate 树立零碎快照区,我们取名为 vbirdss,且赐与 60 个 PE
                [root@www ~]# lvcreate -l 60 -s -n vbirdss /dev/vbirdvg/vbirdlv
                  Logical volume "vbirdss" created
                # 上述的指令中最紧张的是谁人 -s 的选项!代表是 snapshot 快照功用之意!
                # -n 前面接快照区的安装称号, /dev/.... 则是要被快照的 LV 完好档名。
                # -l 前面则是接运用几多个 PE 来作为这个快照区运用。
                
                [root@www ~]# lvdisplay
                  --- Logical volume ---
                  LV Name                /dev/vbirdvg/vbirdss
                  VG Name                vbirdvg
                  LV UUID                K2tJ5E-e9mI-89Gw-hKFd-4tRU-tRKF-oeB03a
                  LV Write Access        read/write
                  LV snapshot status     active destination for /dev/vbirdvg/vbirdlv
                  LV Status              available
                  # open                 0
                  LV Size                6.97 GB    <==被快照的原 LV 磁碟容量
                  Current LE             446
                  COW-table size         960.00 MB  <==快照区的实践容量
                  COW-table LE           60         <==快照区占用的 PE 数目
                  Allocated to snapshot  0.00%
                  Snapshot chunk size    4.00 KB
                  Segments               1
                  Allocation             inherit
                  Read ahead sectors     auto
                  - currently set to     256
                  Block device           253:1
                

                您看看!这个 /dev/vbirdvg/vbirdss 快照区就被树立起来了!并且他的 VG 量居然与本来的 /dev/vbirdvg/vbirdlv 相反!也便是说,假如你真的挂载这个安装时,看到的材料会跟本来的 vbirdlv 相反喔!我们就来测试看看:

                [root@www ~]# mkdir /mnt/snapshot
                [root@www ~]# mount /dev/vbirdvg/vbirdss /mnt/snapshot
                [root@www ~]# df
                Filesystem           1K-blocks      Used Available Use% Mounted on
                /dev/hda2              9920624   3859032   5549524  42% /
                /dev/hda3              4956316   1056996   3643488  23% /home
                /dev/hda1               101086     21408     74459  23% /boot
                tmpfs                   371332         0    371332   0% /dev/shm
                /dev/mapper/vbirdvg-vbirdlv
                                       6955584    262632   6410328   4% /mnt/lvm
                /dev/mapper/vbirdvg-vbirdss
                                       6955584    262632   6410328   4% /mnt/snapshot
                # 有没有看到!这两个咚咚居然是如出一辙喔!我们基本没有动过
                # /dev/vbirdvg/vbirdss 对吧!不外这外面会自动记载原 vbirdlv 的内容!
                
                [root@www ~]# umount /mnt/snapshot
                # 最初将他卸载!我们预备来玩玩风趣的工具!
                


                • 应用快照区恢复零碎

                起首,我们来玩一下,怎样应用快照区恢复零碎吧!不外你要留意的是,你要恢复的材料量不克不及够高于快照区所能负载的实践容量。由于原始材料会被搬移到快照区, 假如你的快照区不敷大,若原始材料被变动的实践材料量比快照区大,那么快照区固然包容不了,这时分快照功用会生效喔! 以是下面的案例中鸟哥才赐与 60 个 PE (共 900MB) 作为快照区寄存材料用。

                我们的 /mnt/lvm 曾经有 /mnt/lvm/etc, /mnt/lvm/log 等目次了,接上去我们将这个文件零碎的内容作个变卦, 然后再以快照区材料复原看看:

                # 1. 先将本来的 /dev/vbirdvg/vbirdlv 内容作些变卦,增增减减一些目次吧!
                [root@www ~]# df /mnt/lvm
                Filesystem           1K-blocks      Used Available Use% Mounted on
                /dev/mapper/vbirdvg-vbirdlv
                                       6955584    262632   6410328   4% /mnt/lvm
                
                [root@www ~]# ll /mnt/lvm
                drwxr-xr-x 105 root root 12288 Mar 11 16:59 etc
                drwxr-xr-x  17 root root  4096 Mar 11 14:17 log
                drwx------   2 root root 16384 Mar 11 16:59 lost+found
                
                [root@www ~]# rm -r /mnt/lvm/log
                [root@www ~]# cp -a /boot /lib /sbin /mnt/lvm
                [root@www ~]# ll /mnt/lvm
                drwxr-xr-x   4 root root  4096 Dec 15 16:28 boot
                drwxr-xr-x 105 root root 12288 Mar 11 16:59 etc
                drwxr-xr-x  14 root root  4096 Sep  5  2008 lib
                drwx------   2 root root 16384 Mar 11 16:59 lost+found
                drwxr-xr-x   2 root root 12288 Sep  5  2008 sbin
                # 看起来材料曾经纷歧样了!
                
                [root@www ~]# lvdisplay /dev/vbirdvg/vbirdss
                  --- Logical volume ---
                  LV Name                /dev/vbirdvg/vbirdss
                  VG Name                vbirdvg
                ....(两头省略)....
                  Allocated to snapshot  12.22%
                ....(底下省略)....
                # 从这里也看得出来,快照区曾经被运用了 12.22% !由于原始的文件零碎有异动过!
                
                # 2. 应用快照区将本来的 filesystem 备份
                [root@www ~]# mount /dev/vbirdvg/vbirdss /mnt/snapshot
                [root@www ~]# df
                Filesystem           1K-blocks      Used Available Use% Mounted on
                /dev/mapper/vbirdvg-vbirdlv
                                       6955584    370472   6302488   6% /mnt/lvm
                /dev/mapper/vbirdvg-vbirdss
                                       6955584    262632   6410328   4% /mnt/snapshot
                # 看吧!两者的确纷歧样了!开端将快照区内容复制出来吧!
                
                [root@www ~]# mkdir -p /backups <==确仔细的有这个目次!
                [root@www ~]# cd /mnt/snapshot
                [root@www snapshot]# tar -jcv -f /backups/lvm.tar.bz2 *
                # 此时你就会有一个备份材料,亦便是 /backups/lvm.tar.bz2 了!
                

                为什么要备份呢?为什么不行以间接款式化 /dev/vbirdvg/vbirdlv 然后将 /dev/vbirdvg/vbirdss 间接复制给 vbirdlv 呢? 要晓得 vbirdss 实在是 vbirdlv 的快照,因而假如你款式化整个 vbirdlv 时,本来的文件零碎一切材料都市被搬移到 vbirdss。 那假如 vbirdss 的容量不敷大 (通常也真的不敷大),那么局部材料将无法复制到 vbirdss 内,材料固然无法全部复原啊! 以是才要在下面表格中制造出一个备份文件的!理解乎?

                而快照另有别的一个功用,便是你可以比对 /mnt/lvm 与 /mnt/snapshot 的内容,就可以发明到近来你究竟改了啥咚咚! 如许也是很不赖啊!您说是吧! ^_^!接上去让我们预备复原 vbirdlv 的内容吧!

                # 3. 将 vbirdss 卸载并移除 (由于外面的内容曾经备份起来了)
                [root@www ~]# umount /mnt/snapshot
                [root@www ~]# lvremove /dev/vbirdvg/vbirdss
                Do you really want to remove active logical volume "vbirdss"? [y/n]: y
                  Logical volume "vbirdss" successfully removed
                
                [root@www ~]# umount /mnt/lvm
                [root@www ~]# mkfs -t ext3 /dev/vbirdvg/vbirdlv
                [root@www ~]# mount /dev/vbirdvg/vbirdlv /mnt/lvm
                [root@www ~]# tar -jxv -f /backups/lvm.tar.bz2 -C /mnt/lvm
                [root@www ~]# ll /mnt/lvm
                drwxr-xr-x 105 root root 12288 Mar 11 16:59 etc
                drwxr-xr-x  17 root root  4096 Mar 11 14:17 log
                drwx------   2 root root 16384 Mar 11 16:59 lost+found
                # 能否与最后的内容相反啊!这便是透过快照来复原的一个复杂的办法啰!
                


                • 应用快照区停止各项训练与测试的义务,再以原零碎复原快照

                换个角度来想想,我们将本来的 vbirdlv 看成备份材料,然后将 vbirdss 看成实践在运作中的材料, 任何测试的举措都在 vbirdss 这个快照区当中测试,那么当测试终了要将测试的材料删除时,只需将快照区删去即可! 而要复制一个 vbirdlv 的零碎,再作别的一个快照区即可!如许能否十分方便啊? 这关于讲授情况中每年都要帮先生制造一个训练情况主机的测试,十分有协助呢!

                Tips:
                曩昔鸟哥总是以为运用 LVM 的快照来停止备份不太公道,由于还要制造一个备份档!厥后细心研讨并参考徐秉义教师的课本(注3)后,才发明 LVM 的快照真实是一个棒到不可的东西!尤其是在假造呆板当中建置多份给同窗运用的测试情况, 你只需有一个根底的情况坚持住,其他的情况运用快照来提供即可。即时同窗将零碎搞烂了,你只需将快照区删除, 再重修一个快照区!如许情况就规复了!天呐!真实是太棒了! ^_^
                鸟哥的图示
                # 1. 树立一个大一些的快照区,让我们将 /dev/hda6 的 PE 全部给快照区!
                [root@www ~]# lvcreate -s -l 89 -n vbirdss /dev/vbirdvg/vbirdlv
                  Logical volume "vbirdss" created
                
                [root@www ~]# lvdisplay /dev/vbirdvg/vbirdss
                  --- Logical volume ---
                  LV Name                /dev/vbirdvg/vbirdss
                  VG Name                vbirdvg
                  LV UUID                as0ocQ-KjRS-Bu7y-fYoD-1CHC-0V3Y-JYsjj1
                  LV Write Access        read/write
                  LV snapshot status     active destination for /dev/vbirdvg/vbirdlv
                  LV Status              available
                  # open                 0
                  LV Size                6.97 GB
                  Current LE             446
                  COW-table size         1.39 GB
                  COW-table LE           89
                  Allocated to snapshot  0.00%
                  Snapshot chunk size    4.00 KB
                  Segments               1
                  Allocation             inherit
                  Read ahead sectors     auto
                  - currently set to     256
                  Block device           253:1
                # 怎样!这个快照区不小吧!
                
                # 2. 隐蔽 vbirdlv 挂载 vbirdss
                [root@www ~]# umount /mnt/lvm
                [root@www ~]# mount /dev/vbirdvg/vbirdss /mnt/snapshot
                [root@www ~]# df /mnt/snapshot
                Filesystem           1K-blocks      Used Available Use% Mounted on
                /dev/mapper/vbirdvg-vbirdss
                                       7192504    265804   6561340   4% /mnt/snapshot
                
                # 3. 开端恶搞!
                [root@www ~]# rm -r /mnt/snapshot/etc /mnt/snapshot/log
                [root@www ~]# cp -a /boot /lib /sbin /mnt/snapshot/
                [root@www ~]# ll /mnt/snapshot
                drwxr-xr-x  4 root root  4096 Dec 15 16:28 boot
                drwxr-xr-x 14 root root  4096 Sep  5  2008 lib
                drwx------  2 root root 16384 Mar 11 16:59 lost+found
                drwxr-xr-x  2 root root 12288 Sep  5  2008 sbin  <==与本来材料有差别了
                
                [root@www ~]# mount /dev/vbirdvg/vbirdlv /mnt/lvm
                [root@www ~]# ll /mnt/lvm
                drwxr-xr-x 105 root root 12288 Mar 11 16:59 etc
                drwxr-xr-x  17 root root  4096 Mar 11 14:17 log
                drwx------   2 root root 16384 Mar 11 16:59 lost+found
                # 不管你在快照区恶搞啥咚咚,本来的 vbirdlv 外面的材料宁静如初啊!
                # 假定你将 vbirdss 搞烂了!外面的材料不再需求!那该如之奈何?
                
                # 4. 复原本来快照区的材料,回到与原文件零碎相反的资讯
                [root@www ~]# umount /mnt/snapshot
                [root@www ~]# lvremove /dev/vbirdvg/vbirdss
                Do you really want to remove active logical volume "vbirdss"? [y/n]: y
                  Logical volume "vbirdss" successfully removed
                
                [root@www ~]# lvcreate -s -l 89 -n vbirdss /dev/vbirdvg/vbirdlv
                [root@www ~]# mount /dev/vbirdvg/vbirdss /mnt/snapshot
                [root@www ~]# ll /mnt/snapshot
                drwxr-xr-x 105 root root 12288 Mar 11 16:59 etc
                drwxr-xr-x  17 root root  4096 Mar 11 14:17 log
                drwx------   2 root root 16384 Mar 11 16:59 lost+found
                # 材料如许就恢复了!
                

                诚实说,下面的测试有点无厘头~由于快照区损毁了就删除再建一个就好啦!何须还要测试呢? 不外,为了让您理解到快照区也可以如许运用,下面的测试照旧需求存在的啦!将来假如你有打仗到假造呆板, 再回到这里来复习一下一定会有播种的!


                小标题的图示LVM 相干指令汇整与 LVM 的封闭

                好了,我们将上述用过的一些指令给他汇整一下,提供应您参考参考:

                义务PV 阶段VG 阶段LV 阶段
                搜索(scan)pvscanvgscanlvscan
                树立(create)pvcreatevgcreatelvcreate
                列出(display)pvdisplayvgdisplaylvdisplay
                添加(extend) vgextendlvextend (lvresize)
                增加(reduce) vgreducelvreduce (lvresize)
                删除(remove)pvremovevgremovelvremove
                改动容量(resize)  lvresize
                改动属性(attribute)pvchangevgchangelvchange

                至于文件零碎阶段 (filesystem 的款式化处置) 局部,还需求以 resize2fs 来修订文件零碎实践的巨细才行啊! ^_^ 。至于固然 LVM 可以弹性的办理你的磁碟容量,但是要留意,假如你想要运用 LVM 办理您的硬碟时,那么在装置的时分就得要做好 LVM 的计划了, 不然将来照旧需求先以传统的磁碟添加方法来添加后,挪动材料后,才干够停止 LVM 的运用啊!

                会玩 LVM 还不可!你必需要会移除零碎内的 LVM 喔!由于你的实体 partition 曾经被运用到 LVM 去, 假如你还没有将 LVM 封闭就间接将那些 partition 删除或转为其他用处的话,零碎是会发作很大的题目的! 以是啰,你必需要晓得怎样将 LVM 的安装封闭并移除才行!会不会很难呢?实在不会啦! 根据以下的流程来处置即可:

                1. 先卸载零碎下面的 LVM 文件零碎 (包罗快照与一切 LV);
                2. 运用 lvremove 移除 LV ;
                3. 运用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标记;
                4. 运用 vgremove 移除 VG:
                5. 运用 pvremove 移除 PV;
                6. 最初,运用 fdisk 修正 ID 返来啊!

                好吧!那就实践的将我们之前树立的一切 LVM 材料给删除吧!

                [root@www ~]# umount /mnt/lvm
                [root@www ~]# umount /mnt/snapshot
                [root@www ~]# lvremove /dev/vbirdvg/vbirdss  <==先处置快照
                Do you really want to remove active logical volume "vbirdss"? [y/n]: y
                  Logical volume "vbirdss" successfully removed
                [root@www ~]# lvremove /dev/vbirdvg/vbirdlv  <==再处置原零碎
                Do you really want to remove active logical volume "vbirdlv"? [y/n]: y
                  Logical volume "vbirdlv" successfully removed
                
                [root@www ~]# vgchange -a n vbirdvg
                  0 logical volume(s) in volume group "vbirdvg" now active
                
                [root@www ~]# vgremove vbirdvg
                  Volume group "vbirdvg" successfully removed
                
                [root@www ~]# pvremove /dev/hda{6,7,8,9,10}
                  Labels on physical volume "/dev/hda6" successfully wiped
                  Labels on physical volume "/dev/hda7" successfully wiped
                  Labels on physical volume "/dev/hda8" successfully wiped
                  Labels on physical volume "/dev/hda9" successfully wiped
                  Labels on physical volume "/dev/hda10" successfully wiped
                

                最初再用 fdisk 将磁碟的 ID 给他改返来 82 就好啦!整个进程就如许的啦! ^_^


                大标题的图示重点回忆
                • 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 ’!

                大标题的图示参考材料与延伸阅读

                2002/07/14:第一次完成
                2003/02/10:重新编排与参加 FAQ
                2003/09/02:参加 quotacheck 发作错误时的处理办法。
                2005/09/06:将旧的文章挪动到 此处
                2005/09/06:停止版面作风的转换,而且停止材料的盘问,参加 repquota 的复杂阐明罢了!
                2009/03/04:将本来旧的基于 FC4 的文件挪动到 此处
                2009/03/06:参加 warnquota 这玩意儿!挺风趣的哩!
                2009/03/12:参加了 software RAID 与 LVM 的增强阐明,尤其是 LVM 的快照 (snapshot) 的阐明!
                2009/09/10:修正一些字样之外,添加情境模仿,以及后续的简答题局部标题。



                 
                     
                中国存储网 ChinaStor.com排版整理
                原文作者鸟哥,主页,更多Linux学习材料在线看:Linux零碎办理员手册 - Linux下令大全 - Linux挪用大全- Linux专栏 - 国产Linux