热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux删除lvm卷

本文主要分享【linux删除lvm卷】,技术文章【Linux——LVM逻辑卷管理】为【何翰宇】投稿,如果你遇到Linux相关问题,本文相关知识或能到你。linux删除lvm卷文章目录

本文主要分享【linux删除lvm卷】,技术文章【Linux —— LVM逻辑卷管理】为【何翰宇】投稿,如果你遇到Linux相关问题,本文相关知识或能到你。

linux删除lvm卷

文章目录 一、逻辑卷管理1. LVM介绍2. LVM基本概念 二、逻辑卷LVM应用1.逻辑卷创建1)准备物理设备2)创建物理卷(pvcreate)3)创建卷组并将物理卷加入其中(vgcreate )4)创建逻辑卷(lvcreate)5)格式化逻辑卷(mkfs)6)挂载使用 2. 逻辑卷动态扩容1)查看目录属于哪个卷组2)查看卷组剩余空间3)扩容逻辑卷所在卷组把扩展分区sdb3下的sdb5做成物理卷(PV)将物理卷加入到卷组中(卷组扩容 vgextend ) 4)扩容逻辑卷(lvextend)5)同步文件系统(resize2fs) 三、逻辑卷相关命令(增、删、改)1. 创建卷2. 删除卷3. 扩容组 四、逻辑卷实现条带化1. 什么是条带化?2.实现条带化1)创建物理卷2)创建卷组3)创建实现条带化的逻辑卷4)格式化挂载使用 五、逻辑卷实现镜像1. 创建物理卷2. 将物理卷加入到卷组3. 创建实现镜像的逻辑卷4. 格式化,挂载使用5. 测试验证 六、逻辑卷快照1. 创建挂载快照2. 修改原卷数据3. 快照实现自动扩容 七、磁盘配额1. 启用磁盘配额2. 创建磁盘配额的数据库文件3. 启动磁盘配额4. 设置配额1)方法1(edquota)2)方法2 3. 复制配额4. 查看配额5. xfs配额注意事项 八、swap扩容1. 方法一(增加硬盘)1)格式化分区2)激活swap分区 2. 方法2(使用dd命令)


一、逻辑卷管理 1. LVM介绍

逻辑卷(LVM):它是Linux环境下对磁盘分区进行管理的一种机制,它是建立在物理存储设备之上的一个抽象层,优点在于灵活管理。

特点:

动态在线扩容(关键)离线裁剪数据条带化数据镜像 2. LVM基本概念

真实的物理设备创建过程

逻辑上(命令创建)物理卷(pv)卷组(vg)逻辑卷(lv)逻辑卷格式化最后挂载使用

linux删除lvm卷

物理卷(Physical Volume,PV)
物理卷是底层真正提供容量,存放数据的设备,它可以是整个硬盘、硬盘上的分区等。

卷组(Volume Group, VG)
卷组建立在物理卷之上,它由一个或多个物理卷组成。即把物理卷整合起来提供容量分配。
一个LVM系统中可以只有一个卷组,也可以包含多个卷组。

逻辑卷(Logical Volume, LV)
逻辑卷建立在卷组之上,它是从卷组中“切出”的一块空间。它是最终用户使用的逻辑设备。逻辑卷创建之后,其大小可以伸缩

物理区域 PE(physical extent)
每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是能被LVM寻址的最小单元。PE的大小可指定,默认为4 MB。 PE的大小一旦确定将不能改变,同一个卷组中的所有物理卷的PE的大小是一致的。
4MB=4096kb=4096kb/4kb=1024个block

注意:

硬盘读取数据最小单位1个扇区512字节操作读取数据最小单位1个数据块=8*512字节=4096字节=4KBlvm寻址最小单位1个PE=4MB 逻辑区域 LE(logical extent)
逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。 二、逻辑卷LVM应用 1.逻辑卷创建

创建过程:

准备物理设备磁盘将物理设备做成物理卷创建卷组并将物理卷加入其中创建逻辑卷格式化逻辑卷挂载使用 1)准备物理设备

linux删除lvm卷

fdisk对磁盘进行分区

