Linux LVM 总结

LVM全称是Logical Volume Manager. 它主要是实现硬盘容量的动态扩展. 一般用于存储数据量无法预估的场景, 例如Linux的根目录用lvm存储.

LVM创建过程一般是这样的

1. 硬盘先分区: 一般是一个硬盘一个分区, 或者是多个分区在一个硬盘

命令: fdisk

2. PV(Physcial Volumes)划分, 可以把几个硬盘分区化成PV

命令: pvcreate, pvs, pvdisplay, pvremove, pvmove, pvscan

3. VG(Volume Group), 把几个或所有PV划分成可用空间, 有就是一定大小的块, 块的大小可以自己定义, 默认是4M

命令:vgcreate, vgs, vgdisplay, vgreduce, vgextend, vgscan

4. LV(Logical Volumes), 逻辑卷划分, 将vg划分成大小不超过vg总量的lv

命令: lvcreate, lvs, lvdisplay, lvremove, lvreduce, lvextend, lvscan

5. 格式化磁盘

命令: mke2fs

6. 挂载

命令: mount

实例分别为2G, 3G, 4G的硬盘, 全部划分成pv, 其中的5G划分成lv, 并格式化成ext4.

1. 三块硬盘分别分成3个区

[[email protected] ~]# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It‘s strongly recommended to
         switch off the mode (command ‘c‘) and change display units to
         sectors (command ‘u‘).

Command (m for help): p

