鸟哥的Linux私房菜基础篇笔记--4

388.端口号。

1111  :RPC (远程过程调用) UDP

2631  :CUPS(打印服务功能)

321   :ftp (简单文件传输协议,主动模式,传输控制窗口) TCP

420   :ftp(简单文件传输协议,被动模式,传输数据)TCP

523   :telnet(可以远程登录计算机) TCP

653   :DNS  (域名解析服务)TCP  UDP

725   :SMTP(用于发送邮件)TCP

8110  :pop3  (用于接受文件)TCP

980   :http   (超文本传输协议)TCP

1069  :tftp    (简单文件传输)UDP

11123  :NTP   (网络时间协议)UDP

 

389.变量处理。

(1)echo  ${#name}    输出变量的总字符数

(2)echo  ${name:2}    从变量的第三个字符一直输到最后

(3)name=”root  1”

(4)echo  ${name:2:1}  name的第二个字符开始输出,输出后面的1个字符。

(5)echo  ${name:2:4}  name的第二个字符开始输出,输出后面的4个字符。

 

403.如果想要新建多个管理员的时候。

(1)当你想要让其他的账号名称也具有root的权限的时候,将该账号的UID改为0即可,这就是说,一个系统上是可以新建多个管理员的。

 

403.人为的对于账号的分类。

11~499被规定为系统账号,500~65535被规定为普通账号。其中,1~99为系统自行创建的系统账号,100~499若用户有系统账号需求时,可以使用的账号UID,例如安装一个服务之类的。

 

403.如果你有个账号的使用空间特别大,你想将该账号的主文件夹移动到其他的硬盘去改怎么办。

1)可以修改/etc/passwd文件中的用户的家目录。

 

405./etc/shadow 文件中各列的意义。

(1)第一列:用户名

(2)第二列:用户加密后的密码

(3)第三列:197011日到密码最近被修改经历过的天数,你要相信我,是对的。

(4)第四列:在最近一次密码被更改后,再经过多长时间可以再被更改。0表示随时可以更改

(5)第五列:在最近一次密码被更改后,经过多少天需要再次修改。99999表示修改密码没有限制性。

(6)第六列:密码需要修改前的警告天数。

(7)第七列:在密码过期几天后,如果还是没有修改密码这个账号的密码就会失效,(原密码失效,账号也就失效了)

(8)第八列:账号失效时期,是197011日到指定失效日期的天数。

9)凡是计算的是1970到特殊日期的天数,每天都在更新。

 

407.有效用户组和初始用户组。

(1)/etc/passwd 里面的第四列有所谓的GID吧,那个GID就是所谓的初始用户组。

(2)当用户创建一个文件或者目录的时候,文件或目录的用户组是什么,那么这个用户的有效用户组就是什么。

(3)登录用户,在命令行上输入命令 groups  ,显示的组就是这个用户所支持的组,其中第一个显示的组就是用户的有效用户组。

(4)修改用户的有效用户组。

     在当前登录的用户的命令行上输入。

     newgrp  users

 

409./etc/gshadow 文件。

(1)密码列是/etc/gshadow 文件中的第二列,当第二列中有!的时候,说明这个组没有设置密码,当组有密码的时候,第二列是加密的字符串。

 

 

411.用户组机制。

(1)用户组机制分为私有用户组机制和公共用户组机制。

(2)私有用户组机制,系统会创建一个与账号一样的用户组给用户作为初始用户组,这种用户组的设置机制会比较有保密性,这是因为用户都有自己的用户组,使用这种机制将不会参考GROUP=100这个参数(系统的设置是所有新建的用户的初始组的GID都是100,也就是公共用户组机制),系统默认是使用私有用户组机制。

(3)公共用户组机制:就是以GROUP=100这个设置作为新建账号的初始用户组,因此每个账号都属于users用户组,且通常默认的主文件夹权限会是“drwxr-xr-x”,由于每个账号都属于users这个用户组,因此大家可以互相分享主文件夹内的数据。

 

