文章目录

  • 物理设备的命名规则
    • 硬盘相关的知识
  • 一、RAID(独立冗余磁盘阵列)
    • 1.1 RAID 简介
    • 1.2 RAID的几种工作模式
      • 1.2.1 RAID 0 (存储性能)
      • 1.2.1 RAID 1(数据安全)
      • 1.2.3 RAID 5(RAID0和RAID1折中方案)
      • 1.2.4 RAID 10(RAID 1+RAID 0 组合体)
    • 1.3 部署磁盘阵列
    • 1.4 损坏磁盘阵列及修复
  • 二、LVM(逻辑卷管理器)
    • 2.1 LVM 简介
    • 2.2 LVM 基础术语
    • 2.3 部署逻辑卷
      • lvm常用的命令
    • 2.4 扩容逻辑卷
    • 2.5 卷组VG扩容
    • 2.6 缩小逻辑卷
    • 2.7 删除逻辑卷

物理设备的命名规则

在Linux系统中一切都是文件,硬件设备也不例外。既然是文件,就必须有文件名称。系统内核中的udev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大致的属性以及分区信息等;这对于陌生的设备来说特别方便。另外,udev设备管理器的服务会一直以守护进程的形式运行并侦听内核发出的信号来管理/dev目录下的设备文件。

常见的硬件设备及其文件名称

硬件设备 文件名称
IDE设备 /dev/hd[a-d]
SCSI/SATA/U盘 /dev/sd[a-z]
virtio设备 /dev/vd[a-z]
软驱 /dev/fd[0-1]
打印机 /dev/lp[0-15]
光驱 /dev/cdrom
鼠标 /dev/mouse
磁带机 /dev/st0或/dev/ht0

由于现在的IDE设备已经很少见了,所以一般的硬盘设备都是以“/dev/sd”开头。而一台主机上可以有多块硬盘,因此系统采用a~z来代表26块不同的硬盘(默认从a开始分配)

主分区或扩展分区的编号从1开始,到4结束;
逻辑分区从编号5开始。

分析一下/dev/sda5这个设备文件名称包含哪些信息


首先,/dev/目录中保存的应当是硬件设备文件;其次,sd表示的是存储设备;然后,a表示系统中同类接口中第一个被识别到的设备;最后,5表示这个设备是一个逻辑分区。一言以蔽之,“/dev/sda5”表示的就是“这是系统中第一块被识别到的硬件设备中分区编号为5的逻辑分区的设备文件”。

硬盘相关的知识

正是因为计算机有了硬盘设备,我们才能够在玩游戏的过程中或游戏通关之后随时存档,而不用每次重头开始。硬盘设备是由大量的扇区组成的,每个扇区的容量为512字节。其中第一个扇区最重要,它里面保存着主引导记录与分区表信息。就第一个扇区来讲,主引导记录需要占用446字节,分区表占用64字节,结束符占用2字节;其中分区表中每记录一个分区信息就需要16字节,这样一来最多只有4个分区信息可以写到第一个扇区中,这4个分区就是4个主分区。

为了解决分区个数不够的问题,可以将第一个扇区的分区表中16字节(原本要写入主分区信息)的空间(称之为扩展分区)拿出来指向另外一个分区。也就是说,扩展分区其实并不是一个真正的分区,而更像是一个占用16字节分区表空间的指针—一个指向另外一个分区的指针。这样一来,用户一般会选择使用3个主分区加1个扩展分区的方法,然后在扩展分区中创建出数个逻辑分区,从而来满足多分区(大于4个)的需求。

一、RAID(独立冗余磁盘阵列)

1.1 RAID 简介

  RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列) 技术是1988 年,加利福尼亚大学伯克利分校首次提出并定义了 RAID 技术的概念。RAID 技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果。

  RAID可以充分发 挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会 受到损坏硬盘的影响。

1.2 RAID的几种工作模式

1.2.1 RAID 0 (存储性能)

  RAID 0 技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理硬盘中。这样一来,在最理想的状态下,硬盘设备的读写性能会提升数倍,但是若任意一块硬盘发生故障将导致整个系统的数据都受到破坏。通俗来说,RAID 0 技术能够有效地提升硬盘数据的吞吐速度,但是不具备数据备份和错误修复能力。如图 7-1 所示,数据被分别写入到不同的硬盘设备中,即 disk1 和 disk2 硬盘设备会分别保存数据资料,最终实现分开写入、读取的效果。

