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)。
cp VirtualBoxVMs/CentOS6/CentOS6.vdi CentOS6.vdi.backup
2.3 为Virtualbox虚拟硬盘扩容
对虚拟硬盘扩容,执行如下* vboxmanage resize命令*。
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
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、 物理卷-----PV(Physical Volume)
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。
2、 卷组--------VG(Volumne Group)
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
3、 逻辑卷-----LV(Logical Volume)
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。
4、 物理区域--PE(Physical Extent)
物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。
5、 逻辑区域―LE(Logical Extent)
逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
6、 卷组描述区域-----(Volume Group Descriptor Area)
卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。
4.2 LVM命令
1、 物理卷命令
一般维护命令:
pvscan #在系统的所有磁盘中搜索已存在的物理卷
pvdisplay 物理卷全路径名称 #用于显示指定物理卷的属性。
pvdata 物理卷全路径名称 #用于显示物理卷的卷组描述区域信息,用于调试目的。
pvchange Cx|--allocation {y|n} 物理卷全路径名 #用于改变物理卷的分配许可设置物理卷的创建与删除命令
pvcreate 设备全路径名 #用于在磁盘或磁盘分区上创建物理卷初始化信息,以便对该物理卷进行逻辑卷管理。
pvmove 源物理卷全路径[目的物理卷全路径名] #用于把某物理卷中的数据转移到同卷组中其他的特刊卷中。
2、 卷组命令
一般维护命令
vgscan #检测系统中所有磁盘
vgck [卷组名] #用于检查卷组中卷组描述区域信息的一致性。
vgdisplay [卷组名] #显示卷组的属性信息
vgrename 原卷组名 新卷组名
vgchange -a y|n [卷组名] #改变卷组的相应属性。是否可分配
vgchange -l 最大逻辑卷数 #卷组可容纳最大逻辑卷数
vgchange -x y|n [卷组名] #卷是否有效
vgmknodes [卷组名|卷组路径] #用于建立(重新建立)已有卷组目录和其中的设备文件卷组配置的备份与恢复命令
vgcfgbackup [卷组名] #把卷组中的VGDA信息备份到“/etc/lvmconf”目录中的文件
vgcfgrestore -n 卷组名 物理卷全路命名 #从备份文件中得指定物理卷的信息卷组的建立与删除命令
vgcreate 卷组名 物理卷全路径名[物理卷全路径名]
vgmove 卷组名
卷组的扩充与缩小命令
vgextend 卷组名 物理卷全路径名[物理卷全路径名]
vgreduce 卷组名 物理卷全路径名[物理卷全路径名]
卷组的合并与拆分
vgmerge 目的卷组名 源卷组名 #合并两个已经存在的卷组,要求两个卷组的物理区域大小相等且源卷组是非活动的。
vgsplit 现有卷组 新卷组 物理卷全路径名[物理卷全路径名]
卷组的输入与输出命令
vgexport 卷组名
vgimport 卷组名 卷组中的物理卷[卷组中的物理卷]
3、 逻辑卷命令
一般命令
lvscan
lvdisplay 逻辑卷全路径名[逻辑卷全路径名]
lvrename 旧逻辑卷全路径名 新逻辑卷全路径名
lvrename 卷组名 旧逻辑卷名 新逻辑卷名
lvchange
e2fsadm -L +|- 逻辑卷增减量 逻辑卷全路径名
逻辑卷的创建与删除命令
lvcreate
lvremove
逻辑卷的扩充与缩小命令
lvextend -L|--size +逻辑卷大小增量 逻辑卷全路径名
lvreduce q -L|--size +逻辑卷减小量 逻辑卷全路径名
4、 逻辑卷管理命令
lvmdiskscan #检测所有的SCSI、IDE等存储设备
lvmchange -R|--reset #复位逻辑卷管理器
lvmsadc [日志文件全路径名] #收信逻辑卷管理器读写统计信息,保存到日志文件中。
lvmsar 日志文件全路径名 #从lvmsadc命令生成的日志文件中读取并报告逻辑卷管理器的读写统计信息。
4.3 LVM扩容实施
4.3.1 检查磁盘情况
经过Gparted 操作后可把未用磁盘识别了,但是df -hT等命令,显示的磁盘空间仍是不变的。
$df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_db01-lv_root
18G 15G 1.7G 90% /
tmpfs 1.9G 76K 1.9G 1% /dev/shm
/dev/sda1 477M 34M 419M 8% /boot
$fdisk -l
Disk /dev/sda: 31.5 GB, 31457280000 bytes
255 heads, 63 sectors/track, 3824 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000854c4
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 3825 30206976 8e Linux LVM
Disk /dev/mapper/vg_db01-lv_root: 18.8 GB, 18798870528 bytes
255 heads, 63 sectors/track, 2285 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_db01-lv_swap: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
$parted -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 31.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 525MB 524MB primary ext4 boot
2 525MB 31.5GB 30.9GB primary lvm
Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/vg_db01-lv_swap: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Number Start End Size File system Flags
1 0.00B 2147MB 2147MB linux-swap(v1)
Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/vg_db01-lv_root: 18.8GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Number Start End Size File system Flags
1 0.00B 18.8GB 18.8GB ext4
4.3.2 lvm 扩容操作
操作前:
LVM扩容:
$lvdisplay
$lvextend -L +9G /dev/mapper/vg_db01-lv_root
$resize2fs /dev/mapper/vg_db01-lv_root
结果:
5. 虚拟机硬盘扩容结果
经过Virtualbox扩容,Gparted扩容操作,LVM修改等步骤。最终顺利完成虚拟机硬盘扩容。
$df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_db01-lv_root
ext4 27G 15G 11G 59% /
tmpfs tmpfs 1.9G 196K 1.9G 1% /dev/shm
/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