Linux学习心得-磁盘管理

磁盘配额(先弄到基本命令介绍那里)

quota是啥?
quota是磁盘配额,主要为用户提供磁盘限额的(简单来说指定某个用户最多可以用多大的空间)。

quota的使用限制?
对EXT系列文件系统,quota仅能针对整个文件系统进行设计,无法对单一的目录进行磁盘配额;而在xfs的文件系统中,可以使用quota对目录进行磁盘配额,因此在进行磁盘配额前,一定要对文件系统进行检查。
核心必须支持quota,centos7默认支持quota功能。
只对一般用户有效,因为root拥有全部的磁盘空间。
若启用SELinux功能,不是所有的目录都能设定quota,默认quota仅能对/home进行设定。

quota使用范围?

  • 支持对user,group,project(项目)进行磁盘配额
    soft 具体限制数值的大小,当磁盘容量达到此值是发出警告,要求用户在宽限期之内将值降到soft之下。
    hard 达到此值的,用户将禁止新增文件,可以这样理解,soft是警告值,hard是最终上限值。
    宽限时间(默认是7天),当你的磁盘使用超过soft值,但是还没有达到hard值时的这个时间内,用户还没有把磁盘容量降到soft值之下,这个宽限时间一过,不管你的值是否达到hard值,都自动变为hard值,禁止用户新增文件(当你的磁盘容量超过soft值时,宽限时间默认就启动了)
    限制inode和block的用量,既然quota是管理文件系统的,那么对inode和block的限制也在情理之中

xfs_quota命令介绍

  • 语法: xfs_quota [-V] [-x] [-p prog] [-c cmd]… [-d project]… [path]
  • 常见参数:
    -z #开启专家模式,磁盘配额相关操作都是在此模式下操作 后面需要加入-c指定参数
    -c #后面接命令
    -u #接用户,表示设置某用户的磁盘配额值,不加是默认当前用户
    -g #接群组(功能同上)
    -i #设置inode多少
    -b#设置block的大小
    -p #设置项目的磁盘配额
    -h #人性化human(人性化限制大小)
  • 内部指令
    disabale:暂时取消quota管制,但是磁盘配额还在
    enable:恢复磁盘配额状态,跟disable功能恰好想反,只要是通过disable关闭的它都可以启动
    off:完全关闭磁盘配额限制(重新开启的话,只能重新挂载才能再次启动磁盘配额)
    remove:移除磁盘配额限制(必须通过off关闭的才行)

逻辑卷

lvm概念

  • lvm是Linux环境下对磁盘分区进行管理的一种机制,是在硬盘分区跟文件系统之间添加的逻辑层。

  • 组成部分:
    物理介质:硬盘分区、硬盘、RAID阵列 (物理层)
    物理卷(PV):物理卷是lvm的基本存储逻辑快,但是和基本物理存储介质比较,却包含有与LVM相关的管理参数(相当于硬盘上标记了这个分区或者硬盘是lvm的)
    卷组(VG):是由一个或者多个PV组成的。
    逻辑卷(lv):是建立在VG之上的,可以在lv建立文件系统。

  • 注意:
    PE是pv里面的最小存储单位,默认是4MB,也可以手动指定 最大支持256GB
    LE是lv中最小的存储单位,在同一VG中,大小和PE是相同的

  • 优点:
    1.使用卷组,使多个硬盘空间看起来像是一个大硬盘。
    2.使用逻辑卷,可以跨多个硬盘空间分区
    3.支持在线动态扩容,不需要重启机器
    4.可以灵活调整逻辑卷大小,空间不够,加盘就是。
    5.支持对lv,vg进行创建,删除,调整大小等操作,但是Linux文件大小也需要调整。
    6.允许创建快照,可以用来保存文件系统备份。(等等百度一下)

  • RAID和LVM一起使用:
    lvm是从软件层面上对硬盘进行管理,使其更好的利益硬盘资源,达到效益最大化。(在线扩容,数据备份)
    RAID是从硬件层面上对硬盘进行管理,保障数据安全,提升硬盘使用性能。(传输速度,信息安全)
    对于重要的数据,使用RAID来保护物理磁盘不会因为故障而中断业务,再用LVM用来实现对卷的良性管理,能更好的利用磁盘资源

  • 相关参数
    pv vg lv通用命令参数:scan 扫描 create 创建 display 显示 remove 移除
    vg lv特有命令参数:extend k扩展 reduce 减少
    用法:pvscan pvcreate pvdispaly pvremove vgscan lvscan等等