sdb               8:16   0   10G  0 disk 
├─sdb1            8:17   0    2G  0 part 
├─sdb2            8:18   0    2G  0 part 
├─sdb3            8:19   0    1K  0 part 
├─sdb5            8:21   0    2G  0 part 
├─sdb6            8:22   0    2G  0 part 
└─sdb7            8:23   0    2G  0 part 
2)创建物理卷(pvcreate)

通过pvcreate命令来创建物理卷

[root@lamp ~]# pvcreate /dev/sdb1 /dev/sdb2
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdb2" successfully created.

通过pvs查看物理卷,详细查看pvdisplay [设备]

[root@lamp ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--  <19.00g    0 
  /dev/sdb1         lvm2 ---    2.00g 2.00g
  /dev/sdb2         lvm2 ---    2.00g 2.00g
# 详细查看
[root@lamp ~]# pvdisplay /dev/sdb1
  "/dev/sdb1" is a new physical volume of "2.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               2.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               6nfyXO-5VFf-Wh8H-vu3r-byxX-4AIa-mSNrYP
3)创建卷组并将物理卷加入其中(vgcreate )

创建卷组命令:vgcreate [卷组名] [物理卷路径]

[root@lamp ~]# vgcreate vg01 /dev/sdb1 /dev/sdb2
  Volume group "vg01" successfully created

查看卷组信息命令:vgs,详细查看vgdisplay
那么卷组VG的大小就等于sdb1+sdb2

[root@lamp ~]# vgs vg01
  VG   #PV #LV #SN Attr   VSize VFree
  vg01   2   0   0 wz--n- 3.99g 3.99g
[root@lamp ~]# vgdisplay vg01
  --- Volume group ---
  VG Name               vg01
  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               3.99 GiB
  PE Size               4.00 MiB
  Total PE              1022
  Alloc PE / Size       0 / 0   
  Free  PE / Size       1022 / 3.99 GiB
  VG UUID               cfaFGf-tB6g-IYgK-SVPc-JWeE-Uom8-Rk6CJ
4)创建逻辑卷(lvcreate)

使用lvcreate创建逻辑卷
命令:lvcreate -n [逻辑卷名] -L [逻辑卷大小] [指定从哪个卷组创建]
常用选项:

-n:指定逻辑卷名字 -L:指定逻辑卷大小 -l:通过PF或者百分比指定逻辑卷大小

注意:逻辑卷的大小不能超过卷组的大小

[root@lamp ~]# vgs vg01
  VG   #PV #LV #SN Attr   VSize VFree
  vg01   2   0   0 wz--n- 3.99g 3.99g
[root@lamp ~]# lvcreate -n lv01 -L 2.5G vg01
  Logical volume "lv01" created.
[root@lamp ~]# vgs vg01
  VG   #PV #LV #SN Attr   VSize VFree
  vg01   2   1   0 wz--n- 3.99g 1.49g

在操作系统层面映射两个地方:

[root@lamp ~]# ll /dev/mapper/vg01-lv01 
lrwxrwxrwx 1 root root 7 Jul 24 17:06 /dev/mapper/vg01-lv01 -> ../dm-2
[root@lamp ~]# ll /dev/vg01/lv01
lrwxrwxrwx 1 root root 7 Jul 24 17:06 /dev/vg01/lv01 -> ../dm-2

查看逻辑卷信息:
通过命令:lvdisplay [逻辑卷完整路径]

[root@lamp ~]# lvdisplay /dev/vg01/lv01
  --- Logical volume ---
  LV Path                /dev/vg01/lv01
  LV Name                lv01
  VG Name                vg01
  LV UUID                9z7lEI-L2eP-MlLd-c3rv-t1z9-2Zc9-K3rCng
  LV Write Access        read/write
  LV Creation host, time lamp, 2022-07-24 17:06:22 +0800
  LV Status              available
  # open                 0
  LV Size                2.50 GiB
  Current LE             640
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

示例:创建大小为200M的逻辑卷lv02;每个PE为4M,-l100指定100个PE,大小为400M

[root@lamp ~]# lvcreate -n lv02 -l100 vg01
  Logical volume "lv02" created.