412.如果想让新建的用户都会在主文件夹里有一个www的目录。

(1)/etc/skel下 ,新建一个目录www,当新建一个用户的时候,就会在用户的家目录中出现同样的目录,因为/etc/skel是新建用户的时候的模板文件夹。

 

412.新建用户的UIDGID密码参数在哪里记录。

(1)UID/GID 还有密码参数是在/etc/login.defs中设置的。

(2)在这个文件中设置的值中有一个PASS_MIN_LEN是对密码字数的最小限制,但是现在登陆时改用PAM模块来进行密码检查,所以那个PASS_MIN_LEN是失效的。

 

413.新建用户不能登陆。

(1)刚刚新建的用户是不可以登陆的,在/etc/shadow文件中,这个用户的属性那一行中,第2列会有两个!!,是因为新建的用户没有设置密码的缘故。

 

 

434.系统账号无法登陆系统。

(1)我们所谓的无法登陆值得仅是这个用户无法使用bash或者其他shell来登陆系统而已,并不是说这个账号就无法使用其他的系统资源,举例来说,各个系统账号中,打印作业有lp这个账号在管理,www服务有apache这个账号在管理,他们都可以进行系统程序的工作,但是就是无法登陆主机而已。

(2)如果我想要让shell /sbin/nologin 的用户知道它的账号是无法登陆的,当它用这个账号登陆的时候给它一些特定的信息,那就要修改/etc/nologin.txt 文件,特定文件直接编写想要告诉用户的话。

 

 

435.PAM 模块。

(1)PAM通过一个与程序相同文件名的配置文件来进行一连串的认证分析需求。

(2)passwd 这个命令调用PAM ,当你执行passwd后,这个程序调用PAM的流程是。

        1.用户开始执行/usr/bin/passwd  这支程序,并输入密码。

        2.passwd 调用PAM模块进行验证。

        3.PAM模块会到/etc/pam.d/中找寻与程序(passwd)同名的配置文件。

        4.依据/etc/pam.d/passwd  内的设置,引用相关的PAM模块逐步进行验证分析。

  5.将验证结果(成功、失败以及其他信息)回传给passwd这个程序。

        6.passwd 这支程序会根据PAM回传的结果决定下一个操作(重新输入新密码或者

        通过认证)

 

438.文件/etc/securetty

(1)这个文件使用来限制root只能够从安全的终端机登陆,什么是终端机例如tty1 , tty2,使用其他终端机的不可以登陆。所以root能够从tty1-tty7登陆,却无法通过telnet登陆linux系统了。

(2)一般来说,telnet是引用loginPAM模块,而login的验证阶段会有/etc/securetty的限制,由于远程连接属于pts/nn位数字)的动态终端机接口设备名称,并没有写入到/etc/securetty,因此root无法以telnet登陆远程主机,至于ssh使用的是/etc/pam.d/sshd这个模块该模块的验证阶段并没有加入pam_securetty,因此就没有/etc/securetty这个文件的限制。

(3)last  显示登陆信息。

     last  命令显示的信息中,ssh也是用pts/n登陆的,但是sshd是用/etc/pam.d/sshd

     这个模块登陆的,这个模块中并没有pam_securetty验证。

 

439.文件  /etc/security/limits.conf

(1)11章我们提到的ulimit功能中,除了修改用户的~/.bashrc配置文件之外,其实系统管理员也可以统一通过PAM来管理,就是通过修改/etc/security/limits.conf这个文件实现的。

vim   /etc/security/limits.conf  

vbird1          soft fsize          9000

vbird1      hard fsize        10000

第一列是限制用户名。

第二列是限制的  严格值  还是警告值

第三列为相关限制,fsize 是限制的文件容量

第四列位限制的值,在此例中单位为KB

 

@zhige  hard    maxlogins   1  

这个语句的用意在于,限制zhige这个用户组最多能够登陆一个用户。

会在/var/log/secure  文件中会出现如下信息。

