暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

VirtualBox虚拟机硬盘扩容及LVM命令介绍

陶老师运维笔记 2019-11-23
1421

VirtualBox虚拟机硬盘扩容及LVM命令介绍

1. 需求

上篇我创建了一台VirtualBox虚拟机,硬盘是20G,发现空间不够用,希望可以再扩容10G至30G。

2. VirtualBox相关步骤

VirtualBox是一款简单易用并且免费的开源虚拟机软件。体积小巧,操作简单。

virtualbox官网: https://www.virtualbox.org/

2.1 查看虚拟硬盘状态

查看虚拟硬盘状态是否是动态分配。

若是动态分配,继续,否则操作见https://www.cnblogs.com/xueweihan/p/5923937.html 。

2.2 备份虚拟硬盘(可略)

若数据很重要,最好先备份下*.vdi文件(本文中为CentOS6.vdi)。

  1. cp VirtualBoxVMs/CentOS6/CentOS6.vdi CentOS6.vdi.backup

2.3 为Virtualbox虚拟硬盘扩容

对虚拟硬盘扩容,执行如下* vboxmanage resize命令*。

  1. vboxmanage modifyhd "/Users/xx/VirtualBoxVMs/CentOS6/CentOS6.vdi" --resize 30720

2.4 Virtualbox调整结果

3. Gparted相关步骤

GParted是一个Linux系统的磁盘分区工具,适用于ubuntu、centos等系统,它采用X org,轻量级的Fluxbox窗口管理器,用它你可以方便的创建、删除分区,也可以调整分区的大小和移动分区的位置。

Gparted官网: http://gparted.org/

3.1 Gparted下载

虽然我们为虚拟硬盘扩容了,但guest OS并不能立即使用新增的空间.我们需要用一个Live CD/DVD镜像文件启动虚拟机.这个Live CD/DVD镜像文件要有GParted分区工具以便我们为guest OS的文件系统扩容。

安装:Gparted光盘下载:http://gparted.org/download.php

  1. wget https://downloads.sourceforge.net/gparted/gparted-live-1.0.0-5-amd64.iso .

3.2 用Gparted调整分区大小

把下载的iso文件从光驱启动,就可使用gparted了。可以看到虚拟硬盘还有没有分配的空间。扩容步骤: 调整大小-->把其拖动到最大值,应用更改,重启系统。

4. lvm 扩容步骤

经过Gparted 操作后可把未用磁盘识别了,但是df -hT等命令,显示的磁盘空间仍是不变的。咱们VirtualBox的虚机磁盘是用到LVM技术,还要执行相关命令。

4.1 介绍及概念

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。

官网: https://wiki.archlinux.org/index.php/LVM

LVM - 优点:   LVM通常用于装备大量磁盘的系统,但它同样适于仅有一、两块硬盘的小系统。

  • 使用很多硬盘的大系统中,使用LVM主要是方便管理、增加了系统的扩展性。

  • 硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;

  • 文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求;

  • 文件系统建立在LVM上,可以跨分区,方便使用;

