lvm逻辑卷管理器
LVM:Logical Volume Manager 。LVM利用Linux内核的device-mapper功能来实现存储系统的虚拟化(系统分区独立于底层硬件)。 通过LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间,避免为正在使用的磁盘重新分区的麻烦、为调整分区而不得不移动其他分区的不便。 ? LVM的基本组成部分如下: 物理卷 (PV):一个可供存储LVM的块设备. 例如: 一块硬盘,一个MBR或GPT分区,一个回环文件,一个被内核映射的设备 (例如?dm-crypt).它包含一个特殊的LVM头。 卷组 (VG):物理卷的一个组,作为存放逻辑卷的容器。 PEs are allocated from a VG for a LV. 逻辑卷 (LV):"虚拟/逻辑卷"存放在一个卷组中并由物理块组成。是一个类似于物理设备的块设备,例如,你可以直接在它上面创建一个文件系统文件系统。 物理块 (PE):一个卷组中最小的连续区域(默认为4 MiB),多个物理块将被分配给一个逻辑卷。你可以把它看成物理卷的一部分,这部分可以被分配给一个逻辑卷。 ? 创建lvm步骤1、fdisk进行分区,并将磁盘分区格式调整成lvm。(如果是某个分区需要此步骤,如果是某块硬盘略过此步) ?????? #fdisk ????????????? t ????????????? 8e ? 2、创建pv物理卷(可以将某个分区划分为pv,也可以将某块硬盘化为pv) ?????? 查看pv命令 ??? ?????? # pvdisplay?????????? ?????? ?????? # pvs ? ?????? 创建pv步骤???????? ?????? ?????? ?????? # pvcreate /dev/sda3(某分区) /dev/sdb(某硬盘) ?
??? 3、创建vg卷组 ?????? 查看vg命令: ?????? ?????? # vgs ?????? ?????? # vgdisplay ? ?????? 创建vg步骤1: ?????? ?????? # vgcreate [-s 16M] VG_Name /dev/sda3 /dev/sdb?? ????????????? ?????? -s 16M #指定PE大小为16M,如不指定默认为4M ?????? 步骤2(扩展vg时用): ?????? ?????? # vgextend VG_Name /dev/sda4 ? 4、创建lv逻辑卷 ?????? 查看lv命令 ?????? ?????? # lvs ?????? ?????? # lvdisplay ? ?????? 创建lv步骤1: ?????? # lvcreate -L #[mMgGtT] -n LV_Name VG_Name ????????????? -l 3000 ???# 3000为pe的个数 ?????? ?????? -L 8G????? ? # 8G为实际容量容量,建议采用此方法 ?????? 步骤2:对创建好的lv逻辑卷生成文件系统 ?????? ?????? # mke2fs -t ext4 /dev/VG_Name/LV_Name ?????? 步骤3:将lv挂载 ?????? ?????? # mount /dev/VG_Name/LV_Name /media ? 5、扩大lv逻辑卷 方法一: ?????? 步骤1:扩大逻辑卷 ?????? ?????? # lvextend -L [+]#[mMgGtT] -n /dev/VG_Name/LV_Name??? ????????????? ?????? -l +100%FREE? ???????????????????????? #将所有剩余空间都进行扩展 ? ?????? 步骤2:将扩大的逻辑卷空间进行文件系统扩展调整 ? ? ? ? ? ? ? (1)ext系列扩展文件系统采用此命令 ?????? ?????? ?????? # resize2fs /dev/VG_Name/LV_Name ? ? ? ? ? ? ? (2)xfs系列扩展文件系统采用此命令,注意:要接挂载的目录/media ?????? ?????? ?????? # xfs_growfs /media???? ???? ? 方法二: ?????? 可通过一条命令直接扩展文件系统,替代步骤1和步骤2,包括ext,xfs? ?? ?????? ?????? # lvextend -r -L [+]#[mMgGtT] -n /dev/VG_Name/LV_Name?????? ? ? 6、缩减lv逻辑卷:只有ext系列支持缩减,xfs不支持缩减 ?????? 步骤一:取消挂载 ?????? ?????? # umount ?/dev/VG_Name/LV_Name ?????? 步骤2:检查文件系统完整性 ?????? ?????? # e2fsck -f /dev/VG_Name/LV_Name? ? ?????? 步骤3:缩减文件系统容量 ?????? ?????? # resize2fs /dev/VG_Name/LV_Name #[mMgGtT]????? ????? ?????? 步骤4:缩减逻辑卷容量 ?????? ?????? # lvreduce -L [-]#[mMgGtT] /dev/ VG_Name/LV_Name ?????? 步骤5:重新挂载缩减好的逻辑卷 ?????? ?????? # mount ?/dev/VG_Name/LV_Name ?/media ?? 7、快照:创建快照相当于针对某个逻辑卷lv创建了还原点。快照卷和原逻辑卷lv在同一个卷组vg中。 ?????? 需要查看vg中空间是不是够创建快照,创建快照也相当于创建一个lv ? 创建快照: ?????? # lvcreate? -L #[mGgGtT] -p r -s -n snapshot_lv_name /dev/VG_Name/LV_Name ????????????? -p r? # 设置快照为只读属性 ????????????? -s??? # 创建快照 ?????? 示例: ????????????? # lvcreate -L 1G -p r -s -n kuaizhao /dev/VG_Name/LV_Name??? ? ? ? ? ? ?注意:快照可以像一般的lv一样挂载,xfs的快照挂载的时候需要给mount加扩展选项 # mount -o nouuid,ro ? 快照还原: ?????? 步骤1:取消快照和逻辑卷的挂载 ?????? # umount /users ?????? 步骤2:将快照合并到源lv上,注意还原后快照自动删除 ?????? # lvconvert --merge /dev/VG_Name /kuaizhao ? lvm创建举例: 1) 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB,而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录 # pvcreate /dev/sdb /dev/sdc #创建pv # vgcreate -s 16M testvg /dev/sdb /dev/sdc #创建vg # lvcreate -L 5G -n testlv testvg #创建lv # mkfs.ext4 /dev/testvg/testlv #创建lv的文件系统 # mkdir /users #创建挂载目录 # mount /dev/testvg/testlv /users/ #挂载 2) 扩展testlv至7G,要求archlinux用户的文件不能丢失 # cp -a /etc/ /users/ #复制测试文件 # lvextend -r -L 7G -n /dev/testvg/testlv #扩展lv到7G 3) 收缩testlv至3G,要求archlinux用户的文件不能丢失 # umount /users/ #卸载 # e2fsck -f /dev/testvg/testlv #检查文件系统 # resize2fs /dev/testvg/testlv 3G #缩减文件系统 # lvreduce -L 3G /dev/testvg/testlv #缩减lv容量 # mount /dev/testvg/testlv /users/ #挂载 4) 对testlv创建快照,并尝试基于快照备份数据,验证快照的功能 # lvcreate -L 1G -p r -s -n kuaizhao /dev/testvg/testlv #创建快照 # rm /users/etc/passwd #删除文件测试 # umount /users/ # lvconvert --merge /dev/testvg/kuaizhao #快照恢复 # mount /dev/testvg/testlv /users/ #重新挂载恢复后的lv # ls /users/etc/passwd #查看文件是否恢复 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |