美文网首页
14-3高级文件系统管理之LVM

14-3高级文件系统管理之LVM

作者: 靜默 | 来源:发表于2018-06-13 18:47 被阅读14次

逻辑卷管理器(LVM Logical Volume Manager )

允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小 
允许在多个物理设备间重新组织文件系统 
    将设备指定为物理卷
    用一个或者多个物理卷来创建一个卷组
    物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的 
    在物理卷上创建的逻辑卷是由物理区域(PE)组成
    可以在逻辑卷上创建系统
LVM可以弹性的更改LVM的容量,通过交换PE来进行资料的转换,
将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量 

dm: device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块

逻辑卷真实设备名:/dev/dm-# 
软链接: 
   /dev/mapper/VG_NAME-LV_NAME 
        例如:/dev/mapper/vol0-root 
   /dev/VG_NAME/LV_NAME
        例如:/dev/vg0/lv0

pv管理工具

显示pv信息 
pvs:简要pv信息显示 
pvdisplay:详细pv信息显示
pvscan:搜索当前系统任何具有pv的磁盘 
创建pv 
    pvcreate /dev/DEVICE
      例如:pvcreate /dev/sdb
移除pv
    pvremove /dev/sdb  

vg管理工具

显示卷组 
  vgs 
  vgdisplay
  vgscan 
创建卷组 
  vgcreate  [-s #[kKmMgGtTpPeE]] VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
  例如:vgcreate -s 16M -n vg0 /dev/sd{b,c,d} 
管理卷组 
  vgrename
往vg中添加pv
  vgextend  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...] 
  例如:vgextend vg0 /dev/sde(刚加已创建pv的硬盘,)
在vg内移除pv
  vgreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...] 
配置vg是否启动(active)
  vgchange  
删除卷组(删除需要配置先不启动)
先做pvmove,再做vgremove 

lv管理工具

显示逻辑卷 
  lvs 
  lvdisplay 
  lvscan
创建逻辑卷 
  lvcreate -L #[mMgGtT] -n NAME VolumeGroup 
  lvcreate -l 60%VG -n lv0  vg0 
  lvcreate -l 100%FREE -n lv0 vg0 
  lvcreate -L 20G -n lv0 vg0
管理逻辑卷
往lv中添加容量
  lvextend  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...] 
  例如:lvextend  -r -L +10G lv0   r表示同步文件系统
在lv内移除容量(先卸载挂载lv)
  lvreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
例如:lvreduce 
删除逻辑卷 
  lvremove /dev/VG_NAME/LV_NAME
  例如:lvremove /dev/vg0/lv0
重设文件系统大小 
  fsadm [options] resize device [new_size[BKMGTEP]] 
  resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size] 

扩展和缩减逻辑卷

扩展逻辑卷: 
  lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME 
  resize2fs /dev/VG_NAME/LV_NAME 
  lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME 
缩减逻辑卷: 
  umount /dev/VG_NAME/LV_NAME   
  e2fsck -f /dev/VG_NAME/LV_NAME    
  resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]      
  lvreduce -L [-]#[mMgGtT]   /dev/VG_NAME/LV_NAME 
  mount 

跨主机迁移卷组

源计算机上 
1 在旧系统中,umount所有卷组上的逻辑卷 
2 vgchange –a n vg0     
  lvdisplay 3 
  vgexport vg0      
  pvscan 
  vgdisplay 
   拆下旧硬盘  
  
在目标计算机上 
4 在新系统中安装旧硬盘,并vgimport vg0. 
5 vgchange –ay vg0 
6 mount所有卷组上的逻辑卷 

创建逻辑卷示例

创建物理卷 
  pvcreate  /dev/sda3 
为卷组分配物理卷 
  vgcreate  vg0  /dev/sda3 
从卷组创建逻辑卷 
  lvcreate  -L  256M  -n data  vg0 
  mke2fs  -j   /dev/vg0/data 
  mount  /dev/vg0/data /mnt/data  

逻辑卷管理器快照

  快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝 
  对于需要备份或者复制的现有数据集临时拷贝以及其它操作来说,快照是最合适的选择 
  快照只有在它们和原来的逻辑卷不同时才会消耗空间 
  在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间 
  当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。 
  快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据 
  建立快照的卷大小只需要原始逻辑卷的15%~20%就够了,也可以使用lvextend放大快照 
  逻辑卷管理器快照 
  快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享 

实验:创建LV
pvcreate /dev/sd{a5,b1}
vgcreate vg0 /dev/sd{a5,b1}
lvcreate -n lv0 -L 10G vg0
mkfs.ext4 /dev/vg0/lv0
mount

实验:扩展LV
lvextend -l +100%FREE /dev/vg0/lv0
resize2fs /dev/vg0/lv0 extN
xfs_growfs /mnt/lv0 xfs
或者
lvextend -r -l +100%free /dev/vg0/lv0

实验:缩减LV
umount /mnt/lv0
e2fsck -f /dev/vg0/lv0
resize2fs /dev/vg0/lv0 8G
lvreduce -L 8G /dev/vg0/lv0
mount -a

