liunx初级学习之使用逻辑卷管理器灵活管理2-5

第五单元  使用逻辑卷管理器管理灵活存储
学习目标•查看 LVM 组件•实施 LVM 存储•增加文件系统•添加磁盘•创建快照作为备份
1.识别 LVM 组件
2.查看 LVM 定义
• 物理分区或磁盘是 LVM 的第一构建块。这些可以是分区、完整磁盘、 RAID 集或 SAN 磁盘
• 物理卷是 LVM 所使用的基础 “ 物理 ” 存储。这通常是块设备 ,例如分区或完整磁盘。设备必须初始化为 LVM 物理卷 , 才能与 LVM 结合使用
• 卷组是存储池 , 由一个或多个物理卷组成
• 物理区块是物理卷中存储的小型数据区块 , 用作 LVM 存储的后端
• 逻辑区块映射到物理区块 , 构成 LVM 存储的前端。默认情况下 , 每个逻辑区块映射到一个物理区块。启用某些选项将更改此映射。例如 , 镜像会导致每个逻辑区块映射到两个物理区块
• 逻辑卷是逻辑区块组。逻辑卷可以像硬盘驱动器分区一样使用
3.为什么使用逻辑卷
• 逻辑卷和逻辑卷管理有助于更加轻松地管理磁盘空间。如果文件系统需要更多的空间 ,
可以将其卷组的可用空间分配给逻辑卷 , 并且可以调整文件系统的大小。如果磁盘开始
出现错误 , 可以通过卷组将替换磁盘注册为物理卷 , 并且逻辑卷的范围可迁移到新磁盘
4.使用命令行工具实施 LVM 存储
• 准备物理卷
– disk 用于创建与 LVM 结合使用的新分区。在要与 LVM 结合使用的分区上 , 始终将
“ 类型 ” 设置为 “ 0x8e Linux LVM”
– pvcreate /dev/vdaN 用于初始化分区 ( 或其他物理设备 ), 使其作为物理卷与 LVM 结
合使用。直接在物理卷中创建用于存储 LVM 配置数据的表头

 [root@localhost ~]# fdisk /dev/vdb   ##建立vdb1分区并将格式改为lvm
[root@localhost ~]# partprobe        ##更新
[root@localhost ~]# pvcreate  /dev/vdb1##准备物理卷
  Physical volume "/dev/vdb1" successfully created

• 创建卷组
– vgcreate vgname /dev/vdaN 将创建名为 vgname 且由物理卷 /dev/vdaN 组成的卷组。您可以在创建时指定其他物理卷 ( 以空格隔开 ), 也可以随后使用
 vgextend 添加新物理卷
[root@localhost ~]# vgcreate vg0 /dev/vdb1## 创建卷组
  Volume group "vg0" successfully created
• 创建和使用新逻辑卷
– lvcreate  -L 2G -n lvname vgname 从 vgname 上可用物理区块创建名为 lvname 、容量为2GB 的新逻辑卷
[root@localhost ~]# lvcreate -L 300M -n lv0 vg0   ##从vg0上可用物理区块创建名为lv0,容量300M的新逻辑卷
  Logical volume "lv0" created
[root@localhost ~]# mkfs.xfs  /dev/vg0/lv0   
meta-data=/dev/vg0/lv0           isize=256    agcount=4, agsize=19200 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=76800, 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

 [root@localhost ~]# lvextend -L 800M /dev/vg0/lv0   ##可用区块扩展逻辑卷  -L指大小     lv0的大小扩展到800M
  Extending logical volume lv0 to 800.00 MiB
  Logical volume lv0 successfully resized
[root@localhost ~]# xfs_growfs /dev/vg0/lv0 ##对区块扩展后不会立即生成,刷新分区信息并查看
meta-data=/dev/mapper/vg0-lv0    isize=256    agcount=4, agsize=19200 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=76800, 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 76800 to 204800

[root@localhost ~]# lvextend -L 900M /dev/vg0/lv0 
  Extending logical volume lv0 to 900.00 MiB
  Logical volume lv0 successfully resized
[root@localhost ~]# xfs_growfs /dev/vg0/lv0 
meta-data=/dev/mapper/vg0-lv0    isize=256    agcount=11, agsize=19200 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=204800, 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 204800 to 230400

 [root@localhost ~]# pvcreate  /dev/vdb2  ##创建物理卷
  Physical volume "/dev/vdb2" successfully created

 [root@localhost ~]# vgextend  vg0 /dev/vdb2  ##扩展逻辑卷
  Volume group "vg0" successfully extended
 
