lvm之创建/扩容/缩容/快照及关闭的全部流程操作记录


一,基本介绍

Linux用户安装Linux 操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间。随着 Linux的逻辑盘卷管理功能的出现,这些问题都迎刃而解, 
      lvm是逻辑盘卷管理(Logical Volume Manager)的简称,它是 Linux环境下对磁盘分区进行管理的一种机制, LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

LVM基本术语:
1. 物理存储介质:这里指系统的存储设备:硬盘,如: /dev/hda、/dev/sda等等,是存储系统最低层的存储单元。 
2. 物理卷physical volume (PV )
     物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如 RAID),是 LVM的基本存储逻辑块 
3. 卷组Volume Group (VG )
   LVM卷组由一个或多个物理卷组成,但是更确切的说,它包含由这些物理卷提供的许多PE。 
4. 逻辑卷logical volume (LV )
   这里是我们存储信息的地方,在逻辑卷之上可以建立文件系统 (比如/home或者 /usr等)。 
5. PE  (physical extent )
   每一个物理卷被划分为称为 PE的基本单元,具有唯一编号的 PE是可以被 LVM寻址的最小单元。 PE的大小是可配置的,默认为 4MB。

二,具体操作

1.创建一个分区
  [[email protected] ~]# fdisk -l             // 查看分区的情况 
  [[email protected] ~]# fdisk /dev/sda       // 进入分区
    Command (m for help): n        //n 为添加一个分区, p查看分区 
  First cylinder (2898-10443, default 2898):    // 按【Enter 】键决定
  Using default value 2898                // 起始柱面选择默认   值                                                                                                                                                                                                
   Last cylinder or +size or +sizeM or +sizeK (289810443, default 10443): +2G    //    给2G的大小 
Command (m for help): t      // 更改分区类型
Partition number (1-5): 5      // 选着分区
Hex code (type L to list codes): l      // 分区类型列表

Hex code (type L to list codes):8e     // 将新添加的分区标注成 lvm 
Command (m for help): p              // 查看分区表
/dev/sda5            2756        2999     1959898+  8e  Linux LVM 
Command (m for help): w            // 保存
[[email protected] ~]# partprobe /dev/sda      // 是系统识别分区(代替重启) 
[[email protected] ~]# mkfs.ext3 /dev/sda5    // 格式化新添加的分区

2.PV的创建
[[email protected] ~]# pvcreate /dev/sda5            // 创建pv 
  Writing physical volume data to disk "/dev/sda5" 
  Physical volume "/dev/sda5" successfully created 
[[email protected] ~]# pvs  或pvdisplay         // 查看当前pv的信息 
  PV         VG   Fmt  Attr PSize PFree 
  /dev/sda5       lvm2 a--  1.87G 1.87G

3.VG的创建
[[email protected] ~]# vgcreate vg0 /dev/sda5    //vg0 为当前vg的名 
  Volume group "vg0" successfully created 
[[email protected] ~]# vgs 或vgdispaly           // 查看vg 的信息
  VG   #PV #LV #SN Attr   VSize VFree 
  vg0    1   0   0 wz--n- 1.87G 1.87G

4.lvm的创建
#lvcreate  -L 大小 -n  名字 隶属哪一个巻组
#lvcreate  -l   PE 个数  -n  名字 隶属哪一个巻组 
[[email protected] ~]# lvcreate -L 500M -n lv01 vg0 
  Logical volume "lv01" created

[[email protected] ~]# lvs 或lvdispaly           // 查看lv 的信息
LV   VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert 
  lv01 vg0  -wi-a- 500.00M                                      
You have mail in /var/spool/mail/root
[[email protected] ~]# mkfs.ext3 /dev/vg0/lv01      //格式化

5. lvm的使用
     # mkdir /mnt/lv01        建立挂在目录 
     #  mount /dev/vg0/lv01 /mnt/lv01         将制作的lvm挂载起来 
     #  df -h
     # touch /mnt/lv01/lv.file 
     #ls /mnt/lv01

三, lvm的增大

[[email protected] ~]# lvextend -L +300M /dev/vg0/lv01  //( 原来lv 大小500M ,拉伸分区到 800M)  Extending logical volume lv01 to 800.00 MB
  Logical volume lv01 successfully resized 
[[email protected] ~]# resize2fs /dev/vg0/lv01       //拉伸文件系统
[[email protected] ~]# lvs
  LV   VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert 
  lv01 vg0  -wi-ao 800.00M       //大小变成了 800M

四, lvm的减小

