8.Linux的LVM使用详解

8.Linux的LVM使用详解

  1. 命令概览:所使用的命令(#代表是数字)
    pvcreate /dev/sd[xx]
    vgcreate -s # vgname /dev/sd[]
    -s 指定PE的大小   默认大小为4M
    vgextend vgname /dev/sd[xx]
    lvcreate -n lvname -L # /dev/vgname
    扩容
    lvs
    lvextend -L # /dev/vgname/lvname
    resize2fs /dev/vgname/lvname
    lvs
    缩减
    umount /dev/vgname/lvname
    e2fsck /dev/vgname/lvname
    resize2fs /dev/vgname/lvname #
    lvreduce -L # /dev/vgname/lvname
    mount
    快照
    lvcreate -L # -s -n snapshot /dev/vgname/lvname
    卸载逻辑卷
    umount /dev/vgname/lvname
    lvremove /dev/vgname/lvname
    vgremove /dev/vgname
    pvremove /dev/sd[xx]
  2. LVM的使用

    LVM(Logical Volume Manager)叫做逻辑卷管理器,有两个版本,早期是LVM1(现在很少使用了),LVM2。

    PV (Physical Volume)物理卷,在分区时需要调整系统 ID为8e(LVM的标识符),使用pvcreate来创建物理卷。

    VG (Volume Group)卷组,是将一个或多个PV组合成一个VG,可以通过vgcreate来实现。

    LV (Logical Volume)逻辑卷,将VG划分成一个或多个LV,可以通过lvcreate来实现。

LVM2使用dm模块来实现将一个或多个底层块设备组织成一个逻辑设备的工具。它能够将一个或多个底层块设备从某种意义上来映射成一个逻辑设备,通过在其上面附加一个逻辑层使得上层看起来像一个设备一样,而且在其之上,还可以再划分逻辑分区。将底层的块设备(VG)进一步分隔成了一个一个可以存储数据空间的块(PE),这种块也称为PE(Physical Extend),再将VG上多个PE组合成一个或多个

LV。也就是说LV的大小是由PE的个数决定的,LVM默认使用4M的PE块,而LVM的VG最多仅能含有65534个PE,因此默认的LVM VG会有4M*65534(1024M/G)=256G,它是整个LVM最小的存储块,也就是说,文件
数据都是由写入PE来处理的。以下就是LVM的简单架构:

在数据写入LV时,LVM有两种实现方式:
     a.线性模式(liner)  就是把其中一块硬盘都使用完后,才使用另外一块硬盘
     b.交错模式(triped) 把要存储的数据分块,第一块写入到LV中的第一个硬盘,第二块写入到LV
中的第二块硬盘如此这样,依次存储,可以提升读写性能,但是注意此时只要出现一个硬盘损坏,那么数据都会丢失,如果要提升读写性能还是使用RAID更佳。

LVM还可以实现动态调整容量,当空间不足时,可在线添加容量;当容量过大,也可以缩减容量。而且还提供了快照功能,能方便的实现备份。下面就来详细讲解他们的实现过程。

3.LVM的使用

实际上LVM使用的设备是放置到/dev/mapper/目录下的

PV,VG,LV他们各自都有一组命令

输入pv按两次tab键就可以看到以pv开头的命令

[[email protected]_basic scripts]#pv
pvchange   pvck       pvcreate   pvdisplay  pvmove     pvremove   pvresize   pvs        pvscan

其他vg,lv也是一样

[[email protected]_basic scripts]#vg
vgcfgbackup    vgck           vgdisplay      vgimport       vgmknodes      vgrename       vgsplit        
vgcfgrestore   vgconvert      vgexport       vgimportclone  vgreduce       vgs            
vgchange       vgcreate       vgextend       vgmerge        vgremove       vgscan         
[[email protected]_basic scripts]#lv
lvchange     lvdisplay    lvmchange    lvmdump      lvmsar       lvrename     lvscan       
lvconvert    lvextend     lvmconf      lvmetad      lvreduce     lvresize     
lvcreate     lvm          lvmdiskscan  lvmsadc      lvremove     lvs

这里我们就说明使用pvcreate,vgcreata的格式

创建物理卷

pvcreate — initialize a disk or partition for use by LVM  初始化磁盘或分区使用LVM

pvcreate /dev/sd[a-z]|/dev/sd[a-z][1-9] ... 可跟多个磁盘或分区,注意此处使用的磁盘分区应该调整其系统标识符为8e,通过fdisk命令

创建卷组

vgcreate — create a volume group  创建一个卷组

vgcreate [-s PESIZE(pe的大小)]  VolumeGroupName(卷组的名字) PhysicalDevicePath [PhysicalDevicePath...](指定刚创建的物理卷)

-s, --physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE]
   Sets  the physical extent size on physical volumes of this volume group.

