虚拟机(已安装好操作系统)的硬盘如何扩大?

2020-10-28 科技 120阅读

今天上了存储,之前有些项目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  /

缺点,需要重启一次

第二种方法:直接添加硬盘,而不是在原有的上面只接更改大小

添加的硬盘直接可以识别出来,直接按照第一种方法的重启之后的步骤一步一步就可以了。

优点:不需要重启

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com