umount  /dev/vg0/lv01       //卸载逻辑卷 /dev/vg0/lv01 
  # df -h       //查看 
  # e2fsck  -f  /dev/vg0/lv01     // 磁盘校验 
  # resize2fs  /dev/vg0/lv01  500M    //回缩文件系统到 500M 
  # lvreduce  -L  500M  /dev/vg0/lv01      //回缩分区到 500M 
     WARNING: Reducing active logical volume to 500.00 MB 
     THIS MAY DESTROY YOUR DATA (filesystem etc.) 
     Do you really want to reduce lv01? [y/n]: y  
  # lvs 
  LV   VG   Attr   LSize   Origin Snap%  Move Log Copy%   Convert 
   lv01 vg0  -wi-a- 500.00M          //此时已变成500M大小
  # mount  /dev/vg0/lv01   /mnt/lv01     //重新挂载分区 
  # df -h      //查看 
  # ls /mnt/lv01    //查看文件

五, lvm的系统快照

     原理:系统快照(snapshot)是 lvm的另外一种重要的功能,快照就是将当时的数据记录下来,就好像照相记录一样,以后数据有任何改动,原数据会被移动到快照区,没有被改变的区域则由快照区与文件系统共享。 
由于快照区和原本的 LV共享很多 PE,所以快照区与被快照的区域必须在同一个 VG上 
操作:
以上面创建的 lv01为例

1.挂载lvm
[[email protected] ~] # mount /dev/vg0/lv01 /mnt/lv01    
[[email protected] ~]# cd /mnt/lv01
[[email protected] lv01]# touch {a,b,c}{a,b,c}
[[email protected] lv01]# ls
aa  ab  ac  ba  bb  bc  ca  cb  cc   lost+found  lv.file  restoresymtable

2.lvm创建快照 
[[email protected] lv01]# lvcreate -L 64M -s -n lv-backup /dev/vg0/lv01 
  Logical volume "lv-backup" created

3.挂载快照
[[email protected] lv01]# mkdir /mnt/lv-backup
[[email protected] mnt]# mount -o ro /dev/vg0/lv-backup /mnt/lv-backup/

4.备份快照
[[email protected] tmp]# dump -0u -f /tmp/lv-backup.dump /mnt/lv-backup/       //备份
  DUMP: Date of this level 0 dump: Sun Nov 11 14:53:31 2012 
  DUMP: Dumping /dev/mapper/vg0-lv--backup (/mnt/lv-backup) to /tmp/lv-backup.dump

5.删除快照
[[email protected] tmp]# umount /mnt/lv-backup/ 
[[email protected] tmp]# lvremove /dev/vg0/lv-backup 
Do you really want to remove active logical volume lv-backup? [y/n]: y 
  Logical volume "lv-backup" successfully removed

6.清空/dev/vg0/lv01下得内容 
[[email protected] tmp]# umount /mnt/lv01
[[email protected] tmp]# mkfs.ext3 /dev/vg0/lv01 
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux

7.恢复数据
[[email protected] tmp]# mount /dev/vg0/lv01 /mnt/lv01 
[[email protected] tmp]# cd /mnt/lv01
[[email protected] lv01]# ls
lost+found
[[email protected] lv01]# restore -rf /tmp/lv-backup.dump   //恢复
restore: ./lost+found: File exists
[[email protected] lv01]# ls  //由于之前都删除了,所以这些都是改变的部分 
aa  ab  ac  ba  bb  bc  ca  cb  cc  lost+found  lv.file  restoresymtable

六, lvm的关闭 (删除) 
[[email protected] ~]# umount /mnt/lv01
[[email protected] ~]# lvremove /dev/vg0/lv01  // 删除lv 
Do you really want to remove active logical volume lv01? [y/n]: y 
  Logical volume "lv01" successfully removed 
[[email protected] ~]# vgchange -a n vg0      //使 vg0不具有 active标志 
  0 logical volume(s) in volume group "vg0" now active 
[[email protected] ~]# vgremove vg0       // 删除vg 
  Volume group "vg0" successfully removed 
[[email protected] ~]# pvremove /dev/sda5     // 删除pv 
  Labels on physical volume "/dev/sda5" successfully wiped

时间: 2024-10-29 00:22:21

lvm之创建/扩容/缩容/快照及关闭的全部流程操作记录的相关文章

Linux系统LVM(卷)部署-扩容-缩容-快照-删除

常用LVM命令总结: 注: 以下案例均采用的系统版本是Oracle linux 7.3 LVM案例: 部署案例: 第 1 步:让新添加的两块硬盘设备支持LVM 技术. [[email protected] ~]# pvcreate /dev/sdb /dev/sdc Physical volume "/dev/sdb" successfully created Physical volume "/dev/sdc" successfully created 第 2 步

LVM常规操作记录梳理(扩容/缩容/快照等)

基本介绍Linux用户安装Linux 操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间.随着 Linux的逻辑盘卷管理功能的出现,这些问题都迎刃而解,lvm是逻辑盘卷管理(Logical Volume Manager)的简称,它是 Linux环境下对磁盘分区进行管理的一种机制, LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性. LVM基本术语:1)物理存储介质:这里指系统的存储设备:硬盘,如: /dev/hda./dev/sda