创建逻辑卷

lvcreate - create a logical volume in an existing volume group

lvcreate -n lvname -L # /dev/vgname

-n, --name LogicalVolume{Name|Path}
     Sets the name for the new logical volume.  设置这个逻辑卷名

-L, --size LogicalVolumeSize[bBsSkKmMgGtTpPeE] 指定逻辑卷的大小,单位可以是K,M,G,T等
     Gives  the  size  to allocate for the new logical volume.  A size suffix of B for bytes, S for sectors as 512 bytes, K for kilobytes, M for megabytes, G for gigabytes, T  for  terabytes,  Pfor petabytes or E for exabytes is optional.
    Default unit is megabytes. 默认单位

扩展逻辑卷,需要先扩展物理卷再扩展逻辑卷,可在线扩容

如何扩展逻辑卷:
a、先确定扩展的目标大小;并确保对应的卷组中有足够的空闲空间可用;

b、扩展物理边界  仅能在当前卷组中进行扩展
lvextend -L # /dev/vgname/lvname

c、扩展逻辑边界

resize2fs  /dev/vgname/lvname

[[email protected]_basic test]#df -hP /mnt/test
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/vg_lvm-test  4.9G  6.6M  4.7G   1% /mnt/test  扩展成功
[[email protected]_basic test]#du -sh /mnt/test
2.6M    /mnt/test    扩展后内容为改变

缩减逻辑卷,需要先缩减逻辑卷在缩减物理卷

缩减很危险!!!!
缩减需要离线
a、先确定缩减后的目标大小;并确保对应的目标逻辑卷大小中有足够的空间可容纳原有所有数据;
b、先卸载文件系统,并要执行强制检测
  e2fsck -f
c、缩减逻辑边界
  resize2fs DEVICE #
  [[email protected]_basic ~]#resize2fs -help
  resize2fs 1.41.12 (17-May-2010)
  Usage: resize2fs [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]
d、缩减物理边界
   lvreduce -L # /dev/vg_xx/xxx

创建快照卷:
  lvcreate
    -L   #指定快照卷大小
    -n   指定快照卷名字
    -s 指定快照卷
    -p r 只读

注意:快照卷是对某逻辑卷进行的,因此必须跟目标逻辑卷在同一个卷组中;无须指明卷组;
它只备份又被改动的数据,文件系统内没有被更改的数据依旧保持在原本的区块内,但是LVM快照
功能会知道那些数据放置在哪里,因此“快照”当时的文件系统就得以“备份”下来,且快照所占用的
容量又非常小。       
由于快照区与原本的LV共享很多PE区块,因此快照区与被快照的LV必须要在同一个VG上面。

LV snapshot status     active destination for test
  LV Status              available
  # open                 1
  LV Size                2.00 GiB
  Current LE             64
  COW-table size         512.00 MiB
  COW-table LE           16
  Allocated to snapshot  0.07%
  快照区已经被使用了0.07%,因为原数据改变了
  Snapshot chunk size    4.00 KiB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:5

利用快照区恢复原系统
复原的系统数据量不能够高于快照区所能负载的实际容量。由于原始数据会被
移到快照区,如果快照区不够大,若原始数据被改动的实际数据量比快照区大,
那么快照区当然容纳不了,这时候快照功能会失效。

时间: 2024-11-03 22:32:15