创建lvm

流程: pvcreate 创建 pv -> vgcreate 创建卷组 -> lvcreate 创建逻辑卷 -> mkfs.xfs lv 格式化-> mount 挂载*

  • 1.创建pv(将物理磁盘格式化为pv(空间一个个划分为PE))
 [root@Rendering ~]# pvcreate /dev/sdb3
  Physical volume "/dev/sdb3" successfully created.
  
[root@Rendering ~]# pvs
  /dev/sdb2     lvm2 ---     1.00g    1.00
  
[root@Rendering ~]# pvscan
  PV /dev/sdb43                     lvm2 [5.00 GiB]
  Total: 4 [19.00 GiB] / in use: 0 [0   ] / in no VG: 4 [19.00 GiB]
  
[root@Rendering ~]# pvdisplay 
  "/dev/sdb4" is a new physical volume of "5.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb4
  VG Name               
  PV Size               5.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               wbKoUV-qetw-nulh-Bua9-27ME-qrNj-2aeOIA
  • 2.创建卷组
[root@Rendering ~]# pvs
PV         VG Fmt  Attr PSize    PFree   
/dev/sdb2     lvm2 ---     1.00g    1.00g
/dev/sdb3     lvm2 ---    10.00g   10.00g
/dev/sdb4     lvm2 ---     5.00g    5.00g
/dev/sdb5     lvm2 ---     3.00g    3.00g
/dev/sdc1     lvm2 ---     1.00t    1.00t
/dev/sdc2     lvm2 ---     1.00t    1.00t
/dev/sdc3     lvm2 ---  <952.00g <952.00g

[root@Rendering ~]# vgcreate vg1 /dev/sdb2 /dev/sdb3
Volume group "vg1" successfully created
[root@Rendering ~]# vgcreate vg2 /dev/sdb4 /dev/sdb5
Volume group "vg2" successfully created
[root@Rendering ~]# vgcreate tg1 /dev/sdc1 
Volume group "tg1" successfully created

[root@Rendering ~]# vgs
VG  #PV #LV #SN Attr   VSize     VFree    
tg1   1   0   0 wz--n- <1024.00g <1024.00g
vg1   2   0   0 wz--n-    10.99g    10.99g
vg2   2   0   0 wz--n-     7.99g     7.99g

[root@Rendering ~]# vgdisplay 
--- Volume group ---
VG Name               vg1
System ID             
Format                lvm2
Metadata Areas        2
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                2
Act PV                2
VG Size               10.99 GiB
PE Size               4.00 MiB
Total PE              2814
Alloc PE / Size       0 / 0   
Free  PE / Size       2814 / 10.99 GiB
VG UUID               dey2CE-EgUY-YdOz-21V1-XhhT-3jcg-JS3ERu
  • 3.创建lv
用法:lvcreate -n lv名 -L 大小 卷组 卷组下的设备
[root@Rendering ~]# lvcreate -n tg-hr -L 500G tg1 /dev/sdb2     
[root@Rendering ~]# lvs
 LV    VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 tg-hr tg1 -wi-a----- 500.00g    
[root@Rendering ~]# lvdisplay 
 --- Logical volume ---
 LV Path                /dev/tg1/tg-hr
 LV Name                tg-hr
 VG Name                tg1
 LV UUID                iCYGGl-fMGV-S1nV-lekf-DU63-YvYY-f3VWrZ
 LV Write Access        read/write
 LV Creation host, time Rendering, 2018-11-17 00:21:23 +0800
 LV Status              available
 # open                 0
 LV Size                500.00 GiB
 Current LE             128000
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     8192
 Block device           253:0
  
