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 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> LVM 逻辑卷管理(实战篇) -> 正文阅读

[系统运维]LVM 逻辑卷管理(实战篇)

前言

环境:centos7.9
本篇来实际操作lvm逻辑卷管理,从新加硬盘开始讲解。

添加2块磁盘

在这里插入图片描述

[root@localhost ~]# lsblk										#发现系统没有识别我们的2块硬盘
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   12G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   11G  0 part 
  ├─cl-root 253:0    0  9.8G  0 lvm  /
  └─cl-swap 253:1    0  1.2G  0 lvm  [SWAP]
sr0          11:0    1 1024M  0 rom 
[root@localhost ~]# init 6										#重启吧
[root@localhost ~]# lsblk										#重启系统后发现系统已经识别到新加的2块硬盘了
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   12G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   11G  0 part 
  ├─cl-root 253:0    0  9.8G  0 lvm  /
  └─cl-swap 253:1    0  1.2G  0 lvm  [SWAP]
sdb           8:16   0    8G  0 disk 							#新加的8G的硬盘
sdc           8:32   0    6G  0 disk 							#新加的6G的硬盘
sr0          11:0    1 1024M  0 rom  

创建PV(pvcreate 命令、pvs命令、pvdisplay命令、pvscan命令)

pvcreate:将一个或多个磁盘或分区转化为pv物理卷,其实内部就是将磁盘或分区转化为一个个PE,所以磁盘或分区最好是没有数据的,不然数据就会丢失。
pvs:查看pv的信息,信息简单明了。
pvdisplay:查看pv的信息,信息内容更加详细。
pvscan:查看pv的信息
创建PV有两种方式:基于磁盘创建、 基于分区创建。
1、基于磁盘的 ,就不需要划分分区 ,直接通过 pvcreate 来创建物理卷即可;
2、基于分区的 ,需要事先通过fdisk划分分区 ,并将分区格式转化为8e(8e表示的就是Linux lvm),分区不要mkfs格式化 ,然后再进行 pvcreate 来创建物理卷即可 。

[root@localhost ~]# pvcreate  /dev/sdb /dev/sdc      				#直接将两块磁盘转化为物理卷pv
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.
[root@localhost ~]# pvs												#查看系统中有哪些pv,使用pvdisplay、pvscan可以看的更加详细
  PV         VG Fmt  Attr PSize  PFree
  /dev/sda2  cl lvm2 a--  11.00g 4.00m								#这个PV是安装centos时默认的lvm分区时创建的,可以看出它已经加入到了名为cl的VG中了,而且它的可用空间只有4.00m了
  /dev/sdb      lvm2 ---   8.00g 8.00g								#成功将sdb创建为PV了,这时它还没加入到任何的vg中去
  /dev/sdc      lvm2 ---   6.00g 6.00g								#成功将sdb创建为PV了,这时它还没加入到任何的vg中去
[root@localhost ~]# 

vgcreate创建卷组vg

[root@localhost ~]# vgcreate iflytek /dev/sdb /dev/sdc				#创建一个名称为iflytek的卷组,并把/dev/sdb /dev/sdc加入到卷组
  Volume group "iflytek" successfully created
[root@localhost ~]# 
[root@localhost ~]# pvs												#查看pv就发现2块磁盘的已经属于iflytek的卷组了
  PV         VG      Fmt  Attr PSize  PFree
  /dev/sda2  cl      lvm2 a--  11.00g 4.00m
  /dev/sdb   iflytek lvm2 a--   8.00g 8.00g
  /dev/sdc   iflytek lvm2 a--   6.00g 6.00g
[root@localhost ~]# 

lvcreate创建逻辑卷lv

[root@localhost ~]# vgs iflytek								#先查看iflytek的卷组还有多少空间
  VG      #PV #LV #SN Attr   VSize  VFree
  iflytek   2   1   0 wz--n- 13.99g 13.99g
[root@localhost ~]# 
[root@localhost ~]# lvcreate -n lv_data -L 6G  iflytek		#在名为iflytek的卷组上创建一个叫lv_data的逻辑卷,大小为6G
  Logical volume "lv_data" created.