# 一个
[root@lamp ~]# lvs /dev/vg01/lv02
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv02 vg01 -wi-a----- 400.00m

示例:

创建大小为剩余卷组vg01空间的50%的逻辑卷lv03
当前卷组大小为1.1G,50%就是564M左右

通过-l50%free选项指定大小为卷组的50%大小

[root@lamp ~]# vgs vg01
  VG   #PV #LV #SN Attr   VSize VFree
  vg01   2   2   0 wz--n- 3.99g 1.10g
[root@lamp ~]# lvcreate -n lv03 -l50%free vg01
  Logical volume "lv03" created.

[root@lamp ~]# lvs /dev/vg01/lv03
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv03 vg01 -wi-a----- 564.00m                                                    

5)格式化逻辑卷(mkfs)

命令:mkfs.[类型] [逻辑卷完整路径]

[root@lamp ~]# mkfs.xfs /dev/vg01/lv01
meta-data=/dev/vg01/lv01         isize=512    agcount=4, agsize=163840 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=655360, 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@lamp ~]# blkid /dev/vg01/lv01
# 通过 blkid查看设备有信息说明查看成功
/dev/vg01/lv01: UUID="6e86c1ba-d4fb-4d32-a5b7-8a4b2164eba9" TYPE="xfs"
6)挂载使用

创建一个挂载点(目录)

[root@lamp ~]# mkdir /u01
[root@lamp ~]# mount /dev/vg01/lv01 /u01
[root@lamp ~]# lsblk

sdb               8:16   0   10G  0 disk 
├─sdb1            8:17   0    2G  0 part 
│ └─vg01-lv01   253:2    0  2.5G  0 lvm  /u01
├─sdb2            8:18   0    2G  0 part 
│ ├─vg01-lv01   253:2    0  2.5G  0 lvm  /u01
│ ├─vg01-lv02   253:3    0  400M  0 lvm  
│ └─vg01-lv03   253:4    0  564M  0 lvm  
├─sdb3            8:19   0    1K  0 part 
├─sdb5            8:21   0    2G  0 part 
├─sdb6            8:22   0    2G  0 part 
└─sdb7            8:23   0    2G  0 part 
sr0              11:0    1  4.3G  0 rom 
2. 逻辑卷动态扩容

示例:将/u01目录动态扩容到4G
思路:

查看/u01目录所对应的逻辑卷是哪一个查看当前逻辑卷所在的卷组vg01剩余空间是否足够如果vg01空间不够,得先扩容卷组,再扩容逻辑卷如果vg01空间足够,直接扩容逻辑卷 1)查看目录属于哪个卷组

通过命令查看目录/u1属于哪个卷组

[root@lamp ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/vg01-lv01    2.5G   33M  2.5G   2% /u01

[root@lamp ~]# lvs /dev/vg01/lv01
  LV   VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv01 vg01 -wi-ao---- 2.50g 
2)查看卷组剩余空间

vg01的卷组空间已经不足我扩容2G

