LVM应用

LVM:Logical Volume Manager,Version:2

驱动:内核中的dm模块,device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块(RAID的驱动是md模块)

 

设备文件路径:/dev/dm-#,它有两个符号链接文件

  • /dev/mapper/VG_NAME-LV_NAME,例如:/dev/mapper/vol0-root
  • /dev/VG_NAME/LV_NAME,例如:/dev/vol0/root

物理卷可以创建在磁盘上,分区上,RAID上,等各种块设备上,但是这些设备的分区必须是8e类型

PV管理工具:

  • pvs:简要pv信息显示
  • pvdisplay:显示pv的详细信息
  • pvcreate /dev/DEVICE:创建pv
  • pvremove /dev/DEVICE:删除pv
  • pvcreate与pvremove的作用相反
  • pvmove /dev/DEVICE:将某个pv中的数据移动到其它pv上,然后才能删除pv

VG管理工具

  • vgs
  • vgdisplay
  • vgcreate VG_NAME /dev/DEVICE:创建vg,例如:vgcreate myvg /dev/sda3
    • -s:指定PE大小
  • vgextend VG_NAME /dev/DEVICE_TO_ADD:扩大vg,例如:vgextend myvg /dev/sda5
  • vgreduce VG_NAME /dev/DEVICE_TO_REMOVE:缩减vg,但是在缩减之前需要先调用pvmove命令将数据移动到其它pv,例如:vgreduce myvg /dev/sda5
  • vgremove VG_NAME:删除卷组

LV管理工具

  • lvs
  • lvdisplay
  • lvcreate -L #[mMgGtT...] -n NAME VolumeGroup,例如:lvcreate -L 2G -n mylv myvg
    • 注:大小未必能完全精确,取决于PE的大小
    • 创建lv之后就可以当作一个设备来使用了,例如:
      • mke2fs -t ext4 -b 1024 -L MYLV /dev/myvg/mylv
      • mkdir /backup
      • mount /dev/myvg/mylv /backup
  • lvremove /dev/VG_NAME/LV_NAME:删除lv,需要先unmount么??
  • 扩展逻辑卷
    • lvextend -L [+]#[mMgG...] /dev/VG_NAME/LV_NAME,例如:lvextend -L 5G /dev/myvg/mylv
    • 扩展lv之后,需要扩展文件系统的大小,对于ext文件系统,可以使用resize2fs /dev/myvg/mylv,不指明大小则使用该分区上的所有可用空间
  • 缩减逻辑卷
    • 先缩减文件系统(逻辑边界),而缩减文件系统之前,必须先卸载,最后再缩减逻辑卷
      • umount /dev/VG_NAME/LV_NAME
      • e2fsck -f /dev/VG_NAME/LV_NAME
      • resize2fs /dev/VG_NAME/LV_NAME #[mMgG...]
      • lvreduce -L [-]#[mMgG...] /dev/VG_NAME/LV_NAME
      • mount /dev/VG_NAME/LV_NAME Dir
      • 注:一定要确保缩减后的空间可以容纳现有数据
      • df -lh命令以方便阅读的大小单位显示本地文件系统信息
  • 快照:snapshot

    • 快照卷和原卷必须在一个卷组中,类似于硬链接
    • lvcreate -L #[mMgG...] -P r -s -n SNAPSHOT_LV_NAME ORIGINAL_LV_NAME,例如:lvcreate -s -L 512M -n mylv-snap -p r /dev/myvg/mylv
      • 然后挂载,mount /dev/myvg/mylv-snap /mnt
      • 之后就可以备份快照卷里的所有内容了,例如:cp -a /mnt/{grub.conf, issue} /tmp
      • 然后卸载,umount /mnt
      • 然后删除快照卷:lvremove /dev/myvg/mylv-snap

练习1:创建一个至少有两个PV组成的大小为20G的名为testvg的VG,要求PE大小为16M,而后在卷组中创建大小为5G的逻辑卷testlv,挂载至/users目录

练习2:新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录

练习3:扩展testlv至7G,要求archlinux用户的文件不能丢失

练习4:收缩testlv至3G,要求archlinux用户的文件不能丢失

练习5:对testlv创建快照,并尝试基于快照备份数据,验证快照的功能

文件系统挂载使用:

  • 挂载光盘设备:
    • 光盘设备文件:
      • IDE:/dev/hdc
      • SATA:/dev/sr0
      • 符号链接文件:
        • /dev/cdrom
        • /dev/cdrw
        • /dev/dvd
        • /dev/dvdrw
    • mount -r /dev/cdrom /media/cdrom
    • umount /dev/cdrom

 虚拟机测试U盘

然后使用fdisk -l,通过大小找出哪个是U盘,然后mount,之后就可以使用了

  • dd命令:convert and copy a file
    • dd if=SrcDir of=TarDir
      • bs=#:block size,复制单元大小,单位是字节
      • count=#:复制多少个bs
    • 备份磁盘:dd if=/dev/sda of=/dev/sdb
    • 备份MBR:dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
    • 清除磁盘分区:dd if=/dev/zero of=/dev/sda bs=512 count=1
    • 破坏MBR中的bootloader:dd if=/dev/zero of=/dev/sda bs=256 count=1
  • 两个特殊设备
    • /dev/null:数据黑洞
    • /dev/zero:吐零机

 补充:LVM在企业级应用中,为了防止磁盘损坏引起数据丢失,逻辑卷不是直接建立在物理卷上的,而是建立在RAID上

原文地址:https://www.cnblogs.com/jacky1982/p/7811672.html