[root@Rendering ~]# mkfs.xfs /dev/ig/ig-hr 
[root@Rendering ~]# mkdir /ig-hr
[root@Rendering ~]# mount /dev/ig/ig-hr /ig-hr/
[root@Rendering ~]# echo "UUID="bf1f9060-f8b8-4432-b0e9-1a7392f8c333" /ig-hr xfs defaults 0 0">> /etc/fstab  # 最好挂载目录吧 不知道怎么回事通过UUID进行挂载还失败了 /dev/ig/ig-hr /ig-hr
  • 4.在线扩容
思路:新建lvm的过程:准备物理存储介质-》创建pv-》创建vg-》创建lv-》格式化文件系统,挂载。
    那么在线扩容:就是当lv空间不足时,就找vg去划分空间过来,如果vg也没有剩余空间了,就找pv拿空间,如果pv没有了,只能加盘,新建pv。

#前置步骤(满足条件可以忽略):
[root@Rendering ~]# df -Th
/dev/mapper/QW-QW--HP  xfs        49M  2.8M   46M   6% /QW-HP
现在:lvm QW-HP现在剩余2.8m空间,那么需要扩容300M
[root@Rendering ~]# vgs                             #查看当前vg是否有空间(lv不能跨vg扩容)
  VG  #PV #LV #SN Attr   VSize     VFree   
  QW    1   1   0 wz--n-    96.00m   44.00m
  ig    1   1   0 wz--n- <1024.00g <224.00g
注:结果显示QW只剩余44m,已经不能满足我们的需求了,那么去查看是否还有剩余pv
[root@Rendering ~]# pvs
  PV         VG  Fmt  Attr PSize     PFree   
  /dev/sdb2  vg1 lvm2 a--   1020.00m 1020.00m
  /dev/sdb3  vg1 lvm2 a--    <10.00g  <10.00g
  /dev/sdb4  vg2 lvm2 a--     <5.00g   <5.00g
  /dev/sdb5  vg2 lvm2 a--     <3.00g   <3.00g
  /dev/sdc1  tg1 lvm2 a--  <1024.00g <524.00g
  /dev/sdc2  ig  lvm2 a--  <1024.00g <224.00g
  /dev/sdc3  QW  lvm2 a--     96.00m   44.00m
 注意:没有多余的剩余pv了,那么只能从物理存储找空间或者其他的pv移除他那组加到我们需要扩容的vg中添加物理存储:

#准备物理存储介质
[root@Rendering ~]# echo "- - - " > /sys/class/scsi_host/host0/scan #刷新硬盘
[root@Rendering ~]# gdisk /dev/sdd 
[root@Rendering ~]# lsblk 
sdd              8:48   0   20G  0 disk 
└─sdd1           8:49   0  500M  0 part 

#vg扩容
[root@Rendering ~]# pvcreate /dev/sdd1
[root@Rendering ~]# vgextend QW /dev/sdd1
[root@Rendering ~]# vgs QW 
  VG #PV #LV #SN Attr   VSize   VFree  
  QW   2   1   0 wz--n- 592.00m 540.00m

#lv扩容
用法:lvextend -L 大小 -r lv对应设备(指定lv设备,会自动去lv设备对应的vg里面找空间来为当前lv增加空间)
[root@Rendering ~]# lvextend -L 300M -r /dev/QW/QW-HP   # -L 300m是指定大小 -L +300是增加大小 -r重置文件系统(ext4、xfs都支持) 
[root@Rendering ~]# lvs
  LV    VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  QW-HP QW  -wi-ao---- 300.00m                          #扩容成功

注意:lvextend -L 300M /dev/QW/QW-HP 这样没加r的话还得自己重新去格式化文件系统
xfs格式:
[root@Rendering ~]# xfs_growfs /dev/QW/QW-HP        #xfs_growfs只支持增大,动态扩容
ext4:
[root@Rendering ~]# resize2fs /dev/tg1/tg-hr        #注意:会重新格式文件系统,先做好数据备份