8.Linux的LVM使用详解的相关文章

(转)Linux下PS命令详解

(转)Linux下PS命令详解 整理自:http://blog.chinaunix.net/space.php?uid=20564848&do=blog&id=74654 要对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps (1) ps :是显示瞬间进程的状态,并不动态连续: (2) top:如果想对进程运行时间监控,应该用 top 命令: (3) kill 用于杀死进程或者给进程发送信号: (4) 查看文章最后的man手册,可以查看ps的每项输出的含义

Linux下chkconfig命令详解

Linux下chkconfig命令详解 chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法:chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset] chkconfig在没有参数运行时,显示用法.如果加上服务名,那么就检查这个服务是否在当前运行级启动.如果是,返

转载的 Linux下chkconfig命令详解

Linux下chkconfig命令详解 chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法: chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset] chkconfig 在没有参数运行时,显示用法.如果加上服务名,那么就检查这个服务是否在当前运行级启动.如果是

Linux 性能测试工具Lmbench详解

Linux 性能测试工具Lmbench详解 2010-06-04 16:07 佚名 评测中心 字号:T | T Lmbench 是一套简易可移植的,符合ANSI/C 标准为UNIX/POSIX 而制定的微型测评工具.一般来说,它衡量两个关键特征:反应时间和带宽.Lmbench 旨在使系统开发者深入了解关键操作的基础成本. AD:2014WOT全球软件技术峰会北京站 课程视频发布 Linux 性能测试工具Lmbench 是一套简易可移植的,符合ANSI/C 标准为UNIX/POSIX 而制定的微型

Linux中pam认证详解(下)

Linux中pam认证详解(下) 在上一篇中详细的介绍了pam的介绍.pam认证原理.pam认证构成以及pam验证控制类型,下面向大家详细介绍一下常用的pam服务模块,以及pam认证的应用. 一.常用的pam服务模块 下面是Linux提供的PAM模块列表(只是其中一部分),这其中包含模块文件.模块功能描述和相关配置文件,具体如下: pam_access 提供logdaemon风格登录控制 /etc/security/access.conf pam_chroot 提供类似chroot命令的功能 p

linux系统find命令详解

find命令 –用途:用于查找文件或目录 –格式:find  [查找范围]  [查找条件] 常用查找条件 –-name:按文件名称查找 –-size:按文件大小查找 –-user:按文件属主查找 –-type:按文件类型查找 –-print:以\n为换行符打印出文件(路径) 高级查找条件 –-perm:按权限查找 –-ctime(-cmin):按文件创建时间(天为单位)查找 –-atime(-amin):按访问时间查找 –-mtime(-mmin):修改时间查找 –-newer:查找比指定文件更

linux中fork()函数详解[zz]

转载自:http://www.cnblogs.com/york-hust/archive/2012/11/23/2784534.html 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事. 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间.然后把原来的进程的所有值都复制到新的新进程中,只有

linux之vim编辑器详解

字处理器:像word,wps,除了本文本身以外,还有修饰方面的设置. 文本编辑器:编辑纯ASCII文档. nano,sed  入门简单,功能简陋. 强大的vi编辑器 (Visual Interface) 现在是Vim :VI  inproved 它是全屏编辑器,模式化编辑器. vim模式: 编辑模式(命令模式) 输入模式 末行模式 默认处于编辑模式. 模式转化: 编辑模式--->输入模式: i :在当前光标所在字符的前面,转为输入模式. a:在当前光标所在字符的后面,转为输入模式. o:在当前光

Linux学习笔记--Linux文件管理类名利详解

Linux文件管理类命令详解 目录管理: ls.cd.pwd.mkdir.rmdir.tree 文件管理: touch.stat.file.rm.cp.mv.nano 日期管理: touch.clock.hwclock.cal 查看文本: cat.tac.more.less.head.tail cat:连接并显示 -n:在显示时显示每一行的行号 -E:在每行结束处显示 $ Ctrl+C:结束命令 分屏显示: more.less more:向后翻 less: q退出命令 head:查看前n行 ta