Linux LVM详解及创建

1. LVM基本创建及管理

2. LVM快照

3. LVM与RAID的结合使用:基于RAID的LVM

LVM创建:

 描述:
  LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性.
  通过创建LVM,我们可以更轻松的管理磁盘分区,将若干个不同大小的不同形式的磁盘整合为一个整块的卷组,然后在卷组上随意的创建逻辑卷,既避免了大量不同规格硬盘的管理难题,也使逻辑卷容量的扩充缩减不再受限于磁盘规格;并且LVM的snapshot(快照)功能给数据的物理备份提供了便捷可靠的方式;

创建LVM过程;(如图)
1. 在物理设备上创建物理分区,每个物理分区称为一个PE
2. 使用fdisk工具创建物理分区卷标(修改为8e),形成PV(Physical Volume 物理卷)
3. 使用vgcreate 将多个PV添加到一个VG(Volume Group 卷组)中,此时VG成为一个大磁盘;
4. 在VG大磁盘上划分LV(Logical Volume 逻辑卷),将逻辑卷格式化后即可挂载使用;

各阶段可用的命令工具:(详细选项信息请be a man)

st1\:*{behavior:url(#ieooui) }


阶段


显示信息


创建


删除组员


扩大大小


缩减大小


PV


pvdisplay


pvcreat


pvremove


-----


-----


VG


vgdisplay


vgcreat


vgremove


vgextend


vgreduce


LV


lvdispaly


lvcreat


lvremove


lvextend


lvreduce

创建示例:
1. 创建PV

   Device Boot      Start         End      Blocks   Id  System /dev/sdb1               1         609     4891761   8e  Linux LVM /dev/sdc1               1         609     4891761   8e  Linux LVM /dev/sdd1               1         609     4891761   8e  Linux LVM  [[email protected] ~]# pvcreate /dev/sd[bcd]1   Physical volume "/dev/sdb1" successfully created   Physical volume "/dev/sdc1" successfully created   Physical volume "/dev/sdd1" successfully created

 查看PV信息:

[[email protected] ~]# pvdisplay    --- Physical volume ---   PV Name               /dev/sda2   VG Name               vol0   PV Size               40.00 GB / not usable 2.61 MB   Allocatable           yes    PE Size (KByte)       32768   Total PE              1280   Free PE               281   Allocated PE          999   PV UUID               GxfWc2-hzKw-tP1E-8cSU-kkqY-z15Z-11Gacd       "/dev/sdb1" is a new physical volume of "4.67 GB"   --- NEW Physical volume ---   PV Name               /dev/sdb1   VG Name                  PV Size               4.67 GB   Allocatable           NO   PE Size (KByte)       0   Total PE              0   Free PE               0   Allocated PE          0   PV UUID               1rrc9i-05Om-Wzd6-dM9G-bo08-2oJj-WjRjLg       "/dev/sdc1" is a new physical volume of "4.67 GB"   --- NEW Physical volume ---   PV Name               /dev/sdc1   VG Name                  PV Size               4.67 GB   Allocatable           NO   PE Size (KByte)       0   Total PE              0   Free PE               0   Allocated PE          0   PV UUID               RCGft6-l7tj-vuBX-bnds-xbLn-PE32-mCSeE8       "/dev/sdd1" is a new physical volume of "4.67 GB"   --- NEW Physical volume ---   PV Name               /dev/sdd1   VG Name                  PV Size               4.67 GB   Allocatable           NO   PE Size (KByte)       0   Total PE              0   Free PE               0   Allocated PE          0   PV UUID               SLiAAp-43zX-6BC8-wVzP-6vQu-uyYF-ugdWbD

 2. 创建VG


  1. [[[email protected] ~]# vgcreate myvg -s 16M  /dev/sd[bcd]1
  2. Volume group "myvg" successfully created
  3. ##-s 在创建时指定PE块的大小,默认是4M。
  4. 查看系统上VG状态
  5. [[email protected] ~]# vgdisplay
  6. --- Volume group ---
  7. VG Name               myvg
  8. System ID
  9. Format                lvm2
  10. Metadata Areas        3
  11. Metadata Sequence No  1
  12. VG Access             read/write
  13. VG Status             resizable
  14. MAX LV                0
  15. Cur LV                0
  16. Open LV               0
  17. Max PV                0
  18. Cur PV                3
  19. Act PV                3
  20. VG Size               13.97 GB    ##VG总大小
  21. PE Size               16.00 MB    ##默认的PE块大小是4M
  22. Total PE              894         ##总PE块数
  23. Alloc PE / Size       0 / 0       ##已经使用的PE块数目
  24. Free  PE / Size       894 / 13.97 GB  ##可用的PE数目及磁盘大小
  25. VG UUID               RJC6Z1-N2Jx-2Zjz-26m6-LLoB-PcWQ-FXx3lV

 3. 在VG中划分出LV:

[[email protected] ~]# lvcreate -L 256M -n data1 myvg   Logical volume "data1" created ## -L指定LV大小 ## -n 指定lv卷名称  [[email protected] ~]# lvcreate -l 20  -n test myvg   Logical volume "test" created ## -l 指定LV大小占用多少个PE块;上面大小为:20*16M=320M  [[email protected] ~]# lvdisplay    --- Logical volume ---   LV Name                /dev/myvg/data   VG Name                myvg   LV UUID                d0SYy1-DQ9T-Sj0R-uPeD-xn0z-raDU-g9lLeK   LV Write Access        read/write   LV Status              available   # open                 0   LV Size                256.00 MB   Current LE             16   Segments               1   Allocation             inherit   Read ahead sectors     auto   - currently set to     256   Block device           253:2       --- Logical volume ---   LV Name                /dev/myvg/test   VG Name                myvg   LV UUID                os4UiH-5QAG-HqOJ-DoNT-mVeT-oYyy-s1xArV   LV Write Access        read/write   LV Status              available   # open                 0   LV Size                320.00 MB   Current LE             20   Segments               1   Allocation             inherit   Read ahead sectors     auto   - currently set to     256   Block device           253:3

4. 然后就可以格式化LV,挂载使用:

[[email protected] ~]# mkfs -t ext3 -b 2048 -L DATA /dev/myvg/data [[email protected] ~]# mount /dev/myvg/data /data/ ## 拷贝进去一些文件,测试后面在线扩展及缩减效果: [[email protected] data]# cp /etc/* /data/

5. 扩大LV容量:(2.6kernel+ext3filesystem)
  lvextend命令可以增长逻辑卷
  resize2fs可以增长filesystem在线或非在线
  (我的系统内核2.6.18,ext3文件系统,查man文档,现在只有2.6的内核+ext3文件系统才可以在线增容量)
  首先逻辑扩展:

[[email protected] data]# lvextend -L 500M /dev/myvg/data    Rounding up size to full physical extent 512.00 MB   Extending logical volume data to 512.00 MB   Logical volume data successfully resized ##-L 500M  :指扩展到500M,系统此时会找最近的柱面进行匹配;    ##-L +500M :值在原有大小的基础上扩大500M; ##-l [+]50 类似上面,但是以Pe块为单位进行扩展;

然后文件系统物理扩展:

[[email protected] data]# resize2fs -p /dev/myvg/data  resize2fs 1.39 (29-May-2006) Filesystem at /dev/myvg/data is mounted on /data; on-line resizing required Performing an on-line resize of /dev/myvg/data to 262144 (2k) blocks. The filesystem on /dev/myvg/data is now 262144 blocks long. ##据上面信息,系统自动识别并进行了在线扩展;  查看状态: [[email protected] ~]# lvdisplay    --- Logical volume ---   LV Name                /dev/myvg/data   VG Name                myvg   LV UUID                d0SYy1-DQ9T-Sj0R-uPeD-xn0z-raDU-g9lLeK   LV Write Access        read/write   LV Status              available   # open                 1   LV Size                512.00 MB   Current LE             32   Segments               1   Allocation             inherit   Read ahead sectors     auto   - currently set to     256   Block device           253:2 ##此时查看挂载目录,文件应该完好;

 6. 缩减LV容量:
  缩减容量是一件危险的操作;缩减必须在离线状态下执行;并且必须先强制检查文件系统错误,防止缩减过程损坏数据;

[[email protected] ~]# umount /dev/myvg/data [[email protected] ~]# e2fsck -f /dev/myvg/data  e2fsck 1.39 (29-May-2006) 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 DATA: 13/286720 files (7.7% non-contiguous), 23141/573440 blocks

先缩减物理大小:

[[email protected] ~]# resize2fs /dev/myvg/data 256M resize2fs 1.39 (29-May-2006) Resizing the filesystem on /dev/myvg/data to 131072 (2k) blocks. The filesystem on /dev/myvg/data is now 131072 blocks long.

再缩减逻辑大小:

[[email protected] ~]# lvreduce -L 256M /dev/myvg/data    WARNING: Reducing active logical volume to 256.00 MB   THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce data? [y/n]: y   Reducing logical volume data to 256.00 MB   Logical volume data successfully resized

查看状态、重新挂载:

[[email protected] ~]# lvdisplay    --- Logical volume ---   LV Name                /dev/myvg/data   VG Name                myvg   LV UUID                d0SYy1-DQ9T-Sj0R-uPeD-xn0z-raDU-g9lLeK   LV Write Access        read/write   LV Status              available   # open                 0   LV Size                256.00 MB   Current LE             16   Segments               1   Allocation             inherit   Read ahead sectors     auto   - currently set to     256   Block device           253:2   重新挂载: [[email protected] ~]# mount /dev/myvg/data  /data/ [[email protected] data]# df /data/ Filesystem           1K-blocks      Used Available Use% Mounted on /dev/mapper/myvg-data                         253900      9508    236528   4% /data

 7. 扩展VG,向VG中添加一个PV:

[[email protected] data]# pvcreate /dev/sdc2    Physical volume "/dev/sdc2" successfully created  [[email protected] data]# vgextend myvg /dev/sdc2   Volume group "myvg" successfully extended [[email protected] data]# pvdisplay   --- Physical volume ---   PV Name               /dev/sdc2   VG Name               myvg   PV Size               4.67 GB / not usable 9.14 MB   Allocatable           yes    PE Size (KByte)       16384   Total PE              298   Free PE               298   Allocated PE          0   PV UUID               hrveTu-2JUH-aSgT-GKAJ-VVv2-Hit0-PyoOOr

 8. 缩减VG,取出VG中的某个PV:

  移除某个PV时,需要先转移该PV上数据到其他PV,然后再将该PV删除;
  
移出指定PV中的数据:


  1. [[email protected] data]# pvmove /dev/sdc2
  2. No data to move for myvg
  3. ##如果sdc2上面有数据,则会花一段时间移动,并且显示警告信息,再次确认后才会执行;
  4. ##如上,提示该分区中没有数据;

移除PV:

[[email protected] data]# vgreduce myvg /dev/sdc2   Removed "/dev/sdc2" from volume group "myvg" ##若发现LVM中磁盘工作不太正常,怀疑是某一块磁盘工作由问题后就可以用该方法移出问题盘##上数据,然后删掉问题盘;

LVM快照:
 描述:

在一个非常繁忙的服务器上,备份大量的数据时,需要停掉大量的服务,否则备份下来的数据极容易出现不一致状态,而使备份根本不能起效;这时快照就起作用了;

原理:
  逻辑卷快照实质是访问原始数据的另外一个路径而已;快照保存的是做快照那一刻的数据状态;做快照以后,任何对原始数据的修改,会在修改前拷贝一份到快照区域,所以通过快照查看到的数据永远是生成快照那一刻的数据状态;但是对于快照大小有限制,做快照前需要估算在一定时间内数据修改量大小,如果在创建快照期间数据修改量大于快照大小了,数据会溢出照成快照失效崩溃;
  快照不是永久的。如果你卸下LVM或重启,它们就丢失了,需要重新创建。

创建快照:

[[email protected] ~]# lvcreate -L 500M -p r -s -n datasnap /dev/myvg/data    Rounding up size to full physical extent 512.00 MB   Logical volume "datasnap" created ## -L –l 设置大小 ## -p  :permission,设置生成快照的读写权限,默认为RW;r为只读 ##-s 指定lvcreate生成的是一个快照 ##-n 指定快照名称  挂载快照到指定位置: [[email protected] ~]# mount  /dev/myvg/datasnap /backup/ mount: block device /dev/myvg/datasnap is write-protected, mounting read-only  然后备份出快照中文件即可,备份后及时删除快照:  [[email protected] ~]# ls  /backup/ inittab  lost+found

  基于RAID的LVM的建立:

描述:

基于RAID的LVM,可以在底层实现RAID对数据的冗余或是提高读写性能的基础上,可以在上层实现LVM的可以灵活管理磁盘的功能;

 如图:

建立过程:

  1. 建立LinuxRAID形式的分区:

   Device Boot      Start         End      Blocks   Id  System /dev/sdb1               1          62      497983+  fd  Linux raid autodetect /dev/sdc1               1          62      497983+  fd  Linux raid autodetect /dev/sdd1               1          62      497983+  fd  Linux raid autodetect /dev/sde1               1          62      497983+  fd  Linux raid autodetect

  2.   创建RAID-5:


  1. [[email protected] ~]# mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1  /dev/sd{b,c,d,e}1
  2. mdadm: array /dev/md0 started.
  3. # RAID-5有一个spare盘,三个活动盘。
  4. # 查看状态,发现跟创建要求一致,且创建正在进行中:
  5. [[email protected] ~]# cat /proc/mdstat
  6. Personalities : [raid6] [raid5] [raid4]
  7. md0 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0]
  8. 995712 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]
  9. [=======>.............]  recovery = 36.9% (184580/497856) finish=0.2min speed=18458K/sec
  10. unused devices: <none>
  11. # 查看RAID详细信息:
  12. [[email protected] ~]# mdadm -D /dev/md0
  13. /dev/md0:
  14. Version : 0.90
  15. Creation Time : Wed Apr  6 04:27:46 2011
  16. Raid Level : raid5
  17. Array Size : 995712 (972.54 MiB 1019.61 MB)
  18. Used Dev Size : 497856 (486.27 MiB 509.80 MB)
  19. Raid Devices : 3
  20. Total Devices : 4
  21. Preferred Minor : 0
  22. Persistence : Superblock is persistent
  23. Update Time : Wed Apr  6 04:36:08 2011
  24. State : clean
  25. Active Devices : 3
  26. Working Devices : 4
  27. Failed Devices : 0
  28. Spare Devices : 1
  29. Layout : left-symmetric
  30. Chunk Size : 64K
  31. UUID : 5663fc8e:68f539ee:3a4040d6:ccdac92a
  32. Events : 0.4
  33. Number   Major   Minor   RaidDevice State
  34. 0       8       17        0      active sync   /dev/sdb1
  35. 1       8       33        1      active sync   /dev/sdc1
  36. 2       8       49        2      active sync   /dev/sdd1
  37. 3       8       65        -      spare   /dev/sde1

   3. 建立RAID配置文件:


  1. [[email protected] ~]# mdadm -Ds > /etc/mdadm.conf
  2. [[email protected] ~]# cat /etc/mdadm.conf
  3. ARRAY /dev/md0 level=raid5 num-devices=3 metadata=0.90 spares=1 UUID=5663fc8e:68f539ee:3a4040d6:ccdac92a

   4. 基于刚建立的RAID设备创建LVM:

# 将md0创建成为PV(物理卷): [[email protected] ~]# pvcreate /dev/md0   Physical volume "/dev/md0" successfully created # 查看物理卷: [[email protected] ~]# pvdisplay "/dev/md0" is a new physical volume of "972.38 MB"   --- NEW Physical volume ---   PV Name               /dev/md0   VG Name                                  #此时该PV不包含在任何VG中,故为空;                PV Size               972.38 MB   Allocatable           NO   PE Size (KByte)       0   Total PE              0   Free PE               0   Allocated PE          0   PV UUID               PUb3uj-ObES-TXsM-2oMS-exps-LPXP-jD218u  # 创建VG [[email protected] ~]# vgcreate myvg -s 32M  /dev/md0   Volume group "myvg" successfully created # 查看VG状态: [[email protected] ~]# vgdisplay    --- Volume group ---   VG Name               myvg   System ID                Format                lvm2   Metadata Areas        1   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                1   Act PV                1   VG Size               960.00 MB   PE Size               32.00 MB   Total PE              30   Alloc PE / Size       0 / 0      Free  PE / Size       30 / 960.00 MB   VG UUID               9NKEWK-7jrv-zC2x-59xg-10Ai-qA1L-cfHXDj  # 创建LV: [[email protected] ~]# lvcreate -L 500M -n mydata myvg   Rounding up size to full physical extent 512.00 MB   Logical volume "mydata" created # 查看LV状态: [[email protected] ~]# lvdisplay    --- Logical volume ---   LV Name                /dev/myvg/mydata   VG Name                myvg   LV UUID                KQQUJq-FU2C-E7lI-QJUp-xeVd-3OpA-TMgI1D   LV Write Access        read/write   LV Status              available   # open                 0   LV Size                512.00 MB   Current LE             16   Segments               1   Allocation             inherit   Read ahead sectors     auto   - currently set to     512   Block device           253:2
时间: 2024-10-11 19:14:32

Linux LVM详解及创建的相关文章

Linux LVM详解

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

linux之LVM详解

Linux的LVM详解 LVM组成; LVM:logic volume manager .LVM即逻辑卷管理,现在使用版本为第二版,即version2 逻辑卷:pv,physical volume,即计算机上的磁盘设备,例如我的计算机上的/dev/sda3,/dev/sda5. 卷组:vg,volume group.一般由多个pv组成. 逻辑卷:lv,logical volume是在vg上是划分好可以直接使用分区 pe:physical extend,是在pv加入vg后vg把所有pv划分成的很多

Linux逻辑卷管理LVM详解

Linux逻辑卷管理LVM详解 Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间.而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具(比如Patition Magic等),但这都只是暂时解决办法,没有根本解决问题.随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,本文就深入讨论LVM技术,使得用户在无需停机的情况下方便地调整各个分区大小. 一.LVM基本术语 LVM是在磁盘分区和文

Linux 目录详解 树状目录结构图

1.树状目录结构图 2./目录 目录 描述 / 第一层次结构的根.整个文件系统层次结构的根目录. /bin/ 需要在单用户模式可用的必要命令(可执行文件):面向所有用户,例如:cat.ls.cp,和/usr/bin类似. /boot/ 引导程序文件,例如:kernel.initrd:时常是一个单独的分区[6] /dev/ 必要设备, 例如:, /dev/null. /etc/ 特定主机,系统范围内的配置文件. 关于这个名称目前有争议.在贝尔实验室关于UNIX实现文档的早期版本中,/etc 被称为

Gentoo Linux安装详解--根据官方WiKi整理

1. 前期准备 远程登录: 开启ssh服务: /etc/init.d/sshd start 设置密码: passwd 以便使用putty.ssh client远程登录上传stage等(有时在线下载很慢,而局域网上传很快) 准备磁盘: 分区: fdisk /dev/sda /dev/sda1 : /boot 100M(32-100M) 设启动笔记-a/dev/sda2 : / 20G/dev/sda3 : /home 20G/dev/sda5 : /swap 1G (内存< 512 MB,分区分配

linux命令详解

一.cat主要有三大功能: 1.一次显示整个文件.$ cat filename2.从键盘创建一个文件.$ cat > filename (只能创建新文件,不能编辑已有文件)3.将几个文件合并为一个文件: $cat file1 file2 > file 参数:-n 或 --number 由 1 开始对所有输出的行数编号-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行-v

PXE的概述及Linux使用详解

PXE的概述及使用详解 现在企业采购的很多计算机都是没光驱的,怎么安装系统呢?另外,如何能快速大规模安装Linux服务器操作系统呢,有什么好办法吗? 答案是有的,那就是本文要说的:PXE PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial filet

Gentoo Linux安装详解

1. 前期准备 远程登录: 开启ssh服务: /etc/init.d/sshd start 设置密码: passwd 以便使用putty.ssh client远程登录上传stage等(有时在线下载很慢,而局域网上传很快) 准备磁盘: 分区: fdisk /dev/sda /dev/sda1 : /boot 100M(32-100M) 设启动笔记-a/dev/sda2 : / 20G/dev/sda3 : /home 20G/dev/sda5 : /swap 1G (内存< 512 MB,分区分配

Linux指令详解useradd groupadd passwd chpasswd chage 密码修改

创建用户.设置密码.修改用户.删除用户: useradd testuser 创建用户testuser passwd testuser 给创建的用户testuser设置密码 说明:新创建的用户会在/home下创建一个用户目录testuser usermod --help 修改用户这个命令的相关参数 userdel testuser 删除用户testuser rm -rf testuser 删除用户testuser所在目录 上面的几个命令只有root账号才可以使用,如果你不知道自己的系统上面的命令在