网站首页
Java
站长
开源
框架
理论
JS
Linux
DB
服务器
网络编程
生活
软件
PHP
其他
您的位置:首页 > 服务器 > VMware安装Centos7后,动态扩展磁盘容量大小
VMware安装Centos7后,动态扩展磁盘容量大小
2024-12-13    686    0

在VMware虚拟机中,安装了Centos7,安装时分配的磁盘容量是80,后期不够用,如何进行扩展呢?

vmware.jpg


只有关闭虚拟机电源后,才能对磁盘进行扩展。

vm扩展磁盘.jpg


开机,查看磁盘:df -h

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 3.9G     0  3.9G    0% /dev
tmpfs                    3.9G   16K  3.9G    1% /dev/shm
tmpfs                    3.9G   13M  3.9G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   48G  6.7G   42G   14% /
/dev/sda1               1014M  254M  761M   26% /boot
/dev/mapper/centos-home   24G   39M   24G    1% /home
tmpfs                    797M  8.0K  797M    1% /run/user/42
tmpfs                    797M   24K  797M    1% /run/user/0

用于查看文件系统的磁盘使用情况并以易于阅读的方式显示

-h:以人类可读的格式显示磁盘空间大小。例如,使用 GB、MB、KB 等单位代替字节。

文件系统名称或挂载点(例如 /、/home、/mnt/usb 等)

容量(文件系统的总容量)

已用空间(已分配给文件和其他数据的空间)

可用空间(剩余可使用的空间)

使用百分比(已用空间占总空间的百分比)

挂载点(文件系统在目录树中的挂载位置)


查看磁盘分区:fdisk -l

[root@localhost ~]# fdisk -l
磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00095d48
   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   167772159    82836480   8e  Linux LVM
磁盘 /dev/mapper/centos-root:51.3 GB, 51308920832 字节,100212736 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:8455 MB, 8455716864 字节,16515072 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-home:25.1 GB, 25052577792 字节,48930816 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

fdisk 是一个用于磁盘分区的命令行工具。fdisk -l 则用于列出所有可用的磁盘及其分区信息

-l:列出所有磁盘和分区的信息,不对磁盘进行任何更改

当你插入一个新的 USB 闪存驱动器后,你可以通过以下步骤查找对应的块设备:

插入 USB 设备。

运行 fdisk -l 前后的对比:在插入 USB 设备之前,先运行一次 sudo fdisk -l,记录输出。然后,插入 USB 设备,再次运行 sudo fdisk -l。对比两次输出,新增的磁盘信息就是你的 USB 设备。

使用 dmesg 命令:插入 USB 设备后,运行 dmesg | tail 查看系统日志的最新输出,这通常会显示新设备的分配情况。例如,它可能会显示 USB 设备被识别为 /dev/sdc 或其他类似的设备名。


对磁盘进行分区操作:fdisk /dev/sda

对新加的磁盘进行分区操作(选择新增的磁盘)。我们是虚拟机,只有一块硬盘,所以选择这块硬盘即可。

[root@localhost ~]# fdisk /dev/sda 
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p
磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00095d48
   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   167772159    82836480   8e  Linux LVM
命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
分区号 (3,4,默认 3):3
起始 扇区 (167772160-209715199,默认为 167772160):
将使用默认值 167772160
Last 扇区, +扇区 or +size{K,M,G} (167772160-209715199,默认为 209715199):
将使用默认值 209715199
分区 3 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 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)
正在同步磁盘。

看到最后的提示是“设备或资源忙”为正常提示,继续下面操作即可。


重新读取磁盘:partprobe

[root@localhost ~]# partprobe

重新读取磁盘分区表并更新内核中的分区信息,这个命令通常在使用fdisk、parted或其他磁盘分区工具对磁盘进行分区或修改分区表后使用,以确保操作系统能够正确地识别和访问新的或更改后的分区。


为新加磁盘创建文件系统:mkfs.ext4 /dev/sda3

[root@localhost ~]# mkfs.ext4 /dev/sda3
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
4096000
Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

命令用于在指定的磁盘分区上创建一个新的ext4文件系统。这里的命令可以分为几个部分来理解:

mkfs:是“make filesystem”的缩写,用于创建文件系统。

.ext4:指定了要创建的文件系统类型,这里是ext4。ext4是第四代扩展文件系统,它是Linux系统中常用的一种文件系统,提供了良好的性能、可靠性和数据完整性。

/dev/sda3:指定了要创建文件系统的目标分区。在Linux中,/dev/目录包含了系统中的所有设备和分区。sda通常表示第一个SCSI或SATA硬盘,而sda3则表示该硬盘上的第三个主分区或扩展分区中的第一个逻辑分区。

因此,mkfs.ext4 /dev/sda3命令的意思是:在/dev/sda3分区上创建一个ext4文件系统。


初始化物理卷:pvcreate /dev/sda3

