Day-07-磁盘划分LVM

7.2 LVM (逻辑卷管理器)
LVM创建的初衷是为了解决硬盘设备在创建后不易修改分区大小的缺陷,强行对硬盘进行缩容或者扩容是可行的,但是会造成数据的丢失。
LVM 技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。

       PV(物理卷)------> VG(卷组)------->LV(逻辑卷)

比如小明家里想吃馒头但是面粉不够了,于是妈妈从隔壁老王家、老李家、老张家分别借来一些面粉,准备蒸馒头吃。首先需要把这些面粉(物理卷[PV,Physical Volume])揉成一个大面团(卷组[VG,Volume Group]),然后再把这个大面团分割成一个个小馒头(逻辑卷[LV,Logical Volume]),而且每个小馒头的重量必须是每勺面粉(基本单元[PE,Physical Extent])的倍数。
物理卷处于 LVM 中的最底层,可以将其理解为物理硬盘、硬盘分区或者 RAID 磁盘阵列,这都可以。卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。这就是 LVM 的核心理念。

7.2.1 部署逻辑卷

    在生产环境中无法精确地评估每个硬盘分区在日后的使用情况,因此会导致原先分配的硬盘分区不够用。比如,伴随着业务量的增加,用于存放交易记录的数据库目录的体积也随之增加;因为分析并记录用户的行为从而导致日志目录的体积不断变大,这些都会导致原有的硬盘分区在使用上捉襟见肘。而且,还存在对较大的硬盘分区进行精简缩容的情况。

通过部署LVM来解决这些问题,部署 LVM 时,需要逐个配置物理卷、卷组和逻辑卷。

第一步:创建物理卷 PV(新添加的两块硬盘设备支持LVM技术)

[root@localhost ~]# pvcreate /dev/sdb /dev/sdc
Physical volume “/dev/sdb” successfully created
Physical volume “/dev/sdc” successfully created

第二步:创建卷组 VG

(两块硬盘设备加入到storage卷组中,并查看卷组的状态)
[root@localhost ~]# vgcreate storage /dev/sdb /dev/sdc
Volume group “storage” successfully created
[root@localhost ~]# vgdisplay //查看卷组信息

第三步:创建逻辑卷 LV(切割逻辑卷设备,设定大小为150MB)

这里需要注意切割单位的问题。在对逻辑卷进行切割时有两种计量单位。第一种是以容量为单位,所使用的参数为-L。例如,使用-L 150M 生成一个大小为 150MB 的逻辑卷。另外一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为 4MB。例如,使用-l 37 可以生成一个大小为 37×4MB=148MB 的逻辑卷。

    第一种容量单位:[root@localhost ~]# lvcreate  -n  vo  -L 150MB  storage        //创建逻辑卷vo大小为150MB的逻辑卷
    第二种基本单元个数单位:[root@localhost ~]# lvcreate  -n  vo  -l  37  storage      //创建逻辑卷名为vo大小为4x37=148MB的逻辑卷,每个基本单元(PE)的大小为4MB****

[root@localhost ~]# lvdisplay**
— Logical volume —
LV Path /dev/storage/vo
LV Name vo
VG Name storage
LV UUID D09HYI-BHBl-iXGr-X2n4-HEzo-FAQH-HRcM2I
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2017-02-01 01:22:54 -0500
LV Status available
LV Size 148.00 MiB

第四步:格式化切割好的逻辑卷,并挂载

******Linux系统会把LVM中的逻辑卷设备存放在/dev设备目录中(实际上是做了一个符号链接),同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件(即/dev/卷组名称/逻辑卷名称)。即:/dev/storage/vo
[root@localhost ~]# mkfs.ext4 /dev/storage/vo
[root@localhost ~]# mkdir /wen
[root@localhost ~]# mount /dev/storage/vo /wen
第五步:查看挂载状态,并写入配置文件,永久生效
[root@localhost ~]# df -Th
[root@localhost ~]# echo “/dev/storage/vo /wen ext4 defaults 0 0” >> /etc/fstab

7.2.2 扩容逻辑卷

若卷组中有足够的资源,就可以一直为逻辑卷扩容。扩展前请一定要记得卸载设备和挂载点的关联。

*前提:卸载设备以及挂载点
————*

[root@localhost ~]# umount /wen

- 第一步:上一个实验中逻辑卷vo扩展至290MB

[root@localhost ~]# lvextend -L 290M /dev/storage/vo
Rounding size to boundary between physical extents: 292.00 MiB
Extending logical volume vo to 292.00 MiB
Logical volume vo successfully resized

- 第二步:检查硬盘完整性,并重置硬盘容量

[root@localhost ~]# e2fsck -f /dev/storage/vo //检查硬盘完整性
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/storage/vo: 11/38000 files (0.0% non-contiguous), 10453/151552 blocks
[root@localhost ~]# resize2fs /dev/storage/vo //重置硬盘容量
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/storage/vo to 299008 (1k) blocks.
The filesystem on /dev/storage/vo is now 299008 blocks long.

- 第三步:重新挂载硬盘并查看状态

[root@wen ~]# mount -a
[root@wen ~]# df -Th
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/CentOS-root 18G 3.0G 15G 17% /
devtmpfs 985M 0 985M 0% /dev
tmpfs 994M 80K 994M 1% /dev/shm
tmpfs 994M 8.8M 986M 1% /run
tmpfs 994M 0 994M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/mapper/storage-vo 279M 2.1M 259M 1% /wen

7.2.3 缩小逻辑卷

对逻辑卷进行缩容操作时,其丢失数据的风险更大。所以在生产环境中执行相应操作时,一定要提前备份好数据。另外 Linux 系统规定,在对 LVM 逻辑卷进行缩容操作之前,要先检查文件系统的完整性(当然这也是为了保证我们的数据安全)。

前提:卸载设备以及挂载点
[root@localhost ~]# umount /wen
第一步:检查硬盘完整性
[root@localhost ~]# e2fsck -f /dev/storage/vo //检查硬盘完整性
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/storage/vo: 11/38000 files (0.0% non-contiguous), 10453/151552 blocks
第二步:把逻辑卷 vo 的容量减小到 120MB
[root@localhost ~]# resize2fs /dev/storage/vo 120M
[root@localhost ~]# lvreduce -L 120M /dev/storage/vo
第三步:重新挂载文件系统并查看系统状态
[root@localhost ~]# mount -a
[root@localhost ~]# df -h

7.2.4 逻辑卷快照

LVM 还具备有“快照卷”功能,该功能类似于虚拟机软件的还原时间点功能。例如,可以对某一个逻辑卷设备做一次快照,如果日后发现数据被改错了,就可以利用之前做好的快照卷进行覆盖还原。LVM 的快照卷功能有两个特点:
➢ 快照卷的容量必须等同于逻辑卷的容量;
➢ 快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。

创建逻辑卷快照:

首先查看卷组的信息
[root@localhost ~]# vgdisplay
— Volume group —
VG Name storage
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
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 30 / 120.00 MiB Free PE / Size 10208 / 39.88 GiB//查看拿到卷组已用120MB
VG UUID CTaHAK-0TQv-Abdb-R83O-RU6V-YYkx-8o2R0e
………………省略部分输出信息……………
通过查询卷组输出信息,卷组已经使用了120MB容量,空闲39.88GB。重定向往逻辑卷设备所挂载的目录中写入一个文件。
[root@wen ~]# echo “Welcome to xian.com” > /wen/readme.txt
[root@wen ~]# ls -l /nebulalinux
total 14
drwx——. 2 root root 12288 Feb 1 07:18 lost+found
-rw-r–r–. 1 root root 26 Feb 1 07:38 readme.txt