pam_limits (login:session) : Too  many  logins  (max 1 )  for   pro1

2)这个文件挺有趣的,而且是设置完成就会生效了,你不用重新启动任何服务的,但是PAM有个特殊的地方,由于它是在程序调用时才予以设置的,因此你修改完成的数据对于已经登录系统的用户是没有效果的,要等到他再次登录的时候才会生效。

438.文件/etc/nologin

(1)/etc/nologin 这个文件存在的时候,所有的一般用户都无法登陆系统了。

 

452.磁盘配额Quota的应用和实践。

(1) Quota 的一般用途:

         针对www server ,例如:每个人的网页空间的容量限制。

         针对mail server  ,例如:每个人的邮件空间限制。

      针对file server  , 例如:每个人最大的可用网络硬盘空间

         限制某一用户组所能使用的最大磁盘配额(使用用户组限制)

(2) quota使用的特性:

    1.quota实际在运行的时候,是针对整个文件系统进行限制的,例如:如果你的

        /dev/sda5是挂载在/home下面,那么在/home下面的所有目录都会受到限制。所

       以你不可针对 某个目录来进行Qouta的限制,但是你可以针对某个文件系统来设

       置。

      2只对一般用户身份有效,并不是所有在Linux下面的账号都可以设置quota,例如

        root就不能设置quota,因为整个系统所有的数据都是他的。