[root@localhost ~]# lvextend -L 1500M /dev/vg0/lv0  ##扩展逻辑卷
 Extending logical volume lv0 to 1.46 GiB
  Logical volume lv0 successfully resized

  [root@localhost ~]# mkfs.ext4 /dev/vg0/lv0##将在新逻辑卷上创建 ext4 文件系统 [root@localhost~]# e2fsck -f /dev/vg0/lv0 ##检测使用大小e2fsck 1.42.9 (28-Dec-2013)Pass 1: Checking inodes, blocks, and sizesPass 2: Checking directory structurePass 3: Checking directory connectivityPass 4: Checking reference countsPass 5: Checking group summary information/dev/vg0/lv0: 11/96000 files (9.1% non-contiguous), 15356/384000 blocks [root@localhost~]# resize2fs /dev/vg0/lv0 200M ##将lv0的容量扩展到整个文件系统resize2fs 1.42.9 (28-Dec-2013)Resizing the filesystem on /dev/vg0/lv0 to 51200 (4k) blocks.The filesystem on /dev/vg0/lv0 is now 51200 blocks long.[root@localhost~]# mount /dev/vg0/lv0 /weixindata[root@localhost~]# lvreduce -L 300 /dev/vg0/lv0 ##vg压缩到300M WARNING: Reducing active and open logical volume to 300.00 MiB THIS MAY DESTROY YOUR DATA (filesystem etc.)Do you really want to reduce lv0? [y/n]: y Reducing logical volume lv0 to 300.00 MiB Logical volume lv0 successfully resized

 [root@localhost~]# pvmove /dev/vdb1 /dev/vdb2 ##将vdb1的内容哦移动到vdb2 /dev/vdb1: Moved: 5.3% /dev/vdb1: Moved: 100.0%[root@localhost~]# vgreduce vg0 /dev/vdb1 ##删除vg中的vdb1 Removed "/dev/vdb1" from volume group "vg0"[root@localhost~]# pvremove /dev/vdb1 ##删除pv中的vdb1 Labels on physical volume "/dev/vdb1" successfully wiped 
 – mkfs -t ext4 /dev/vgname/lvname 将在新逻辑卷上创建 ext4 文件系统
– mkdir /data 建立所需目录作为挂载点
– 向 /etc/fstab 文件中添加一下条目:/dev/mapper/vgname-lvname /data ext4 defaults 1 2
– 运行 mount -a 可在 /etc/fstab 中挂载所有文件系统 , 包括您刚刚添加的条目
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
7.创建快照以便于数据备份
• 快照逻辑卷是 LVM 存储的另一项灵活功能。LVM 快照是临时保留所更改的逻辑卷的原始数据的逻辑卷。快照提供原始卷的静态视图 , 从而能够以一致状态备份其数据
• 快照卷大小只需足以存储在它存在期间更改的数据即可
• 如果数据更改量大于快照存储容量 , 则快照将自动变为不可用。 ( 原始卷原封不动 ,仍然需要从卷组中手动解除挂载和删除不可用的快照。 )
8.创建和使用快照进行备份
• 创建 /dev/vgname/lvname 的名为 snaplvname 、大小为 20M 的新快照卷
– lvcreate -s -n snaplv -L 20M /dev/vgname/lvname
• 如果备份软件要求 , 请挂载该快照 , 并使备份程序指向新挂载点
– mkdir /snapmount
– mount -o ro /dev/vgname/snaplv /snapmount
• 验证快照逻辑卷的状态– lvs /dev/vgname/snaplv
• 不再使用快照时 , 请解除挂载并删除它– umount /snapmount
– lvremove /dev/vgname/snaplv
快照[root@localhost~]# touch /weixindata/file{1..10}[root@localhost~]# ls /weixindatafile1 file2 file4 file6 file8 lost+foundfile10 file3 file5 file7 file9[root@localhost~]# umount /weixindata[root@localhost~]# lvcreate -L 50M -n lvsnapshot -s /dev/vg0/lv0 ##-n设置名字,-s快照的真区 Rounding up size to full physical extent 52.00 MiB Logical volume "lvsnapshot" created

 [root@localhost~]# mount /dev/vg0/lvsnapshot /weixindata[root@localhost~]# cd /weixindata[root@localhost weixindata]# lsfile1 file2 file4 file6 file8 lost+foundfile10 file3 file5 file7 file9[root@localhost weixindata]# rm -rf *

 [root@localhost weixindata]# umount /weixindataumount: /weixindata: target is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))[root@localhost weixindata]# cd [root@localhost ~]# umount /weixindata[root@localhost ~]# lvremove /dev/vg0/lvsnapshot ##删除快照文件Do you really want to remove active logical volume lvsnapshot? [y/n]: y Logical volume "lvsnapshot" successfully removed[root@localhost ~]# lvcreate -L 50M -n lvsnapshot -s /dev/vg0/lv0 ##建立新的快照文件 Rounding up size to full physical extent 52.00 MiB Logical volume "lvsnapshot" created[root@localhost ~]# mount /dev/vg0/lvsnapshot /weixindata[root@localhost ~]# cd /weixindata[root@localhost weixindata]# lsfile1 file2 file4 file6 file8 lost+foundfile10 file3 file5 file7 file9 删除lvm[root@localhost ~]# umount /weixindata[root@localhost ~]# lvremove /dev/vg0/lvsnapshot ##删除快照Do you really want to remove active logical volume lvsnapshot? [y/n]: y Logical volume "lvsnapshot" successfully removed[root@localhost ~]# lvremove /dev/vg0/lv0 ##删除lvDo you really want to remove active logical volume lv0? [y/n]: \y Logical volume "lv0" successfully removed[root@localhost ~]# vgremove vg0 ##删除vg Volume group "vg0" successfully removed[root@localhost ~]# pvremove /dev/vdb2 ##解除vdb2 Labels on physical volume "/dev/vdb2" successfully wiped



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值