第一步:使用-s参数生成一个快照卷,使用-L参数指定切割的大小,在命令后写上对哪一个逻辑卷进行快照操作
[root@wen ~]# lvcreate -L 120M -s -n SNAP /dev/storage/vo //-n生成快照卷名称SNAP
Logical volume “SNAP” created
[root@wen ~]# lvdisplay
— Logical volume —
LV Path /dev/storage/SNAP
LV Name SNAP
VG Name storage
LV UUID BC7WKg-fHoK-Pc7J-yhSd-vD7d-lUnl-TihKlt
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2017-02-01 07:42:31 -0500
LV snapshot status active destination for vo
LV Status available
LV Size 120.00 MiB
Current LE 30
COW-table size 120.00 MiB
COW-table LE 30
Allocated to snapshot 0.01%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
………………省略部分输出信息………………
第二步:在逻辑卷所挂载的目录中生成一个100MB的垃圾文件(file1),然后查看快照卷的状态,发现存储空间占的用量上升了。
[root@wen ~]# dd if=/dev/zero of=/wen/file1 count=1 bs=100M
input 0—>output到file1中 大小为100M
[root@wen ~]# lvdisplay
— Logical volume —
LV Path /dev/storage/SNAP
LV Name SNAP
VG Name storage
LV UUID BC7WKg-fHoK-Pc7J-yhSd-vD7d-lUnl-TihKlt
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2017-02-01 07:42:31 -0500
LV snapshot status active destination for vo
LV Status available
LV Size 120.00 MiB
Current LE 30
COW-table size 120.00 MiB
COW-table LE 30
Allocated to snapshot 83.71%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
第三步:为了校验 SNAP 快照卷的效果,需要对逻辑卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设备与目录的挂载。
[root@wen ~]# umount /wen
[root@wen ~]# lvconvert –merge /dev/storage/SNAP
Merging of volume SNAP started.
vo: Merged: 21.4%
vo: Merged: 100.0%
Merge of snapshot into logical volume vo has finished.
Logical volume “SNAP” successfully removed
第四步:快照卷会被自动删除,并且在逻辑卷设备被执行快照操作后在创建出来的100MB的垃圾文件file1也被清除了。挂载
[root@wen ~]# mount -a

7.2.5 删除逻辑卷(备份数据—>删除逻辑卷—>删除卷组—>删除物理卷)

当生产环境中想要重新部署 LVM 或者不再需要使用 LVM 时,则需要执行 LVM 的删除操作。需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒。
第一步:取消逻辑卷与目录的挂载关联,删除配置文件永久生效的设备参数
[root@wen ~]# umount /wen
[root@wen ~]# vim /etc/fstab
删除掉挂载信息“/dev/storage/vo /wen ext4 defaults 0 0”
第二步:删除逻辑卷设备,输入y确认操作
[root@wen ~]# lvremove /dev/storage/vo
Do you really want to remove active logical volume vo? [y/n]: y
Logical volume “vo” successfully removed
第三步:删除卷组,只写卷组名称即可,不需要设备的绝对路径。
[root@wen ~]# vgremove storage
第三步:删除物理卷
[root@wen ~]# pvremove /dev/sdb /dev/sdc
执行操作完毕后,在执行lvdisplay、vgdisplay、pvdisplay命令查看LVM的信息。

复习题:
1. RAID 技术主要是为了解决什么问题呢?
答:RAID 技术可以解决存储设备的读写速度问题及数据的冗余备份问题。
2. RAID 0 和 RAID 5 哪个更安全?
答:RAID 0 没有数据冗余功能,因此 RAID 5 更安全。
3.假设使用 4 块硬盘来部署 RAID 10 方案,外加一块备份盘,最多可以允许几块硬盘同时损坏呢?
答:最多允许 5 块硬盘设备中的 3 块设备同时损坏。
4.位于 LVM 最底层的是物理卷还是卷组?
答:最底层的是物理卷,然后在通过物理卷组成卷组。
5. LVM 对逻辑卷的扩容和缩容操作有何异同点呢?
答:扩容和缩容操作都需要先取消逻辑卷与目录的挂载关联;扩容操作是先扩容后检查文件系统完整性,而缩容操作为了保证数据的安全,需要先检查文件系统完整性再缩容。
6. LVM 的快照卷能使用几次?
答:只可使用一次,而且使用后即自动删除。
7. LVM 的删除顺序是怎么样的?
答:依次移除逻辑卷、卷组和物理卷。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值