1.2.1 RAID 1(数据安全)

  尽管 RAID 0 技术提升了硬盘设备的读写速度,但是它是将数据依次写入到各个物理硬盘中,也就是说,它的数据是分开存放的,其中任何一块硬盘发生故障都会损坏整个系统的
数据。因此,如果生产环境对硬盘设备的读写速度没有要求,而是希望增加数据的安全性时,就需要用到 RAID 1 技术了。

   RAID 1 技术它是把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用。

   RAID 1 技术虽然十分注重数据的安全性,但是因为是在多块硬盘设备中写入了相同的数据,因此硬盘设备的利用率得以下降,从理论上来说,RAID1 硬盘空间的真实可用率只有 50%,由三块硬盘设备组成的 RAID 1 磁盘阵列的可用率只有 33%左右,以此类推。而且,由于需要把数据同时写入到两块以上的硬盘设备,这无疑也在一定程度上增大了系统计算功能的负载。

1.2.3 RAID 5(RAID0和RAID1折中方案)

  RAID5 技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。RAID 5 磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上,这样的好处是其中任何一设备损坏后不至于出现致命缺陷; RAID 5 技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试
重建损坏的数据。RAID 这样的技术特性“妥协”地兼顾了硬盘设备的读写速度、数据安全性与存储成本问题。

  RAID5 兼顾存储性能、数据安全和存储成本等各方面因素,它可以理解为 RAID0 和 RAID1 的折中方案,是目前综合性能最佳的数据保护解决方案。 RAID5 基本上可以满足大部分的存储应用需求,数据中心大多采用它作为应用数据的保护方案。

1.2.4 RAID 10(RAID 1+RAID 0 组合体)

  鉴于 RAID 5 技术是因为硬盘设备的成本问题对读写速度和数据的安全性能而有了一定的妥协,但是大部分企业更在乎的是数据本身的价值而非硬盘价格,因此生产环境中主要使用 RAID 10 技术。

  顾名思义,RAID 10 技术是 RAID 1+RAID 0 技术的一个“组合体”。RAID 10 技术需要至少 4 块硬盘来组建,其中先分别两两制作成 RAID 1 磁盘阵列,以保证数据的安全性;然后再对两个 RAID 1 磁盘阵列实施 RAID 0 技术,进一步提高硬盘设备的读写速度。这样从理论上来讲,只要坏的不是同一组中的所有硬盘,那么最多可以损坏 50%的硬盘设备而不丢失数据。由于 RAID 10 技术继承了 RAID 0 的高读写速度和 RAID 1 的数据安全性,在不考虑成本的情况下 RAID 10 的性能都超过了 RAID 5,因此当前成为广泛使用的一种存储技术

1.3 部署磁盘阵列

  1. 添加 4 块硬盘设备来制作一个 RAID 10 磁盘阵列

    mdadm 命令用于管理 Linux 系统中的软件 RAID 硬盘阵列,格式为
mdadm [模式] <RAID设备名称> [选项] [成员设备名称]。

mdadm 命令的常用参数和作用

参数 作用
-a 检测设备名称
-n 指定设备数量
-l 指定RAID级别
-C 创建
-v 显示过程
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 停止RAID磁盘阵列
  1. 使用 mdadm 命令创建 RAID 10,名称为“/dev/md0”
[root@localhost ~]$ lsblk #查看可用块设备的信息[root@localhost ~]$ yum -y install mdadm
[root@localhost ~]$ mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 20954624K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

参数解释:

  • -C 参数代表创建一个 RAID 阵列卡
  • -v 参数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0 就是创建后的RAID 磁盘阵列的名称
  • -a yes 参数代表自动创建设备文件
  • -n 4 参数代表使用 4 块硬盘来部署这个 RAID 磁盘阵列
  • -l 10 参数则代表 RAID 10 方案
  • 最后再加上 4 块硬盘设备的名称
  1. 把制作好的 RAID 磁盘阵列格式化为 ext4 格式
[root@localhost ~]$ mkfs.ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
2621440 inodes, 10477312 blocks
523865 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2157969408
320 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
  1. 创建挂载点然后把硬盘设备进行挂载操作。挂载成功后可看到可用空间为40GB
