IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 磁盘管理-逻辑卷 -> 正文阅读

[系统运维]磁盘管理-逻辑卷

磁盘管理-逻辑卷

介绍

逻辑卷简介

  • 逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制

  • 理论性较强,创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。

  • 建立在物理存储设备之上的一个抽象层,优点在于灵活管理

  • 特点:

    • 动态在线扩容(重点)
    • 离线裁剪
    • 数据条带化
    • 数据镜像

工作原理

在这里插入图片描述

  • 物理卷:Physical Volume(PV),处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列

  • 卷组:Volume Group( VG),建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。一个LVM系统中可以只有一个卷组,也可以包含多个卷组

  • 逻辑卷:Logical Volume(LV),逻辑卷建立在卷组之上,并且逻辑卷在建立后可以动态地扩展或缩小空间,是最终用户使用的逻辑设备

  • 物理区域 :physical extent(PE),一个物理卷可被划分为多个PE,具有唯一编号的PE是能被LVM寻址的最小单元。PE的大小可指定,默认为4 MB。 PE的大小一旦确定将不能改变,同一个卷组中的所有物理卷的PE的大小是一致的。

  • 逻辑区域:logical extent(LE),一个逻辑卷可被划分为多个LE,也是LVM寻址的最小单元,在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

逻辑卷管理

常用命令

功能/命令物理卷管理卷组管理逻辑卷管理
扫描pvscanvgscanlvscan
建立pvcreatevgcreatelvcreate
显示pvsvgslvs
详细显示pvdisplayvgdisplaylvdisplay
删除pvremovevgremovelvremove
扩展vgextendlvextend
缩小vgreducelvreduce

逻辑卷创建

物理设备——>物理卷(pv)——>卷组(vg)——>逻辑卷(lv)——>逻辑卷格式化——>挂载

