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

来源:互联网 发布:中行网银安全控件mac 编辑:程序博客网 时间:2024/06/06 23:59
第五单元  使用逻辑卷管理器管理灵活存储学习目标•查看 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=0data     =                       bsize=4096   blocks=76800, imaxpct=25         =                       sunit=0      swidth=0 blksnaming   =version 2              bsize=4096   ascii-ci=0 ftype=0log      =internal log           bsize=4096   blocks=853, version=2         =                       sectsz=512   sunit=0 blks, lazy-count=1realtime =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=0data     =                       bsize=4096   blocks=76800, imaxpct=25         =                       sunit=0      swidth=0 blksnaming   =version 2              bsize=4096   ascii-ci=0 ftype=0log      =internal               bsize=4096   blocks=853, version=2         =                       sectsz=512   sunit=0 blks, lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0data 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=0data     =                       bsize=4096   blocks=204800, imaxpct=25         =                       sunit=0      swidth=0 blksnaming   =version 2              bsize=4096   ascii-ci=0 ftype=0log      =internal               bsize=4096   blocks=853, version=2         =                       sectsz=512   sunit=0 blks, lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0data 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 /data7.创建快照以便于数据备份• 快照逻辑卷是 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

                                             
0 0
原创粉丝点击