[root@localhost ~]$ mkdir /RAID
[root@localhost ~]$ mount /dev/md0 /RAID
[root@localhost ~]$ df -h
Filesystem              Size    Used    Avail  Use%  Mounted on
/dev/mapper/rhel-root   18G     3.0G     15G   17%   /
devtmpfs                905M    0        905M   0%   /dev
tmpfs                   914M    84K      914M   1%   /dev/shm
tmpfs                   914M    8.9M     905M   1%   /run
tmpfs                   914M    0        914M   0%   /sys/fs/cgroup
/dev/sr0                3.5G    3.5G     0      100% /media/cdrom
/dev/sda1               497M    119M     379M   24%  /boot
/dev/md0                40G     49M      38G    1%   /RAID
  1. 查看/dev/md0 磁盘阵列的详细信息,并把挂载信息写入到配置文件中,使其永久生效
[root@localhost ~]$ mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue May 5 07:43:26 2017
Raid Level : raid10
Array Size : 41909248 (39.97 GiB 42.92 GB)
Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue May 5 07:46:59 2017
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : cc9a87d4:1e89e175:5383e1e8:a78ec62c
Events : 17
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 3 active sync /dev/sde[root@localhost ~]$ echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab

1.4 损坏磁盘阵列及修复

   之所以在生产环境中部署 RAID 10 磁盘阵列,是为了提高硬盘存储设备的读写速度及数
据的安全性,但由于我们的硬盘设备是在虚拟机中模拟出来的,因此对读写速度的改善可能
并不直观,因此说 RAID 磁盘阵列损坏后的处理方法,这样大家在步入运维岗位后遇到类似问题时,也可以轻松解决。
   在确认有一块物理硬盘设备出现损坏而不能继续正常使用后,应该使用 mdadm 命令将其移除,然后查看 RAID 磁盘阵列的状态,可以发现状态已经改变。

[root@localhost ~]$ mdadm /dev/md0 -f /dev/sdb #-f模拟设备损坏
mdadm: set /dev/sdb faulty in /dev/md0[root@localhost ~]$ mdadm -D /dev/md0 #查看详细信息
/dev/md0:
Version : 1.2
Creation Time : Fri May 8 08:11:00 2017
Raid Level : raid10
Array Size : 41909248 (39.97 GiB 42.92 GB)
Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Fri May 8 08:27:18 2017
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Name : linuxprobe.com:0 (local to host linuxprobe.com)
UUID : f2993bbd:99c1eb63:bd61d4d4:3f06c3b0
Events : 21
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 3 active sync /dev/sde
0 8 16 – faulty /dev/sdb

  在 RAID 10 级别的磁盘阵列中,当 RAID 1 磁盘阵列中存在一个故障盘时并不影响 RAID 10 磁盘阵列的使用。当购买了新的硬盘设备后再使用 mdadm 命令来予以替换即可,在此期间我们可以在/RAID 目录中正常地创建或删除文件。由于我们是在虚拟机中模拟硬盘,所以先重启系统,然后再把新的硬盘添加到 RAID 磁盘阵列中。