分库分布的几件小事(三)可以动态扩容缩容的分库分表方案

1.扩容与缩容 这个是你必须面对的一个事儿,就是你已经弄好分库分表方案了,然后一堆库和表都建好了,基于分库分表中间件的代码开发啥的都好了,测试都ok了,数据能均匀分布到各个库和各个表里去,而且接着你还通过双写的方案咔嚓一下上了系统,已经直接基于分库分表方案在搞了. 那么现在问题来了,你现在这些库和表又支撑不住了,要继续扩容咋办?这个可能就是说你的每个库的容量又快满了,或者是你的表数据量又太大了,也可能是你每个库的写并发太高了,你得继续扩容. 缩容就是现在业务不景气了,数据量减少,并发量下降,那么

Kubernetes高级进阶之pod的自动扩容/缩容

目录:实践1:基于autoscaling cpu指标的扩容与缩容实践2:基于prometheus自定义指标QPS的扩容与缩容 Pod自动扩容/缩容(HPA) Horizontal Pod Autoscaler(HPA,Pod水平自动伸缩),根据资源利用率或者自定义指标自动调整replication controller, deployment 或 replica set,实现部署的自动扩展和缩减,让部署的规模接近于实际服务的负载.HPA不适于无法缩放的对象,例如DaemonSet. HPA主要是

如何设计可以动态扩容缩容的分库分表方案?

对于分库分表来说,主要是面对以下问题: 选择一个数据库中间件,调研.学习.测试: 设计你的分库分表的一个方案,你要分成多少个库,每个库分成多少个表,比如 3 个库,每个库 4 个表: 基于选择好的数据库中间件,以及在测试环境建立好的分库分表的环境,然后测试一下能否正常进行分库分表的读写: 完成单库单表到分库分表的迁移,双写方案: 线上系统开始基于分库分表对外提供服务: 扩容了,扩容成 6 个库,每个库需要 12 个表,你怎么来增加更多库和表呢? 是你必须面对的一个事儿,就是你已经弄好分库分表方案

如何设计可以动态扩容缩容的分库分表方案

停机扩容(不推荐) 这个方案就跟停机迁移一样,步骤几乎一致,唯一的一点就是那个导数的工具,是把现有库表的数据抽出来慢慢倒入到新的库和表里去.但是最好别这么玩儿,有点不太靠谱,因为既然分库分表就说明数据量实在是太大了,可能多达几亿条,甚至几十亿,你这么玩儿,可能会出问题. 从单库单表迁移到分库分表的时候,数据量并不是很大,单表最大也就两三千万.那么你写个工具,多弄几台机器并行跑,1小时数据就导完了.这没有问题. 如果 3 个库 + 12 个表,跑了一段时间了,数据量都 1~2 亿了.光是导 2 亿

如何设计动态扩容缩容的分库分表方案?

面试官:如何来设计动态扩容的分库分表方案?面试官心理剖析:这个问题主要是看看你们公司设计的分库分表设计方案怎么样的?你知不知道动态扩容的方案? 回答: 背景说明:如果你们公司之前已经做了分库分表,你们当时分了 4 个库,每个库 4 张表:公司业务发展的很好,现在的数据库已经开始吃力了,不能满足快速发展的业务量了,需要进行扩容. 1)停机扩容 这个方案跟单库迁移方案是一样的,就是停服进行数据迁移,不过现在的数据迁移比之前的单库迁移要复杂的多,还有数据量也是之前的好几倍,单库的数据量可能就几千万,但

OpenMediaVault 5 进阶配置(七) LVM 扩容或缩容

前言 本文紧接着前文 OpenMediaVault 5 进阶配置(六) 配置 LVM 逻辑卷管理器 ,来讲述如何以 LVM 逻辑卷为基础建立虚拟硬盘,方便的实现扩容或缩容,而不用将原本的数据进行大量迁移. 由于本文所述操作可能会涉及重要数据,在进行所有操作之前,备份好你的所有重要数据. 扩容 LVM 卷组扩容 点击 "存储器 -> Logical Volume Management(逻辑卷管理) -> Volume groups" ,选中要扩容的卷组,点击 "Ex

Pod 扩容和缩容

在生产环境下,在面临服务需要扩容的场景时,可以使用Deployment/RC的Scale机制来实现.Kubernetes支持对Pod的手动扩容和自动扩容. 手动扩容缩容 通过执行扩容命令,对某个deployment直接进行扩容: # kubectl scale deployment nginx-deployment --replicas=4 当要缩容,减少副本数量即可: # kubectl scale deployment nginx-deployment --replicas=2 自动扩容缩容