VMWare虚拟机磁盘扩容
虚拟机主机名为cdh101,系统为CentOS Linux release 7.6.1810 (Core) ,VMWare版本17.6。
初始化OS时,只设置了20G的磁盘空间。但随着软件的越赚越多,数据体量越来越大,空间越来越捉襟见肘。因此需要给现有磁盘进行扩容。
目标:将当前根目录(/),再增加50G空间。
[user@cdh101~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 2G 0 part
└─sda3 8:3 0 17.7G 0 part /
sr0 11:0 1 1024M 0 rom
[user@cdh101 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 16G 2.3G 88% /
devtmpfs 2.9G 0 2.9G 0% /dev
tmpfs 2.9G 0 2.9G 0% /dev/shm
tmpfs 2.9G 21M 2.9G 1% /run
tmpfs 2.9G 0 2.9G 0% /sys/fs/cgroup
/dev/sda1 297M 157M 140M 53% /boot
tmpfs 579M 12K 579M 1% /run/user/42
tmpfs 579M 0 579M 0% /run/user/1000
注意:格式化逻辑卷这一步转成xfs
为了给当前根目录(/
)增加 50G 空间,我们可以借助 VMware 为虚拟机添加新磁盘,再利用 LVM(逻辑卷管理器)来管理和扩展根分区。以下是详细步骤:
步骤 1:在 VMware 中添加新磁盘
- 关闭虚拟机。
- 打开 VMware 虚拟机设置,选择“硬件”选项卡,点击“添加”按钮。
- 在弹出的“添加硬件向导”里,选择“硬盘”,接着依照向导提示完成新磁盘的添加,把磁盘大小设定为 50G。
- 启动虚拟机。
步骤 2:确认新磁盘已被识别
启动虚拟机之后,使用 lsblk
命令确认新磁盘是否已被系统识别。假设新磁盘为 /dev/sdb
。
lsblk
步骤 3:创建物理卷(PV)
使用 pvcreate
命令把新磁盘 /dev/sdb
创建成物理卷。
sudo pvcreate /dev/sdb
步骤 4:创建卷组(VG)
创建一个新的卷组 myvg
,并把 /dev/sdb
添加进去。
sudo vgcreate myvg /dev/sdb
步骤 5:创建逻辑卷(LV)
使用 lvcreate
命令在新的卷组 myvg
中创建一个大小为 50G 的逻辑卷。
sudo lvcreate -L 50G -n mylv myvg
步骤 6:格式化逻辑卷为 XFS
使用 mkfs.xfs
命令将新创建的逻辑卷格式化为 XFS 文件系统。
sudo mkfs.xfs /dev/myvg/mylv
步骤 7:创建挂载点并挂载逻辑卷
创建一个临时挂载点,然后将新创建的逻辑卷挂载到该挂载点。
sudo mkdir /mnt/newdisk
sudo mount /dev/myvg/mylv /mnt/newdisk #(临时操作,固化需配置在/etc/fstab中)
完成挂载后,检查一下挂载情况:
mount | grep newdisk
/dev/mapper/myvg-mylv on /mnt/newdisk type xfs (rw,relatime,attr2,inode64,noquota)
步骤 8:迁移数据
把根分区 /
下的部分数据迁移到新挂载的逻辑卷 /mnt/newdisk
上,以此释放根分区的空间。
sudo rsync -avx / /mnt/newdisk
步骤 9:修改挂载点
编辑 /etc/fstab
文件,将新逻辑卷 /dev/myvg/mylv
挂载到根目录 /
。
sudo vim /etc/fstab
在文件中添加以下内容:
/dev/myvg/mylv / xfs defaults 0 0
步骤 10:重启系统
重启虚拟机,使新的挂载配置生效。
sudo reboot
步骤 11:验证扩展结果
重启之后,使用 df -h
命令验证根目录的空间是否已增加。
df -h
注意事项
- 在迁移数据和修改挂载配置时要谨慎操作,以免导致系统无法正常启动。
- 操作前最好对重要数据进行备份,防止数据丢失。
通过以上步骤,实现为根目录增加 50G 空间。
附1:
1、Linux 中 ext4、xfs文件系统有哪些区别?
在Linux系统里,ext4
和xfs
是两种常见的文件系统,它们各有特点,二者的区别有如下几点:
1. 发展背景
- ext4:它是
ext
系列文件系统的第四个版本,是ext3
的后继者。ext
系列历史悠久,稳定性有保障,许多Linux发行版将其作为默认文件系统。 - xfs:由SGI公司开发,后来被移植到Linux系统。它一开始是为高性能计算设计的,更注重可扩展性和大文件处理能力。
2. 性能表现
- 小文件处理:
ext4
在处理大量小文件时表现较好。这是因为它的索引节点(inode)分配机制相对简单高效,能快速为小文件分配资源。 - 大文件处理:
xfs
在处理大文件时更具优势。它采用了更先进的分配算法和数据结构,能够更高效地管理大文件的存储和读写,减少了文件碎片的产生。 - 并发性能:
xfs
的并发性能更佳。它支持多个线程同时对文件系统进行读写操作,在高并发场景下,能更好地利用系统资源,提高性能。
3. 可扩展性
- 文件系统大小:
xfs
的可扩展性更强,理论上它支持的最大文件系统大小可达 8EB,最大文件大小为 16EB。而ext4
理论上支持的最大文件系统大小为 1EB,最大文件大小为 16TB。 - inode数量:
xfs
在inode数量的扩展性上也优于ext4
。随着文件数量的增加,xfs
能更好地应对inode耗尽的问题。
4. 日志功能
- 日志模式:
ext4
提供了多种日志模式,如ordered
(默认模式)、writeback
和journal
。ordered
模式能保证数据的一致性,但会影响一定的写入性能;writeback
模式性能较高,但在系统崩溃时可能会导致数据不一致。 - 日志性能:
xfs
的日志功能设计更注重性能。它采用了异步日志记录方式,在写入数据时,日志记录不会阻塞数据的写入操作,从而提高了写入性能。
5. 数据恢复
- ext4:在系统崩溃或异常关机后,
ext4
可以通过日志信息快速恢复文件系统的一致性。但如果日志损坏或丢失,可能需要进行文件系统检查(fsck
),这可能会花费较长时间。 - xfs:
xfs
在系统崩溃后,通常能快速恢复到可用状态。但如果文件系统出现严重损坏,xfs
的修复工具(xfs_repair
)可能无法完全恢复数据,而且修复过程可能会比较复杂。
6. 适用场景
- ext4:适用于对兼容性要求较高、处理大量小文件的场景,如普通的桌面系统、个人服务器等。
- xfs:适用于处理大文件、高并发读写的场景,如数据库服务器、视频存储服务器等。
综上所述,选择ext4
还是xfs
取决于具体的使用场景和需求。如果对兼容性和小文件处理有较高要求,可以选择ext4
;如果需要处理大文件和高并发读写,xfs
可能是更好的选择。