linux系统中部署逻辑卷,动态调整存储资源(逻辑卷)大小
磁盘阵列技术解决了硬盘读写速度(通过分散读写)和数据安全性(冗余备份)。逻辑卷技术主要解决用户对硬盘分区存储资源的动态调整(硬盘分区的缩容、扩容)。
对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。
LVM技术通过将不同的存储单元(硬盘、磁盘分区、磁盘阵列)整合为卷组,然后根据需求从卷组切割出不同大小的存储单元(逻辑卷),逻辑卷可以实现扩容和缩容,因此说实现了存储资源(分区大小)的动态调整??
逻辑卷管理器技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。
物理劵处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列。卷组建立在物理劵之上,一个卷组可以包含多个物理劵,而且在卷组创建之后也可以继续向其中添加新的物理劵。逻辑卷使用卷组中空闲的资源建立的,而且逻辑卷在建立后可以动态地扩展或缩小空间。这就是逻辑卷管理器的核心理念。
物理劵:逻辑卷管理器的最底层,存储资源,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列。
卷组:由不同的物理劵组成,可以动态调整(起整合物理劵作用)。
逻辑卷:卷组中的空闲资源建立的,可以动态调整(根据需求切割卷组)。
部署逻辑卷管理器时,需要逐个配置物理劵、卷组、逻辑卷。
1、准备两块硬盘(两块硬盘用于演示资源整合)
2、把存储资源格式化为物理劵
物理劵是LVM中的最底层,相当于不同硬盘的存储资源;创建物理劵的操作相当于让这些硬盘支持LVM技术,或者理解成把硬盘资源加入到LVM技术可用的硬件资源池中。
[root@PC1linuxprobe dev]# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdc" successfully created
[root@PC1linuxprobe dev]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name rhel
PV Size 19.51 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 4994
Free PE 0
Allocated PE 4994
PV UUID yjrVt7-2jdY-K7hl-x7yf-p5zQ-EeSk-TjDEBo
"/dev/sdb" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID GNmwVl-kWOH-1avi-UETD-aGEJ-UEmi-0YZtDe
"/dev/sdc" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID lPD5h5-4N67-kSq4-caOP-Aalo-fahC-GIOxMo
3、创建卷组(相当于将物理劵进行整合)
[root@PC1linuxprobe dev]# vgcreate storage /dev/sdb /dev/sdc
Volume group "storage" successfully created
[root@PC1linuxprobe dev]# vgdisplay
--- Volume group ---
VG Name storage
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 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 0 / 0
Free PE / Size 10238 / 39.99 GiB
VG UUID INHxzu-4rUT-ZLDB-fLwU-pPQJ-RGte-SXaSIE
4、切割卷组,形成逻辑卷
[root@PC1linuxprobe dev]# lvcreate -n lv1 -L 100M storage
Logical volume "lv1" created
[root@PC1linuxprobe dev]# lvdisplay
--- Logical volume ---
LV Path /dev/storage/lv1
LV Name lv1
VG Name storage
LV UUID yKtO6Y-qUwJ-BdPZ-WbVX-Q4ku-xUYw-NUtjNh
LV Write Access read/write
LV Creation host, time PC1linuxprobe, 2020-11-08 15:33:49 +0800
LV Status available
# open 0
LV Size 100.00 MiB
Current LE 25
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
5、将逻辑卷/dev/storage/lv1格式化,然后挂载使用
[root@PC1linuxprobe dev]# mkfs.ext4 /dev/storage/lv1
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
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33685504
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
[root@PC1linuxprobe dev]# mkdir /lv1mountpoint
[root@PC1linuxprobe dev]# mount /dev/storage/lv1 /lv1mountpoint/
[root@PC1linuxprobe dev]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 2.9G 15G 17% /
devtmpfs 985M 0 985M 0% /dev
tmpfs 994M 140K 994M 1% /dev/shm
tmpfs 994M 8.8M 986M 1% /run
tmpfs 994M 0 994M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /boot
/dev/sr0 3.5G 3.5G 0 100% /run/media/root/RHEL-7.0 Server.x86_64
/dev/mapper/storage-lv1 93M 1.6M 85M 2% /lv1mountpoint
6、写入开机自动挂载
[root@PC1linuxprobe dev]# echo -e "/dev/storage/lv1\t/lv1mountpoint\text4\tdefaults\t0\t0" >> /etc/fstab
[root@PC1linuxprobe dev]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Nov 5 15:23:01 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=0ba20ae9-dd51-459f-ac48-7f7e81385eb8 /boot xfs defaults 1 2
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/storage/lv1 /lv1mountpoint ext4 defaults 0 0
如何实现了用户根据需求的变化调整磁盘分区的大小?
将多个物理劵(硬盘、磁盘分区、磁盘阵列)整合为卷组后,可以根据需求创建出大小不同的逻辑卷 ??
总结:创建逻辑卷的目的为了整合不同的存储资源,然后根据需求创建不同大小的存储单元
- 把存储资源格式化物理劵(使存储资源支持LVM技术),示例:pvcreate /dev/disk1 /dev/disk2
- 创建卷组(把不同的物理劵整合为卷组),示例:vgcreate vg1 /dev/disk1 /dev/disk2
- 切割卷组(根据需求,切割出逻辑卷),示例:lvcreate -n lv1 -L 100M vg1
- 格式化逻辑卷、挂载、写入开机自动挂载