[root@lamp ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  vg01     2   3   0 wz--n-   3.99g 564.00m

3)扩容逻辑卷所在卷组
[root@lamp ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb               8:16   0   10G  0 disk 
├─sdb1            8:17   0    2G  0 part 
│ └─vg01-lv01   253:2    0  2.5G  0 lvm  /u01
├─sdb2            8:18   0    2G  0 part 
│ ├─vg01-lv01   253:2    0  2.5G  0 lvm  /u01
│ ├─vg01-lv02   253:3    0  400M  0 lvm  
│ └─vg01-lv03   253:4    0  564M  0 lvm  
├─sdb3            8:19   0    1K  0 part 
├─sdb5            8:21   0    2G  0 part 
├─sdb6            8:22   0    2G  0 part 
└─sdb7            8:23   0    2G  0 part 
把扩展分区sdb3下的sdb5做成物理卷(PV)
[root@lamp ~]# pvcreate /dev/sdb5
  Physical volume "/dev/sdb5" successfully created.
[root@lamp ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree  
  /dev/sdb1  vg01   lvm2 a--   <2.00g      0 
  /dev/sdb2  vg01   lvm2 a--   <2.00g 564.00m
  /dev/sdb5         lvm2 ---    2.00g   2.00g
[root@lamp ~]# 

将物理卷加入到卷组中(卷组扩容 vgextend )

vgextend 命令实现卷组扩容

[root@lamp ~]# vgextend vg01 /dev/sdb5
  Volume group "vg01" successfully extended
[root@lamp ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree  
  /dev/sda2  centos lvm2 a--  <19.00g      0 
  /dev/sdb1  vg01   lvm2 a--   <2.00g      0 
  /dev/sdb2  vg01   lvm2 a--   <2.00g 564.00m
  /dev/sdb5  vg01   lvm2 a--   <2.00g  <2.00g

注意:
正常情况下,应该先将/dev/sdb5物理设备创建为物理卷再加入到卷组中;如果直接加入卷组,系统会自动帮你将其做成物理卷

4)扩容逻辑卷(lvextend)

从2.5G扩容到4G
lvextend -L 4G /dev/vg01/lv01

-L:表示扩容到4G
等价于 lvextend -L +1.5G /dev/vg01/lv01
[root@lamp ~]# lvs /dev/vg01/lv01
  LV   VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv01 vg01 -wi-ao---- 2.50g                                                    
[root@lamp ~]# lvextend -L 4G /dev/vg01/lv01
  Size of logical volume vg01/lv01 changed from 2.50 GiB (640 extents) to 4.00 GiB (1024 extents).
  Logical volume vg01/lv01 successfully resized.
[root@lamp ~]# lvs /dev/vg01/lv01
  LV   VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv01 vg01 -wi-ao---- 4.00g

但是检查发现实际容量并没有改变

[root@lamp ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/vg01-lv01    2.5G   33M  2.5G   2% /u01

5)同步文件系统(resize2fs)

先查看文件系统类型

[root@lamp ~]# mount | grep lv01
/dev/mapper/vg01-lv01 on /u01 type xfs (rw,relatime,attr2,inode64,noquota)

如果是ext4就用:resize2fs [逻辑卷路径]同步文件系统
如果是xfs就用:xfs_growfs [逻辑卷路径]同步文件系统

[root@lamp ~]# xfs_growfs /dev/vg01/lv01
meta-data=/dev/mapper/vg01-lv01  isize=512    agcount=4, agsize=163840 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=655360, 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 655360 to 1048576

# 同步之后就 正常了
[root@lamp ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/vg01-lv01    4.0G   33M  4.0G   1% /u01
三、逻辑卷相关命令(增、删、改) 1. 创建卷
创建物理卷:pvcreate
pvcreate /dev/sdb1
创建卷组:vgcreate
vgcreate vg01 /de/sdb1
创建逻辑卷:lvcreate		
lvcreate -n lv01 -L 1G vg01 # 指定为1G
lvcreate -n lv01 -l 100 vg01 # 指定为100*PE大小
lvcreate -n lv01 -l 100%free vg01 #指定为卷组剩余大小
2. 删除卷
删除逻辑卷:lvremove
lvremove /dev/vg01/lv01
删除卷组:vgremove
vgremove vg01
说明:卷组里的物理卷没有被使用才可以直接删除卷组
删除物理卷:pvremove 
pvremove /dev/sdb1
3. 扩容组
扩容卷组:vgextend
vgextend vg01 /dev/sdb2
扩容逻辑卷:lvextend
lvextend /dev/vg01/lv01 -L +2G
同步文件系统:
resize2fs /dev/vg01/lv01
四、逻辑卷实现条带化 1. 什么是条带化?

把保存到逻辑卷的数据分成n等分,分别写到不同的物理卷,可以提高数据的读写效率;这就是条带化。
如果任何一个涉及到的物理卷出现故障,数据都会无法恢复。

2.实现条带化

准备好一个磁盘,两个分区

sdc               8:32   0   20G  0 disk 
├─sdc1            8:33   0    2G  0 part 
└─sdc2            8:34   0    2G  0 part
1)创建物理卷

把sdc1和sdc2都创建为物理卷
命令:pvcreate /dev/sdc[12]

[root@lamp ~]# pvcreate /dev/sdc[12]
  Physical volume "/dev/sdc1" successfully created.
  Physical volume "/dev/sdc2" successfully created.
[root@lamp ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree  
  /dev/sdc1         lvm2 ---    2.00g   2.00g
  /dev/sdc2         lvm2 ---    2.00g   2.00g
2)创建卷组

创建卷组名为vg02,并把物理卷sdc1和sdc2加入到卷组中
命令:vgcreate vg02 /dev/sdc[12]

[root@lamp ~]# vgcreate vg02 /dev/sdc[12]
  Volume group "vg02" successfully created
[root@lamp ~]# pvs /dev/sdc[12]
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdc1  vg02 lvm2 a--  <2.00g <2.00g
  /dev/sdc2  vg02 lvm2 a--  <2.00g <2.00g

3)创建实现条带化的逻辑卷

命令:lvcreate -n lv01 -L 1G vg02 -i 2 /dev/sdc1 /dev/sdc2

-i:给出条带化的数量
在卷组 vg02中创建一个名为 lv01的逻辑卷,这个逻辑卷有条带化功能,分别把数据分成2等份分别写到 sdc1sdc2
[root@lamp ~]# lvcreate -n lv01 -L 1G vg02 -i 2 /dev/sdc1 /dev/sdc2
  Using default stripesize 64.00 KiB.
  Logical volume "lv01" created.
# lv01逻辑卷大小为1G                                                 
[root@lamp ~]# lvs /dev/vg02/lv01
  LV   VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv01 vg02 -wi-a----- 1.00g

可以看到sdc1sdc2都少了500M的空间,也就是各自分配了500M给lv01逻辑卷

[root@lamp ~]# pvs /dev/sdc[12]
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdc1  vg02 lvm2 a--  <2.00g <1.50g
  /dev/sdc2  vg02 lvm2 a--  <2.00g <1.50g
4)格式化挂载使用
[root@lamp ~]# mkfs.xfs /dev/vg02/lv01

