高级文件系统管理

                       设定文件系统配额node

1.分区挂载选项:linux

usrquota、grpquota   (能够设置为分区开机自动挂载选项)shell

2.初始化数据库:数据库

quotacheck  -cug dirnamevim

   -u 生成user.quota文件centos

   -g 生成group.quota文件app

3.为用户设定配额:dom

quotaon、quotaoff   dirname  开启/取消配额ide

edquota  username    直接编辑当前用户自身配额性能

              -u username   查看其它用户磁盘配额

setquota  username  4096 5120 40 50 /foo     在shell中直接编辑

-p user1 user2     定义原始标准用户

4.报告配额状态:

quota  查看当前用户配额

quota username   查看指定用户配额

requota  挂载点     配额概述

warnquota  警报

     -u  usename (给指定用户发邮件,在/var/mail/目录下查看)           

    -g groupname (当组的配额超出时给组管理员发邮件,管理员需在/etc/quotagrpadmin 中指定,格式为: groupname:username)

--------------------※实验一:用户磁盘配额※-----------------------

①vim /etc/fstab     在/home后设置defaults,usrquota(用户配额),grpqu(组配额) 

②quotacheck -cug  /home    生成quota文件

③quotaon /home          开启quota

④cd username              切换至用户的家目录

⑤edquota username      编辑用户quota,其内容以下

[root@centos6 caocao]# edquota -u caocaoDisk quotas for user caocao (uid 508):                         已经有的block大小(kb)    软限额     硬限额   已经有的inode数量    Filesystem                   blocks            soft       hard       inodes            soft       hard  /dev/sda6                       64            102400     122880          16             200        280


⑥quota -u  username  查看用户配额

[root@centos6 ~]# quota -u caocaoDisk quotas for user caocao (uid 508):                                       宽限天数(当超出这个天数后,超出配额的文件将会被强制删除)     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace      /dev/sda6      76  102400  122880              17     200     280


 ⑦su - username(必须交互式登陆用户才能测试出来配额设定结果)

 测试caocao用户的配额设定:

[root@centos6 home]# su - caocao[caocao@centos6 ~]$ for i in {18..199};do touch test$i;done  建立[caocao@centos6 ~]$ quotaDisk quotas for user caocao (uid 508):     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace      /dev/sda6   92224  102400  122880             199     200     280       [caocao@centos6 ~]$ touch test200  [caocao@centos6 ~]$ quota       Disk quotas for user caocao (uid 508):     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace      /dev/sda6   92224  102400  122880             200     200     280       [caocao@centos6 ~]$ touch test201           #超过限额sda6: warning, user file quota exceeded.[caocao@centos6 ~]$ quota                   #当超过限额时,file位置出现*,grace出现提示位Disk quotas for user caocao (uid 508):     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace   /dev/sda6   92224  102400  122880             201*    200     280   7days


--------※  实验二:迁移/home(将home由/迁移至某一分区)※--------

1.知识点及注意事项:

①生产环境中可能存在不一样用户同时在线访问家目录,这会致使家目录挂载失败从而迁移失败,因此,须要切换到单用户模式,阻止其余用户在线访问。

init  0  关机

       1   单用户模式

       3   多用户模式

        4   用户自定义

       5   多用户+图形化

       6   重启

②此过程当中须要将新建分区挂载两次。第一次时由于要将/home数据写入分区。第二次将分区挂载到/home下。

