• 1-18-2 LVM管理和ssm存储管理器使用&磁盘配额 (二)


    LVM管理和ssm存储管理器使用&磁盘配额  (二)

    内容如下:

    ü  LVM快照

    ü  ssm存储管理器的使用

    ü  磁盘配额

    第1章 LVM快照

           lvm快照:为了保持系统的一致性,我们先做一个快照冻结当前系统状态,这样快照里面的内容可暂时保持不变,系统本身继续运行,通过备份快照来实现不中断服务的备份。

           当创建一个snapshot的时候,仅拷贝原始卷里数据的元数据(meta-data)。创建的时候,并不会有数据的物理拷贝,因此snapshot的创建几乎是实时的,当原始卷上有写操作执行时,snapshot跟踪原始卷块的改变,这个时候原始卷上将要改变的数据在改变之前被拷贝到snapshot预留的空间里,因此这个原理的实现叫做写时复制COW(copy-on-write)。

           在写操作写入块之前,原始数据被移动到 snapshot空间里,这样就保证了所有的数据在snapshot创建时保持一致。而对于snapshot的读操作,如果是没有修改过的块,那么会将读操作直接重定向到原始卷上,如果是已经修改过的块,那么就读取拷贝到snapshot中的块

    1.1 首先准备一个LV并挂载

     

    1.2准备测试文件

     

    1.3 针对lv1创建一个300M快照

    确保VG有空间

     

    命令:lvcreate -s -n 快照名 -L 快照大小 创建快照的设备

     

    1、  LVM快照其实也是一个逻辑卷,快照只能对逻辑卷LV进行备份,并且只能对同一个卷组的逻辑卷进行备份,

    2、  在挂载快照时,尽量使用ro的方式进行,这样可以保证不破坏快照卷中的数据

    3、  快照创建完成后是可以直接挂载的,不需要进行文件系统格式化

    4、  lvm快照是不会增长和变化的,所以它没有永久存在的必要

    [root@xuegod72 data]# lvcreate -s -n datalv_sp -L 300M /dev/datavg/data_lv

      Logical volume "datalv_sp" created.

    [root@xuegod72 data]# lvs

      LV        VG     Attr       LSize   Pool Origin  Data%  Meta%  Move Log Cpy%Sync Convert

      data_lv   datavg owi-aos--- 600.00m                                                    

      datalv_sp datavg swi-a-s--- 300.00m      data_lv 0.00

    [root@xuegod72 data]# lvdisplay /dev/datavg/datalv_sp

      --- Logical volume ---

      LV Path                /dev/datavg/datalv_sp

      LV Name                datalv_sp

      VG Name                datavg

      LV UUID                uRcoSc-FMYR-BRso-A5pf-0FCf-Tdig-QbU5ds

      LV Write Access        read/write

      LV Creation host, time xuegod72, 2016-12-20 20:46:13 +0800

      LV snapshot status     active destination for data_lv

      LV Status              available

      # open                 0

      LV Size                600.00 MiB

      Current LE             150

      COW-table size         300.00 MiB

      COW-table LE           75

      Allocated to snapshot  0.01%

      Snapshot chunk size    4.00 KiB

      Segments               1

      Allocation             inherit

      Read ahead sectors     auto

      - currently set to     8192

      Block device           253:3

    1.4 使用快照

    对源LV做了快照后,我们再对这个源LV的文件系统进行一些数据读写操作

    [root@xuegod72 ~]# cp /etc/hosts /datalv/

    [root@xuegod72 datalv]# dd if=/dev/zero of=a.txt bs=1M count=20

    恢复快照:

    1、直接还原

    [root@xuegod72 ~]umount /datalv

    ==============================================

    umount不成功,判断的两种方法:

    [root@panda ~]# lsof /lv1

    [root@panda ~]# fuser -ks /lv1

    ===============================================

    在用lvconvert做快照还原时,一定要把源LV和快照LV都卸载再进行

     [root@xuegod72 ~]# lvconvert --merge /dev/datavg/data_lv_sp 后面跟的是快照LV

      Merging of volume data_lv_sp started.

      data_lv: Merged: 100.0%

    [root@xuegod72 ~]# lvs

      LV      VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

      data_lv datavg -wi-a----- 600.00m                                                   

    [root@xuegod72 ~]# mount /dev/datavg/data_lv /data

    [root@xuegod72 ~]# ls /data

    hosts  passwd

    2、挂载挂照后,进行需求还原

    [root@xuegod72 ~]# mount –o nouuid,norecovery,ro /dev/datavg/data_lv_snap /data_snap

    1.5 快照损坏

    超出大小

    [root@xuegod72 data]# dd if=/dev/zero of=aa.txt bs=10M count=1

    记录了1+0 的读入

    记录了1+0 的写出

    10485760字节(10 MB)已复制,0.0391211 秒,268 MB/秒

    [root@xuegod72 data]# lvs

      LV      VG     Attr       LSize   Pool Origin  Data%  Meta%  Move Log Cpy%Sync Convert

      data_lv datavg owi-aos--- 600.00m                                                    

      datasp  datavg swi-I-s--- 100.00m      data_lv 100.00                                

    [root@xuegod72 data]# lvdisplay /dev/datavg/datasp

      --- Logical volume ---

      LV Path                /dev/datavg/datasp

      LV Name                datasp

      VG Name                datavg

      LV UUID                XKV0RX-AbJH-0AF1-wLtt-lwJl-7RdI-uAsTfM

      LV Write Access        read/write

      LV Creation host, time xuegod72, 2016-12-20 21:11:30 +0800

      LV snapshot status     INACTIVE destination for data_lv

      LV Status              available

      # open                 0

      LV Size                600.00 MiB

      Current LE             150

      COW-table size         100.00 MiB

      COW-table LE           25

      Snapshot chunk size    4.00 KiB

      Segments               1

      Allocation             inherit

      Read ahead sectors     auto

      - currently set to     8192

      Block device           253:3

    [root@xuegod72 ~]# lvconvert --merge /dev/datavg/datasp

      Unable to merge invalidated snapshot LV "datasp".

      Unable to merge LV "datasp" into its origin.

    [root@xuegod72 ~]# mount /dev/datavg/datasp /data

    mount: /dev/mapper/datavg-datasp:不能读超级块

    LV快照的大小最好和源LV保持一致

    2借助ssm管理LVM

    2.3 操作

    安装SSM

    [root@xuegod72 Packages]# yum -y install system-storage-manager

    检查关于可用硬驱和LVM卷的信息。显示关于现有磁盘存储设备、存储池、LVM卷和存储快照的信息。

    命令:

    ssm list 列出信息

    2.3.1 查看磁盘信息

    设备信息

     

    存储池信息

     

    卷的信息

     

    快照信息

     

    2.3.2 对VG扩容

     

    [root@xuegod72 ~]# ssm add -p datavg /dev/sdb5

    File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 22600: /usr/bin/python

      Volume group "datavg" successfully extended

    2.3.3 对LV进行扩容

    使用SSM扩容LV(针对创建了快照的lv无效)

    通过resize进行扩容

    [root@xuegod72 ~]# lvcreate -n applv -L 500M /dev/datavg

      Logical volume "applv" created.

    [root@xuegod72 ~]# lvs

      LV         VG     Attr       LSize   Pool Origin  Data%  Meta%  Move Log Cpy%Sync Convert

      applv      datavg -wi-a----- 500.00m                                                     

      data_lv    datavg owi-a-s--- 600.00m                                                    

      data_lv_sp datavg swi-a-s--- 100.00m      data_lv 0.00 

    [root@xuegod72 ~]# ssm resize -s +500M /dev/datavg/applv

    File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 22907: /usr/bin/python

      Size of logical volume datavg/applv changed from 500.00 MiB (125 extents) to 1000.00 MiB (250 extents).

      Logical volume applv successfully resized.

    [root@xuegod72 ~]# lvs

      LV         VG     Attr       LSize    Pool Origin  Data%  Meta%  Move Log Cpy%Sync Convert

      applv      datavg -wi-a----- 1000.00m                                                     

      data_lv    datavg owi-a-s---  600.00m                                                    

      data_lv_sp datavg swi-a-s---  100.00m      data_lv 0.00

    比较文件系统容量的变化

    [root@xuegod72 ~]# mkfs.xfs /dev/datavg/applv

    meta-data=/dev/datavg/applv      isize=256    agcount=4, agsize=64000 blks

             =                       sectsz=512   attr=2, projid32bit=1

             =                       crc=0        finobt=0

    data     =                       bsize=4096   blocks=256000, imaxpct=25

             =                       sunit=0      swidth=0 blks

    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

    log      =internal log           bsize=4096   blocks=853, version=2

             =                       sectsz=512   sunit=0 blks, lazy-count=1

    realtime =none                   extsz=4096   blocks=0, rtextents=0

    [root@xuegod72 ~]# mount /dev/datavg/applv /data

    [root@xuegod72 ~]# df –Th /data

    文件系统                 类型      容量  已用  可用 已用% 挂载点

    /dev/mapper/datavg-applv xfs       997M   33M  965M    4% /data

    [root@xuegod72 ~]# lvs

      LV         VG     Attr       LSize    Pool Origin  Data%  Meta%  Move Log Cpy%Sync Convert

      applv      datavg -wi-ao---- 1000.00m                                                    

      data_lv    datavg owi-a-s---  600.00m                                                    

      data_lv_sp datavg swi-a-s---  100.00m      data_lv 0.00                                  

    [root@xuegod72 ~]# ssm resize -s +200M /dev/datavg/applv

    File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 23017: /usr/bin/python

      Size of logical volume datavg/applv changed from 1000.00 MiB (250 extents) to 1.17 GiB (300 extents).

      Logical volume applv successfully resized.

    meta-data=/dev/mapper/datavg-applv isize=256    agcount=4, agsize=64000 blks

             =                       sectsz=512   attr=2, projid32bit=1

             =                       crc=0        finobt=0

    data     =                       bsize=4096   blocks=256000, imaxpct=25

             =                       sunit=0      swidth=0 blks

    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

    log      =internal               bsize=4096   blocks=853, version=2

             =                       sectsz=512   sunit=0 blks, lazy-count=1

    realtime =none                   extsz=4096   blocks=0, rtextents=0

    data blocks changed from 256000 to 307200

    [root@xuegod72 ~]# df –Th /data

    文件系统                 类型      容量  已用  可用 已用% 挂载点

    /dev/mapper/datavg-applv xfs       1.2G   33M  1.2G    3% /data

    总结:使用ssm存储管理器扩容,不需要再针对文件系统进行扩容

    2.3.4 创建一个卷

    要求:创建一个名为mail 的存储池,并在其上创建一个名为mail-lv,大小为1G的lvm卷,格式化为xfs文件系统,并将其挂载/mail-lv目录下

    硬盘准备:

     

    1)      创建目录

    [root@xuegod72 ~]# mkdir /mail-lv

    用的命令如下:

    ssm  create  –s  lv大小  –n  lv名称  --fstype  lv文件系统类型 -p 卷组名  设备 挂载点

    自动创建vg , lv ,格式化文件系统, 自动挂载

    [root@xuegod72 ~]# ssm create -s 1G -n mail-lv --fstype xfs -p mail /dev/sdb[6-7] /mail-lv

    Not enough space (1024000.0 KB) in the pool 'mail' to create volume! Adjust (N/y/q) ? Y

    File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 23153: /usr/bin/python

      Volume group "mail" successfully created

    File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 23153: /usr/bin/python

      Logical volume "mail-lv" created.

    meta-data=/dev/mail/mail-lv      isize=256    agcount=4, agsize=63488 blks

             =                       sectsz=512   attr=2, projid32bit=1

             =                       crc=0        finobt=0

    data     =                       bsize=4096   blocks=253952, imaxpct=25

             =                       sunit=0      swidth=0 blks

    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

    log      =internal log           bsize=4096   blocks=853, version=2

             =                       sectsz=512   sunit=0 blks, lazy-count=1

    realtime =none                   extsz=4096   blocks=0, rtextents=0

    2)查看挂载状况

    [root@xuegod72 ~]# df -Th

    文件系统                  类型      容量  已用  可用 已用% 挂载点

    /dev/sda3                 xfs       197G  2.9G  194G    2% /

    devtmpfs                  devtmpfs  467M     0  467M    0% /dev

    tmpfs                     tmpfs     481M   84K  481M    1% /dev/shm

    tmpfs                     tmpfs     481M  7.1M  474M    2% /run

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

    /dev/sr0                  iso9660   3.8G  3.8G     0  100% /media

    /dev/sda1                 xfs       297M  128M  169M   44% /boot

    tmpfs                     tmpfs      97M   16K   97M    1% /run/user/42

    tmpfs                     tmpfs      97M     0   97M    0% /run/user/0

    /dev/mapper/datavg-applv  xfs       1.2G   33M  1.2G    3% /data

    /dev/mapper/mail-mail--lv xfs       989M   33M  957M    4% /mail-lv

    [root@xuegod72 ~]# ssm list

    --------------------------------------------------------------

    Device         Free       Used      Total  Pool    Mount point

    --------------------------------------------------------------

    /dev/fd0                          4.00 KB                    

    /dev/sda                        200.00 GB          PARTITIONED

    /dev/sda1                       300.00 MB          /boot     

    /dev/sda2                         2.93 GB          SWAP      

    /dev/sda3                       196.78 GB          /         

    /dev/sdb                         20.00 GB                    

    /dev/sdb1   0.00 KB  496.00 MB  500.00 MB  datavg            

    /dev/sdb2   0.00 KB  496.00 MB  500.00 MB  datavg            

    /dev/sdb3   0.00 KB  496.00 MB  500.00 MB  datavg            

    /dev/sdb4                         1.00 KB                    

    /dev/sdb5  84.00 MB  412.00 MB  500.00 MB  datavg            

    /dev/sdb6   0.00 KB  496.00 MB  500.00 MB  mail              

    /dev/sdb7   0.00 KB  496.00 MB  500.00 MB  mail              

    --------------------------------------------------------------

    -----------------------------------------------------

    Pool    Type  Devices      Free       Used      Total 

    -----------------------------------------------------

    datavg  lvm   4        84.00 MB    1.86 GB    1.94 GB 

    mail    lvm   2         0.00 KB  992.00 MB  992.00 MB 

    -----------------------------------------------------

    ----------------------------------------------------------------------------------------

    Volume               Pool    Volume size  FS     FS size       Free  Type    Mount point

    ----------------------------------------------------------------------------------------

    /dev/datavg/data_lv  datavg    600.00 MB  xfs  596.67 MB  586.54 MB  linear            

    /dev/datavg/applv    datavg      1.17 GB  xfs  996.67 MB  996.54 MB  linear  /data     

    /dev/mail/mail-lv    mail      992.00 MB  xfs  988.67 MB  988.54 MB  linear  /mail-lv  

    /dev/sda1                      300.00 MB  xfs  296.67 MB  183.90 MB  part    /boot     

    /dev/sda3                      196.78 GB  xfs  196.68 GB  193.82 GB  part    /         

    ----------------------------------------------------------------------------------------

    ---------------------------------------------------------------------

    Snapshot                Origin   Pool    Volume size     Size  Type 

    ---------------------------------------------------------------------

    /dev/datavg/data_lv_sp  data_lv  datavg    100.00 MB  0.00 KB  linear

    2.3.5 创建快照

    ssm  snapshot快照  -s 大小  -n 名称   创建快照的设备

     

    2.3.6 删除快照

    [root@xuegod72 ~]# ssm remove /dev/mail/mail-lv-sp

    Device '/dev/mail/mail-lv-sp' is mounted on '/mail-sp' Unmount (N/y/q) ? Y

    File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 23860: /usr/bin/python

    Do you really want to remove active logical volume mail-lv-sp? [y/n]: y

      Logical volume "mail-lv-sp" successfully removed

    第3章 磁盘配额

    q  磁盘配额:

           利用磁盘配额这种技术,系统管理员可以限制某个用户在某个硬盘分区可使用的大小,和可以创建文件数量的多少;目前Linux系统和Windows系统都支持这种技术

    q  磁盘配额使用条件:

           磁盘配额实施的对象是硬盘分区

           磁盘配额只对一般身份用户有效,对root权限用户无效;

    q  磁盘配额的限制类型

           磁盘的容量:限制用户使用Blocks大小,限制磁盘空间的大小 默认单位是KB

           文件的数量:限制用户能够拥有而文件个数,根据i节点的数量实现对文件数量的限制

    q  磁盘配额的相关名词解释:

           最低限制(软限制,soft):最低限制容量(可以被超过,但会出现警告,超过的部分会保存到宽限时间到期)

           最高限制(硬限制,hard): 绝对禁止用户超过硬限制,当超过时系统会给出警告信息,并且禁止继续写入数据

           宽限时间:当用户使用的空间超过了最低限制但还没到达最高限制时,在这个宽限时间到期前必须将超额的数据降低到最低限制以下(默认为7天),当宽限时间到期,系统将自动清除超出的数据

    注意:硬限制的配额值应大于相应的软限制值,否则软限制将失效.

    3.1 RHEL7磁盘配额

    n  确认配额命令已经安装

    [root@xuegod72 ~]# dmesg|grep quota

    [    1.943815] VFS: Disk quotas dquot_6.5.2

    [root@xuegod72 ~]# rpm -q quota

    quota-4.01-11.el7.x86_64

    [root@xuegod72 ~]# mount|grep quota

    /dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

    /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

    /dev/mapper/datavg-applv on /data type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

    l  首先创建新的测试分区/data

     

    n  查看配额是否启动

     

    n  启用配额

    [root@xuegod72 ~]# umount /data

    [root@xuegod72 ~]# mount -o uquota,gquota /dev/datavg/data_lv /data

    [root@xuegod72 ~]# mount|grep datavg|grep quota

    /dev/mapper/datavg-data_lv on /data type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)

    n  设置开机自动启动配额

     

    n  设置目录权限,并创建配额用户

     

    3.2 实验

    3.2.1 查看配额状态

    命令:xfs_quota

    xfs_quota命令用于管理XFS文件系统的quota硬盘配额,格式为:“quota [参数] 配额 文件系统名称”

    参数:

           -x           使用配额模式,只有此模式才能设置配额

           -c           启用命令模式

           report      显示配额信息

           limit              设置配额  

           bsoft 软限制 (硬盘)

           bhard 硬配额

           -u 用户

           -g 组

    3.2.2 查看用户和组的配额信息

     

    3.2.3 设置配额

    限制磁盘软限制为10m、磁盘硬限制为50m、文件软限制为3个且文件硬限制为6个

    [root@xuegod72 ~]# xfs_quota -x -c 'limit bsoft=10M bhard=50M isoft=3 ihard=6 -u zhangsna' /data

    [root@xuegod72 ~]# xfs_quota -x -c report /data

    User quota on /data (/dev/mapper/datavg-data_lv)

                                   Blocks                    

    User ID          Used       Soft       Hard    Warn/Grace    

    ---------- --------------------------------------------------

    root            10248          0          0     00 [--------]

    zhangsna            0      10240      51200     00 [--------]

    Group quota on /data (/dev/mapper/datavg-data_lv)

                                   Blocks                    

    Group ID         Used       Soft       Hard    Warn/Grace    

    ---------- --------------------------------------------------

    root            10248          0          0     00 [--------]

    3.2.4 验证

     

     

    3.2.5 修改磁盘配额

    [root@xuegod72 ~]# edquota -u zhangsna

    Disk quotas for user zhangsna (uid 1001):

      Filesystem                   blocks       soft       hard     inodes     soft     hard

      /dev/mapper/datavg-data_lv      20480      10240      51200          6        3        6

    [zhangsna@xuegod72 data]$ ls

    aa.txt  bb.txt  cc  dd  e  f

    [zhangsna@xuegod72 data]$ touch ee

    [zhangsna@xuegod72 data]$ touch ff

    [zhangsna@xuegod72 data]$ ls|wc -l

    8

    [zhangsna@xuegod72 data]$ touch gg

    touch: 无法创建"gg": 超出磁盘限额

    查看所有用户的配额信息:

    [root@panda ~]# repquota -a

    *** Report for user quotas on device /dev/mapper/vg2-applv

    Block grace time: 7days; Inode grace time: 7days

                            Block limits                File limits

    User            used    soft    hard  grace    used  soft  hard  grace

    ----------------------------------------------------------------------

    root      --       0       0       0              3     0     0      

    user1     +-   15360   10240   51200  4days       1     3     7      

    user2     -+       0       0       0              6     3     6  6days

    查看用户自己的配额限制信息:

    [user2@panda lv1]$ quota

    Disk quotas for user user2 (uid 1002):

         Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

    /dev/mapper/vg2-applv

                          0       0       0               6*      3       6   6days

    用root用户查看单个普通用户的配额信息:

    [root@panda ~]# quota user1

    Disk quotas for user user1 (uid 1001):

         Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

    /dev/mapper/vg2-applv

                      15360*  10240   51200   4days       1       3       7       

    [root@panda ~]# quota user2

    Disk quotas for user user2 (uid 1002):

         Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

    /dev/mapper/vg2-applv

                          0       0       0               6*      3       6   6days

  • 相关阅读:
    urllib3使用池管理发送请求和requests常用方法的基本使用+session使用
    Ajax爬取动态数据和HTTPS自动默认证书
    urllib库中的URL编码解码和GETPOST请求
    urllib的使用和进阶——urllib.request
    1.8学习进度总结
    1.7学习进度总结
    1.5学习进度总结
    1.4学习进度总结
    第十二周周进度总结
    第十一周周进度总结
  • 原文地址:https://www.cnblogs.com/hailun1987/p/11306033.html
Copyright © 2020-2023  润新知