今天上了存储,之前有些项目LINUX虚拟机需要扩容,所以做了下测试,希望对大家有用。
1、首先需要做在线硬盘扩容的话,需要保证虚拟机没有快照。
第一种方法:在原有的硬盘上直接改变磁盘置备的大小
改之前:25G
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 25G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 15G 0 part
│ ├─rhel-root 253:0 0 66.4G 0 lvm /
│ └─rhel-swap 253:1 0 1.6G 0 lvm [SWAP]
└─sda3 8:3 0 9G 0 part
└─rhel-root 253:0 0 66.4G 0 lvm /
改之后:40G
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 25G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 15G 0 part
│ ├─rhel-root 253:0 0 66.4G 0 lvm /
│ └─rhel-swap 253:1 0 1.6G 0 lvm [SWAP]
└─sda3 8:3 0 9G 0 part
└─rhel-root 253:0 0 66.4G 0 lvm /
通过partprobe命令也无法识别出来
重启之后,识别出来40G空间
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 15G 0 part
│ ├─rhel-root 253:0 0 66.4G 0 lvm /
│ └─rhel-swap 253:1 0 1.6G 0 lvm [SWAP]
└─sda3 8:3 0 9G 0 part
└─rhel-root 253:0 0 66.4G 0 lvm /
sda1+sda2+sda3=25G,所以sda还有15G可以用
[root@localhost ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): p
已选择分区 4
起始 扇区 (52428800-83886079,默认为 52428800):
将使用默认值 52428800
Last 扇区, +扇区 or +size{K,M,G} (52428800-83886079,默认为 83886079):
将使用默认值 83886079
分区 4 已设置为 Linux 类型,大小设为 15 GiB
命令(输入 m 获取帮助):t
分区号 (1-4,默认 4):8e
分区号 (1-4,默认 4):
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@localhost ~]#
[root@localhost ~]# partprobe
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 15G 0 part
│ ├─rhel-root 253:0 0 66.4G 0 lvm /
│ └─rhel-swap 253:1 0 1.6G 0 lvm [SWAP]
├─sda3 8:3 0 9G 0 part
│ └─rhel-root 253:0 0 66.4G 0 lvm /
└─sda4 8:4 0 15G 0 part
将sda4加进去
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
rhel 5 2 0 wz--n- 73.98g 5.98g
[root@localhost ~]# lvm
lvm> pvcreate /dev/sda4
Physical volume "/dev/sda4" successfully created.
lvm> vgextend rhel /dev/sda4
Volume group "rhel" successfully extended
lvm> lvdisplay
--- Logical volume ---
LV Path /dev/rhel/swap
LV Name swap
VG Name rhel
LV UUID IIuZXp-olio-8mnv-zOYn-hm9a-CjWb-89C75z
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-04-17 16:33:20 +0800
LV Status available
# open 2
LV Size 1.60 GiB
Current LE 410
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/rhel/root
LV Name root
VG Name rhel
LV UUID 8PMjP0-HifX-qHKj-CqN2-dnnd-Ln0N-9Th9bK
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-04-17 16:33:21 +0800
LV Status available
# open 1
LV Size 66.39 GiB
Current LE 16997
Segments 5
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
lvm> lvextend -L +15G /dev/rhel/root
Size of logical volume rhel/root changed from 66.39 GiB (16997 extents) to 81.39 GiB (20837 extents).
Logical volume rhel/root successfully resized.
lvm> EXIT
No such command 'EXIT'. Try 'help'.
lvm> exit
Exiting.
[root@localhost ~]# xfs_growfs /dev/rhel/root
meta-data=/dev/mapper/rhel-root isize=512 agcount=18, agsize=877824 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=15045632, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 15045632 to 21337088
这里是redhat7,文件系统是xfs,所以用命令xfs_growfs 如果是redhat6,ext4的文件系统,则是resize2fs命令
扩容后最终
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 15G 0 part
│ ├─rhel-root 253:0 0 81.4G 0 lvm /
│ └─rhel-swap 253:1 0 1.6G 0 lvm [SWAP]
├─sda3 8:3 0 9G 0 part
│ └─rhel-root 253:0 0 81.4G 0 lvm /
└─sda4 8:4 0 15G 0 part
└─rhel-root 253:0 0 81.4G 0 lvm /
缺点,需要重启一次
第二种方法:直接添加硬盘,而不是在原有的上面只接更改大小
添加的硬盘直接可以识别出来,直接按照第一种方法的重启之后的步骤一步一步就可以了。
优点:不需要重启
2024-10-28 广告
1.退出LINUX系统,在vmware启动界面中选择VM菜单下的Settings来增加磁盘,然后选择add,选择hard disk,点击Next。
2.选中create a new virtual disk,点击下一步,选择scsi,继续下一步。选择好要新增磁盘的大小,勾选Allocate all disk space now立即分配空间,下一步,在硬盘上选择一个目录来创建,点击完成结束。这样,一个新增的空间就创建好了。
3.输入新增这块硬盘的名字,它会默认放置在虚拟机所在的位置。
4.接着就能看到分好的硬盘了。
5.进入Linux系统,使用fdisk -l可以看到效果。
sudo fdisk -l
这里可以看到/dev/sdb就是新添加的硬盘,需要给新的硬盘分区。
1. 在终端输入:sudo fdisk /dev/sdb
之后键入:m,可以看到帮助信息。
键入:n,添加新分区。
键入:p,选择添加主分区。
键入:1,选择主分区号为1,这样创建后的主分区为sdb1之后,fdsik会让选择该分区的开始值和结束值,直接回车。
2.格式化磁盘
在终端输入:mkfs -t ext4 /dev/sdb1
用ext3格式对/dev/sdb1进行格式化
最后键入:w,保存所有并退出,完成新硬盘的分区
3.在用户主目录下新建一个文件, 如/home/linux/newdisk。以后就把新增的分区mount到这个目录下。
4.用root权限打开/etc/fstab文件。新增加一个选项。具体fstab的操作在这里不解释了。新增加如下:/dev/sdb1 /home/linux/newdisk ext4 defaults 0 0
5.重新启动系统,就能看到加载的硬盘了。