物理设备:硬盘分区
[root@server1 ~]# fdisk /dev/sdb
[root@server1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    5G  0 disk 
├─sdb1            8:17   0    1G  0 part 
└─sdb2            8:18   0    2G  0 part 
sr0              11:0    1  973M  0 rom 
[root@server1 ~]# partprobe /dev/sdb

创建物理卷
[root@server1 ~]# pvcreate /dev/sdb1 /dev/sdb2
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdb2" successfully created.
[root@server1 ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--  <19.00g    0 
  /dev/sdb1         lvm2 ---    1.00g 1.00g
  /dev/sdb2         lvm2 ---    2.00g 2.00g
[root@server1 ~]# pvdisplay /dev/sdb*
  "/dev/sdb2" is a new physical volume of "2.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb2
  VG Name               
  PV Size               2.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               ogYeQh-kmXp-SguX-IE5I-VY1T-HFSE-mgVzh2
   
  "/dev/sdb1" is a new physical volume of "1.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               1.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               O0FhDl-4USu-DBGD-skhu-zFVA-rEiZ-JVC3T3

创建卷组
[root@server1 ~]# vgcreate vg01 /dev/sdb1 /dev/sdb2
  Volume group "vg01" successfully created
[root@server1 ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n- <19.00g    0 
  vg01     2   0   0 wz--n-   2.99g 2.99g

创建逻辑卷
[root@server1 ~]# lvcreate -n lv01 -L 2.5G vg01
选项说明:
-n:指定逻辑卷名称
-L:直接指定逻辑卷大小
-l:间接指定逻辑卷大小(加PE个数/卷组剩余空间(VFree)百分比)
[root@server1 ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <17.00g                                                    
  swap centos -wi-ao----   2.00g                                                    
  lv01 vg01   -wi-a-----   2.50g 

查看映射关系
[root@server1 ~]# ll /dev/vg01/lv01 
lrwxrwxrwx 1 root root 7 8月  21 12:17 /dev/vg01/lv01 -> ../dm-2
[root@server1 ~]# ll /dev/mapper/vg01-lv01 
lrwxrwxrwx 1 root root 7 8月  21 12:17 /dev/mapper/vg01-lv01 -> ../dm-2

格式化
[root@server1 ~]# mkfs.ext4 /dev/vg01/lv01 
[root@server1 ~]# blkid /dev/vg01/lv01
/dev/vg01/lv01: UUID="acc1fc83-a64c-4d60-9f32-955169625ac1" TYPE="ext4" 

挂载
[root@server1 ~]# mkdir /mnt/lv01
[root@server1 ~]# mount /dev/vg01/lv01 /mnt/lv01/
[root@server1 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  899M     0  899M    0% /dev
tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
tmpfs                   tmpfs     910M  9.6M  901M    2% /run
tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.9G   16G   11% /
/dev/sda1               xfs      1014M  194M  821M   20% /boot
tmpfs                   tmpfs     182M     0  182M    0% /run/user/0
/dev/mapper/vg01-lv01   ext4      2.4G  7.5M  2.3G    1% /mnt/lv01

逻辑卷删除

解挂
[root@server1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    5G  0 disk 
├─sdb1            8:17   0    1G  0 part 
│ └─vg01-lv01   253:2    0  2.5G  0 lvm  /mnt/lv01
└─sdb2            8:18   0    2G  0 part 
  └─vg01-lv01   253:2    0  2.5G  0 lvm  /mnt/lv01
sr0              11:0    1  973M  0 rom  
[root@server1 ~]# umount /dev/vg01/lv01

删除逻辑卷
[root@server1 ~]# lvremove /dev/vg01/lv01
Do you really want to remove active logical volume vg01/lv01? [y/n]: y
  Logical volume "lv01" successfully removed

删除卷组
[root@server1 ~]# vgremove vg01
  Volume group "vg01" successfully removed  

删除物理卷
[root@server1 ~]# pvremove /dev/sdb[12]
  Labels on physical volume "/dev/sdb1" successfully wiped.
  Labels on physical volume "/dev/sdb2" successfully wiped.
[root@server1 ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  centos lvm2 a--  <19.00g    0 
[root@server1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    5G  0 disk 
├─sdb1            8:17   0    1G  0 part 
└─sdb2            8:18   0    2G  0 part 
sr0              11:0    1  973M  0 rom  

逻辑卷动态扩容

准备0.5G的逻辑卷
[root@server1 ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
[root@server1 ~]# vgcreate vg01 /dev/sdb1
  Volume group "vg01" successfully created
[root@server1 ~]# lvcreate -n lv01 -L 0.5G vg01
  Logical volume "lv01" created.
[root@server1 ~]# ll /dev/vg01/lv01 
lrwxrwxrwx 1 root root 7 8月  21 13:10 /dev/vg01/lv01 -> ../dm-2
[root@server1 ~]# ll /dev/mapper/vg01-lv01 
lrwxrwxrwx 1 root root 7 8月  21 13:10 /dev/mapper/vg01-lv01 -> ../dm-2
[root@server1 ~]# mkfs.ext4 /dev/vg01/lv01
[root@server1 ~]# mount /dev/vg01/lv01 /mnt/lv01/
[root@server1 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  899M     0  899M    0% /dev
tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
tmpfs                   tmpfs     910M  9.6M  901M    2% /run
tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.9G   16G   11% /
/dev/sda1               xfs      1014M  194M  821M   20% /boot
tmpfs                   tmpfs     182M     0  182M    0% /run/user/0
/dev/mapper/vg01-lv01   ext4      488M  780K  452M    1% /mnt/lv01

查看/mnt/lv01属于哪个卷组
[root@server1 ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos -wi-ao---- <17.00g                                                    
  swap centos -wi-ao----   2.00g                                                    
  lv01 vg01   -wi-ao---- 512.00m       

查看vg01的剩余空间
[root@server1 ~]# vgs
  VG     #PV #LV #SN Attr   VSize    VFree  
  centos   1   2   0 wz--n-  <19.00g      0 
  vg01     1   1   0 wz--n- 1020.00m 508.00m
#卷组空间不够:先扩容卷组,再扩容逻辑卷
#卷组空间够用,只需要扩容逻辑卷

扩容卷组:直接将其他物理卷加入该卷组(如果没有空闲物理卷,可以通过物理设备创建物理卷)
[root@server1 ~]# vgextend vg01 /dev/sdb2
  Physical volume "/dev/sdb2" successfully created.
  Volume group "vg01" successfully extended
[root@server1 ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   2   0 wz--n- <19.00g    0 
  vg01     2   1   0 wz--n-   2.99g 2.49g

扩容逻辑卷
[root@server1 ~]# lvextend /dev/vg01/lv01 -L +2G
  Size of logical volume vg01/lv01 changed from 512.00 MiB (128 extents) to 2.50 GiB (640 extents).
  Logical volume vg01/lv01 successfully resized.
[root@server1 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  899M     0  899M    0% /dev
tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
tmpfs                   tmpfs     910M  9.6M  901M    2% /run
tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.9G   16G   11% /
/dev/sda1               xfs      1014M  194M  821M   20% /boot
tmpfs                   tmpfs     182M     0  182M    0% /run/user/0
/dev/mapper/vg01-lv01   ext4      488M  780K  452M    1% /mnt/lv01

同步文件系统
[root@server1 ~]# resize2fs /dev/vg01/lv01 
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg01/lv01 is mounted on /mnt/lv01; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vg01/lv01 is now 655360 blocks long.
[root@server1 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  899M     0  899M    0% /dev
tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
tmpfs                   tmpfs     910M  9.6M  901M    2% /run
tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.9G   16G   11% /
/dev/sda1               xfs      1014M  194M  821M   20% /boot
tmpfs                   tmpfs     182M     0  182M    0% /run/user/0
/dev/mapper/vg01-lv01   ext4      2.5G  1.5M  2.4G    1% /mnt/lv01

逻辑卷实现条带化

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

创建分区
[root@server1 ~]# fdisk /dev/sdb
[root@server1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    5G  0 disk 
├─sdb1            8:17   0    2G  0 part 
└─sdb2            8:18   0    2G  0 part 
sr0              11:0    1  973M  0 rom  

刷新分区表(不成功,可以尝试重启)
[root@server1 ~]# partprobe /dev/sdb

创建物理卷
[root@server1 ~]# pvcreate /dev/sdb[12]
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdb2" successfully created.
[root@server1 ~]# pvs /dev/sdb[12]
  PV         VG Fmt  Attr PSize PFree
  /dev/sdb1     lvm2 ---  2.00g 2.00g
  /dev/sdb2     lvm2 ---  2.00g 2.00g

创建卷组
[root@server1 ~]# vgcreate vg01 /dev/sdb[12]
  Volume group "vg01" successfully created
[root@server1 ~]# vgs vg01
  VG   #PV #LV #SN Attr   VSize VFree
  vg01   2   0   0 wz--n- 3.99g 3.99g

创建逻辑卷,实现条带化
[root@server1 ~]# lvcreate -n lv01 -l 100%free vg01 -i 2 /dev/sdb[12]
  Using default stripesize 64.00 KiB.
  Logical volume "lv01" created.
选项说明:
-i:指定条带化的数量
[root@server1 ~]# pvs /dev/sdb[12]
  PV         VG   Fmt  Attr PSize  PFree
  /dev/sdb1  vg01 lvm2 a--  <2.00g    0 
  /dev/sdb2  vg01 lvm2 a--  <2.00g    0
  
格式化
[root@server1 ~]# mkfs.xfs /dev/vg01/lv01 
meta-data=/dev/vg01/lv01         isize=512    agcount=8, agsize=130800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1046400, imaxpct=25
         =                       sunit=16     swidth=32 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=16 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

挂载
[root@server1 ~]# mkdir /mnt/lv01
[root@server1 ~]# mount /dev/vg01/lv01 /mnt/lv01

测试
#复制会话,用于监控
[root@server1 ~]# yum install -y sysstat.x86_64
[root@server1 ~]# iostat -m -d /dev/sdb[12] 3
选项说明:
-d:查看磁盘
-m:以什么速度显示,M/s
 3:每隔3s显示一次 
[root@server1 ~]# dd if=/dev/zero of=/mnt/lv01/dd_file bs=1M count=1000

#监控显示
Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sdb1            181.33         0.00        11.29          0         33
sdb2            180.33         0.00        11.27          0         33

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sdb1            731.33         0.00        45.58          0        136
sdb2            729.33         0.00        45.58          0        136

逻辑卷快照

快照大小远远小于逻辑卷实例大小,快照的空间也来自于卷组,当卷组的可用空间为0时,快照不能创建

环境:现打算为vg01-lv01逻辑卷拍摄快照,但卷组可用空间为0,拟采用sdb3扩容
[root@server1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    5G  0 disk 
├─sdb1            8:17   0    2G  0 part 
│ └─vg01-lv01   253:2    0    4G  0 lvm  /mnt/lv01
├─sdb2            8:18   0    2G  0 part 
│ └─vg01-lv01   253:2    0    4G  0 lvm  /mnt/lv01
└─sdb3            8:19   0 1023M  0 part 
sr0              11:0    1  973M  0 rom  

创建物理卷
[root@server1 ~]# pvcreate /dev/sdb3
  Physical volume "/dev/sdb3" successfully created.

sdb3加入vg01卷组
[root@server1 ~]# vgextend vg01 /dev/sdb3
  Volume group "vg01" successfully extended
[root@server1 ~]# dmsetup ls --tree
vg01-lv01 (253:2)
 ├─ (8:18)
 └─ (8:17)
centos-swap (253:1)
 └─ (8:2)
centos-root (253:0)
 └─ (8:2)

拍摄快照
[root@server1 ~]# lvcreate -n lv01_snap -L 50M -s /dev/vg01/lv01
  Logical volume "lv01_snap" created.
[root@server1 ~]# lvs
  LV        VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root      centos -wi-ao---- <17.00g                                                    
  swap      centos -wi-ao----   2.00g                                                    
  lv01      vg01   owi-aos---   3.99g                                                    
  lv01_snap vg01   swi-a-s---  50.00m      lv01   0.15 
[root@server1 ~]# dmsetup ls --tree
vg01-lv01_snap (253:5)
 ├─vg01-lv01_snap-cow (253:4) #保存原卷改变前的数据
 │  └─ (8:19)
 └─vg01-lv01-real (253:3) #真实的逻辑卷(原卷)
    ├─ (8:18)
    └─ (8:17)
vg01-lv01 (253:2)
 └─vg01-lv01-real (253:3)
    ├─ (8:18)
    └─ (8:17)
centos-swap (253:1)
 └─ (8:2)
centos-root (253:0)
 └─ (8:2)

快照自动扩容
[root@server1 ~]# vim /etc/lvm/lvm.conf 
snapshot_autoextend_threshold = 75#快照空间使用率(值设置为100,表示关闭自动扩容)
snapshot_autoextend_percent = 20 #快照使用率达到上述要求,自动扩容20%

生产环境下常使用快照备份

锁表–>创建快照–>解锁–>挂载快照–>备份到指定地方–>删除快照

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-02 11:48:00  更:2021-09-02 11:49:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:14:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码