Disk /dev/sdb: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x289452a0

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-6527, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-6527, default 6527): +2G

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (263-6527, default 263): 
Using default value 263
Last cylinder, +cylinders or +size{K,M,G} (263-6527, default 6527): +3G

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (656-6527, default 656): 
Using default value 656
Last cylinder, +cylinders or +size{K,M,G} (656-6527, default 6527): +4G

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[[email protected] ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x289452a0

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb2             263         655     3156772+  83  Linux
/dev/sdb3             656        1178     4200997+  83  Linux

2. 三个分区全部转换成pv

[[email protected] ~]# pvcreate /dev/sdb{1,2,3}
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdb2" successfully created
  Physical volume "/dev/sdb3" successfully created
[[email protected] ~]# pvs
  PV         VG        Fmt  Attr PSize  PFree
  /dev/sda2  vg_centos lvm2 a--  49.51g    0 
  /dev/sdb1            lvm2 ---   2.01g 2.01g
  /dev/sdb2            lvm2 ---   3.01g 3.01g
  /dev/sdb3            lvm2 ---   4.01g 4.01g

3. pv转换成vg并且取名testvg

[[email protected] ~]# vg testvg /dev/sdb{1,2,3}
-bash: vg: command not found
[[email protected] ~]# vgcreate testvg /dev/sdb{1,2,3}
  Volume group "testvg" successfully created
[[email protected] ~]# vgs
  VG        #PV #LV #SN Attr   VSize  VFree
  testvg      3   0   0 wz--n-  9.02g 9.02g
  vg_centos   1   2   0 wz--n- 49.51g    0

4. 划分成5G lv并且取名testlv

[[email protected] ~]# lvcreate testvg -L 5G -n testlv
  Logical volume "testlv" created
[[email protected] ~]# lvs
  LV      VG        Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  testlv  testvg    -wi-a-----  5.00g                                                    
  lv_root vg_centos -wi-ao---- 47.57g                                                    
  lv_swap vg_centos -wi-ao----  1.94g

5. 格式化新建的testlv为ext4

[[email protected] ~]# mke2fs -t ext4 /dev/testvg/testlv
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 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

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

6. 加载新建的lv并确定4G

[[email protected] ~]# mount /dev/testvg/testlv /data
[[email protected] ~]# df -lh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_centos-lv_root
                       47G  4.7G   40G  11% /
tmpfs                 495M   72K  495M   1% /dev/shm
/dev/sda1             477M   29M  424M   7% /boot
/dev/mapper/testvg-testlv
                      4.8G   10M  4.6G   1% /data

需要几点

1. 扩展物理边界可以直接加硬盘,pvcreate, vgextend, lvextend

[[email protected] ~]# lvextend -L 6G testlv
  Path required for Logical Volume "testlv"
  Please provide a volume group name
  Run `lvextend --help‘ for more information.
[[email protected] ~]# lvextend -L 6G /dev/testvg/testlv
  Size of logical volume testvg/testlv changed from 5.00 GiB (1280 extents) to 6.00 GiB (1536 extents).
  Logical volume testlv successfully resized

2.缩减硬盘, 要先离线, 强制检测, 缩减逻辑空间, vgreduce

[[email protected] ~]# e2fsck -f /dev/testvg/testlv
e2fsck 1.41.12 (17-May-2010)
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/testvg/testlv: 12/327680 files (0.0% non-contiguous), 55950/1310720 blocks
[[email protected] ~]# resize2fs /dev/testvg/testlv 3G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/testvg/testlv to 786432 (4k) blocks.
The filesystem on /dev/testvg/testlv is now 786432 blocks long.

[[email protected] ~]# lvreduce testlv -L 3G
  Path required for Logical Volume "testlv"
  Please provide a volume group name
  Run `lvreduce --help‘ for more information.
[[email protected] ~]# lvreduce -L 3G /dev/testvg/testlv
  WARNING: Reducing active logical volume to 3.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce testlv? [y/n]: y  
  Size of logical volume testvg/testlv changed from 6.00 GiB (1536 extents) to 3.00 GiB (768 extents).
  Logical volume testlv successfully resized
[[email protected] ~]# df -lh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_centos-lv_root
                       47G  4.7G   40G  11% /
tmpfs                 495M   72K  495M   1% /dev/shm
/dev/sda1             477M   29M  424M   7% /boot

#用pedisplay查出内个硬盘的快是free的
[[email protected] ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               testvg
  PV Size               2.01 GiB / not usable 3.16 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              513
  Free PE               513
  Allocated PE          0
  PV UUID               QsN7uK-DTsA-IVdF-2TFY-jjcs-dN4E-UPa9XP
   
  --- Physical volume ---
  PV Name               /dev/sdb3
  VG Name               testvg
  PV Size               4.01 GiB / not usable 2.54 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              1025
  Free PE               257
  Allocated PE          768
  PV UUID               2XqZ73-EBnb-yJF9-mIQQ-8VRg-46h3-T1fwLW
   
  --- Physical volume ---
  PV Name               /dev/sdb2
  VG Name               testvg
  PV Size               3.01 GiB / not usable 2.79 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              770
  Free PE               770
  Allocated PE          0
  PV UUID               BRUkrH-rSgS-a3VD-2KRC-yxHV-Cd76-eI6MX4
   
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               vg_centos
  PV Size               49.51 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              12674
  Free PE               0
  Allocated PE          12674
  PV UUID               CbCr1K-jw10-L3fC-Bsxm-Owql-zxQd-60cNab
  
  #从vg移除硬盘, 不能直接reduce vg先用用pe移除硬盘块数据
  [[email protected] ~]# vgreduce testvg /dev/sdb1
    Physical volume "/dev/sdb3" still in use
  [[email protected] ~]# pvmove /dev/sdb1
  No data to move for testvg
  [[email protected] ~]# pvmove /dev/sdb2
  /dev/sdb2: Moved: 0.5%
  /dev/sdb2: Moved: 25.5%
  /dev/sdb2: Moved: 51.0%
  /dev/sdb2: Moved: 77.0%
  /dev/sdb2: Moved: 100.0%
    
  再reduce
  [[email protected] ~]# vgreduce testvg /dev/sdb1
  Removed "/dev/sdb1" from volume group "testvg"
[[email protected] ~]# vgreduce testvg /dev/sdb2
  Removed "/dev/sdb2" from volume group "testvg"
[[email protected] ~]# vgreduce testvg /dev/sdb3

3. lv的正式设备文件是在/dev/dm-*, 有两个符号连接文件指向这个文件/dev/vg名字/lv名字 和/dev/mapper/vg名字-lv名字

[[email protected] ~]# ll /dev/testvg/testlv
lrwxrwxrwx. 1 root root 7 Sep 23 11:12 /dev/testvg/testlv -> ../dm-2
[[email protected] ~]# ll /dev/mapper/testvg-testlv
lrwxrwxrwx. 1 root root 7 Sep 23 11:12 /dev/mapper/testvg-testlv -> ../dm-2

补充:snapshot

snapshot就是快照的意思, 它是实现来相同逻辑卷上的"备份"功能, 需要注意的是, snapshot不能取代一般意义上的备份.

快照的创建方式和创建lv一样, 只是要添加-s来指定快照卷.

接着上面的立即来创建个128M快照卷, 并且挂载到/snap

[[email protected] ~]# lvcreate -L 128M -s -n lvsnap /dev/testvg/testlv
  Logical volume "lvsnap" created
[[email protected] ~]# mount /dev/testvg/lvsnap /snap

注意: 创在快照卷的时候, 最好停止在lv上的所有操作, 以免数据混乱

时间: 2024-10-03 22:40:30

Linux LVM 总结的相关文章

Linux Lvm创建详解

Disk管理 LVM(Logical Volume Manager)逻辑卷管理建立在硬盘和分区之上,文件系统之下的逻辑层,能在保持原有数据不变的状况下动态调整磁盘容量/boot分区不能创建在逻辑卷上(跟启动引导相关)必须独立出来 LVM概念  创建时在硬盘头部预留一个块,用于保存LVM属性PV物理卷--->VG卷组--->LV逻辑卷--->格式化--->挂载使用文件系统 2.LVM管理命令功能          物理卷          卷组          逻辑卷scan(扫描

Linux LVM的相关操作

LVM的主要特点就是可以将已经格式化的分区进行动态的缩减.LVM的实现方式是将几个实体的partitions或者disk通过软件组成一个大磁盘(VG),然后可以将大磁盘进行切割,切割后可得到lv(相当于分区),在lv上进行格式化挂载.vg和lv的容量都可以动态地进行缩减.下面来说一下具体过程: 1)pv阶段. pv阶段涉及到的命令: 1.pvcreate:将分区partition建立成为pv 2.pvscan:检索目前系统中具有pv的磁盘,显示pv 3.pvdisplay:显示系统中pv的状态

[转载]Linux LVM硬盘管理及LVM扩容

最近项目中一直在用Linux,其中涉及到了Linux的LVM,本来想自己写一篇关于LVM的文章,搜了一下,发现了一篇更好的,转载过来,也感谢作者gaojun 原文Linux LVM硬盘管理及LVM扩容 LVM磁盘管理 一.LVM简介... 1 二. LVM基本术语... 2 三. 安装LVM... 3 四. 创建和管理LVM... 4 1. 创建分区 2. 创建PV.. 6 3. 创建VG.. 7 4. 创建LV.. 9 5.LV格式化及挂载... 10 一.LVM简介 LVM是 Logical

Linux LVM硬盘管理及LVM扩容

LVM磁盘管理 一.LVM简介... 1 二. LVM基本术语... 2 三. 安装LVM... 3 四. 创建和管理LVM... 4 2. 创建PV.. 6 3. 创建VG.. 7 4. 创建LV.. 9 5.LV格式化及挂载... 10 一.LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现.LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可

Linux LVM逻辑卷配置过程详解

Linux LVM逻辑卷配置过程详解 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以满足应用系统的需要. LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性.RHEL5默认安装的分区格式就是LVM逻辑卷的格式,需要注意的是/boot分区不能基于LVM创建,必须独立出

LINUX扩展根目录磁盘空间(LINUX LVM )

linux扩展根目录磁盘空间(linux lvm ) 扩展目标分区前提: 扩展的分区必须要是linux lvm卷如下截图(分区/dev/sda1不可以扩展,分区/dev/sda2可以扩展) 提示:决定linux lvm的因素是磁盘第一次分区时候选择的分区格式决定的.如下图列出了linux下支持的分区格式 SSH Secure Shell 3.2.9 (Build 283) Copyright (c) 2000-2003 SSH Communications Security Corp - htt

Linux LVM简明教程

逻辑卷管理LVM是一个多才多艺的硬盘系统工具.无论在Linux或者其他类似的系统,都是非常的好用.传统分区使用固定大小分区,重新调整大小十分麻烦.但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘.可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据.可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷.LVM并不需要重启就可以让内核知道分区的存在. LVM使用分层结构,如下图所示. 图中顶部,首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV).一个或多个

Linux LVM详解

一.什么是LVM: LVM(Logical Volume Manager) LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性.LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统. 几个概念: PV(physical volume):物理卷,是指硬盘分区或从逻辑上与磁盘分区具有同样

Linux LVM 逻辑卷管理器

1.分区和卷的区别是什么?     1.什么是LVM?      2.用途是什么?      3.如何创建?      4.如何管理? 卷:          "卷"是操作系统或应用程序用来存储数据的.可寻址的扇区的集合.          卷的使用有两种情况:              1. 将多个存储区域合并成一个存储卷:              2. 将一个存储区域划分成若干个独立的分区.          例如:我们可以将不同硬盘上的不同区域组合成一个跨区卷,从而使这几个不同

Linux LVM硬盘管理及LVM扩容-转载

Linux LVM硬盘管理及LVM扩容 LVM磁盘管理 一.LVM简介... 1 二. LVM基本术语... 2 三. 安装LVM... 3 四. 创建和管理LVM... 4 2. 创建PV.. 6 3. 创建VG.. 7 4. 创建LV.. 9 5.LV格式化及挂载... 10 一.LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现.LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