总结:
增加卷组容量:vgextend 卷组名 pv设备
增加lv容量  :lvextend -L 大小 -r  新增的卷组设备目录  加-r就不用格式化文件系统 不加就得继续格式化文件系统 xfs是 xfs_greows ext4是 resize2fs
  • 5.删除逻辑卷 5部曲
umount 卸载 -> lvremove lv 移出卷组中所有逻辑卷-> vgremove vg 移出卷组-> pvremove 移出 pv->将fstab挂载信息清除
1.取消挂载逻辑卷
[root@Rendering ~]# umount /QW-HP/
2.删除lv (找到QW-HP设备的绝对路劲)
[root@Rendering ~]# lvremove /dev/QW/QW-HP 
3.查看/QW-HP的卷组信息并且删除
[root@Rendering ~]# vgs
[root@Rendering ~]# vgremove QW 
4.查看没有卷组的逻辑卷信息并且删除
[root@Rendering ~]# pvs
[root@Rendering ~]# pvremove /dev/sdc3
5./etc/fstab 删除对应挂载点信息

SSM 系统存储管理器

[root@Rendering ~]# yum install system-storage-manager      #安装ssm软件包(默认没有安装)

[root@Rendering sdb1]# ssm list dev                         #列出当前设备所有信息
------------------------------------------------------------
Device           Free     Used      Total  Pool  Mount point
------------------------------------------------------------
/dev/sda                         20.00 GB        PARTITIONED
/dev/sda1                       500.00 MB        /boot      
/dev/sda2                         2.00 GB        SWAP       
/dev/sda3                        10.00 GB        /          
/dev/sdb                         20.00 GB                   
/dev/sdb1                       600.00 MB        /sdb1      
/dev/sdb2    19.41 GB  0.00 KB   19.41 GB  qw               
/dev/sdc                         20.00 GB                   
/dev/sdc1                        20.00 GB                   
/dev/sdd                          2.93 TB                   
/dev/sdd1   952.00 GB  2.00 TB    2.93 TB  qw               
/dev/sde                          3.00 TB                   
/dev/sde1  1024.00 GB  2.00 TB    3.00 TB  qw               

[root@Rendering sdb1]# ssm list pool     = lvs               #列出当前存储池
----------------------------------------------
Pool  Type  Devices     Free     Used    Total  
----------------------------------------------
qw    lvm   3        1.95 TB  4.00 TB  5.95 TB 

用法:ssm create -s lv大小 -n lv名称 --fstype lv文件系统类型 -p 卷组名 设备 挂载点
[root@Rendering sdb1]# ssm create -s 10G -n hp-hr --fstype xfs -p hp /dev/sdc1 /hp-hr       #自动把设备变成 pv,创建 vg , lv ,格式化文件系统, 自动挂载 一步完成 写入/etc/fstab 还需要自己手动
[root@Rendering sdb1]# lvdisplay -m
  --- Logical volume ---
  LV Path                /dev/qw/qw-hr
  LV Name                qw-hr
  VG Name                qw
  LV UUID                xTYEeE-CcM5-jeJo-RX53-bryv-lzgf-dWd3td
  LV Write Access        read/write
  LV Creation host, time Rendering, 2018-11-18 19:08:56 +0800
  LV Status              available
  # open                 1
  LV Size                2.00 TiB
  Current LE             524288
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     0
  Block device           253:0
   
  --- Segments ---
  Logical extents 0 to 524287:
    Type		linear
    Physical volume	/dev/sde1
    Physical extents	0 to 524287

[root@Rendering sdb1]# df -Th /hp-hr/
Filesystem            Type  Size  Used Avail Use% Mounted on
/dev/mapper/hp-hp--hr xfs    10G   33M   10G   1% /hp-hr

版权声明:本文为yts1115084429原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。