实验:删除PV
vgdisplay 看可用空间,大于pv的空间
pvmove /dev/sdc
vgreduce vg0 /dev/sdc
pvremove /dev/sdc

实验:迁移LV到新主机
1 确认VG名和目标主机不同
vgrename vg1 vg100
lvrename lv2 lv100
vgdisplay
pvs
2 umount /mnt/lv2
vgchange -an /dev/vg100/lv100
vgexport vg100
3 拆除,在新主机接入
4、lvs;vgs
vgimport vg100
vgchange -ay vg100
mount /dev/vg100/lv100 /mnt

设定LVM快照

使用LVM快照 
为现有逻辑卷创建快照 
  lvcreate -l 64 -s -n data-snapshot -p r /dev/vg0/data 
挂载快照 
  mkdir  -p  /mnt/snap 
  mount -o ro /dev/vg0/data-snapshot   /mnt/snap 
恢复快照 
  umount /dev/vg0/data-snapshot    
  umount /dev/vg0/data 
  lvconvert --merge /dev/vg0/data-snapshot  
删除快照 
  umount  /mnt/databackup 
  lvremove  /dev/vg0/databackup 

案例:

选择磁盘
[root@hadoop2 ~]#fdisk /dev/vdb

Command (m for help): m                              ---------->帮助
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)
Command (m for help): n                              ---------->创建新的分区
Command action
     e   extended
     p   primary partition (1-4)
p                                                    ---------->创建主分区
  Partition number (1-4):1                           ---------->分区ID
  First cylinder (1-65270, default 1): 
  Using default value 1
  Last cylinder, +cylinders or +size{K,M,G} (1-65270, default 65270): 
  Using default value 65270
  Command (m for help):t                             ---------->修改分区类型
  Command (m for help):8e                            ---------->Linux lvm
  Command (m for help):w                             ---------->保存修改

创建新的pv卷 (整个磁盘都加pv)
[root@hadoop2 ~]#pvcreate /dev/vdb1

查看pv卷
[root@hadoop2 ~]#pvs

创建新的vg卷
[root@hadoop2 ~]#vgcreate mygroup /dev/vdb1

查看vg卷
[root@hadoop2 ~]#vgs

创建逻辑卷(-L 指定分区大小 -n 指定lvm名称)
[root@hadoop2 ~]#lvcreate -L 300G -n webroot mygroup
或者
[root@hadoop2 ~]#lvcreate -l 100%FREE -n webroot mygroup

创建文件系统(使用mkfs.ext4命令在逻辑卷webroot上创建ext4文件系统)
[root@hadoop2 ~]#mkfs.ext4 /dev/mygroup/webroot

挂在分区到本地目录/data
[root@hadoop2 ~]#mkdir /data
[root@hadoop2 ~]#mount /dev/mygroup/webroot /data

配置修改fstab 开机自动挂载
[root@hadoop2 ~]#vim /etc/fstab

  #
  # /etc/fstab
  # Created by anaconda on Thu Aug 14 21:16:42 2014
  #
  # Accessible filesystems, by reference, are maintained under '/dev/disk'
  # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
  #
/dev/vda1            /                    ext4       noatime,acl,user_xattr 1 1
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
/dev/mygroup/webroot /data            ext4       defaults              0 0

:wq

保存重启测试
注意:
fstab一定要正确填写路径,一旦出错,可能无法正常启动.

可以在rc.local使用mount命令进行挂载

相关文章

  • 14-3高级文件系统管理之LVM

    逻辑卷管理器(LVM Logical Volume Manager ) dm: device mapper:将一个...

  • note_8.1_Linux磁盘使用以及文件系统管理

    Linux系统管理 磁盘分区及文件系统管理 RAID LVM 网络属性管理 程序包管理 sed and awk 进...

  • 磁盘管理

    1 文件管理 2 RAID 3 lvm

  • 高级文件系统管理

    磁盘配额 现在有这样一个场景,当我们将一个文件系统挂载一个目录下,大小为10个G,用户都可以在这个目录下创建和删除...

  • 高级文件系统管理

    配置配额系统 综述 •在内核中执行 •以文件系统为单位启用 •对不同组或者用户的策略不同 根据块或者节点进行限制 ...

  • 名词解释

    文件系统 LVM LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下...

  • Linux_127_lvm创建流程

    lvm的优点 lvm的文件系统可以跨越多个磁盘,分区大小不受磁盘容量限制 可以在系统运行中,直接动态扩容文件系统大...

  • 20170810 高级文件系统管理

    文件系统配额管理RAIDLVM逻辑卷管理器 一、文件系统配额管理 文件系统配额:在内核中启用,以文件系统为管理单位...

  • linux系统下的lvm管理

    lvm相关概念lvm的重点在于可以弹性调节文件系统的容量。lvm的做法是将几个物理的分区或磁盘通过软件组合成一块看...

  • OpenStack存储节点cinder服务安装问题汇总

    找不到分区 解决办法 修改/etc/lvm/lvm.conf配置文件 如果创建的物理卷为/dev/sdb1,加入:...

网友评论

      本文标题:14-3高级文件系统管理之LVM

      本文链接:https://www.haomeiwen.com/subject/jorgixtx.html