Linux系统磁盘高级管理

Linux系统磁盘高级管理

一、LVM磁盘管理

LVM逻辑卷管理,它是Linux环境下对磁盘和分区进行管理的一种机制。
1、LVM的组成部分有哪些
物理卷(PV,Physical Volume):由磁盘或分区转化而成
卷组(VG,Volume Group):将多个物理卷组合在一起组成了卷组,组成同一个卷组的可以是同一个硬盘的不同分区,也可以是不同硬盘上的不同分区,也可以是整块磁盘,我们通常把卷组理解为一块硬盘
逻辑卷(LV,Logical Volume):把卷组理解为硬盘的话,那么我们的逻辑卷则是硬盘上的分区,逻辑卷可以进行格式化,存储数据
物理扩展(PE,Physical Extend):PE卷组的最小存储单元,PE所在的位置是VG卷组,即硬盘上,那么我们可以把PE理解为硬盘上的扇区,默认是4MB,可自由配置
2、LVM的创建过程
第一步: 将磁盘分区,或整块磁盘不分区(不做任何操作)
第二步:将磁盘上的分区或整块盘建立成物理卷(PV)
第三步:将新增的物理卷组合成卷组(VG),并且可以通过添加或者删除一块物理卷,来实现卷组大小 的调整
第四步:最后将卷组划分成逻辑卷(LV),逻辑卷也是可以随意调整大小的,逻辑卷相当于真正的分 区,那么要使用必须进行格式化和挂载
3、物理卷管理PV
gdisk /dev/sdb ##先分区
[root@k8s-node02 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-209715199,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-209715199,默认为 209715199):
将使用默认值 209715199
分区 1 已设置为 Linux 类型,大小设为 100 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

fdisk /dev/sdc 相同的动作
创建物理卷—pvcreate
[root@k8s-node02 ~]# pvcreate /dev/sdb1   可批量转化,空格分开即可
WARNING: gpt signature detected on /dev/sdb1 at offset 512. Wipe it? [y/n]: y
  Wiping gpt signature on /dev/sdb1.
WARNING: gpt signature detected on /dev/sdb1 at offset 107373133312. Wipe it? [y/n]: y
  Wiping gpt signature on /dev/sdb1.
WARNING: PMBR signature detected on /dev/sdb1 at offset 510. Wipe it? [y/n]: y
  Wiping PMBR signature on /dev/sdb1.
  Physical volume "/dev/sdb1" successfully created.
[root@k8s-node02 ~]# pvs
  PV         VG     Fmt  Attr PSize    PFree   
  /dev/sda2  centos lvm2 a--   <99.00g       0 
  /dev/sdb1         lvm2 ---  <100.00g <100.00g

[root@k8s-node02 ~]# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created.
[root@k8s-node02 ~]# pvs
  PV         VG     Fmt  Attr PSize    PFree   
  /dev/sda2  centos lvm2 a--   <99.00g       0 
  /dev/sdb1         lvm2 ---  <100.00g <100.00g
  /dev/sdc1         lvm2 ---  <100.00g <100.00g
查看物理卷—pvscan & pvdisplay
[root@k8s-node02 ~]# pvs   查看所有物理卷列表
  PV         VG     Fmt  Attr PSize    PFree   
  /dev/sda2  centos lvm2 a--   <99.00g       0 
  /dev/sdb1         lvm2 ---  <100.00g <100.00g
  /dev/sdc1         lvm2 ---  <100.00g <100.00g
[root@k8s-node02 ~]# pvscan 
  PV /dev/sda2   VG centos          lvm2 [<99.00 GiB / 0    free]
  PV /dev/sdb1                      lvm2 [<100.00 GiB]
  PV /dev/sdc1                      lvm2 [<100.00 GiB]
  Total: 3 [298.99 GiB] / in use: 1 [<99.00 GiB] / in no VG: 2 [<200.00 GiB]