[root@localhost ~]# 
[root@localhost ~]# lvs										#查看刚才创建的lv,即lv_data
  LV      VG      Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root    cl      -wi-ao---- 9.79g                                                    
  swap    cl      -wi-ao---- 1.20g                                                    
  lv_data iflytek -wi-a----- 6.00g                                                    
[root@localhost ~]# 

mkfs格式化逻辑卷并创建文件系统

[root@localhost ~]# mkfs.xfs  /dev/iflytek/lv_data 
meta-data=/dev/iflytek/lv_data   isize=512    agcount=4, agsize=393216 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1572864, 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

mount挂载

[root@localhost ~]# mkdir /lv_data											#创建挂载点
[root@localhost ~]# mount /dev/iflytek/lv_data  /lv_data					#挂载
[root@localhost ~]# df -Th													#查看磁盘信息
Filesystem                  Type      Size  Used Avail Use% Mounted on
/dev/mapper/cl-root         xfs       9.8G 1021M  8.8G  11% /
devtmpfs                    devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                       tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                       tmpfs     1.9G  8.6M  1.9G   1% /run
tmpfs                       tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1                   xfs      1014M  139M  876M  14% /boot
tmpfs                       tmpfs     378M     0  378M   0% /run/user/0
/dev/mapper/iflytek-lv_data xfs       6.0G   33M  6.0G   1% /lv_data
[root@localhost ~]# echo '/dev/iflytek/lv_data     /lv_data     xfs    defaults        0 0' >> /etc/fstab   #永久挂载
[root@localhost ~]# mount -a													#测试
[root@localhost ~]# 

小结

1、添加新硬盘(不需要分区)或者创建一个是8e的Linux lvm分区(不需要格式化);
2、pvcreate  /dev/sdb																#创建物理卷,即将sdb转化为物理卷,参数可以是多个
3、pvs 、pvscan、pvdisplay															#查看有哪些物理卷
4、vgcreate -n vg_iflytek  /dev/sdb													#创建一个名称为vg_iflytek的卷组,并把/dev/sdb加入
5、vgs、vgscan、vgdisplay 															#查看有哪些卷组
6、lvcreate -n lv_data -L 6G vg_iflytek												#在名为vg_iflytek的卷组上创建一个叫lv_data的逻辑卷,大小为6G
7、lvs、lvdisplay、lvscan															#查看有哪些逻辑卷
8、mkfs.xfs  /dev/vg_iflytek/lv_data												#格式化并此案文件系统
9、mkdir /data  && mount /dev/vg_iflytek/lv_data /data								#挂载就可以使用了
10、echo '/dev/iflytek/lv_data  /lv_data   xfs   defaults   0 0' >> /etc/fsta		#设置永久挂载吧
10、df -Th 																			#检查

lvextend 逻辑卷扩容

lvextend可以在线扩容逻辑卷,不需要关闭,也不需要停服务。

[root@localhost mapper]# lvextend -L +1G /dev/iflytek/lv_data					#命令三、-L参数直接指定扩容大小,最常用
[root@localhost mapper]# lvextend -l +100%FREE /dev/iflytek/lv_data				#命令一、直接将vg中全部可用空间给lv扩容,比较常用
[root@localhost mapper]# lvextend  -l +25 /dev/iflytek/lv_data					#命令二、指定LE的个数来扩容,如果1个LE的大小是4MB,那么这个就是增加100MB
[root@localhost mapper]# lvs && df -Th											#查看逻辑卷发现其实增大了空间,但是df查看文件系统发现,文件系统没有增大空间,这说明文件系统感知不到逻辑卷的增大。
[root@localhost mapper]# xfs_growfs  /dev/iflytek/lv_data 						#使用xfs_growfs 命令扩展xfs文件系统
[root@localhost mapper]# resize2fs  /dev/iflytek/lv_data 						#使用resize2fs 命令扩展ext4文件系统
[root@localhost mapper]# df -Th													#查看文件系统发现真的增大了,扩容完成