[root@lamp ~]# mount /dev/vg02/lv01 /u2

测试
iostat命令可以监控磁盘的使用情况
安装:yum -y install sysstat

使用iostat命令监控:iostat -m -d /dev/sdc[12] 2

-d:查看磁盘 -m:什么速度显示,每M秒 2:每隔2秒显示还可以在接一个数字参数,表示显示几次

模拟写数据,往lv01的挂载目录/u2写1000M的数据
命令:dd if=/dev/zero of=/u2/test bs=1M count=1000

linux删除lvm卷

linux删除lvm卷


可以看到 sdc1sdc2各自用了500M

[root@lamp ~]# pvs /dev/sdc[12]
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdc1  vg02 lvm2 a--  <2.00g <1.50g
  /dev/sdc2  vg02 lvm2 a--  <2.00g <1.50g

五、逻辑卷实现镜像

对某个逻辑卷的数据做镜像,起到数据备份的作用
当前环境

├─sdc5            8:37   0    3G  0 part 
└─sdc6            8:38   0    3G  0 part
1. 创建物理卷
[root@lamp ~]# pvcreate /dev/sdc[56]
[root@lamp ~]# pvs /dev/sdc[56]
  PV         VG Fmt  Attr PSize PFree
  /dev/sdc5     lvm2 ---  3.00g 3.00g
  /dev/sdc6     lvm2 ---  3.00g 3.00g
2. 将物理卷加入到卷组
[root@lamp ~]# vgextend vg02 /dev/sdc[56]
  Volume group "vg02" successfully extended

[root@lamp ~]# vgs vg02
  VG   #PV #LV #SN Attr   VSize  VFree 
  vg02   6   1   0 wz--n- 13.97g 12.97g


3. 创建实现镜像的逻辑卷
[root@lamp ~]# lvcreate -n lv02 -L 2G vg02 -m 1 /dev/sdc[56]
  Logical volume "lv02" created.

-m:给出镜像个数,1表示1个镜像