4.1.1 基本概念

  1. 基本概念

  2. 1 物理卷-----PVPhysical Volume

  3. 物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。

  4. 2 卷组--------VGVolumne Group

  5. 卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

  6. 3 逻辑卷-----LVLogical Volume

  7. 逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。

  8. 4 物理区域--PEPhysical Extent

  9. 物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。

  10. 5 逻辑区域―LELogical Extent

  11. 逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。

  12. 6 卷组描述区域-----(Volume Group Descriptor Area

  13. 卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。

4.2 LVM命令

  1. 1 物理卷命令

  2. 一般维护命令:

  3. pvscan #在系统的所有磁盘中搜索已存在的物理卷

  4. pvdisplay 物理卷全路径名称 #用于显示指定物理卷的属性。

  5. pvdata 物理卷全路径名称 #用于显示物理卷的卷组描述区域信息,用于调试目的。

  6. pvchange Cx|--allocation {y|n} 物理卷全路径名 #用于改变物理卷的分配许可设置物理卷的创建与删除命令

  7. pvcreate 设备全路径名 #用于在磁盘或磁盘分区上创建物理卷初始化信息,以便对该物理卷进行逻辑卷管理。

  8. pvmove 源物理卷全路径[目的物理卷全路径名] #用于把某物理卷中的数据转移到同卷组中其他的特刊卷中。


  9. 2 卷组命令

  10. 一般维护命令

  11. vgscan #检测系统中所有磁盘

  12. vgck [卷组名] #用于检查卷组中卷组描述区域信息的一致性。

  13. vgdisplay [卷组名] #显示卷组的属性信息

  14. vgrename 原卷组名 新卷组名

  15. vgchange -a y|n [卷组名] #改变卷组的相应属性。是否可分配

  16. vgchange -l 最大逻辑卷数 #卷组可容纳最大逻辑卷数

  17. vgchange -x y|n [卷组名] #卷是否有效

  18. vgmknodes [卷组名|卷组路径] #用于建立(重新建立)已有卷组目录和其中的设备文件卷组配置的备份与恢复命令

  19. vgcfgbackup [卷组名] #把卷组中的VGDA信息备份到“/etc/lvmconf”目录中的文件

  20. vgcfgrestore -n 卷组名 物理卷全路命名 #从备份文件中得指定物理卷的信息卷组的建立与删除命令

  21. vgcreate 卷组名 物理卷全路径名[物理卷全路径名]

  22. vgmove 卷组名


  23. 卷组的扩充与缩小命令

  24. vgextend 卷组名 物理卷全路径名[物理卷全路径名]

  25. vgreduce 卷组名 物理卷全路径名[物理卷全路径名]


  26. 卷组的合并与拆分

  27. vgmerge 目的卷组名 源卷组名 #合并两个已经存在的卷组,要求两个卷组的物理区域大小相等且源卷组是非活动的。

  28. vgsplit 现有卷组 新卷组 物理卷全路径名[物理卷全路径名]


  29. 卷组的输入与输出命令

  30. vgexport 卷组名

  31. vgimport 卷组名 卷组中的物理卷[卷组中的物理卷]


  32. 3 逻辑卷命令

  33. 一般命令

  34. lvscan

  35. lvdisplay 逻辑卷全路径名[逻辑卷全路径名]

  36. lvrename 旧逻辑卷全路径名 新逻辑卷全路径名

  37. lvrename 卷组名 旧逻辑卷名 新逻辑卷名

  38. lvchange

  39. e2fsadm -L +|- 逻辑卷增减量 逻辑卷全路径名


  40. 逻辑卷的创建与删除命令

  41. lvcreate

  42. lvremove


  43. 逻辑卷的扩充与缩小命令

  44. lvextend -L|--size +逻辑卷大小增量 逻辑卷全路径名

  45. lvreduce q -L|--size +逻辑卷减小量 逻辑卷全路径名


  46. 4 逻辑卷管理命令

  47. lvmdiskscan #检测所有的SCSI、IDE等存储设备

  48. lvmchange -R|--reset #复位逻辑卷管理器

  49. lvmsadc [日志文件全路径名] #收信逻辑卷管理器读写统计信息,保存到日志文件中。

  50. lvmsar 日志文件全路径名 #从lvmsadc命令生成的日志文件中读取并报告逻辑卷管理器的读写统计信息。

4.3 LVM扩容实施

4.3.1 检查磁盘情况

经过Gparted 操作后可把未用磁盘识别了,但是df -hT等命令,显示的磁盘空间仍是不变的。

  1. $df -h

  2. Filesystem Size Used Avail Use% Mounted on

  3. /dev/mapper/vg_db01-lv_root

  4. 18G 15G 1.7G 90% /

  5. tmpfs 1.9G 76K 1.9G 1% /dev/shm

  6. /dev/sda1 477M 34M 419M 8% /boot


  7. $fdisk -l


  8. Disk /dev/sda: 31.5 GB, 31457280000 bytes

  9. 255 heads, 63 sectors/track, 3824 cylinders

  10. Units = cylinders of 16065 * 512 = 8225280 bytes

  11. Sector size (logical/physical): 512 bytes / 512 bytes

  12. I/O size (minimum/optimal): 512 bytes / 512 bytes

  13. Disk identifier: 0x000854c4


  14. Device Boot Start End Blocks Id System

  15. /dev/sda1 * 1 64 512000 83 Linux

  16. Partition 1 does not end on cylinder boundary.

  17. /dev/sda2 64 3825 30206976 8e Linux LVM


  18. Disk /dev/mapper/vg_db01-lv_root: 18.8 GB, 18798870528 bytes

  19. 255 heads, 63 sectors/track, 2285 cylinders

  20. Units = cylinders of 16065 * 512 = 8225280 bytes

  21. Sector size (logical/physical): 512 bytes / 512 bytes

  22. I/O size (minimum/optimal): 512 bytes / 512 bytes

  23. Disk identifier: 0x00000000



  24. Disk /dev/mapper/vg_db01-lv_swap: 2147 MB, 2147483648 bytes

  25. 255 heads, 63 sectors/track, 261 cylinders

  26. Units = cylinders of 16065 * 512 = 8225280 bytes


  27. $parted -l

  28. Model: ATA VBOX HARDDISK (scsi)

  29. Disk /dev/sda: 31.5GB

  30. Sector size (logical/physical): 512B/512B

  31. Partition Table: msdos


  32. Number Start End Size Type File system Flags

  33. 1 1049kB 525MB 524MB primary ext4 boot

  34. 2 525MB 31.5GB 30.9GB primary lvm



  35. Model: Linux device-mapper (linear) (dm)

  36. Disk /dev/mapper/vg_db01-lv_swap: 2147MB

  37. Sector size (logical/physical): 512B/512B

  38. Partition Table: loop


  39. Number Start End Size File system Flags

  40. 1 0.00B 2147MB 2147MB linux-swap(v1)



  41. Model: Linux device-mapper (linear) (dm)

  42. Disk /dev/mapper/vg_db01-lv_root: 18.8GB

  43. Sector size (logical/physical): 512B/512B

  44. Partition Table: loop


  45. Number Start End Size File system Flags

  46. 1 0.00B 18.8GB 18.8GB ext4

4.3.2 lvm 扩容操作

操作前:

LVM扩容:

  1. $lvdisplay

  2. $lvextend -L +9G /dev/mapper/vg_db01-lv_root

  3. $resize2fs /dev/mapper/vg_db01-lv_root

结果:

5. 虚拟机硬盘扩容结果

经过Virtualbox扩容,Gparted扩容操作,LVM修改等步骤。最终顺利完成虚拟机硬盘扩容

  1. $df -hT

  2. Filesystem Type Size Used Avail Use% Mounted on

  3. /dev/mapper/vg_db01-lv_root

  4. ext4 27G 15G 11G 59% /

  5. tmpfs tmpfs 1.9G 196K 1.9G 1% /dev/shm

  6. /dev/sda1 ext4 477M 34M 419M 8% /boot

参考:

  • 陶老师运维笔记- 微信公众号

  • https://wiki.archlinux.org/index.php/LVM

  • https://www.virtualbox.org/

  • Virtualbox虚拟硬盘扩容 https://www.cnblogs.com/xueweihan/p/5923937.html

  • gparted 调整Linux分区扩容 https://blog.51cto.com/liwenhn/1937411

  • lvm在线扩容步骤 https://www.cnblogs.com/fps2tao/p/8490592.html


最后修改时间:2019-12-17 12:28:31
文章转载自陶老师运维笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论