pvdisplay查看每一个物理卷的详细信息
[root@k8s-node02 ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <99.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              25343
  Free PE               0
  Allocated PE          25343
  PV UUID               oASINu-xRJr-IfbW-cIvt-O4aO-EUC8-TN3Pof
   
  "/dev/sdb1" is a new physical volume of "<100.00 GiB"

删除物理卷—pvremove
[root@k8s-node02 ~]# pvremove /dev/sdb1
  Labels on physical volume "/dev/sdb1" successfully wiped.
[root@k8s-node02 ~]# pvs
  PV         VG     Fmt  Attr PSize    PFree   
  /dev/sda2  centos lvm2 a--   <99.00g       0 
  /dev/sdc1         lvm2 ---  <100.00g <100.00g
2、卷组管理
创建卷组-vgcreate
格式:vgcreate 选项 卷组名 物理卷(写多个时用空格分开)
-s 大小:指定VG的PE大小
vgcreate -s 2M vgdata /dev/sdb1 /dev/sdc1
[root@k8s-node02 ~]# vgcreate -s 2M vgdata /dev/sdb1 /dev/sdc1
  Volume group "vgdata" successfully created
[root@k8s-node02 ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  centos   1   2   0 wz--n- <99.00g      0 
  vgdata   2   0   0 wz--n- 199.99g 199.99g

查看卷组—vgscan & vgdisplay
[root@k8s-node02 ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  centos   1   2   0 wz--n- <99.00g      0 
  vgdata   2   0   0 wz--n- 199.99g 199.99g
[root@k8s-node02 ~]# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <99.00 GiB
  PE Size               4.00 MiB
  Total PE              25343
  Alloc PE / Size       25343 / <99.00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               FLhfmm-AiOL-RE8E-oXjS-T7yg-nT1R-nNDs8u

减小卷组容量–vgreduce
vgreduce vgdata /dev/sdc1
格式:vgreduce 卷组名 物理卷名
拓展:vgreduce -a 卷组 #删除指定卷组内所有空的物理卷
[root@k8s-node02 ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  centos   1   2   0 wz--n- <99.00g      0 
  vgdata   2   0   0 wz--n- 199.99g 199.99g
[root@k8s-node02 ~]# vgreduce vgdata /dev/sdc1
  Removed "/dev/sdc1" from volume group "vgdata"
[root@k8s-node02 ~]# 
[root@k8s-node02 ~]# vgs
  VG     #PV #LV #SN Attr   VSize    VFree   
  centos   1   2   0 wz--n-  <99.00g       0 
  vgdata   1   0   0 wz--n- <100.00g <100.00g 

增加卷组容量–vgextend
格式:vgrextend 卷组名 物理卷名
vgextend vgdata /dev/sdc1 #向指定卷组内添加指定物理卷
[root@k8s-node02 ~]# vgs
  VG     #PV #LV #SN Attr   VSize    VFree   
  centos   1   2   0 wz--n-  <99.00g       0 
  vgdata   1   0   0 wz--n- <100.00g <100.00g
[root@k8s-node02 ~]# vgextend vgdata /dev/sdc1
  Volume group "vgdata" successfully extended
[root@k8s-node02 ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  centos   1   2   0 wz--n- <99.00g      0 
  vgdata   2   0   0 wz--n- 199.99g 199.99g
删除卷组—vgremove(若已存数据则谨慎操作)
格式:vgremove vg名称
[root@k8s-node02 ~]# vgremove vgdata 
3、逻辑卷管理LV
创建逻辑卷–lvcreate
格式:lvcreate 选项 -n 逻辑卷名 卷组名
-L 容量:指定创建的逻辑卷大小,单位:MB,GB,TB等
-l(小) PE个数:按照PE个数来指定逻辑卷大小
-n 逻辑卷名:指定逻辑卷的名字
比如:lvcreate -L 20G -n lvdata vgdata
[root@k8s-node02 ~]# lvcreate -L 20G -n lvdata vgdata
  Logical volume "lvdata" created.
[root@k8s-node02 ~]# lvs
  LV     VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   centos -wi-ao---- <97.00g                                                    
  swap   centos -wi-a-----   2.00g                                                    
  lvdata vgdata -wi-a-----  20.00g      
注意:因为逻辑卷相当于是分区,所以需要进行格式化和挂载才能使用,并设置自启动
查看逻辑卷—lvscan & lvdisplay
[root@k8s-node02 ~]# lvscan 
  ACTIVE            '/dev/centos/swap' [2.00 GiB] inherit
  ACTIVE            '/dev/centos/root' [<97.00 GiB] inherit
  ACTIVE            '/dev/vgdata/lvdata' [20.00 GiB] inherit
[root@k8s-node02 ~]# lvs
  LV     VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   centos -wi-ao---- <97.00g                                                    
  swap   centos -wi-a-----   2.00g                                                    
  lvdata vgdata -wi-a-----  20.00g                                                    
[root@k8s-node02 ~]# lvdisplay   ##查看详情
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                uxRhvb-dcjZ-8m0U-Yvrg-px8b-a31W-f21e0M
  LV Write Access        read/write
  LV Creation host, time localhost, 2021-05-11 19:47:31 +0800
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

创建完lv之后要格式化
格式:mkfs.xfs /dev/vgdata/lvdata
[root@k8s-node02 ~]# lvscan 
  ACTIVE            '/dev/centos/swap' [2.00 GiB] inherit
  ACTIVE            '/dev/centos/root' [<97.00 GiB] inherit
  ACTIVE            '/dev/vgdata/lvdata' [20.00 GiB] inherit
[root@k8s-node02 ~]# mkfs.xfs /dev/vgdata/lvdata 
meta-data=/dev/vgdata/lvdata     isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242880, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
格式化之后要挂载
[root@k8s-node02 ~]# mkdir /backup
[root@k8s-node02 ~]# 
[root@k8s-node02 ~]# mount /dev/vgdata/lvdata /backup/
[root@k8s-node02 ~]# 
[root@k8s-node02 ~]# df -h | grep backup
/dev/mapper/vgdata-lvdata   20G   33M   20G    1% /backup
增加逻辑卷容量–lvextend
注意Centos6中:修改lv及文件系统的大小,必须先将lv及文件系统卸载(umount)
lvextend -L +10G /dev/vgdata/lvdata ##先增加lv的大小
centos7: xfs_growfs /dev/vgdata/lvdata ##再修改文件系统的大小
C6版:resize2fs -f /dev/vgdata/lvdata 25G #再修改文件系统的大小
[root@k8s-node02 ~]# lvextend -L +10G /dev/vgdata/lvdata   ##先扩容
  Size of logical volume vgdata/lvdata changed from 30.00 GiB (15360 extents) to 40.00 GiB (20480 extents).
  Logical volume vgdata/lvdata successfully resized.
[root@k8s-node02 ~]# 
[root@k8s-node02 ~]# df -h 
文件系统                   容量  已用  可用 已用% 挂载点
devtmpfs                   2.0G     0  2.0G    0% /dev
tmpfs                      2.0G     0  2.0G    0% /dev/shm
tmpfs                      2.0G   12M  2.0G    1% /run
tmpfs                      2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/mapper/centos-root     97G  3.5G   94G    4% /
/dev/sda1                 1014M  166M  849M   17% /boot
tmpfs                      394M     0  394M    0% /run/user/0
/dev/mapper/vgdata-lvdata   20G   33M   20G    1% /backup
[root@k8s-node02 ~]# xfs_growfs /dev/vgdata/lvdata  ##然后在更新
meta-data=/dev/mapper/vgdata-lvdata isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=5242880, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 5242880 to 10485760

[root@k8s-node02 ~]# df -h 
文件系统                   容量  已用  可用 已用% 挂载点
devtmpfs                   2.0G     0  2.0G    0% /dev
tmpfs                      2.0G     0  2.0G    0% /dev/shm
tmpfs                      2.0G   12M  2.0G    1% /run
tmpfs                      2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/mapper/centos-root     97G  3.5G   94G    4% /
/dev/sda1                 1014M  166M  849M   17% /boot
tmpfs                      394M     0  394M    0% /run/user/0
/dev/mapper/vgdata-lvdata   40G   33M   40G    1% /backup
减小逻辑卷容量—lvreduce
注意:xfs文件系统默认只支持扩容,不支持缩小,so,无法真正做到无损…
注意:解除挂载之前要先将数据备份
[root@k8s-node02 ~]# df -h | grep backup
/dev/mapper/vgdata-lvdata   40G   33M   40G    1% /backup
[root@k8s-node02 ~]# 
[root@k8s-node02 ~]# umount /dev/vgdata/lvdata 
[root@k8s-node02 ~]# 
[root@k8s-node02 ~]# lvreduce -L 20G /dev/vgdata/lvdata 
  WARNING: Reducing active logical volume to 20.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vgdata/lvdata? [y/n]: y
  Size of logical volume vgdata/lvdata changed from 40.00 GiB (20480 extents) to 20.00 GiB (10240 extents).
  Logical volume vgdata/lvdata successfully resized.
[root@k8s-node02 ~]# mkfs.xfs -f /dev/vgdata/lvdata 
meta-data=/dev/vgdata/lvdata     isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242880, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@k8s-node02 ~]# mount /dev/vgdata/lvdata /backup/
[root@k8s-node02 ~]# 
[root@k8s-node02 ~]# df -h 
文件系统                   容量  已用  可用 已用% 挂载点
devtmpfs                   2.0G     0  2.0G    0% /dev
tmpfs                      2.0G     0  2.0G    0% /dev/shm
tmpfs                      2.0G   12M  2.0G    1% /run
tmpfs                      2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/mapper/centos-root     97G  3.5G   94G    4% /
/dev/sda1                 1014M  166M  849M   17% /boot
tmpfs                      394M     0  394M    0% /run/user/0
/dev/mapper/vgdata-lvdata   20G   33M   20G    1% /backup

然后将数据在恢复进去
拓展:C6中的操作
e2fsck -f /dev/vgdata/lvdata #检查文件系统
resize2fs /dev/vgdata/lvdata newsize #减少后文件系统大小
lvreduce -L newsize/dev/vgdata/lvdata #减少后lv大小
4、激活卷组
vgchange -a y vgdata
[root@k8s-node02 ~]# vgchange -a y vgdata 
  1 logical volume(s) in volume group "vgdata" now active
5、停用卷组
vgchange -a n vgdata
[root@k8s-node02 ~]# vgchange -a n vgdata 
  Logical volume vgdata/lvdata contains a filesystem in use.
  Can't deactivate volume group "vgdata" with 1 open logical volume(s)
卷组创建完毕后,可以通过 vgchange 命令来激活卷组,而无法重启系统
通过使用 vgchange 命令,我们可以激活 scvg 卷组
6、vg的导出
第一步:解除挂载
第二步:lvchange -an /dev/vgdata ##将vg停用
第三步:vgexport vgdata ##将vg导出 命令格式:vgexport vg的名称
第四步:vgs或者lvs查看
[root@k8s-node02 ~]# umount /backup/
[root@k8s-node02 ~]# df -h 
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 2.0G     0  2.0G    0% /dev
tmpfs                    2.0G     0  2.0G    0% /dev/shm
tmpfs                    2.0G   12M  2.0G    1% /run
tmpfs                    2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/mapper/centos-root   97G  3.5G   94G    4% /
/dev/sda1               1014M  166M  849M   17% /boot
tmpfs                    394M     0  394M    0% /run/user/0
[root@k8s-node02 ~]# lvchange -an /dev/vgdata
[root@k8s-node02 ~]# vgexport vgdata 
  Volume group "vgdata" successfully exported
[root@k8s-node02 ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  centos   1   2   0 wz--n- <99.00g      0 
  vgdata   2   1   0 wzx-n- 199.99g 179.99g
[root@k8s-node02 ~]# lvs
  Volume group vgdata is exported
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <97.00g                                                    
  swap centos -wi-a-----   2.00g                                                    
7、vg的导入
第一步:vgimport vgdata ##导入vg
第二步:vgchange -ay vgdata ##激活卷组
第三步:将vg或者lv进行挂载
第四步:lvs或者vgs查看
[root@k8s-node02 ~]# vgimport vgdata 
  Volume group "vgdata" successfully imported
[root@k8s-node02 ~]# 
[root@k8s-node02 ~]# vgchange -ay vgdata 
  1 logical volume(s) in volume group "vgdata" now active
[root@k8s-node02 ~]# 
[root@k8s-node02 ~]# mount /dev/vgdata/lvdata /backup/
[root@k8s-node02 ~]# 
[root@k8s-node02 ~]# lvs
  LV     VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   centos -wi-ao---- <97.00g                                                    
  swap   centos -wi-a-----   2.00g                                                    
  lvdata vgdata -wi-ao----  20.00g                                                    
[root@k8s-node02 ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  centos   1   2   0 wz--n- <99.00g      0 
  vgdata   2   1   0 wz--n- 199.99g 179.99g
[root@k8s-node02 ~]# df -h
文件系统                   容量  已用  可用 已用% 挂载点
devtmpfs                   2.0G     0  2.0G    0% /dev
tmpfs                      2.0G     0  2.0G    0% /dev/shm
tmpfs                      2.0G   12M  2.0G    1% /run
tmpfs                      2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/mapper/centos-root     97G  3.5G   94G    4% /
/dev/sda1                 1014M  166M  849M   17% /boot
tmpfs                      394M     0  394M    0% /run/user/0
/dev/mapper/vgdata-lvdata   20G   33M   20G    1% /backup

二、磁盘配额

由于Linux是一个多用户管理的操作系统,而Linux默认情况下并不限制每个用户使用磁盘空间的大小,假如某个用户疏忽或者恶意占满磁盘空间,将导致系统磁盘无法写入甚至崩溃;为了保证系统磁盘的有足够的剩余空间,我们需要对用户和组进行磁盘空间使用限制。

1、磁盘配额限制类型

限制用户和组对磁盘空间的使用量(data block)
限制用户和组在磁盘内创建文件的个数(inode)

2、磁盘配额限制级别

软限制:低级限制,此限制可以突破,突破时会被警告
硬限制:绝对限制,此限制不会被突破,达到指定限制后无法使用更多空间
宽限天数:允许用户在每个文件系统指定的宽限期内超过他们的软限制。一旦宽限期过期,软限制将作 为硬限制强制执行
注意:磁盘配额是针对分区进行设置的,无法实现“某用户在系统中共计只能使用50MB磁盘空间”只能 设置某用户在/home分区能使用30M这样的限制。切记:磁盘配额是针对分区的!

3、查看系统是否支持磁盘配额

grep “CONFIG_QUOTA” /boot/config-3.10.0-957.el7.x86_64

4、查看磁盘配额命令是否安装

rpm -q quota

5、设置用户或组的限制标准,编辑配置文件

xfs_quota -x -c ‘limit bsoft=40m bhard=50m isoft=8 ihard=10 laow’ /movie
-x:专家模式
-c:用来指定后续规则作为quota命令的参数(若不指定默认以交互式进行)
limit:设置限制的命令
容量:bsoft(软) bhard(硬)
文件数:isoft(软) ihard(硬)
xfs_quota -x -c ‘report’ /movie

6、编辑配置文件修改限制

命令:edquota 选项 用户或组
-u:修改用户的限额配置
-g:修改组的限额配置
[root@localhost ~]# edquota -u laow
Disk quotas for user laow (uid 1000):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb1                      0      40960      51200          0        8       10

7、启动和关闭磁盘配额

**启动:**quotaon 选项 分区名称
-u 启动用户的磁盘配额
-g 启动组的磁盘配额
-v 显示启动过程信息
[root@localhost ~]# quotaon -ugv /dev/sdb1 
	quotaon: Enforcing group quota already on /dev/sdb1
	quotaon: Enforcing user quota already on /dev/sdb1
**关闭:**quotaoff 选项 分区名称
-u 关闭用户的磁盘配额
-g 关闭组的磁盘配额
-v 显示启动过程信息
root@localhost ~]# quotaoff -ugv /dev/sdb1 
	Disabling group quota enforcement on /dev/sdb1
	/dev/sdb1: group quotas turned off
	Disabling user quota enforcement on /dev/sdb1
	/dev/sdb1: user quotas turned off

8、查看磁盘配额的信息

查询用户或组的配额:quota 选项 用户或组名
-u 用户名
-g 组名
-v 显示详细信息
-s 以常见单位显示大小
[root@localhost ~]# quota -uvs laow
Disk quotas for user laow (uid 1000): 
     Filesystem   space   quota   limit   grace   files   quota   limit   grace
      /dev/sdb1      0K  40960K  51200K               0       8      10
常见组合:-uvs -gvs
查询指定分区的磁盘配额:repquota 选项 分区名
[root@localhost ~]# repquota -uvs /dev/sdb1 
*** Report for user quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7days
                        Space limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      0K      0K      0K              3     0     0       
laow      --      0K  40960K  51200K              0     8    10       

*** Status for user quotas on device /dev/sdb1
Accounting: ON; Enforcement: ON
Inode: #67 (2 blocks, 2 extents)
组合方式:-uvs -gvs -ugvs

三、扩展命令 dd命令

用于通过指定大小的块进行数据拷贝和类型转换的命令

格式:dd if=数据来源 of=数据目标 bs=块大小 count=块数量
if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
bs=bytes:同时设置读入/输出的块大小为bytes个字节(可自定义单位)。
count=blocks:拷贝块的数量,块大小等于bs指定的大小
常见的组合案例
将本地的/dev/sdb整盘备份到/dev/sde
dd if=/dev/sdb of=/dev/sde
将/dev/sdb全盘数据备份到指定路径的image文件中(附恢复)
dd if=/dev/sdb of=/root/image
dd if=/root/image of=/dev/sdb
备份/dev/sdb全盘数据,并利用gzip工具进行压缩,保存到指定路径(附恢复)
dd if=/dev/sdb | gzip > /root/image.gz
gzip -dc /root/image.gz | dd of=/dev/sdb
备份与恢复MBR:
备份磁盘开始的512个字节大小的MBR信息到指定文件
dd if=/dev/sda of=/root/image count=1 bs=512
count=1指仅拷贝一个块;bs=512指块大小为512个字节。
恢复:
dd if=/root/image of=/dev/sdb
将备份的MBR信息写到磁盘开始部分
拷贝光盘内容到指定文件夹,并保存为cd.iso文件(生成镜像文件
dd if=/dev/cdrom(sr0) of=/root/cd.iso
销毁磁盘数据
dd if=/dev/urandom of=/dev/sdb

​ 注意:利用随机的数据填充硬盘,在某些必要的情况下可以用来销毁数据。

测试硬盘的读写速度
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
dd if=/root/1Gb.file of=/dev/null bs=64k

​ 通过以上两个命令输出的命令执行时间,可以计算出硬盘的读、写速度。

​ /dev/zero:是一个特殊设备(伪设备),你可你用它来初始化文件。该设备无穷尽地提供0,可 以用于 向设备或文件写入字符串0。

​ dev/null:也是一个特殊设备(伪设备),称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果 不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。外号叫无底洞,你可以向它输出 任何数据,它通吃,并且不会被装满!

确定硬盘的最佳块大小
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file

​ 通过比较以上命令输出中所显示的命令执行时间,即可确定系统最佳的块大小

四、RAID磁盘阵列详解

由独立磁盘构成的具有冗余、校验、加速效果的磁盘组合结构称为磁盘阵列
通过把多个磁盘组织在一起作为一个虚拟磁盘提供磁盘跨越功能
通过把数据分成多个数据块并行【写入/读取】多个磁盘以提高访问磁盘的速度
通过镜像或校验操作提供容错能力
RAID磁盘阵列主要为了保证硬件损坏的情况下业务不会终止,但无法防止误操作
磁盘阵列分类:一是外接式磁盘阵列柜、二是内接式磁盘阵列卡,三是利用软件来仿真

1、RAID的分类

RAID 0:没有奇偶校验的条带卷
提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘 并行的执行,每个磁盘执行属于它自己的那部分数据请求
RAID 1:独立磁盘冗余阵列(镜像卷)
通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能
RAID 10:镜象阵列条带卷
Raid 10是一个Raid 1与Raid0的组合体,它是利用奇偶校验实现条带集镜像,所以它继承了Raid0的快速和Raid1的安全。
RAID5:分布式奇偶校验的独立磁盘结构
RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 RAID 5可以理解为是RAID 0和RAID 1的折中方案
RAID 5 阵列搭建流程
第一步准备物理磁盘
第二步常见raid5阵列
mdadm -Cv 阵列名称(md*) -l5 -n3 磁盘 -x1 磁盘
-C:create
-v:显示详细信息
mdadm -Cv /dev/md0 -l5 -n3 /dev/sdb1 /dev/sdb2 /dev/sdb3 -x1 /dev/sdb5
记得要格式化并挂载才能使用,还有自动挂载
查看raid5阵列信息
mdadm –D 设备名
模拟raid5阵列磁盘损坏
mdadm /dev/md0 –f /dev/sdb3
#标记阵列中某磁盘损坏,并查看磁盘状态
移除故障磁盘,添加新磁盘
mdadm /dev/md0 --add /dev/sdb6
#添加新的磁盘,恢复正常热备
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值