# *LVM* ## **pvcreate** ## 选项 ```info -f 强制创建物理卷,不需要用户确认 -u 指定设备的UUID -y 所有的问题都回答“yes” -Z 是否利用前4个扇区 ``` ### 参数 物理卷:指定要创建的物理卷对应的设备文件名。 ### 实例 查看磁盘信息: ``` [root@localhost ~]# fdisk -l Disk /dev/hda: 41.1 GB, 41174138880 bytes 255 heads, 63 sectors/track, 5005 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks id System /dev/hda1 * 1 13 104391 83 Linux /dev/hda2 14 1288 10241437+ 83 Linux /dev/hda3 1289 1925 5116702+ 83 Linux /dev/hda4 1926 5005 24740100 5 Extended /dev/hda5 1926 2052 1020096 82 Linux swap / Solaris /dev/hda6 2053 2235 1469916 8e Linux LVM /dev/hda7 2236 2418 1469916 8e Linux LVM /dev/hda8 2419 2601 1469916 8e Linux LVM /dev/hda9 2602 2784 1469916 8e Linux LVM ``` 检查有无 PV 在系统上,然后将`/dev/hda6`到`/dev/hda9`建立成为PV格式 ``` [root@localhost ~]# pvscan No matching physical volumes found #找不到任何的 PV 存在! ``` 将6-9分区转成pv,注意大括号的用途: ``` [root@localhost ~]# pvcreate /dev/hda{6,7,8,9} Physical volume "/dev/hda6" successfully created Physical volume "/dev/hda7" successfully created Physical volume "/dev/hda8" successfully created Physical volume "/dev/hda9" successfully created ``` 这就分別表示每个 PV 的信息与系统所有 PV 的信息: ``` [root@localhost ~]# pvscan PV /dev/hda6 lvm2 [1.40 GB] PV /dev/hda7 lvm2 [1.40 GB] PV /dev/hda8 lvm2 [1.40 GB] PV /dev/hda9 lvm2 [1.40 GB] Total: 4 [5.61 GB] / in use: 0 [0 ] / in no VG: 4 [5.61 GB] ``` 更详细的列示出系统上面每个 PV 信息: ``` [root@localhost ~]# pvdisplay "/dev/hda6" is a new physical volume of "1.40 GB" --- NEW Physical volume --- PV Name /dev/hda6 #实际的 partition 分区名称 VG Name #因为尚未分配出去,所以空白! PV Size 1.40 GB #就是容量说明 Allocatable NO #是否已被分配,结果是 NO PE Size (KByte) 0 #在此 PV 內的 PE 大小 Total PE 0 #共分割出几个 PE free PE 0 #沒被 LV 用掉的 PE Allocated PE 0 #尚可分配出去的 PE 数量 PV UUID Z13Jk5-RCls-UJ8B-HzDa-Gesn-atku-rf2biN ....(底下省略).... ``` 删除物理卷: ``` [root@localhost ~]# pvremove /dev/sdb2 Labels on physical volume "/dev/sdb2" successfully wiped ``` 修改物理卷属性: ``` [root@localhost ~]# pvchange -x n /dev/sdb1 #禁止分配指定物理卷上的PE Physical volume "/dev/sdb1" changed 1 physical volume changed / 0 physical volumes not changed ``` **pvscan命令** 会扫描系统中连接的所有硬盘,列出找到的物理卷列表。使用pvscan命令的`-n`选项可以显示硬盘中的不属于任何卷组的物理卷,这些物理卷是未被使用的。 ### 语法 ``` pvscan(选项) ``` ### 选项 ``` -d:调试模式; -e:仅显示属于输出卷组的物理卷; -n:仅显示不属于任何卷组的物理卷; -s:短格式输出; -u:显示UUID。 ``` ### 实例 使用pvscan命令扫描当前系统中所有硬盘的物理卷,在命令行中输入下面的命令: ``` [root@localhost ~]# pvscan #扫描所有硬盘上的物理卷 ``` 输出信息如下: ``` PV /dev/sdb1 lvm2 [101.94 MB] PV /dev/sdb2 lvm2 [101.98 MB] Total: 2 [203.92 MB] / in use: 0 [0 ] / in no VG: 2 [203.92 MB] ``` 说明:本例中,输出了两个物理卷,它们不属于任何卷组,是可被利用的物理卷。 **pvdisplay命令** 用于显示物理卷的属性。pvdisplay命令显示的物理卷信息包括:物理卷名称、所属的卷组、物理卷大小、PE大小、总PE数、可用PE数、已分配的PE数和UUID。 ## 选项 ```info -s 以短格式输出; -m 显示PE到LE的映射。 ``` ## LVM(逻辑卷管理) ```sh 概念介绍: LVM (logical volume Manager)逻辑卷管理通过将底层物理硬盘抽象封装起来,以逻辑卷的形式表现给上层系统,逻辑卷的大小可以动态调整的而且不会丢失数据。新加入的硬盘也不会改变现有上层的逻辑卷; LVM特点: 1.作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性; 2.LVM屏蔽了底层磁盘布局,便于动态的调整磁盘空间大小; 相关概念: PE(物理拓展单元) #逻辑卷空间管理的基本单位,默认是4M的大小; PV 物理卷 VG 卷组 LV 逻辑卷 LVM原理解析: 1.物理磁盘被格式化为PV,空间被分为一个个的PE 2.不同的PV加入同一个VG,不同的PV的PE全部进入VG的PE池; 3.LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同物理磁盘; 4.LV格式化完成后挂载就可以使用了 5.LV的扩充缩减实际上就是增加了或者减少了组成该LV的PE的数量。其过程不会丢失数据信息; ``` FAQ:(Frequently Asked Question) 1.LV的大小应该由PE大小和PE数量决定;默认PE为4M大小的情况下一个逻辑卷最大可以支持256G 2.逻辑卷可以动态扩充的大小取决于卷组的大小 3.PE的大小最终影响 逻辑卷的最大大小,逻辑卷的大小一定是PE的整数倍 5.一个逻辑卷只能属于一个卷组 ## LVM拉伸逻辑卷 ```sh (可在线扩容,无需卸载逻辑卷) vgdisplay或vgs # 确保VG中有足够的空闲空间,通过以下指令查询即可 lvextend -L +5G /dev/vg01/lv01 # 扩充逻辑卷,增大5G的大小 resize2fs /dev/vg01/lv01 # 更新文件系统(检测磁盘的大小) df -hT # 查看更新后文件系统 备注:在没有使用命令resize2fs命令之前,使用df -hT 命令看到逻辑卷的大小并没有变化,为什么? 逻辑卷是底层的东西,操作系统要使用底层的空间需要创建文件系统,创建文件系统(格式化操作)的时候大小就固定下来,因此逻辑卷的大小也是固定的。在拉伸逻辑卷空间时,并没有更新文件系统,所以要要执行更新文件系统的操作,要操作系统识别固定的大小; ``` ## LVM缩小逻辑卷 ```sh (在实际运作当中很少使用且这种操作及其危险,容易导致数据丢失)备注:逻辑卷的缩小必须是离线操作,要卸载逻辑卷; umount /dev/vg01/lv01 # 卸载已经挂载的逻辑卷 e2fsck -f /dev/vg01/lv01 # 强制检测文件系统信息 resize2fs /dev/vg01/lv01 10G # 缩小文件系统(一般都有提示信息)指定逻辑卷大小为10G大小; lvreduce -L 10G /dev/vg01/lv01 # 缩小LV lvdisplay; lvs ; lvscan # 查看缩小后的LV mount /dev/vg01/lv01 /mnt # 挂载 切记:严格按照顺序执行命令。先缩小文件系统,后缩小底层空间 ``` ## LVM拉伸卷组 ```sh pvcreate /dev/sdd # 创建新的物理卷 vgextend vg01 /dev/sdd # 向vg01卷组中添加物理卷/dev/sdd vgs, vgdisplay # 查看卷组信息 ``` ## LVM缩小卷组 ```sh vgreduce vg01 /dev/sdd # 将一个PV从指定卷组中移除 vgdisplay或vgs # 查看缩小后的卷组大小 ``` **pvchange命令** 允许管理员改变物理卷的分配许可。如果物理卷出现故障,可以使用pvchange命令禁止分配物理卷上的PE。 ### 语法 ``` pvchange(选项)(参数) ``` ### 选项 ``` -u:生成新的UUID; -x:是否允许分配PE。 ``` ### 参数 物理卷:指定要修改属性的物理卷所对应的设备文件。 ### 实例 使用pvchange命令禁止分配指定物理卷上的PE。在命令行中输入下面的命令: ``` pvchange -x n /dev/sdb1 #禁止分配"/dev/sdb1"上的PE ``` 输出信息如下: ``` Physical volume "/dev/sdb1" changed 1 physical volume changed / 0 physical volumes not changed ``` **pvremove命令** 用于删除一个存在的物理卷。使用pvremove指令删除物理卷时,它将LVM分区上的物理卷信息删除,使其不再被视为一个物理卷。 ### 语法 ``` pvremove(选项)(参数) ``` ### 选项 ``` -d:调试模式; -f:强制删除; -y:对提问回答“yes”。 ``` ### 参数 物理卷:指定要删除的物理卷对应的设备文件名。 ### 实例 使用pvremove指令删除物理卷`/dev/sdb2`。在命令行中输入下面的命令: ``` pvremove /dev/sdb2 #删除物理卷 Labels on physical volume "/dev/sdb2" successfully wiped ``` **pvdisplay命令** 用于显示物理卷的属性。pvdisplay命令显示的物理卷信息包括:物理卷名称、所属的卷组、物理卷大小、PE大小、总PE数、可用PE数、已分配的PE数和UUID。 ## 选项 ```info -s 以短格式输出; -m 显示PE到LE的映射。 ``` ## LVM(逻辑卷管理) ```sh 概念介绍: LVM (logical volume Manager)逻辑卷管理通过将底层物理硬盘抽象封装起来,以逻辑卷的形式表现给上层系统,逻辑卷的大小可以动态调整的而且不会丢失数据。新加入的硬盘也不会改变现有上层的逻辑卷; LVM特点: 1.作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性; 2.LVM屏蔽了底层磁盘布局,便于动态的调整磁盘空间大小; 相关概念: PE(物理拓展单元) #逻辑卷空间管理的基本单位,默认是4M的大小; PV 物理卷 VG 卷组 LV 逻辑卷 LVM原理解析: 1.物理磁盘被格式化为PV,空间被分为一个个的PE 2.不同的PV加入同一个VG,不同的PV的PE全部进入VG的PE池; 3.LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同物理磁盘; 4.LV格式化完成后挂载就可以使用了 5.LV的扩充缩减实际上就是增加了或者减少了组成该LV的PE的数量。其过程不会丢失数据信息; ``` FAQ:(Frequently Asked Question) 1.LV的大小应该由PE大小和PE数量决定;默认PE为4M大小的情况下一个逻辑卷最大可以支持256G 2.逻辑卷可以动态扩充的大小取决于卷组的大小 3.PE的大小最终影响 逻辑卷的最大大小,逻辑卷的大小一定是PE的整数倍 5.一个逻辑卷只能属于一个卷组 ## LVM拉伸逻辑卷 ```sh (可在线扩容,无需卸载逻辑卷) vgdisplay或vgs # 确保VG中有足够的空闲空间,通过以下指令查询即可 lvextend -L +5G /dev/vg01/lv01 # 扩充逻辑卷,增大5G的大小 resize2fs /dev/vg01/lv01 # 更新文件系统(检测磁盘的大小) df -hT # 查看更新后文件系统 备注:在没有使用命令resize2fs命令之前,使用df -hT 命令看到逻辑卷的大小并没有变化,为什么? 逻辑卷是底层的东西,操作系统要使用底层的空间需要创建文件系统,创建文件系统(格式化操作)的时候大小就固定下来,因此逻辑卷的大小也是固定的。在拉伸逻辑卷空间时,并没有更新文件系统,所以要要执行更新文件系统的操作,要操作系统识别固定的大小; ``` ## LVM缩小逻辑卷 ```sh (在实际运作当中很少使用且这种操作及其危险,容易导致数据丢失)备注:逻辑卷的缩小必须是离线操作,要卸载逻辑卷; umount /dev/vg01/lv01 # 卸载已经挂载的逻辑卷 e2fsck -f /dev/vg01/lv01 # 强制检测文件系统信息 resize2fs /dev/vg01/lv01 10G # 缩小文件系统(一般都有提示信息)指定逻辑卷大小为10G大小; lvreduce -L 10G /dev/vg01/lv01 # 缩小LV lvdisplay; lvs ; lvscan # 查看缩小后的LV mount /dev/vg01/lv01 /mnt # 挂载 切记:严格按照顺序执行命令。先缩小文件系统,后缩小底层空间 ``` ## LVM拉伸卷组 ```sh pvcreate /dev/sdd # 创建新的物理卷 vgextend vg01 /dev/sdd # 向vg01卷组中添加物理卷/dev/sdd vgs, vgdisplay # 查看卷组信息 ``` ## LVM缩小卷组 ```sh vgreduce vg01 /dev/sdd # 将一个PV从指定卷组中移除 vgdisplay或vgs # 查看缩小后的卷组大小 ```