(3) quota的规范设置选项。

      1.容量限制或文件数量限制(blockinde

        限制inode用量:管理用户可以新建的“文件数量”。

        限制block用量:管理用户磁盘容量的限制。

      2.限制值的设置(softhard)。

      hard : 表示用户的用量绝对不会超过这个限制值,若超过这个值则系统会锁住该用

              户的磁盘使用权,不能再新增文件。

  soft:表示用户在低于soft值时,可以正常使用磁盘,但若超过soft且低于hard

             的限值,每次用户登录系统时,系统会主动发出磁盘即将爆满的警告信息,

             且会给予一个宽限的时间,不过,若用户在宽限时间倒数期间就将容量再次

             降低于soft限值之下,则宽限时间会停止。

(4) 当你的磁盘即将到达hard且超过soft,系统会给予警告,但也会给一段时间让用户

      自行管理磁盘,一般默认的宽限时间为7天,如果7天内你都不进行任何磁盘管理,  

      那么soft限值会即刻代替hard限值来作为quota的限制。

5mount  -o  remount,usrquota,grpquota   /home

     当重新挂载的时候,系统会同步更新/etc/mtab这个文件。

     如果要设置quota,那么你必须要确定/etc/mtab已经加入usrquotagrpquota的支持

     到你所想要设置的文件系统中。

(6)quotacheck  [-avugfM]  [mount_point(挂载点)]  :扫描文件系统新建Quota配置文

     件。

     -a :扫描所有在/etc/mtab内,含有quota支持的文件系统。加上这个参数之后,就不

          需要加挂载点(mount_point)了

     -u:针对用户扫描文件与目录的使用情况,会新建 aquota.user

     -g:针对用户组扫描文件与目录的使用情况,会新建aquota.group

     -v:显示扫描过程的信息。

     -f:强制扫描文件系统,并写入新的quota配置文件。

     -M:强制以读写的方式扫描文件系统,只有在特殊情况下才会使用。

     quotacheck你只要记得  quotacheck  -avug  一起执行即可。

     执行这个命令之后,相应的配置文件就会被创建了。在文件系统中的 aquota.user

     aquota.group  这两个文件。

     如果你想要新建aquota.user aquota.group 这个两个文件,不需要手动编辑,记得

     使用:quotacheck-auvg  -mf  命令。

(7)产生错误信息。

     如果产生信息:quotacheck: can’t find filesystem to check or filesystem not mounted with

                   quota option

(8)启动quota服务。

     quotaon  [-avug]

 quotaon  [vug]  [mount_point]

     -u   : 针对用户启动quota (aquota.user)

     -g   : 针对用户组启动 quota (aquota.group)

     -v   :  显示启动过程的相关信息。

     -a   :  根据/etc/mtab内的文件系统设置启动相关的quota,若不加-a的话,则后面

      就需要加上特定的那个文件系统。

      例子: quotaon   -auvg

             quotaon   -uvg   /var

(9)关闭quota服务。

     quotaoff    [-a]

     quotaoff    [-ug]   [mount_point]

     -a   :  全部的文件系统的quota都关闭  (根据/etc/mtab

     -u   :  仅针对后面接的那个  mount_point关闭 user quota  

     -g   :  仅针对后面接的那个  mount_point关闭 group quota  

(10)编辑账号/用户组的限值与宽限时间。edquota

   edquota   [-u  username]  [-g  gourpname]  : 会进入vim编辑界面,编辑quota

edquota     -t     修改宽限时间        :就是超过soft之后的限值时间。

edquota    -p   范本账号   -u  新账号  :复制范本,那个“模板账号”为已经存

在并且已设置好quota的用户,意义为将“范本账号”这个人的quota限制值复制给新

账号。

 

edquota  -u   zhige   打开的文件中,有一个blocks下面对应的一个数字,这个数字

是目前对应相应的文件系统中,zhige 这个用户所使用的存储大小,单位为KB

 

(11)quota的报表主要有两种模式,一种是针对每个个人或用户组的quota命令,一个是

      针对整个文件系统的repquota命令。

      quota 命令   针对个人用户或用户组的

      quota  -uvs   [username]  :  会显示指定用户的quota信息。

      quota  -gvs   [groupname] :  会显示指定组的quota信息。

      -v  : 显示每个用户在文件系统中的quota值。

      -s  :使用1024位倍数来指定单位,会显示如M之类的单位。

       例子:quota  -uvs  myquota1  myquota2

            在显示的结果中,grace  是显示的天数的倒数,警告值。

      repquota  命令  针对整个文件系统列出报表。

      例子:repquota   -auvs    

   repquota   -agvs  

(12)warnquota  :  对超过限额者发出警告信。

      它会一句/etc/warnquota.conf  的设置,然后找出目前系统上面quota用量超过soft   

     (就是有grace 的那些家伙)的账号,通过Email的功能将警告信件发送到用户的电

      子邮件信箱,只有当用户的quota有超过soft时,warnquota才会发送警告信。

  你可以在/etc/cron.daily/warnquota  中写入以下语句。

  /usr/sbin/warnquota   一天执行一次

(13)直接在命令行中设置quota 限额。

 setquota  [-u|-g] 用户名|组名  block(soft)  block(hard) inode (soft) inode (hard)文件系统

例子:  

 setquota   -u  myquota5  100000  200000   0  0   /home

 

462.如果想要将/var/spool/mail目录独立成为一个分区,然后让用户使用邮件的空间有限。

(1) /var/spool/mail这个目录完整的移动到/home下面。

(2)利用ln  -s   /home/mail  /var/spool/mail  来新建链接数据(当有数据在/var/spool/mail下新建的时候,/home/mail也会有数据新建,当然限制也会存在。)

(3)/home 进行quota限制。

 

 

463.软件磁盘阵列 RAID

(1)RAID-0  

     多块磁盘同时写入读取,文件读取存储速度加快。

     容量 磁盘A + 磁盘B

     这种模式如果使用相同型号和相同容量的磁盘的时候,效果更佳。

     在组成RAID 0 的时候,每块磁盘(DiskA DiskB)都会被分割成为小区块,当有数

     据要写入到RAID时,数据会先被分为符合小区块的大小,然后再依次一个一个放置到

     不同的磁盘中。

     越多块磁盘组成的RAID 0 的性能会更好,因为每块负责的数据量就更低了。

     RAID 0 在存储数据的时候,是将文件切割成为适合每块磁盘分区区分块的大小,然后

     再依次存放到各个磁盘中的,如果某一块磁盘损毁了,由于每一个文件都是这样存放

     的,因此RAID 0 只要有任何一块磁盘损毁 , 在RAID上面的所有数据都会丢失而无

     法读取。

     另外,如果使用不同容量的磁盘组成RAID 0的时候,由于数据是一直等量依序放置到

     不同磁盘中,当小容量的磁盘用完了,那么所有数据都会被写入到容量大的磁盘中去。

(2)RAID-1  

     一块磁盘是另一块磁盘的等量备份

     容量  以小的那个磁盘的容量为主 ,所以建议用容量相同的磁盘。

     虽然RAID-1的写入性能不佳,不过读取的性能还可以,这是因为数据有两份在不同的

     磁盘中,如果多个进程在读取同一条数据时,RAID 会自行取得最佳的读取平衡。

(3)RAID 0 + 1  RAID 1 + 0

     Disk A + Disk B 组成一个 RAID 0Disk C + Disk + D组成一个RAID 0, 然后这两组

     再组成一个RAID 1

(4)RAID -5  

     RAID-5在每次循环写入的时候,都会有部分的同位检查码被记录起来,并且记录的同

     位检查码每次都记录在不同的磁盘上,因此,任何一个磁盘损毁的时候,都能够通过

     其他磁盘的检查码来重建原本磁盘中的数据。

     在读写性能上,读取的性能还不赖,与RAID-0有的比,不过写的性能就不见得能够增

     加很过,这是因为要写入RAID-5的数据还得要经过计算同位检查码的关系。

(5)性能比较

                    RAID-0      RAID-1      RAID-5       

     随机读取性能: 很好                  非常好

     随机写入性能: 很好                  一般

     持续读取性能: 很好         一般       

     持续写入性能: 很好                  一般    

(6)RAID-6  

     用两块磁盘的容量作为同位检查码的存储,因此整体的磁盘容量就会少两块,但是允

     许出错的磁盘就可以达到两块了。

(7)spare disk (预备磁盘的功能)

     当磁盘阵列的磁盘损毁时,就得将坏掉的磁盘拔除,然后换一块新的磁盘。换成新磁

     盘并且顺利启动磁盘阵列后,磁盘阵列就会开始主动重建原本坏掉的磁盘到新的磁盘

     上,然后磁盘阵列上面的数据就复原了,这就是磁盘阵列的优点,不过,我们还得要

     动手拔插硬盘,此时通常的要关机才能这么做。

     为了让系统可以实时地在坏掉磁盘时主动重建,因此就需要预备磁盘的辅助,所谓的

     spare disk 就是一块或者多块没有包含在原本磁盘阵列等级中的磁盘,这块磁盘平时

     并不会被磁盘阵列使用,当磁盘阵列有任何磁盘损毁时,则这块spara disk会被主动  

     拉进磁盘阵列中,并将坏掉的磁盘移出磁盘阵列,然后立即重建数据系统。

(8)磁盘阵列的优点。

     数据安全与可靠性:当硬件损毁时,数据可以安全救援并继续使用。

     读写性能:例如RAID-0  可以加强读写性能,让你的系统I/O部分得以改善。

     容量:可以让多块磁盘组合起来,故单一文件系统可以有相当大的容量。

 

466.software  ,  hardware  RAID  

(1)所谓的硬件磁盘阵列(hardware  RAID) 是通过磁盘阵列卡来完成的目的,磁盘这列

卡上面有一块专门的芯片在处理RAID的任务。

     操作系统也必须要具有磁盘阵列卡的驱动程序,才能够正确识别磁盘阵列卡所产生的

     磁盘驱动器

     硬件磁盘阵列(hardware  RAID)在Linux下面看起来就是一块实际的大磁盘,因此硬

     件磁盘阵列的设备文件名为/dev/sd[a-p] ,因此使用到SCSI的模块之故。

(2)至于软件磁盘阵列则是系统仿真的,因此使用的设备文件名是系统的设备文件,文件名为 /dev/md0  /dev/md1  , 两者的设备文件名并不相同。

 

467.软件磁盘阵列的设置。

(1)mdadm  --detail    /dev/md0  

(2)mdadm  --create  --auto=yes  /dev/md[0-9]  --raid-devices=N  --level=[015] \  --spare-devices=N /dev/sdx  /dev/hdx ...

     --create :为新建RAID的参数

     --auto-=yes : 决定新建后面接的软件磁盘阵列设备

     --raid-devices=N  :使用几个磁盘作为磁盘阵列的设备

     --spare-devices=N :  使用几个磁盘作为备用(spare)设备

     --level=[015] :设置这组磁盘阵列的等级,支持很多,不过建议只要用 0,1,5 即可。

     --detail : 后面接的那个磁盘阵列设备的详细信息。

     例子:mdadm  --create  --auto=yes  /dev/md0  --level=5  --raid-devices=4\  --spare=devices=1  /dev/hda{6,7,8,9,10}

(3)由于磁盘阵列的构建需要一段时间,所以最好等待数分钟后再使用  mdadm --detail  /dev/md0  去查阅你的磁盘阵列详细信息,否则有可能看到某些磁盘正在“spare rebuilding” 之类的字样。

(4)处了用mdadm 查看RAID磁盘之外,我们还可以查看文件/proc/mdstat 文件查看RAID磁盘的详细信息。

(5)磁盘阵列出错。

     1.mdadm   --manage    /dev/md0   [--add  设备]    [--remove  设备]   [--fail

     ]

     --add 设备  会将后面的设备加入到这个md中。

     --remove  设备   会将后面的设备移除出这个md中。

     --fail  设备    将后面的设备设置成为出错的状态。

(6)开机自动启动RAID并自动挂载

     software  RAID 也是有配置文件的,这个配置文件在/etc/mdadm.conf中。

     用命令 mdadm  --detail  /dev/md0  |  grep  -i uuid   找到/dev/md0 UUID

     然后设置/etc/mdadm.conf  

     ARRAY   /dev/md0    UUID=...........

     vim   /etc/fstab  (设置开机自动挂载)

     

(7)关闭RAID

     如果你只是将/dev/md0卸载,然后忘记将RAID关闭,结果就是将来你在重新分区/dev/hdx时就会出一些莫名其妙的错误,(就是创造软件磁盘阵列的时候使用的分区,即使将原来的磁盘分区删除掉,当新建立的磁盘用的是原来的分区名的时候,就会出错。)

     关闭RAID的步骤。

     1. umount  /dev/md0  

     2. vim   /etc/fstab   将自动挂载删除

     3. mdadm   --stop   /dev/md0   将磁盘阵列停掉

     4.cat   /proc/mdstat     查看是否还存在磁盘阵列的信息

     5.vim   /etc/mdadm.conf   删除那个UUID的那句话

     6.重新启动系统

 

473.逻辑卷管理。

(1)LVM 的重点在于可以弹性调整文件系统的容量。

     LVM可以整合多个物理分区在一起,让这些分区看起来就像是一个磁盘一样,而且,还可以在将来加入其他的物理分区或将其从这个LVM管理的磁盘当中删除。

(2)逻辑卷特性。

     1.我们实际的分区需要调整系统标识符成为8eLVM的标识符),用fdisk  /dev/sda1

     命令,然后 t(就是里面的命令行),之后按提示输入就可以。

     2.VG的最大容量是多少恩,因为每个VG最多仅能包含66534PE而已。LVM默认

     使用的PE大小是4M(最大可改变成16M),所以一个VG最大可达256G的容量。

     新创建的lv 只能在一个vg中创建,所以lv的最大容量也是256G。之后应该是不可

     以扩建了。因为扩建的命令是 lvresize  -l  +172 (PE)  /dev/vbirdvg/vbirdlv  ,只能

     在原来的vg中扩建,而原来的vg的容量是不能再扩大的。

     3.PE是整个LVM最小的存储块,也就是说,其实我们的文件数据都是由写入PE来处

     理的,这个PE就有点像是文件系统里面的Block大小,所以调整PE会影响到VG的最

     大容量。

     4.LVM必须要有内核支持且需要安装lvm2这个软件。

(3)数据是如何写入到LVM中的。

     线性模式:假如我将/dev/hda1,/dev/hdb1 这两个分区加入到VG当中,并且整个VG

     只有一个LV时,那么所谓的线性模式就是当/dev/hda1的容量用完之后,/dev/hdb1

     的硬盘才会被使用到,这也是我们所建议的模式。

     交错模式:那什么是交错模式呢,很简单,就是我将一条数据拆成两部分,分别写入

     /dev/hda1 /dev/hdb1中的意思,感觉上有点像是RAID-0 .一份数据用两块磁盘来

     写入,理论上,读写的性能会比较好。

(4)LVM创建。

      1.PV阶段。

       pvcreate :将物理分区新建成为pv

       pvscan : 查询目前系统里面任何具有pv的磁盘。

       pvdisplay: 显示出目前系统上面的PV状态。

       pvremove : PV属性删除 让该分区不具有PV属性。

       pvcreate   /dev/hda{6,7,8,9}

      2.vg阶段。

       vgcreate  创建VG的命令

       vgscan    查找系统上面是否有VG存在

       vgdisplay : 显示目前系统上面的VG状态

       vgextend: 在VG内增加额外的PV

       vgreduce :在VG内删除PV

       vgchange : 设置VG是否启动(actice

       vgremove : 删除一个VG

       vgcreate  [-s  N[mgt]]  VG名称  PV名称

       -s  后面可以接PE的大小,默认是4M ,单位可以是m g t (大小写均可)

       vgcreate   -s  16M   vbirdvg  /dev/hda{6,7,8}

       增加vg容量

       vgextend   vbirdvg   /dev/hda9  

     3.lv 阶段

       lvcreate :新建LV

       lvscan: 查询系统上的lv  

       lvdisplay: 显示系统上面的LV状态

       lvextend :在LV里面增加容量

       lvreduce :在LV里面减少容量

       lvremove :删除一个LV

       lvresize :对LV进行容量大小的调整

       lvcreate  [-L  N[mgt]]   [-n  LV名称]   VG名称

       lvcreate  [-l NPE个数)]   [-n  LV名称]   VG名称

       lvcreate  -l  365   -n   vbridlv  vbridvg

(5)放大LV容量

      lvresize  -l    +179    /dev/vbirdvg/vbirdlv  (-l  后增加PE的数量)

      我们可以在线直接处理,并不需要特别给它umount

      增加后用dumpe2fs  /dev/vbirdvg/vbridlv   查看文件系统内的容量

      发现文件系统并没有增加

      然后用命令  resize2fs   /dev/vbirdvg/vbirdlv  lv的容量扩充到整个文件系统

(6)缩小LV 容量

      先找出/dev/hda6的容量大小,并尝试计算机文件系统需缩小到多少

      pvdisplay  

      pvscan

      resize2fs  /dev/vbridvg/vbirdlv   6900M(/dev/hda6减去之后大约剩下的容量)

      执行上面的命令的时候会提醒你执行下面的命令

      umount   /dev/vbirdvg/vbirdlv   缩小文件系统的时候要先卸载

      e2fsck  -f  /dev/vbirdvg/vbirdlv  进行磁盘检查

      resize2fs   /dev/vbridvg/vbirdlv   6900M

      mount   /dev/vbirdvg/vbirdlv   .....

      然后将lv 的容量降低

      lvresize  -l  -89 (减号的意思是)  /dev/vbirdvg/vbirdlv   PE的数量是通过pvdisplay

      查看的

      lvdisplay    查看lv的大小

      pvdisplay    确认/dev/hda6是否被删除了

      如果没有被使用的容量在/dev/hda10 上的话

      pvmore  /dev/hda6   /dev/hda10  如果不成功的话 pvmore  /dev/hda10  

      /dev/hda6   可以将 /dev/hda6中的数据全部转移到/dev/hda10

      vgreduce  vbirdvg   /dev/hda6   /dev/hda6移除

      pvremove  /dev/hda6  /dev/hda6分区移除PV

(7)LVM系统快照

      1.什么是系统快照

         快照就是将当时的系统信息记录下来,就好像照相记录一样,将来若有任何数据

         改动了,则原始数据会被移动到快照区,没有被改动的区域则由快照区和文件系

         统共享。

         备份会备份有差异的部分,老的文件会在快照区中,新的文件会在运行中的文件

         系统中

     当快照区没有任何数据的时候,快照区与系统区共享所有的PE数据,因此你会看

         到快照区的内容与文件系统是一模一样的

         df 查看磁盘的时候,会看到文件系统的磁盘和快照的磁盘的总容量,被使用

         容量,使用率是相同的,快照区会保留一些磁盘空间。但是不会算到总容量里。

         共享的意思是在快照区和被快照区中都能找到。

         由于快照区与原本的LV共享很多PE区块,因此快照区与被快照区的LV必须要在

         同一个VG里面。

      2.创建快照区

         pvcreate   /dev/hda6  

         vgextend   vbirdvg  /dev/hda6

         lvcreate  -l  60  -s -n vbirdss   /dev/vbirdvg/vbirdlv  创建/dev/vbirdvg/vbirdlv

         快照区,这个容量是那个被保留的部分。

 -s 的意思就是创建快照区的意思

         在创建快照区之前 /dev/vbirdvg/vbirdlv 就存在数据

         快照区会另外开启一个lv ,快照区不用挂载使用

      3.利用快照区复原系统

         你要复原的数据量不能够高于快照区所能负载实际容量,由于原始数据会被移到

      快照区,如果你的快照区不够大,若原始数据被改动的实际数据量比快照区大,

   那么快照区当然容纳不了

         1.ls   /mnt/lvm  (原文件系统LVM

             etc   log   lost+found

         2.rm -r  /mnt/lvm/log

          cp   -a  /boot  /lib   /sbin  /mnt/lvm

         3.mount   /dev/vbirdvg/vbirdss  /mnt/snapshot

          mkdir  -p /backups

          cd  /mnt/snapshot

          tar  -jcv  -f   /backups/lvm.tar.bz2  *

         4.umount   /mnt/snapshot

          lvremove  /dev/vbirdvg/vbirdss  

          umount  /mnt/lvm

          mkfs  -t  ext3   /dev/vbirdvg/vbirdlv

  mount  /dev/vbirdvg/vbirdlv   /mnt/lvm

  tar  -jxv  -f  /backups/lvm.tar.bz2  -C/mnt/lvm

  ll   /mnt/lvm  

    etc  log  lost+found

  解释一下就是,当我们在删除一个数据的时候,删除的数据会到快照区中,当新

  增数据的时候,快照区就不会共享这个数据了,原来的数据还是会共享。所以打

  包的内容中有被删除的log文件,还有原来的etc数据(是被共享的),没有新

  增的数据,不明白可以去看书中的图。

(8)删除LVM文件系统。

       1. 卸载系统上面的LVM系统(包括快照和所有LV

          umount  /mnt/lvm

          umount  /mnt/snapshot

     2.使用lvremove 移除lv

          lvremove  /dev/vbirdvg/vbirdss  (先处理快照区)

          lvremove  /dev/vbirdvg/vbirdlv

       

       3.使用vgchange  -a n  Vgname  Vgname这个VG不具有active标志

          vgchange  -a  n   vbirdvg

       4.使用 vgremove 删除VG

          vgremove  vbirdvg

       5.使用pvremove 删除PV

      pvremove  /dev/hda{6,7,8,9}

       6.最后使用fdisk ID修改回来

阅读更多
换一批

没有更多推荐了,返回首页