创建2G镜像逻辑卷后,sdc5和sdc6各自少了2G

[root@lamp ~]# pvs /dev/sdc[56]
  PV         VG   Fmt  Attr PSize  PFree   
  /dev/sdc5  vg02 lvm2 a--  <3.00g 1016.00m
  /dev/sdc6  vg02 lvm2 a--  <3.00g 1016.00m
4. 格式化,挂载使用
[root@lamp ~]# mkfs.xfs /dev/vg02/lv02
[root@lamp u2]# mount /dev/mapper/vg02-lv02 /u2

/u2:目录创建文件

[root@lamp u2]# touch /u2/file{1..4}
[root@lamp u2]# mkdir /u2/dir{1..4}
5. 测试验证

损坏一个磁盘(sdc5),测试数据是否在第二个物理卷中

[root@lamp u2]# dd if=/dev/zero of=/dev/sdc5 bs=1M count=100

再次查看物理卷发现有一个unknown Device

[root@lamp u2]# pvs
/dev/sdc6  vg02   lvm2 a--   <3.00g 1016.00m
  [unknown]  vg02   lvm2 a-m   <3.00g 1016.00m

将损坏的磁盘从卷组中移除
命令:vgreduce vg02 --removemissing --force
vg02卷组中损坏的磁盘移除,也就是损坏的sdc5

再次查看挂载点/u2数据依然存在

[root@lamp u2]# ls
dir1  dir2  dir3  dir4  file1  file2  file3  file4

六、逻辑卷快照

注意:挂载快照,尽量使用ro的方式,将不会破坏快照卷中的数据

1. 创建挂载快照

给vg02卷组下的的逻辑卷lv02创建快照

[root@lamp u2]# lvcreate -L 128M -s -n lv02_snap /dev/vg02/lv02
  Logical volume "lv02_snap" created.
  
[root@lamp u2]# lsblk
vg02-lv02_rmeta_0      253:6    0    4M  0 lvm  
└─vg02-lv02-real       253:11   0    2G  0 lvm  
  ├─vg02-lv02          253:10   0    2G  0 lvm  /u2
  └─vg02-lv02_snap     253:13   0    2G  0 lvm  

挂载快照到/mnt/lv02_snap/

如果是xfs文件系统:mount -o nouuid,ro /dev/vg02/lv02_snap /mnt/lv02_snap/
如果是ext4文件系统:mount -o ro /dev/vg02/lv02_snap /mnt/lv02_snap/

扫描快照

[root@lamp mnt]# lvscan
  ACTIVE   Original '/dev/vg02/lv02' [2.00 GiB] inherit
  ACTIVE   Snapshot '/dev/vg02/lv02_snap' [128.00 MiB] inherit
[root@lamp mnt]# dmsetup ls --tree

vg02-lv02_snap (253:13)
 ├─vg02-lv02_snap-cow (253:12) 保存原卷改变前的数据
 │  └─ (8:33)
 └─vg02-lv02-real (253:11) 真实的逻辑卷(原卷)
    ├─vg02-lv02_rimage_1 (253:9)
    │  └─ (8:38)
    ├─vg02-lv02_rmeta_1 (253:8)
    │  └─ (8:38)
    ├─vg02-lv02_rimage_0 (253:7)
    └─vg02-lv02_rmeta_0 (253:6)
2. 修改原卷数据
[root@lamp mnt]# lvs /dev/vg02/lv02_snap
  LV        VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv02_snap vg02 swi-aos--- 128.00m      lv02   1.58                         
            
[root@lamp mnt]# dd if=/dev/zero of=/u2/test bs=1M count=50
# Data% 发生变化
[root@lamp mnt]# lvs /dev/vg02/lv02_snap
  LV        VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv02_snap vg02 swi-aos--- 128.00m      lv02   40.80 

对比快照和原卷数据

[root@lamp lv02_snap]# ls
dir1  dir2  dir3  dir4  file1  file2  file3  file4
[root@lamp lv02_snap]# ls /u2/
dir1  dir2  dir3  dir4  file1  file2  file3  file4  test
3. 快照实现自动扩容

修改配置文件:vim /etc/lvm/lvm.conf