2.实验步骤:

  • init 0   进入单用户模式

  • vim /etc/selinux/config   =permissive    关闭selinux

  • fdisk /dev/sda   建立/dev/sda6 (注意当sda5为拓展分区时,不要选择系统默认起始柱面,而要本身选择起始柱面)

  • mkfs.ext4 /dev/sda6

  • df  查看/home是否被挂载,如挂载现将其卸载

  • mount /dev/sda6 /mnt       挂载分区实现数据迁移

  • cp -a /home/* /home.bak   备份/home(B_0001.gif别忘了多备份一份数据偶

  • mv /home/* /mnt  将/home下的文件移到/dev/sda6下

  • rm -rf /home     删除/home 

  • umount /dev/sda6 卸载sda6

  • mkdir /home

  • mount /dev/sda6 /home  将sda6挂载到/home下

  • vim /etc/fstab         设置开机自动挂载sda6到/home,新增内容以下,能够经过blkid 分区名  来查看UUID。

  • UUID="6c8be0be-d54c-4bd6-a6cb-8b6f11aacc23" /home ext4 defaults 0 2
  • 此时,/home下拥有以前的全部数据,且挂载到了sda6下,完成迁移

  • reboot  重启

t_0026.gif思考????

当home目录下数据较少时,咱们可经过迁移home目录,将/home挂载到更大的分区上的方法来实现/home的扩容,但实际生产环境中可能用户家目录下的数据量会很是之庞大,迁移起来将会花费很是多的时间,那咱们能不能在不迁移用户家目录的状况下来实现扩容呢,毫无疑问,答案是确定的,再讲完下面的RAID后,LVM就会帮咱们解决这个老大难问题。

                                RAID

一:什么是raid??

    多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者二者都提供。

二:经常使用raid类型及特色:

 spacer.gifwKiom1mjZmfBZumiAABRBYmtHLw431.png-wh_50

三:mdadm  建立软RAID

格式:

mdadm [mode] <raiddevice> [options] <devices>

mode&&options

-C  --create  建立

    options:

    -n   所使用的块设备的数量

    -l    指定raid级别

    -a{yes/no}         自动建立raid设备的设备文件

    -c chunk_size    指定chunk大小

    -x                     指明空闲盘的个数(热备盘)   raid0 没有热备盘

-G  raid设备 -n # -c  块设备名   往raid中添加设备(通常都要从新指定 -n)

-A   装配

-F    监控

-f,-r,-a  管理

  -f 标记指定磁盘为损坏

  -a 添加磁盘

  -r  移除磁盘

<raiddevice>:/dev/md#

<devices>:任意的块设备(磁盘或磁盘分区)

注意:当使用分区组成raid设备时,要先将其分区格式转换成raid格式,例如咱们想要新建raid0设备,有两个分区组成,步骤以下:

  • 1.转换分区格式

[root@centos6 ~]# fdisk /dev/sdbCommand (m for help): tSelected partition 1Hex code (type L to list codes): fdCommand (m for help): p Device Boot      Start         End      Blocks   Id  System/dev/sdb1               1        1306    10490413+  fd  Linux raid autodetect        #转换成功,保存退出同上再转换/dev/sdc1为raid格式
  • 2.建立raid

           mdadm -C 

⑤查看raid信息

mdadm -D  /dev/md#  查看指定RAID的详细信息(detail)

cat /proc/mdstat  查看md的进度

配置软RAID

①建立一个raid5类型,md0

mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  

②格式化

 mkfs.ext4 /dev/md0

③检测

④检查raid设备的情况

 
 

[root@centos6 ~]# mdadm -D /dev/md0

/dev/md0:

        Version : 1.2

  Creation Time : Thu Aug 10 04:24:47 2017

     Raid Level : raid5

     Array Size : 41910272 (39.97 GiB 42.92 GB)

  Used Dev Size : 20955136 (19.98 GiB 21.46 GB)       #热备盘大小

   Raid Devices : 3

  Total Devices : 4

    Persistence : Superblock is persistent

    Update Time : Thu Aug 10 04:27:00 2017

          State : clean

 Active Devices : 3

Working Devices : 4

 Failed Devices : 0

  Spare Devices : 1

         Layout : left-symmetric

     Chunk Size : 512K

           Name : centos6.9:0  (local to host centos6.9)

           UUID : eff8381d:fb18016b:ee06c91d:ef2a7086

         Events : 20

    Number   Major   Minor   RaidDevice State

       0       8       16        0      active sync   /dev/sdb

       1       8       32        1      active sync   /dev/sdc

       4       8       48        2      active sync   /dev/sdd

       3       8       64        -      spare   /dev/sde               #热备盘


⑤往raid中添加新设备

mdadm  /dev/md0  -a  /dev/sdf1

软raid的检测和修复

①模拟故障

mdadm /dev/md0 -f /dev/sda1   模拟磁盘故障

mdadm /dev/md0 –r /dev/sda1   移除磁盘

②修复故障步骤:

1)替换出故障的磁盘而后开机

2)在备用驱动器上重建分区

3) mdadm /dev/md0 -a /dev/sda1 向raid设备添加磁盘

软raid管理:

生成配置文件:

mdadm -D -s  >/etc/mdada.conf 将全部的raid信息保存到配置文件

mdadm -D -s  raid名  >>/etc/mdada.conf  将指定的raid的信息追加到配置文件

中止设备:mdadm –S /dev/md0  (stop)

激活设备:mdadm –A –s /dev/md0       

强制启动:mdadm –R /dev/md0

删除raid信息:mdadm --zero-superblock /dev/sdb1

注意:

当没有生成配置文件时,停掉raid设备后再次重启时须要指定组成RAID的磁盘名,为了方便重启raid,咱们能够生成配置文件,这样在重启时就不须要指定磁盘,具体步骤以下:

[root@centos6 ~]# mdadm -A /dev/md0 /dev/sdb /dev/sdc /dev/sdd /dev/sde       #没有生成配置文件以前启动md0mdadm: /dev/md0 has been started with 3 drives and 1 spare.[root@centos6 ~]# mdadm -Ds /dev/md0 >> /etc/mdadm.conf #生成配置文件[root@centos6 ~]# mdadm -S /dev/md0     #再次关闭md0mdadm: stopped /dev/md0[root@centos6 ~]# mdadm -A /dev/md0     #不加参数,直接重启md0,重启成功mdadm: /dev/md0 has been started with 3 drives and 1 spare.

常见raid操做:删除raid

1.查看raid是否挂载,如挂载,卸载raid2.查看raid的成员:[root@centos6 ~]# mdadm -D /dev/md03.关闭raid[root@centos6 ~]# mdadm -S /dev/md0   4.删除raid信息:[root@centos6 ~]# mdadm --zero-superblock /dev/sdb[root@centos6 ~]# mdadm --zero-superblock /dev/sdc[root@centos6 ~]# mdadm --zero-superblock /dev/sdd[root@centos6 ~]# mdadm --zero-superblock /dev/sde5.删除raid配置文件中该raid信息[root@centos6 ~]# vim /etc/mdadm.conf


                               配置逻辑卷

一:逻辑卷原理

将几个物理分区(或磁盘)经过软件组合成一块独立的大磁盘(VG),再将VG分区造成可以使用的分区(LV),最终就可以挂载使用。

二:PV    PE    VG    LV 是什么??

PE   物理拓展块

一个PE块默认为4MB,vg中最多包含65534个PE,即一个VG大小为256G。调整PE大小能够影响VG大小(文件系统的扩大和缩小和他有关!!!!)

PV  物理卷:

经过fdisk将分区格式化为8e(LVM)格式,createpv将格式化后的分区转化为最底层的PV,以后经过它建立VG。

VG  逻辑卷组  

由多个物理的磁盘或分区组成的大磁盘(由PV组成)

LV   逻辑卷

由VG切割而成,而LV不能随意指定大小,由于LV也是由PE组成,因此只能是4的倍数。格式为‘/dev/vgname/lvname’。

                      wKioL1mjZ42gibaTAABshXT7ZnI235.png-wh_50    图一

如图一,能够直观反应逻辑卷弹性更改文件系统容量原理:

①VG的拓展原理:新增PV,经过这些PV使VG能够获取更多的PE。

②LV的拓展和缩减原理:添加所属VG中没有使用的PE;将LV内没有使用的PE转移到其余设备以下降容量。

三:LV各组件的实现流程:

※  PV阶段:

pvcreate  将物理分区新建成pv

pvscan/pvs     显示已有的pv

pvdisplay  详细显示已有的pv状态

pvremove  删除pv(将分区的pv属性删除)

※  VG阶段(vgname自定义):

vgcreate   新建vg

    -s 指定PE大小

vgscan      显示系统已有vg

vgdisplay   湘详细显示vg信息

vgextend   拓展vg(pvs查看pv,添加没有使用的pv到vg)

     格式:vgextend vgname pvname

vgreduce   缩减vg(删除pv到)

vgchange   设置vg是否启动(active)

vgremove  删除一个vg

※   LV阶段:

lvcreate  新建lv

    格式:lvcreate  -L  lv容量   -n lvname  vgname(说明lv占用着vg中的PE)

    注意:lv容量应该是PE大小的倍数

lvscan     显示系统中已有lv

lvdisplay  详细显示lv

lvextend  增容lv

lvreduce   降容lv

lvremove  删除lv

lvresize     对lv进行容量大小调整

注:vg名为自定义。但lv名为/dev/vgname/lvname

到这里,lv已经建立成功。lv建立成功后就能进入咱们熟悉的文件系统阶段了。

※ lv分区的格式化、挂载。

------------------------实验三:拓展逻辑卷-------------------------

啰嗦两句:

不一样于文件系统中的普通磁盘分区,lv分区能够经过从vg中得到PE来实现扩容,这在真实生产环境中能够说是很是方便,下面就让咱们看看具体操做步骤吧B_0059.gif


1.fdisk         新建8e分区

2.pvcreate   新建pv

3.vgextend  将pv加到lv所属vg中

3.lvresize     将新加入的pv中的PE加入到lv中

4.resize2fs   将文件系统的容量确实增长

题内话: resize2fs命令格式

  resize2fs [ -f ] devicename [size]

    能够不加size选项,当加size时,就必须跟上大小单位,如M、G等,表示只向文件系统中添加指定大小的数据。

若是是xfs文件系统 用xfs_growfs,格式以下:

    xfs_growfs /dev/vg01/lv01


具体操做过程以下:

 
 

1.[root@localhost ~]# pvs     #查看已有pv

  PV         VG  Fmt  Attr PSize PFree

  /dev/sdb1  vg1 lvm2 a--  4.98g    0

  /dev/sdb2  vg1 lvm2 a--  4.98g 4.41g

2.[root@localhost ~]# fdisk -l /dev/sdb   #新建 /dev/sdb3

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048    10487807     5242880   8e  Linux LVM

/dev/sdb2        10487808    20973567     5242880   8e  Linux LVM

/dev/sdb3        20973568    31459327     5242880   8e  Linux LVM

3.[root@localhost ~]# pvcreate /dev/sdb3  #建立pv

  Physical volume "/dev/sdb3" successfully created.

[root@localhost ~]# pvs

  PV         VG  Fmt  Attr PSize PFree

  /dev/sdb1  vg1 lvm2 a--  4.98g    0

  /dev/sdb2  vg1 lvm2 a--  4.98g 4.41g

  /dev/sdb3      lvm2 ---  5.00g 5.00g

4.[root@localhost ~]# vgextend vg1 /dev/sdb3   #拓展vg

[root@localhost ~]# vgs

  VG  #PV #LV #SN Attr   VSize  VFree

  vg1   3   1   0 wz--n- 14.95g 9.39g

5.[root@localhost ~]# vgdisplay    #查看vg中PE的使用状况

  --- Volume group ---

  VG Name               vg1

  System ID             

  Format                lvm2

  Metadata Areas        3

  Metadata Sequence No  3

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                1

  Open LV               1

  Max PV                0

  Cur PV                3

  Act PV                3

  VG Size               14.95 GiB

  PE Size               16.00 MiB

  Total PE              957  PE总数

  Alloc PE / Size       356 / 5.56 GiB   已使用PE个数,还有601个空余

  Free  PE / Size       601 / 9.39 GiB

  VG UUID               HOZg8f-bPOD-DovL-t3TQ-Xhsp-pJls-4QewSF

6.[root@localhost ~]# lvresize -l +200 /dev/vg1/lv1    #lv扩容

7.[root@localhost ~]# lvdisplay   #查看lv扩容后的大小

  --- Logical volume ---

  LV Path                /dev/vg1/lv1

  LV Name                lv1

  VG Name                vg1

  LV UUID                iAzH6J-xhP6-L63H-JP6x-wOXM-Zay1-rVq36h

  LV Write Access        read/write

  LV Creation host, time localhost.localdomain, 2017-08-27 22:38:07 +0800

  LV Status              available

  # open                 1

  LV Size                8.69 GiB

  Current LE             556

  Segments               2

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     8192

  Block device           253:0

10.[root@localhost ~]# df -h

Filesystem           Size  Used Avail Use% Mounted on

/dev/sda2             47G  5.2G   42G  11% /

devtmpfs             898M     0  898M   0% /dev

tmpfs                912M  144K  912M   1% /dev/shm

tmpfs                912M  9.1M  903M   1% /run

tmpfs                912M     0  912M   0% /sys/fs/cgroup

/dev/sda1            1.9G  169M  1.7G   9% /boot

/dev/sda3             47G  3.7G   43G   8% /app

tmpfs                183M   20K  183M   1% /run/user/0

/dev/sr0             7.8G  7.8G     0 100% /run/media/root/CentOS 7 x86_64

/dev/mapper/vg1-lv1  5.4G   23M  5.1G   1% /mnt/lv1

到这里,lv扩容已经完成,但真实文件系统中的容量并无增长,这是别忘了咱们要重置文件系统的lv大小

11.[root@localhost ~]# resize2fs /dev/mapper/vg1-lv1  #重置文件系统中lv大小

12.[root@localhost ~]# df -h    #拓展成功

/dev/mapper/vg1-lv1  8.5G   25M  8.0G   1% /mnt/lv1

相关文章
相关标签/搜索