vgextend 卷组扩容

卷组扩容其实就是新加一个磁盘或分区,转换为pv,然后把磁盘或分区加入卷组中即可。

[root@localhost ~]# lsblk
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                 8:0    0   12G  0 disk 
├─sda1              8:1    0    1G  0 part /boot
└─sda2              8:2    0   11G  0 part 
  ├─cl-root       253:0    0  9.8G  0 lvm  /
  └─cl-swap       253:1    0  1.2G  0 lvm  [SWAP]
sdb                 8:16   0    8G  0 disk 
└─iflytek-lv_data 253:2    0   14G  0 lvm  /lv_data
sdc                 8:32   0    6G  0 disk 
└─iflytek-lv_data 253:2    0   14G  0 lvm  /lv_data
sdd                 8:48   0    2G  0 disk 								#这是我们新增加的磁盘sdd
sr0                11:0    1  4.1G  0 rom  
[root@localhost ~]# fdisk /dev/sdd 										#对磁盘进行分区(实际可以不用分区也行)
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xf521342a.
Command (m for help): n													#输入n表示创建一个分配
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p													#分区类型为主分区
Partition number (1-4, default 1): 										#分区编号默认1
First sector (2048-4194303, default 2048): 								#其实块保持默认
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): 	#最大块保持默认,默认会全部划为
Using default value 4194303
Partition 1 of type Linux and of size 2 GiB is set

Command (m for help): t													#输入t表示改变分区格式
Hex code (type L to list all codes): 8e									#输入8e表示为分区格式Linux LVM
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w													#输入w表示保存所有更改,更改将被写入磁盘
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# df -h												#查看文件系统,这里肯定看不到,因为我们的磁盘分区还没格式化成文件系统
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/cl-root          9.8G 1021M  8.8G  11% /
devtmpfs                     1.9G     0  1.9G   0% /dev
tmpfs                        1.9G     0  1.9G   0% /dev/shm
tmpfs                        1.9G  8.6M  1.9G   1% /run
tmpfs                        1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1                   1014M  139M  876M  14% /boot
/dev/mapper/iflytek-lv_data   14G   33M   14G   1% /lv_data
tmpfs                        378M     0  378M   0% /run/user/0
[root@localhost ~]# lsblk												#查看系统中的磁盘
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                 8:0    0   12G  0 disk 
├─sda1              8:1    0    1G  0 part /boot
└─sda2              8:2    0   11G  0 part 
  ├─cl-root       253:0    0  9.8G  0 lvm  /
  └─cl-swap       253:1    0  1.2G  0 lvm  [SWAP]
sdb                 8:16   0    8G  0 disk 
└─iflytek-lv_data 253:2    0   14G  0 lvm  /lv_data
sdc                 8:32   0    6G  0 disk 
└─iflytek-lv_data 253:2    0   14G  0 lvm  /lv_data
sdd                 8:48   0    2G  0 disk 
└─sdd1              8:49   0    2G  0 part 								#已经成功创建了sdd1分区
sr0                11:0    1  4.1G  0 rom  
[root@localhost ~]# pvcreate  /dev/sdd1 								#将/dev/sdd1标准分区转化为物理卷
  Physical volume "/dev/sdd1" successfully created.
[root@localhost ~]# pvs													#查看系统中有哪些物理卷
  PV         VG      Fmt  Attr PSize  PFree
  /dev/sda2  cl      lvm2 a--  11.00g 4.00m
  /dev/sdb   iflytek lvm2 a--   8.00g    0 
  /dev/sdc   iflytek lvm2 a--   6.00g    0 
  /dev/sdd1          lvm2 ---   2.00g 2.00g								#这就是我们新加的物理卷
[root@localhost ~]# vgextend iflytek /dev/sdd1							#扩容iflytek卷组,即把/dev/sdd1加入iflytek卷组
  Volume group "iflytek" successfully extended