[root@localhost ~]$ umount /RAID
[root@localhost ~]$ mdadm /dev/md0 -a /dev/sdb
[root@localhost ~]$ mdadm -D /dev/md0
/dev/md0: Version : 1.2 Creation Time : Mon Jan 30 00:08:56 2017 Raid Level : raid10 Array Size : 41909248 (39.97 GiB 42.92 GB) Used Dev Size : 20954624 (19.98 GiB 21.46 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Mon Jan 30 00:19:53 2017 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : near=2 Chunk Size : 512K Name : localhost.localdomain:0 (local to host localhost.localdomain) UUID : d3491c05:cfc81ca0:32489f04:716a2cf0 Events : 56 Number Major Minor RaidDevice State4 8 16 0 active sync /dev/sdb1 8 32 1 active sync /dev/sdc2 8 48 2 active sync /dev/sdd3 8 64 3 active sync /dev/sde
[root@localhost ~]$ mount –a

二、LVM(逻辑卷管理器)

2.1 LVM 简介

  LVM(Logical Volume Manager)逻辑卷管理,是在硬盘分区和文件系统之间添加的一个逻辑层,为文件系统屏蔽下层硬盘分区布局,并提供一个抽象的盘卷,在盘卷上建立文件系统。管理员利用LVM可以在硬盘不用重新分区的情况下动态调整文件系统的大小,并且利用LVM管理的文件系统可以跨越物理硬盘。当服务器添加了新的硬盘后,管理员不必将原有的文件移动到新的硬盘上,而是通过LVM直接扩展文件系统来跨越物理硬盘。

  LVM就是通过将底层的物理硬盘封装,然后以逻辑卷的方式呈现给上层应用。当我们对底层的物理硬盘进行操作时,不再是针对分区进行操作,而是通过逻辑卷对底层硬盘进行管理操作

2.2 LVM 基础术语

  • 物理存储介质(The physical media):LVM存储介质,可以是硬盘分区、整个硬盘、raid阵列或SAN硬盘。设备必须初始化为LVM物理卷,才能与LVM结合使用。

  • 物理卷PV(physical volume):物理卷就是LVM的基本存储逻辑块,但和基本的物理存储介质比较却包含与LVM相关的管理参数,创建物理卷可以用硬盘分区,也可以用硬盘本身。

  • 卷组VG(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,一个卷组VG由一个或多个物理卷PV组成。可以在卷组VG上建立逻辑卷LV。

  • 逻辑卷LV(logical volume):类似于非LVM系统中的硬盘分区,逻辑卷LV建立在卷组VG之上。在逻辑卷LV之上建立文件系统。

  • 物理块PE(physical Extent):物理卷PV中可以分配的最小存储单元,PE的大小可以指定,默认为4MB

  • 逻辑块LE(Logical Extent):逻辑卷LV中可以分配的最小存储单元,在同一卷组VG中LE的大小和PE是相同的,并且一一相对

总结:多个磁盘/分区/raid-->多个物理卷PV-->合成卷组VG-->从VG划分出逻辑卷LV-->格式化LV,挂载使用。

2.3 部署逻辑卷

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

lvm常用的命令

功能 物理卷(PV)管理命令 卷组(VG)管理命令 逻辑卷(LV)管理命令
scan 扫描 pvscan vgscan lvscan
create 创建 pvcreate vgcreate lvcreate
display 显示 pvdisplay vgdisplay lvdisplay
remove 移除 pvremove vgremove lvremove
extend 扩展 vgextend lvextend
reduce 减少 vgreduce lvreduce

添加两块硬盘

  1. 让新添加的两块硬盘设备支持 LVM 技术,创建物理卷PV
[root@localhost ~]$ pvcreate /dev/sdb /dev/sdcPhysical volume "/dev/sdb" successfully created Physical volume "/dev/sdc" successfully created[root@localhost ~]$ pvdisplay
#pvs也可以查看--- Physical volume ---PV Name               /dev/sdb #实际的 partition 设备名称VG Name                  #卷组名称,因为尚未分配出去,所以空白PV Size               20.00 GiB  #容量说明Allocatable           no   #是否已被分配PE Size               0 #在此 PV 内的 PE 大小Total PE              0 #共分区出几个 PEFree PE               0 #没被 LV 用掉的 PEAllocated PE          0 #尚可分配出去的 PE 数量PV UUID               S3I4wO-e8Ei-G4t3-vXhL-YF0C-afvp-VQRWSL
  1. 把两块硬盘设备加入到 storage 卷组VG中,然后查看卷组的状态。
格式:vgcreate [-s N[mgt]] VG名称 PV名称 选项与参数: -s :后面接 PE 的大小 (size),单位可以是 m, g, t (大小写均可)[root@localhost ~]$ vgcreate storage /dev/sdb /dev/sdcVolume group "storage" successfully created[root@localhost ~]$ vgdisplay #后面可以跟卷组名
#vgs 也可以查看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  #整体的 VG 容量PE Size 4.00 MiB   #内部每个 PE 的大小Total PE 10238     #总共的 PE 数量Alloc PE / Size 0 / 0 Free PE / Size 10238 / 39.99 GiBVG UUID KUeAMF-qMLh-XjQy-ArUo-LCQI-YF0o-pScxm1
………………省略部分输出信息………………#改变卷组名称
[root@localhost ~]$ vgrename storage vg_probe

增加VG的容量

将剩余的 PV (/dev/sda8) 丢给 vbirdvg 吧!

[root@localhost ~]$ vgextend vbirdvg /dev/sda8
Volume group "vbirdvg" successfully extended[root@localhost ~]$ vgdisplay vbirdvg
  1. 切割出一个约为 150MB 的逻辑卷LV设备。
    这里需要注意切割单位的问题。在对逻辑卷进行切割时有两种计量单位。第一种是以容量为单位,所使用的参数为-L。例如,使用-L 150M 生成一个大小为 150MB 的逻辑卷。另外一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为 4MB。例如,使用-l 37 可以生成一个大小为 37×4MB=148MB 的逻辑卷。
格式:lvcreate [-l N] [-n LV名称] VG名称选项与参数: -L :后面接容量,容量的单位可以是 M,G,T 等,要注意的是,最小单位为 PE, 因此这个数量必须要是 PE 的倍数,若不相符,系统会自行计算最相近的容量。 -l :后面可以接 PE 的“个数”,而不是数量。若要这么做,得要自行计算 PE 数。 -n :后面接的就是 LV 的名称[root@localhost ~]$ lvcreate -l 37 -n vo storage
Logical volume "vo" created[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 # open 0 LV Size 148.00 MiBCurrent LE 37 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2
………………省略部分输出信息………………
  1. 把生成好的逻辑卷进行格式化,然后挂载使用。

Linux 系统会把 LVM 中的逻辑卷设备存放在/dev 设备目录中(实际上是做了一个符号链
接),同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件(即/dev/卷组
名称/逻辑卷名称)。

[root@localhost ~]$ mkfs.ext4 /dev/storage/vo
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
38000 inodes, 151552 blocks
7577 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33816576
19 block groups
8192 blocks per group, 8192 fragments per group
2000 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@localhost ~]$ mkdir /linuxprobe [root@localhost ~]$ mount /dev/storage/vo /linuxprobe
  1. 查看挂载状态,并写入到配置文件,使其永久生效
[root@localhost ~]$ df -h [root@localhost ~]$ echo "/dev/storage/vo /linuxprobe ext4 defaults 0 0" >> /etc/fstab

2.4 扩容逻辑卷

如果 VG 容量不足, 最简单的方法就是再加硬 盘!然后将该硬盘使用上面讲过的 pvcreate 及 vgextend 增加到该 VG 内即可!
卷组是由两块硬盘设备共同组成的。用户在使用存储设备时感知不到设备底层的架构和布局,更不用关心底层是由多少块硬盘组成的,只要卷组中有足够的资源,就可以一直为逻辑卷扩容。扩展前请一定要记得卸载设备和挂载点的关联。

#不卸载设备也可以
[root@localhost ~]$ umount /linuxprobe

使用lvresize也可以
lvresize -L +500M /dev/vbirdvg/vbirdlv

  1. 把上一个实验中的逻辑卷 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
  1. 检查硬盘完整性,并重置硬盘容量
[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.
  1. 重新挂载硬盘设备并查看挂载状态
[root@localhost ~]$ mount -a
[root@localhost ~]$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  1.4G   16G   9% /
devtmpfs                 476M     0  476M   0% /dev
tmpfs                    488M     0  488M   0% /dev/shm
tmpfs                    488M  7.7M  480M   2% /run
tmpfs                    488M     0  488M   0% /sys/fs/cgroup
/dev/sda1               1014M  130M  885M  13% /boot
tmpfs                     98M     0   98M   0% /run/user/0
/dev/mapper/storage-vo   279M  2.1M  261M   1% /linuxprobe

2.5 卷组VG扩容

LVM空间不够时,添加一块新硬盘时使用。

#查看vg信息
[root@localhost ~]$ vgdisplay
[root@localhost ~]$ vgsVG  #PV #LV #SN Attr   VSize  VFreevg1   1   2   0 wz--n- <2.00g 1.70gvg2   1   0   0 wz--n-  1.98g 1.98g#创建PV
[root@localhost ~]$ pvcreate /dev/sdbd[root@localhost ~]$ pvsPV         VG  Fmt  Attr PSize  PFree/dev/sdb1  vg1 lvm2 a--  <2.00g 1.70g/dev/sdb2  vg2 lvm2 a--   1.98g 1.98g/dev/sdb3      lvm2 ---   2.00g 2.00g/dev/sdb4      lvm2 ---   2.00g 2.00g#扩容 VG
[root@localhost ~]$ vgextend vg1 /dev/sdbdVolume group "vg1" successfully extended#再次查看 VG,查看是否扩容
[root@localhost ~]$ vgsVG  #PV #LV #SN Attr   VSize VFreevg1   2   2   0 wz--n- 3.99g <3.70gvg2   1   0   0 wz--n- 1.98g  1.98g
[root@localhost ~]$ pvsPV         VG  Fmt  Attr PSize  PFree/dev/sdb1  vg1 lvm2 a--  <2.00g  1.70g/dev/sdb2  vg2 lvm2 a--   1.98g  1.98g/dev/sdb3  vg1 lvm2 a--  <2.00g <2.00g/dev/sdb4      lvm2 ---   2.00g  2.00g

2.6 缩小逻辑卷

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

[root@localhost ~]$ umount /linuxprobe
  1. 检查文件系统的完整性
#用于检查使用 Linux ext2 档案系统的 partition 是否正常工作
[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/74000 files (0.0% non-contiguous), 15507/299008 blocks
  1. 把逻辑卷 vo 的容量减小到 120MB。
#resize2fs 命令是用来增大或者收缩未加载的“ext2/ext3/ext4”文件系统的大小
[root@localhost ~]$ resize2fs /dev/storage/vo 120M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/storage/vo to 122880 (1k) blocks.
The filesystem on /dev/storage/vo is now 122880 blocks long. [root@localhost ~]$ lvreduce -L 120M /dev/storage/vo WARNING: Reducing active logical volume to 120.00 MiB THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vo? [y/n]: y Reducing logical volume vo to 120.00 MiB Logical volume vo successfully resized
  1. 重新挂载文件系统并查看系统状态
[root@localhost ~]$ mount -a
[root@localhost ~]$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  1.4G   16G   9% /
devtmpfs                 476M     0  476M   0% /dev
tmpfs                    488M     0  488M   0% /dev/shm
tmpfs                    488M  7.7M  480M   2% /run
tmpfs                    488M     0  488M   0% /sys/fs/cgroup
/dev/sda1               1014M  130M  885M  13% /boot
tmpfs                     98M     0   98M   0% /run/user/0
/dev/mapper/storage-vo   113M  1.6M  103M   2% /linuxprobe

2.7 删除逻辑卷

当生产环境中想要重新部署 LVM 或者不再需要使用 LVM 时,则需要执行 LVM 的删除操作。为此,需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒。

  1. 取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数
[root@localhost ~]$ umount /linuxprobe
[root@localhost ~]$ vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Dec  7 06:03:57 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/centos-root /                       xfs     defaults        0 0
UUID=6f6757b6-9b67-44a2-a816-0785cdb35858 /boot                   xfs     defaults        0 0
  1. 删除逻辑卷设备,需要输入 y 来确认操作
[root@localhost ~]$ lvremove /dev/storage/vo
Do you really want to remove active logical volume vo? [y/n]: yLogical volume "vo" successfully removed
  1. 删除卷组,此处只写卷组名称即可,不需要设备的绝对路径
[root@localhost ~]$ vgremove storage Volume group "storage" successfully removed
  1. 删除物理卷设备
[root@localhost ~]$ pvremove /dev/sdb /dev/sdc Labels on physical volume "/dev/sdb" successfully wiped Labels on physical volume "/dev/sdc" successfully wiped

新添加一块硬盘制作LVM卷并进行分区挂载

https://www.cnblogs.com/hellojesson/p/4582908.html

RAID 与 LVM 磁盘阵列技术相关推荐

  1. 第六章 使用RAID与LVM磁盘阵列技术

    文章目录 第六章 使用RAID与LVM磁盘阵列技术 一.RAID磁盘冗余阵列 1.部署磁盘阵列 (1).RAID0.1.5.10方案技术对比 (2).RAID0 RAID1 RAID5 RAID10介 ...

  2. 《linux就该这么学——笔记》第7章 使用RAID与LVM磁盘阵列技术

    使用RAID与LVM磁盘阵列技术 7.1 RAID(独立冗余磁盘阵列) 7.1.1 RAID0 7.1.2 RAID1 7.1.3 RAID5 7.1.4 RAID1 0 7.1.5 部署磁盘阵列(实 ...

  3. 使用RAID与LVM磁盘阵列技术。

    7.2 LVM逻辑卷管理器 前面学习的硬盘设备管理技术虽然能够有效地提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署为RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了.换句话说,当 ...

  4. 第7章 使用RAID与LVM磁盘阵列技术

    RAID(Redundant Array of Independent Disks)独立冗余磁盘阵列技术 RAID 0.RAID 1.RAID 5与RAID 10这4种最常见的方案 RAID 0技术能 ...

  5. Linux应该这么学第7章使用 RAID 与 LVM 磁盘阵列技术

    本章讲解了如下内容: ➢ RAID(独立冗余磁盘阵列): ➢ LVM(逻辑卷管理器). 在学习了第 6 章讲解的硬盘设备分区.格式化.挂载等知识后,本章将深入讲解各个常 用 RAID(Redundan ...

  6. 第9节 第6章 存储结构与磁盘划分(2)第7章 使用RAID与LVM磁盘阵列技术

    6.6 添加交换分区 SWAP(交换)分区是一种通过在硬盘中预先划分一定的空间,然后将把内存中暂时不常用的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使用的技术,其设计目的是为了解决 ...

  7. RAID和LVM磁盘阵列技术

    目录 前言 一.RAID(独立冗余磁盘阵列) 二.LVM(逻辑卷管理器) 前言 在此帖子写的时候,目前地表最强处理器是AMD ThreadRipper 3960X,这款处理器采用了7nm工艺制造,基于 ...

  8. linux学习第七章使用RAID和LVM磁盘阵列技术

    一.RAID磁盘冗余阵列 1988年,加利福尼亚大学伯克利分校首次提出并定义了RAID技术的概念.RAID技术通过把多个硬盘设备组合成一个容量更大.安全性更好的磁盘阵列,并把数据切割成多个区段后分别存 ...

  9. linux的逻辑卷和磁盘阵列,使用RAID与LVM磁盘阵列技术

    #### RAID 0 RAID0技术把多块物料硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理硬盘中. 这样硬盘的读写性能会提升数倍,但若任意一块硬盘 ...

最新文章

  1. vue中全局引入bootstrap.css
  2. win10使用自带虚拟机没有Hyper-V场景
  3. UDP接收端和发送端_Socket编程
  4. 编译时,输出信息重定向到文件
  5. [haoi2011]防线修建
  6. 管理系统 c++图形界面_锁螺母ERP系统,一站式各国语言管理系统
  7. 大数据量下 PageHelper 分页查询性能问题的解决办法
  8. mysql数据库技术_MySQL数据库技术(13)[组图]_MySQL
  9. 牛客国庆集训派对Day2: E. 数据排序(状压DP+记忆化搜索)
  10. 你手机里装过最牛的软件是什么,精选15款分享,有一个你没用过
  11. java实现生成pdf_Java 生成 PDF 文档
  12. swift 判断当前设备网络是否可用
  13. ASC18世界大学生超算竞赛题目分析以及思路总结
  14. 【StyleGAN代码学习】StyleGAN损失函数与训练过程
  15. 用友U8案例教程成本报表
  16. 使用TimerOne库
  17. Codeforces Round #548 C. Edgy Trees
  18. 哈希表:线性探查法和平方探查法
  19. 预处理丨去趋势(Matlab和C++)
  20. python语言创意绘画-校招资讯|拼多多、百度、中建六局等名企校园招聘

热门文章

  1. pandas使用pd.MultiIndex.from_product函数和pd.MultiIndex.from_tuples函数创建复合索引dataframe数据实战
  2. python使用imbalanced-learn的SMOTEENN方法同时进行上采样和下采样处理数据不平衡问题
  3. R语言单因素方差分析与协方差分析
  4. OCR引擎Tesseract以及pytesseract详解及实例
  5. SMRT single molecular real time Sequencing
  6. linux撤销以硬件时钟作为UTC,linux时钟基本概念、CST与UTC、以及NTP简单设置
  7. cgi标准面试php,PHP面试:简述CGI、FastCGI和PHP
  8. java将输出结果写入csv文件_如何在Java中将数据写入.csv文件?
  9. python 程序打包成 exe 文件
  10. 10.Stream流