snapshot_autoextend_threshold = 80 # 1396行
snapshot_autoextend_percent = 20 # 1409行

//当快照使用到80%时,自动扩容20%;当snapshot_autoextend_threshold = 100表示关闭自动扩容

七、磁盘配额

磁盘配额的作用就是,限制用户或组对磁盘空间的使用,例如文件服务器,邮件服务器…

1. 启用磁盘配额

让文件系统支持配额
临时启用

[root@lamp ~]# mount -o rw,usrquota,grpquota /dev/vg01/lv01 /u01
[root@lamp ~]# mount | grep vg01
/dev/mapper/vg01-lv01 on /u01 type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)


永久启动
修改配置文件vim /etc/fstab

/dev/vg01/lv01          /u01                    xfs     defaults,usrquota,grpquota      0 0
2. 创建磁盘配额的数据库文件

注意: 建议停用SELinux

安装quota:yum -y install quota

[root@lamp ~]# quotacheck -cug /u1
[root@lamp ~]# ll /u1
total 32
-rw------- 1 root root  6144 Jul 25 15:03 aquota.group
-rw------- 1 root root  6144 Jul 25 15:03 aquota.user
drwx------ 2 root root 16384 Jul 25 15:02 lost+found
3. 启动磁盘配额
quotaon -a			//启动所有分区的磁盘配额
4. 设置配额 1)方法1(edquota)

为test用户设置配额
命令:edquota -u stu1

Disk quotas for user test (uid 1000):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/mapper/vg01-lv01             0      10240      15360          0        3        5

soft:又称软限制,当用户到达这个限制以后,系统会给予警告,但仍可写入。
hard:又称硬限制,到达这个限制,就完全禁止任何写入

以下三个为磁盘空间的限制设置:
blocks:已使用空间,无需要设置
soft:用户空间使用限制,为软限制,需要设置
hard:用户空间使用限制,为硬限制,需要设置
以下三个为总文件个数的限制:
inodes:已有文件总数,无需要设置
soft:文件总数限制,为软限制,需要设置
hard:文件总数限制,为硬限制,需要设置

测试

[root@lamp ~]# chmod 777 /u1
[root@lamp ~]# su test
[test@lamp root]$ cd /u1
[test@lamp u1]$ touch file{1..10}
dm-2: warning, user file quota exceeded.
dm-2: write failed, user file limit reached.
touch: cannot touch ‘file6’: Disk quota exceeded
touch: cannot touch ‘file7’: Disk quota exceeded
touch: cannot touch ‘file8’: Disk quota exceeded
touch: cannot touch ‘file9’: Disk quota exceeded
touch: cannot touch ‘file10’: Disk quota exceeded
# 只能创建5个文件(硬性设置)
[test@lamp u1]$ ll
total 32
-rw------- 1 root root  7168 Jul 25 15:03 aquota.group
-rw------- 1 root root  7168 Jul 25 15:03 aquota.user
-rw-rw-r-- 1 test test     0 Jul 25 15:27 file1
-rw-rw-r-- 1 test test     0 Jul 25 15:27 file2
-rw-rw-r-- 1 test test     0 Jul 25 15:27 file3
-rw-rw-r-- 1 test test     0 Jul 25 15:27 file4
-rw-rw-r-- 1 test test     0 Jul 25 15:27 file5
drwx------ 2 root root 16384 Jul 25 15:02 lost+found
[test@lamp u1]$

大小,超过10M就会警告(软性设置),不能超过15M

[test@lamp u1]$ dd if=/dev/zero of=/u1/file1 bs=1M count=13
dm-2: warning, user block quota exceeded.
13+0 records in
13+0 records out
13631488 bytes (14 MB) copied, 0.021021 s, 648 MB/s
[test@lamp u1]$ dd if=/dev/zero of=/u1/file1 bs=1M count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.007817 s, 671 MB/s

