2-5. 使用逻辑卷管理器管理灵活存储

##使用逻辑卷管理器管理灵活存储


##学习目标

*查看 LVM 组件

*实施 LVM 存储

*增加文件系统

*添加磁盘

*创建快照作为备份


##1.识别 LVM 组件

2-5. 使用逻辑卷管理器管理灵活存储

##2.查看 LVM 定义

*1.物理分区或磁盘是 LVM 的第一构建块。这些可以是分区、完整磁盘、 RAID 集或 SAN磁盘

*2.物理卷是 LVM 所使用的基础“物理”存储。这通常是块设备 ,例如分区或完整磁盘。设备必须初始化为 LVM 物理卷 ,才能与 LVM 结合使用

*3.卷组是存储池,由一个或多个物理卷组成

*物理区块是物理卷中存储的小型数据区块 ,用作 LVM 存储的后端

*逻辑区块映射到物理区块 ,构成 LVM 存储的前端。默认情况下,每个逻辑区块映射到一个物理区块。启用某些选项将更改此映射。例如,镜像会导致每个逻辑区块映射到两个物理区块

*4.逻辑卷是逻辑区块组。逻辑卷可以像硬盘驱动器分区一样使用


##3.为什么使用逻辑卷

*逻辑卷和逻辑卷管理有助于更加轻松地管理磁盘空间。如果文件系统需要更多的空间,可以将其卷组的可用空间分配给逻辑卷,并且可以调整文件系统的大小。如果磁盘开始出现错误,可以通过卷组将替换磁盘注册为物理卷,并且逻辑卷的范围可迁移到新磁盘。


##4.使用命令行工具实施 LVM 存储

*准备物理卷

– disk 用于创建与 LVM 结合使用的新分区。在要与 LVM 结合使用的分区上 ,始终将

“类型”设置为“ 0x8e Linux LVM”

– pvcreate /dev/vdaN 用于初始化分区(或其他物理设备),使其作为物理卷与LVM 结合使用。直接在物理卷中创建用于存储 LVM 配置数据的表头

*创建卷组

– vgcreate vgname /dev/vdaN 将创建名为 vgname 且由物理卷 /dev/vdaN 组成的卷组。您可以在创建时指定其他物理卷(以空格隔开),也可以随后使用vgextend 添加新物理卷

*创建和使用新逻辑卷

– lvcreate -n lvname -L 2G vgname 从 vgname 上可用物理区块创建名为lvname 、容量为 2GB 的新逻辑卷

– mkfs -t ext4 /dev/vgname/lvname 将在新逻辑卷上创建 ext4 文件系统

– mkdir /data 建立所需目录作为挂载点

– 向 /etc/fstab 文件中添加一下条目:/dev/mapper/vgname-lvname /data ext4 defaults 1 2

– 运行 mount -a 可在 /etc/fstab 中挂载所有文件系统 ,包括您刚刚添加的条目

命令:pvcreate /dev/vdb1  ##用于初始化分区创建物理卷

命令:vgcreate vg0 /dev/vdb1  ##创建卷组

命令:lvcreate -L 500M -n lv0 vg0  ##创建和使用新逻辑卷

命令:mkfs.xfs /dev/vg0/lv0    ##格式化逻辑卷

2-5. 使用逻辑卷管理器管理灵活存储

2-5. 使用逻辑卷管理器管理灵活存储

##磁盘大小##
[[email protected] ~]# pvcreate /dev/vdb1  ##用于初始化分区创建物理卷

WARNING: xfs signature detected on /dev/vdb1 at offset 0. Wipe it? [y/n]y
  Wiping xfs signature on/dev/vdb1.
  Physical volume "/dev/vdb1"successfully created
[[email protected] ~]# vgcreate vg0 /dev/vdb1  ##创建卷组

  Volume group "vg0"successfully created
[[email protected] ~]# lvcreate -L 200M -n lv0 vg0  ##创建和使用新逻辑卷  Logical volume "lv0"created
[[email protected] ~]# mkfs.xfs /dev/vg0/lv0    ##格式化逻辑卷
meta-data=/dev/vg0/lv0          isize=256    agcount=4,agsize=12800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=51200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                  extsz=4096   blocks=0,rtextents=0
[[email protected] ~]# mkdir /weixindata/
[[email protected] ~]# mount /dev/vg0/lv0 /weixindata/
[[email protected] ~]# ll /dev/mapper/vg0-lv0
lrwxrwxrwx. 1 root root 7 Apr 22 03:49 /dev/mapper/vg0-lv0 -> ../dm-0


##5.查看 LVM 状态信息

*pvdisplay /dev/vdaN 将显示有关特定物理卷的信息

*vgdisplay vgname 将显示有关特定卷组的信息

*lvdisplay /dev/vgname/lvname 将显示有关特定逻辑卷的信息


##6.扩展逻辑卷和 xfs 文件系统

*验证已挂载文件系统 /data 的当前大小

– df -h /data

*验证“可用物理区块”是否够用

– vgdisplay vgname

*使用部分或全部可用区块扩展逻辑卷

– lvextend -l 128 /dev/vgname/lvname

*扩展在 /data 上挂载的关联文件系统

– xfs_growfs /dev/vgname/lvname

*验证已挂载文件系统 /data 的新的大小

– df -h /data


2-5. 使用逻辑卷管理器管理灵活存储

