当前位置: 首页 > article >正文

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 中添加新磁盘

  1. 关闭虚拟机。
  2. 打开 VMware 虚拟机设置,选择“硬件”选项卡,点击“添加”按钮。
  3. 在弹出的“添加硬件向导”里,选择“硬盘”,接着依照向导提示完成新磁盘的添加,把磁盘大小设定为 50G。
  4. 启动虚拟机。

步骤 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系统里,ext4xfs是两种常见的文件系统,它们各有特点,二者的区别有如下几点:

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(默认模式)、writebackjournalordered模式能保证数据的一致性,但会影响一定的写入性能;writeback模式性能较高,但在系统崩溃时可能会导致数据不一致。
  • 日志性能xfs的日志功能设计更注重性能。它采用了异步日志记录方式,在写入数据时,日志记录不会阻塞数据的写入操作,从而提高了写入性能。

5. 数据恢复

  • ext4:在系统崩溃或异常关机后,ext4可以通过日志信息快速恢复文件系统的一致性。但如果日志损坏或丢失,可能需要进行文件系统检查(fsck),这可能会花费较长时间。
  • xfsxfs在系统崩溃后,通常能快速恢复到可用状态。但如果文件系统出现严重损坏,xfs的修复工具(xfs_repair)可能无法完全恢复数据,而且修复过程可能会比较复杂。

6. 适用场景

  • ext4:适用于对兼容性要求较高、处理大量小文件的场景,如普通的桌面系统、个人服务器等。
  • xfs:适用于处理大文件、高并发读写的场景,如数据库服务器、视频存储服务器等。

综上所述,选择ext4还是xfs取决于具体的使用场景和需求。如果对兼容性和小文件处理有较高要求,可以选择ext4;如果需要处理大文件和高并发读写,xfs可能是更好的选择。


http://www.kler.cn/a/598260.html

相关文章:

  • LabVIEW液压传动系统教学仿真平台
  • <svg>标签的优势,在绘制矢量图形时如何使用它
  • llama-factory 微调 Qwen2.5-3B-Instruct
  • ubuntu设置开机自动运行应用
  • Spring Boot 整合 Apache Flink 教程
  • 【C++初阶】从零开始模拟实现vector(含迭代器失效详细讲解)
  • Linux常用命令与权限理解总结
  • Spring Boot(十七):集成和使用Redis
  • Java面试黄金宝典9
  • 在Linux、Windows系统上安装开源InfluxDB——InfluxDB OSS v2并设置开机自启的保姆级图文教程
  • 用selenium+ChromeDriver爬取知乎评论区(但要求登录以及反爬机制爬不到数据)
  • 【菜鸟飞】AI多模态:vsCode下python访问阿里云通义文生图API
  • 使用Python和PyTorch实现了一个简单的生成对抗网络(GAN)用于生成应力值图像
  • 正则表达式基本语法和Java中的简单使用
  • fastapi 实践(三)Swagger Docs
  • STM32基础教程——PWM驱动LED呼吸灯
  • AIGC 新势力:探秘海螺 AI 与蓝耘 MaaS 平台的协同创新之旅
  • 【Jwt】详解认证登录的数字签名
  • 牛客网【模板】二维差分(详解)c++
  • 【JavaEE】网络编程socket