2)方法2
# setquota -u username block软限制 block硬限制 inode软限制 inode硬限制 分区
# setquota -u jack 80000 100000 15 20 /dev/sda2
# quota jack
3. 复制配额
# edquota -p testtom robin user1 user2 user3
将test的配额方案复制给后面所有用户
4. 查看配额
查看单个用户的配额:	    # quota jack
查看所有用户的配额:	    # repquota -a
5. xfs配额注意事项

注意:
1、不需要手动执行quotacheck命令对xfs文件系统进行检查,它会在mount的时候自动执行
2、不需要在xfs文件系统的根下生成quota数据文件

八、swap扩容

查看swap空间大小命令:free -m

1. 方法一(增加硬盘)
sdb               8:16   0   10G  0 disk 
├─sdb1            8:17   0    2G  0 part 
│ └─vg01-lv01   253:2    0    1G  0 lvm  /u1
├─sdb2            8:18   0    2G  0 part 
└─sdb3            8:19   0    2G  0 part
1)格式化分区

格式化为swap文件系统

[root@lamp ~]# mkswap /dev/sdb3
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=7c2ca810-0ad7-4879-b4d4-045797c4958d
[root@lamp ~]# blkid /dev/sdb3
/dev/sdb3: UUID="7c2ca810-0ad7-4879-b4d4-045797c4958d" TYPE="swap" 
2)激活swap分区
[root@lamp ~]# swapon /dev/sdb3
[root@lamp ~]# swapon -s
Filename				Type		Size	Used	Priority
/dev/dm-1                              	partition	2097148	0	-2
/dev/sdb3                              	partition	2097148	0	-3

2. 方法2(使用dd命令)

dd命令可以复制块设备文件

[root@server ~]# dd if=/dev/sr0 of=/rhel6.iso
[root@server ~]# dd if=/dev/sda1 of=/tmp/bak.boot
[root@server ~]# 
[root@server ~]# dd if=/dev/zero of=/dev/sda1 bs=1M count=100  //不要执行

if=源文件
of=目标文件
bs=复制数据的大小
count=复制的个数

注意:
1. 一般可以使用dd命令做块设备文件的备份
2. /dev/zero 特殊设备,一般用来模拟一个大文件,源源不断的二进制的bit流;
   /dev/null  空设备,类似黑洞

步骤:
1. 使用dd命令模拟大文件
# dd if=/dev/zero of=/tmp/swapfile bs=1M count=1024
2. 格式化大文件
[root@server ~]# mkswap /tmp/swapfile 

3.激活大文件
[root@server ~]# swapon -p 1 /tmp/swapfile
-p:指定优先级,数字越大优先级越高,0-32767
4. 查看
[root@server ~]# swapon -s
Filename				Type		Size	Used	Priority
/tmp/swapfile                           file		1048568	0	1

如果开机自动挂载,需要修改文件:/etc/fstab
/swap_file	swap swap defautls,pri=1 0 0

本文《Linux —— LVM逻辑卷管理》版权归何翰宇所有,引用Linux —— LVM逻辑卷管理需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
  • oracle安装时找不到启动,Oracle没有开机自启是怎么回事?这一步骤很重要
    重启Oracle数据库重启Oracle数据库包括启动Oracle数据库服务进程和启动Oracle数据库两步,大家继续往下看。按照《【Oracle】什么?作为DBA&# ... [详细]
  • 网络安全是一个非常重要的课题,基本上你运行的服务后台越多,你就可能打开更多的安全漏洞.如果配置的恰当的话,Linux本身是非常安全可靠的,假使在Linux系统中有某个安全缺陷,由于Linu ... [详细]
  • linuxmint20.3 安装anaconda、换源及创建新环境
    本文用来记录linuxmint20.3安装anaconda、换源及创建新环境的过程,同时记录一些相关命令目录anaconda安装相关命令创建新环境显示问题 ... [详细]
  • 1、打开etcsysconfiggrub,   #vimetcsysconfiggrub   内容如下: ... [详细]
  • MySQL锁--(深入浅出读书笔记)
    MySQL锁的概述1.针对不同的引擎,采用不同的锁机制;(表锁,页面锁,行锁)myisam和memory存储引擎:表级锁;BOB存储引擎:页面锁,表级 ... [详细]
author-avatar
黄自安_725
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有