命令:lvextend -L 1500M /dev/vg0/lv0  ##扩展逻辑卷到1500M

命令:xfs_growfs /dev/vg0/lv0  ##验证已挂载文件系统的新的大小

2-5. 使用逻辑卷管理器管理灵活存储

命令:pvcreate /dev/vdb2 ##将/dev/vdb2添加到pv

2-5. 使用逻辑卷管理器管理灵活存储

命令:mkfs.ext4 /dev/vg0/lv0  ##将/dev/vg0/lv0格式化成ext4格式

2-5. 使用逻辑卷管理器管理灵活存储

2-5. 使用逻辑卷管理器管理灵活存储

命令:e2fsck -f /dev/vg0/lv0  ##检查文件正确性

命令:resize2fs /dev/vg0/lv0 300M  ##定义/dev/vg0/lv0大小为300M

2-5. 使用逻辑卷管理器管理灵活存储


##磁盘扩展##
[[email protected] ~]# lvextend -L 900M /dev/vg0/lv0  ##扩展逻辑卷到900M
  Extending logical volume lv0 to 900.00MiB
  Logical volume lv0 successfullyresized
 
[[email protected] ~]# xfs_growfs /dev/vg0/lv0  ##验证已挂载文件系统的新的大小

meta-data=/dev/mapper/vg0-lv0   isize=256    agcount=4,agsize=12800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=51200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                  extsz=4096   blocks=0,rtextents=0
data blocks changed from 51200 to 230400
[[email protected] ~]# lvextend -L 1500M /dev/vg0/lv0 ##扩展逻辑卷到1500M
  Extending logical volume lv0 to 1.46GiB
  Insufficient free space: 150 extentsneeded, but only 30 available
[[email protected] ~]# 


##磁盘压缩##

命令:lvreduce -L 200 /dev/vg0/lv0   ##缩减lv容量到200M

2-5. 使用逻辑卷管理器管理灵活存储
[[email protected] ~]# lvreduce -L 300 /dev/vg0/lv0   ##缩减lv容量

  WARNING: Reducing active and openlogical volume to 300.00 MiB
  THIS MAY DESTROY YOUR DATA (filesystemetc.)
Do you really want to reduce lv0? [y/n]: y
  Reducing logical volume lv0 to 300.00MiB
  Logical volume lv0 successfullyresized
[[email protected] ~]# pvmove /dev/vdb1 /dev/vdb2 ##将vdb1的数据转移到vdb2上  /dev/vdb1: Moved: 5.3%
  /dev/vdb1: Moved: 100.0%

命令:pvmove /dev/vdb1 /dev/vdb2 ##将vdb1的数据转移到vdb2上 2-5. 使用逻辑卷管理器管理灵活存储
命令:[[email protected] ~]# vgreduce vg0 /dev/vdb1  ##从vg0移除vdb1

  Removed "/dev/vdb1" fromvolume group "vg0"
[[email protected] ~]# pvremove /dev/vdb1    ##从pv中移除vdb1

  Labels on physical volume"/dev/vdb1" successfully wiped
[[email protected] ~]# 

 2-5. 使用逻辑卷管理器管理灵活存储

##7.创建快照以便于数据备份

**快照逻辑卷是 LVM 存储的另一项灵活功能。LVM 快照是临时保留所更改的逻辑卷的原始数据的逻辑卷。快照提供原始卷的静态视图,从而能够以一致状态备份其数据

**快照卷大小只需足以存储在它存在期间更改的数据即可

**如果数据更改量大于快照存储容量,则快照将自动变为不可用。(原始卷原封不动,仍然需要从卷组中手动解除挂载和删除不可用的快照。)


##8.创建和使用快照进行备份

**创建 /dev/vgname/lvname 的名为 snaplvname 、大小为 20M 的新快照卷

– lvcreate -s -n snaplv -L 20M /dev/vgname/lvname2-5. 使用逻辑卷管理器管理灵活存储

**如果备份软件要求,请挂载该快照,并使备份程序指向新挂载点

– mkdir /snapmount

– mount -o ro /dev/vgname/snaplv /snapmount

**验证快照逻辑卷的状态

– lvs /dev/vgname/snaplv

**不再使用快照时,请解除挂载并删除它

– umount /snapmount

– lvremove /dev/vgname/snaplv  ##删除快照

2-5. 使用逻辑卷管理器管理灵活存储

##快照##
[[email protected] ~]# touch /weixindata/file{1..10}
[[email protected] ~]# ls /weixindata/
file1   file2  file4  file6  file8 lost+found
file10  file3  file5 file7  file9
[[email protected] ~]# umount /weixindata/
[[email protected] ~]# cd /weixindata/
[[email protected] weixindata]# ls
[[email protected] weixindata]# lvcreate  -L 60M -n ccc -s /dev/vg0/lv0  ##创建快照 

 Logical volume "ccc"created
[[email protected] weixindata]# mount /dev/vg0/ccc /weixindata/
[[email protected] weixindata]# ls
[[email protected] weixindata]# cd
[[email protected] ~]# ls /weixindata/
file1   file2  file4 file6  file8  lost+found
file10  file3  file5 file7  file9

[[email protected] ~]# lvremove /dev/vg0/cdd   ##删除快照

Do you really want to remove active logical volume cdd? [y/n]: y
  Logical volume "cdd"successfully removed



本文转自cuijb0221 51CTO博客,原文链接:http://blog.51cto.com/cuijb/1919402