[root@localhost ~]# pvcreate /dev/sda3
WARNING: ext4 signature detected on /dev/sda3 at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/sda3.
  Physical volume "/dev/sda3" successfully created.

该命令的主要功能是在指定的物理分区或磁盘上初始化一个物理卷(Physical Volume,简称PV)。

执行pvcreate /dev/sda3命令后,/dev/sda3分区将被LVM识别为一个物理卷。这意味着该分区现在可以作为LVM卷组(Volume Group,简称VG)的一部分,进而在其中创建逻辑卷(Logical Volume,简称LV)。逻辑卷则可以被格式化为文件系统,并挂载到系统的目录结构中供日常使用。


查看物理卷信息:pvdisplay

[root@localhost ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <79.00 GiB / not usable 3.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              20223
  Free PE               1
  Allocated PE          20222
  PV UUID               BZWfwI-S3mr-aJB7-4Ait-m2qI-3FrN-dyqxsz
  "/dev/sda3" is a new physical volume of "20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda3
  VG Name               
  PV Size               20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               Q7B3FI-yxtZ-obCC-TX1e-sm28-TzGd-IDSquG

pvdisplay命令用于显示有关物理卷(Physical Volume,简称PV)的详细信息。

当你执行pvdisplay命令时,它会从LVM的元数据中检索信息,并以易于理解的格式显示这些信息。这对于管理LVM配置、监控存储空间使用情况以及故障排除非常有用。

可以看到,/dev/sda3是新增的硬盘空间,20GB.现在还是未分配的状态。


分配物理卷:vgextend centos /dev/sda3

[root@localhost ~]# vgextend centos /dev/sda3
  Volume group "centos" successfully extended
[root@localhost ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <79.00 GiB / not usable 3.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              20223
  Free PE               1
  Allocated PE          20222
  PV UUID               BZWfwI-S3mr-aJB7-4Ait-m2qI-3FrN-dyqxsz
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               centos
  PV Size               20.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              5119
  Free PE               5119
  Allocated PE          0
  PV UUID               Q7B3FI-yxtZ-obCC-TX1e-sm28-TzGd-IDSquG

用于将新的物理卷(Physical Volumes,PVs)添加到现有的卷组(Volume Group,VG)中。通过这种方式,可以动态地扩展卷组的容量,从而为逻辑卷提供更多的可用空间。

注意:这里centos 是取pvdisplay的结果的“VG Name”的数据值。根据实际情况来替换。


加载该物理卷:lvextend -L +19.9G /dev/mapper/centos-root

[root@localhost ~]# lvextend -L +19.9G /dev/mapper/centos-root
  Rounding size to boundary between physical extents: 19.90 GiB.
  Size of logical volume centos/root changed from <47.79 GiB (12233 extents) to <67.69 GiB (17328 extents).
  Logical volume centos/root successfully resized.
[root@localhost ~]# lvs
  LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home centos -wi-ao----  23.33g                                                    
  root centos -wi-ao---- <67.69g                                                    
  swap centos -wi-ao----  <7.88g

注意:/dev/mapper/centos-root是取df-h中显示的结果。根据实际情况来修改。

注意:扩展的磁盘是20G,但是有几兆是被占用的,实际可用应该是小于20,这里写19.9。


让系统动态加载新加的物理卷容量:xfs_growfs /dev/mapper/centos-root

[root@localhost ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=3131648 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=12526592, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=6116, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 12526592 to 17743872

xfs_growfs命令用于调整XFS文件系统的大小,以充分利用其底层存储设备(如分区或逻辑卷)上可用的额外空间。

执行xfs_growfs /dev/mapper/centos-root命令时,系统会检查centos-root逻辑卷上的XFS文件系统,并自动调整其大小以匹配逻辑卷的新大小(假设逻辑卷已经被扩展)。这样,你就可以在不重新挂载文件系统或重启系统的情况下,利用新增加的存储空间。


验证

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 3.9G     0  3.9G    0% /dev
tmpfs                    3.9G   16K  3.9G    1% /dev/shm
tmpfs                    3.9G   13M  3.9G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   68G  6.7G   62G   10% /
/dev/sda1               1014M  254M  761M   26% /boot
/dev/mapper/centos-home   24G   39M   24G    1% /home
tmpfs                    797M   32K  797M    1% /run/user/0
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
├─sda2            8:2    0   79G  0 part 
│ ├─centos-root 253:0    0 67.7G  0 lvm  /
│ ├─centos-swap 253:1    0  7.9G  0 lvm  [SWAP]
│ └─centos-home 253:2    0 23.3G  0 lvm  /home
└─sda3            8:3    0   20G  0 part 
  └─centos-root 253:0    0 67.7G  0 lvm  /
sr0              11:0    1 1024M  0 rom


可以看到sda3已经分配给centos-root,被加载到了 / 下面

上一篇: CentOS7 修改本地IP为固定IP
下一篇: Java中使用NTP服务进行服务器校时
发表评论:
您的网名:
个人主页:
编辑内容: