===接第九节===
(三)LVM逻辑卷管理器
LVM可以允许用户对硬盘资源进行动态调整。LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘通过卷组合并。用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。
逻辑卷管理器的技术结构:
组成硬盘的基本单元PE:Physical Extent(PE默认大小4.00MiB)
物理卷PV:Physical Volume,可以是物理硬盘、硬盘分区或者RAID磁盘阵列。
卷组VG:Volume Group
逻辑卷LV:Logical Volume
3.1、部署逻辑卷
常用的LVM部署命令:
功能/命令 |
物理卷管理 |
卷组管理 |
逻辑卷管理 |
扫描 |
pvscan |
vgscan |
lvscan |
建立 |
pvcreate |
vgcreate |
lvcreate |
显示 |
pvdisplay |
vgdisplay |
lvdisplay |
删除 |
pvremove |
vgremove |
lvremove |
扩展 |
-- |
vgextend |
lvextend |
缩小 |
-- |
vgreduce |
lvreduce |
(1)创建物理卷
[root@linuxprobe ~]# pvcreate /dev/sdb /dev/sdc //把硬盘/dev/sdb、/dev/sdc创建成物理卷
Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdc" successfully created
[root@linuxprobe ~]# pvdisplay //查看创建好的物理卷,卷组为空
"/dev/sdc" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 3eHCPs-SWDN-Q0xW-H35F-L8Hw-7oWT-FhrS21
"/dev/sdb" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID bYTCj6-oDsP-I1pI-yeFa-VKw3-B5FW-5vetRr
(2)创建卷组
[root@linuxprobe ~]# vgcreate mlgvg /dev/sdb /dev/sdc //把物理卷/dev/sdb、/dev/sdc创建成卷组
Volume group "mlgvg" successfully created
[root@linuxprobe ~]# pvdisplay //查看创建好的物理卷,卷组已显示
--- Physical volume ---
PV Name /dev/sdb
VG Name mlgvg
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2559
Free PE 2559
Allocated PE 0
PV UUID bYTCj6-oDsP-I1pI-yeFa-VKw3-B5FW-5vetRr
--- Physical volume ---
PV Name /dev/sdc
VG Name mlgvg
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2559
Free PE 2559
Allocated PE 0
PV UUID 3eHCPs-SWDN-Q0xW-H35F-L8Hw-7oWT-FhrS21
[root@linuxprobe ~]# vgdisplay //查看创建的卷组
--- Volume group ---
VG Name mlgvg
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 19.99 GiB
PE Size 4.00 MiB
Total PE 5118
Alloc PE / Size 0 / 0
Free PE / Size 5118 / 19.99 GiB
VG UUID hxvsyg-U6OO-dK3f-WU4i-3Nrr-TYmP-Qy3yZR
(3)创建逻辑卷
[root@linuxprobe ~]# lvcreate -n mlglv -l 100 mlgvg //以-l参数(基本单元PE的数量)创建逻辑卷mlglv,大小为100*4M=400M。
Logical volume "mlglv" created
[root@linuxprobe mlgvg]# lvcreate -n mlglv2 -l 200 mlgvg //以-l参数(基本单元PE的数量)创建逻辑卷mlglv2,大小为200*4M=800M。
Logical volume "mlglv2" created
[root@linuxprobe ~]# lvdisplay //查看创建的逻辑卷
--- Logical volume ---
LV Path /dev/mlgvg/mlglv
LV Name mlglv
VG Name mlgvg
LV UUID 52pQW5-Zhv0-WjoF-cMFO-kgjR-qlZR-ZDHkJ7
LV Write Access read/write
LV Creation host, time linuxprobe.com, 2020-03-06 19:36:15 +0800
LV Status available
# open 0
LV Size 400.00 MiB
Current LE 100
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
--- Logical volume ---
LV Path /dev/mlgvg/mlglv2
LV Name mlglv2
VG Name mlgvg
LV UUID 8rn2PC-bQcZ-MErf-ENBC-JC93-ekiF-AFxgbr
LV Write Access read/write
LV Creation host, time linuxprobe.com, 2020-03-06 19:41:37 +0800
LV Status available
# open 0
LV Size 800.00 MiB
Current LE 200
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
注意:xfs文件系统不支持LVM技术,所以LVM扩容后需要用ext4及以下文件系统格式化分区。
[root@linuxprobe ~]# mkfs.ext4 /dev/mlgvg/mlglv //格式化文件系统
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
102400 inodes, 409600 blocks
20480 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=34078720
50 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
[root@linuxprobe ~]# mkdir /mlglv1 //创建挂载点,挂载创建的LVM逻辑卷并查看是否挂载成功。
[root@linuxprobe ~]# mount /dev/mlgvg/mlglv /mlglv1/
[root@linuxprobe ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.2G 15G 19% /
devtmpfs 985M 0 985M 0% /dev
tmpfs 994M 80K 994M 1% /dev/shm
tmpfs 994M 8.9M 986M 1% /run
tmpfs 994M 0 994M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /mnt/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/mapper/mlgvg-mlglv 380M 2.3M 354M 1% /mlglv1
注:如果需要开启自动挂载逻辑卷,需要编辑/etc/fstab配置文件,添加如下内容。
[root@linuxprobe ~]# vim /etc/fstab
# /etc/fstab
# Created by anaconda on Sun Feb 16 14:06:24 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=0026f461-b0a2-4d90-8304-7cb4d0575432 /boot xfs defaults 1 2
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/sr0 /mnt/cdrom iso9660 defaults 0 0
/dev/mlgvg/mlglv /mlglv ext4 defaults 0 0
/dev/mlgvg/mlglv2 /mlglv2 ext4 defaults 0 0
/dev/mlgvg/mlglv3 /mlglv3 ext4 defaults 0 0
注:reboot重启后再次查看,确定已实现自动挂载逻辑卷。
[root@linuxprobe ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.2G 15G 19% /
devtmpfs 985M 0 985M 0% /dev
tmpfs 994M 80K 994M 1% /dev/shm
tmpfs 994M 8.9M 986M 1% /run
tmpfs 994M 0 994M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /mnt/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/mapper/mlgvg-mlglv2 772M 1.6M 714M 1% /mlglv2
/dev/mapper/mlgvg-mlglv 380M 2.3M 354M 1% /mlglv
/dev/mapper/mlgvg-mlglv3 477M 2.3M 445M 1% /mlglv3
(4)扩容逻辑卷
[root@linuxprobe ~]# lvextend -L 800M /dev/mlgvg/mlglv //将逻辑卷/dev/mlgvg/mlglv扩容至800M
Extending logical volume mlglv to 800.00 MiB
Logical volume mlglv successfully resized
[root@linuxprobe ~]# e2fsck -f /dev/mlgvg/mlglv //查看文件系统是否存在问题。
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mlgvg/mlglv: 11/102400 files (0.0% non-contiguous), 23456/409600 blocks
[root@linuxprobe ~]# resize2fs /dev/mlgvg/mlglv
//重新设置逻辑卷的大小,此处存在红帽的bug,若提示需要再次执行“e2fsck -f /dev/mlgvg/mlglv”命令,则需要再做几遍此命令或者重启再或者挂载逻辑卷后再执行此命令。
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/mlgvg/mlglv to 819200 (1k) blocks.
The filesystem on /dev/mlgvg/mlglv is now 819200 blocks long.
[root@linuxprobe ~]# mount -a
[root@linuxprobe ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.2G 15G 19% /
devtmpfs 985M 0 985M 0% /dev
tmpfs 994M 80K 994M 1% /dev/shm
tmpfs 994M 8.9M 986M 1% /run
tmpfs 994M 0 994M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /mnt/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/mapper/mlgvg-mlglv2 772M 1.6M 714M 1% /mlglv2
/dev/mapper/mlgvg-mlglv3 477M 2.3M 445M 1% /mlglv3
/dev/mapper/mlgvg-mlglv 767M 2.5M 721M 1% /mlglv
注:确认操作的逻辑卷/dev/mapper/mlgvg-mlglv已成功扩容至800M。
(5)缩小逻辑卷
[root@linuxprobe mlglv]# cp /home/EPEL-linuxprobe.com.tar.bz2 ./
//拷贝数据到逻辑卷,验证缩小逻辑卷是否会造成数据丢失。
[root@linuxprobe mlglv]# ll
total 125529
-rw-r--r--. 1 root root 128527996 Mar 6 19:53 EPEL-linuxprobe.com.tar.bz2
drwx------. 2 root root 12288 Mar 6 19:39 lost+found
[root@linuxprobe mlglv]# cd ..
[root@linuxprobe /]# umount /mlglv //缩小逻辑卷前需要先卸载挂载点。
[root@linuxprobe /]# e2fsck -f /dev/mlgvg/mlglv
//首先检查文件系统是否存在问题,确保数据不会丢失,如果没有问题可以下一步。
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mlgvg/mlglv: 12/204800 files (0.0% non-contiguous), 162135/819200 blocks
[root@linuxprobe /]# resize2fs /dev/mlgvg/mlglv 500M //其次重新设置逻辑卷大小为500M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/mlgvg/mlglv to 512000 (1k) blocks.
The filesystem on /dev/mlgvg/mlglv is now 512000 blocks long.
[root@linuxprobe /]# lvreduce -L 500M /dev/mlgvg/mlglv //最后缩小逻辑卷大小为500M
WARNING: Reducing active logical volume to 500.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mlglv? [y/n]: y
Reducing logical volume mlglv to 500.00 MiB
Logical volume mlglv successfully resized
[root@linuxprobe /]# mount -a //挂载,验证逻辑卷是否缩小成功。
[root@linuxprobe /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.2G 15G 19% /
devtmpfs 985M 0 985M 0% /dev
tmpfs 994M 80K 994M 1% /dev/shm
tmpfs 994M 8.9M 986M 1% /run
tmpfs 994M 0 994M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /mnt/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/mapper/mlgvg-mlglv2 772M 1.6M 714M 1% /mlglv2
/dev/mapper/mlgvg-mlglv3 477M 2.3M 445M 1% /mlglv3
/dev/mapper/mlgvg-mlglv 477M 125M 323M 28% /mlglv
[root@linuxprobe /]# cd /mlglv
[root@linuxprobe mlglv]# ll //验证数据是否丢失。
total 125530
-rw-r--r--. 1 root root 128527996 Mar 6 19:53 EPEL-linuxprobe.com.tar.bz2 //数据没有丢失
drwx------. 2 root root 12288 Mar 6 19:39 lost+found
注意:xfs文件系统不能缩小,只能增大。
说明:通过以下例子可以发现,创建逻辑卷时是按照一个物理卷空间使用完毕再去使用另一个物理卷的空间来创建满足逻辑卷空间大小的容量。
[root@linuxprobe mlglv]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb
VG Name mlgvg
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2559
Free PE 2109
Allocated PE 450
PV UUID bYTCj6-oDsP-I1pI-yeFa-VKw3-B5FW-5vetRr
--- Physical volume ---
PV Name /dev/sdc
VG Name mlgvg
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2559
Free PE 2559
Allocated PE 0
PV UUID 3eHCPs-SWDN-Q0xW-H35F-L8Hw-7oWT-FhrS21
(6)逻辑卷快照
LVM的快照卷功能有两个特点:
- 快照卷的容量必须等同于逻辑卷的容量;
- 快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。
[root@linuxprobe /]# lvcreate -L 500M -s -n mlglvsnap /dev/mlgvg/mlglv
//创建一个大小为500M,名字为mlglvsnap的快照卷。-s创建快照卷。
Logical volume "mlglvsnap" created
[root@linuxprobe /]# lvdisplay
--- Logical volume ---
LV Path /dev/mlgvg/mlglvsnap
LV Name mlglvsnap
VG Name mlgvg
LV UUID 5C2nN7-klci-hfR2-I92v-Qw7y-sxIa-pFb566
LV Write Access read/write
LV Creation host, time linuxprobe.com, 2020-03-06 20:09:21 +0800
LV snapshot status active destination for mlglv
LV Status available
# open 0
LV Size 500.00 MiB
Current LE 125
COW-table size 500.00 MiB
COW-table LE 125
Allocated to snapshot 0.00%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:5
[root@linuxprobe mlglv]# rm -rf EPEL-linuxprobe.com.tar.bz2
//删除一个文件,然后通过快照卷恢复,验证是否能恢复成功。
[root@linuxprobe mlglv]# ll
total 12
drwx------. 2 root root 12288 Mar 6 19:39 lost+found
[root@linuxprobe /]# umount /mlglv //通过快照卷恢复文件需要先卸载挂载点。
[root@linuxprobe /]# lvconvert --merge /dev/mlgvg/mlglvsnap
//通过快照卷恢复保护的逻辑卷数据。
Merging of volume mlglvsnap started.
mlglv: Merged: 100.0%
Merge of snapshot into logical volume mlglv has finished.
Logical volume "mlglvsnap" successfully removed
[root@linuxprobe /]# mount -a
[root@linuxprobe /]# cd /mlglv
[root@linuxprobe mlglv]# ll
total 125530
-rw-r--r--. 1 root root 128527996 Mar 6 19:53 EPEL-linuxprobe.com.tar.bz2 //验证确认数据已恢复。
drwx------. 2 root root 12288 Mar 6 19:39 lost+found
[root@linuxprobe mlglv]#
注:快照卷恢复完就没有了,为逻辑卷创建的快照只能恢复使用一次。
(7)删除逻辑卷
A、卸载挂载点
[root@linuxprobe /]# umount /mlglv
[root@linuxprobe /]# umount /mlglv2
[root@linuxprobe /]# umount /mlglv3
B、Vim编辑删除/etc/fstab中自动挂载的配置。
C、删除逻辑卷
[root@linuxprobe /]# lvremove /dev/mlgvg/mlglv
Do you really want to remove active logical volume mlglv? [y/n]: y
Logical volume "mlglv" successfully removed
[root@linuxprobe /]# lvremove /dev/mlgvg/mlglv2
Do you really want to remove active logical volume mlglv2? [y/n]: y
Logical volume "mlglv2" successfully removed
[root@linuxprobe /]# lvremove /dev/mlgvg/mlglv3
Do you really want to remove active logical volume mlglv3? [y/n]: y
Logical volume "mlglv3" successfully removed
D、删除卷组
[root@linuxprobe /]# vgremove /dev/mlgvg
Volume group "mlgvg" successfully removed
E、删除物理卷
[root@linuxprobe /]# pvremove /dev/sdb /dev/sdc
Labels on physical volume "/dev/sdb" successfully wiped
Labels on physical volume "/dev/sdc" successfully wiped
在上述操作执行完毕之后,再执行lvdisplay、vgdisplay、pvdisplay命令来查看LVM的信息时就不会再看到之前创建的LVM信息了。
3.2、故障修复
注:若因错误修改配置文件而导致系统无法启动,可通过以下操作进入命令行模式修改配置来恢复。
举例1:该文件系统及挂载点已不存在,但/etc/fstab配置了开机自动挂载,将导致主机无法启动。
reboot重启虚拟机操作系统进入如下界面,输入root用户密码修改配置文件恢复即可。
3.3、修改网卡配置方法
注:每次修改完网卡配置后需要通过以下命令重启网卡服务
[root@linuxprobe ~]# systemctl restart network
方法1:通过修改配置文件修改网卡配置参数,标红的是主要参数。
[root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
HWADDR=00:0C:29:E6:C2:BF
TYPE=Ethernet
BOOTPROTO=static或none
NAME=eno16777736
UUID=9e2ccb08-b59a-4b2f-a3fd-05b58bcc5574
ONBOOT=yes
IPADDR=192.168.10.10
#NETMASK=255.255.255.0
PREFIX=24
GATEWAY=192.168.10.1
DNS1=114.114.114.114
DNS2=8.8.8.8
[root@linuxprobe ~]# ifconfig //查看网卡配置
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.10 netmask 255.255.255.0 broadcast 192.168.10.255
inet6 fe80::20c:29ff:fee6:c2bf prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:e6:c2:bf txqueuelen 1000 (Ethernet)
RX packets 6144 bytes 427796 (417.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5284 bytes 659699 (644.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
方法2:通过nmtui命令打开图形界面修改网卡配置
[root@linuxprobe ~]# nmtui //rhel5和rhel6的命令是setup
附:通过nmtui-hostname命令打开图形界面修改主机名
[root@linuxprobe ~]# nmtui-hostname
方法3:通过nm-connection-editor修改网卡配置。
[root@linuxprobe ~]# nm-connection-editor
方法4:图形菜单修改网卡配置
来源:站长平台