[root@localhost ~]# pvs
  PV         VG      Fmt  Attr PSize  PFree
  /dev/sda2  cl      lvm2 a--  11.00g 4.00m
  /dev/sdb   iflytek lvm2 a--   8.00g    0 
  /dev/sdc   iflytek lvm2 a--   6.00g    0 
  /dev/sdd1  iflytek lvm2 a--   2.00g 2.00g								#/dev/sdd1已成功加入iflytek卷组,iflytek卷组扩容成功
[root@localhost ~]# 

lvremove删除逻辑卷

[root@localhost ~]# umount  /dev/mapper/iflytek-lv_data								#删除一个lv之前必须先卸载文件系统
[root@localhost ~]# lvremove /dev/iflytek/lv_data									#删除逻辑卷
Do you really want to remove active logical volume iflytek/lv_data? [y/n]: y
  Logical volume "lv_data" successfully removed
[root@localhost ~]# lvs																#检查发现,lv_data逻辑卷已经被删除了
  LV   VG Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root cl -wi-ao---- 9.79g                                                    
  swap cl -wi-ao---- 1.20g                                                    
[root@localhost ~]# 

vgreduce 删除卷组中的某个pv

[root@localhost ~]# vgreduce iflytek /dev/sdd1										#删除iflytek卷组中的sdd1物理卷
  Removed "/dev/sdd1" from volume group "iflytek"
[root@localhost ~]# pvs																#查看物理卷
  PV         VG      Fmt  Attr PSize  PFree
  /dev/sda2  cl      lvm2 a--  11.00g 4.00m
  /dev/sdb   iflytek lvm2 a--   8.00g    0 
  /dev/sdc   iflytek lvm2 a--   6.00g    0 
  /dev/sdd1          lvm2 ---   2.00g 2.00g											#sdd1不属于任何卷组
[root@localhost ~]# 

vgremove 删除卷组

[root@localhost ~]# vgremove  iflytek												#删除整个卷组
Do you really want to remove volume group "iflytek" containing 1 logical volumes? [y/n]: n
  Volume group "iflytek" not removed
[root@localhost ~]# 

pvremove 删除物理卷

[root@localhost ~]# pvremove /dev/sdd1												#删除物理卷
  Labels on physical volume "/dev/sdd1" successfully wiped.
[root@localhost ~]#

小结

1、 lvextend 命令逻辑卷扩容
	[root@localhost mapper]#  lvextend -L +1G /dev/iflytek/lv_data			#命令三、-L参数直接指定扩容大小,最常用
	[root@localhost mapper]# lvextend -l +100%FREE /dev/iflytek/lv_data		#命令一、直接将vg中全部可用空间给lv扩容,比较常用
	[root@localhost mapper]# lvextend  -l +25 /dev/iflytek/lv_data			#命令二、指定LE的个数来扩容,如果1个LE的大小是4MB,那么这个就是增加100MB
	[root@localhost mapper]# xfs_growfs  /dev/iflytek/lv_data 				#使用xfs_growfs 命令扩展xfs文件系统
	[root@localhost mapper]# resize2fs  /dev/iflytek/lv_data 				#使用resize2fs 命令扩展ext4文件系统
	
2、vgextend 卷组扩容
	[root@localhost ~]# fdisk /dev/sdd										#将sdd分区,分区格式为Linux LVM,即8e
	[root@localhost ~]# pvcreate  /dev/sdd1 								#将/dev/sdd1标准分区转化为物理卷
	[root@localhost ~]# vgextend iflytek /dev/sdd1							#扩容iflytek卷组,即把/dev/sdd1加入iflytek卷组
	
3、vgreduce 删除卷组中的某个pv
	[root@localhost ~]# vgreduce iflytek /dev/sdd1							#删除iflytek卷组中的sdd1物理卷
	
4、vgremove 删除卷组
	[root@localhost ~]# vgremove  iflytek									#删除整个卷组
	
5、pvremove 删除物理卷
	[root@localhost ~]# pvremove /dev/sdd1									#删除物理卷
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-26 10:36:28  更:2021-09-26 10:37:20 
 
开发: 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 16:56:04-

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