通过命令行调整 RAID 0 阵列上的分区大小

通过命令行调整 RAID 0 阵列上的分区大小

简单地说,当我设置服务器时,它并不打算用于现在这个用途,并且根目录(/)的磁盘空间已经用完,而/home 上有大量的东西在浮动。

Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                10157944   9600344     45656 100% /
/dev/root             10157944   9600344     45656 100% /
/dev                   8183468         8   8183460   1% /dev
none                   1636756       252   1636504   1% /run
none                      5120         0      5120   0% /run/lock
none                   8183772         0   8183772   0% /run/shm
/dev/md3             211225328  17996836 182583336   9% /home

学到教训了!(下次给更多空间……)

这是 parted 的输出,显示了磁盘及其当前大小以及 RAID 阵列。

Model: ATA INTEL SSDSA2CW12 (scsi)
Disk /dev/sda: 120GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      2097kB  10.5GB  10.5GB  primary  ext4            boot, raid
 2      10.5GB  11.0GB  535MB   primary  linux-swap(v1)
 3      11.0GB  120GB   109GB   primary                  raid


Model: ATA INTEL SSDSA2CW12 (scsi)
Disk /dev/sdb: 120GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      2097kB  10.5GB  10.5GB  primary  ext4            raid
 2      10.5GB  11.0GB  535MB   primary  linux-swap(v1)
 3      11.0GB  120GB   109GB   primary                  raid


Model: Linux Software RAID Array (md)
Disk /dev/md3: 218GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End    Size   File system  Flags
 1      0.00B  218GB  218GB  ext4


Model: Linux Software RAID Array (md)
Disk /dev/md1: 10.5GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0.00B  10.5GB  10.5GB  ext4

我需要做的是将 /home 分区缩小 40GB,并将 / 分区增加 40GB。当我使用调整大小命令时,Parted 告诉我:

"WARNING: you are attempting to use parted to operate on (resize) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs.  We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release."

查找 e2fsprogs 告诉我它们是 ext2 工具,考虑到磁盘是 EXT4,这让我害怕极了。

有没有安全的方法来调整分区大小?我正在通过 SSH 在距离服务器 600 英里的地方进行这项工作,没有直接访问权限。

提前致谢

答案1

ext2、ext3 和 ext4 是同一文件系统的演化版本;事实上,未激活任何新功能的 ext4 文件系统是 ext3 文件系统,而未激活任何新功能的 ext3 文件系统是 ext2 文件系统。这就是为什么没有为 ext3 和 ext4 单独设置程序的原因:它们是同一套工具,即 e2fsprogs,它已逐渐得到增强,以应对 ext3 和 ext4。

限制resize2fs(“ext2/ext3/ext4 文件系统调整器”)的一个缺点是它只能在文件系统卸载时缩小文件系统。因此,如果您想缩小文件系统/home,则需要先卸载它。您可以扩大已安装的文件系统,这对 来说不是问题/

更大的问题将是调整 RAID-0 阵列的大小。管理 RAID 阵列的一个工具是mdadm据我所知,无法调整 RAID-0 阵列的大小。

据我所知,除非您愿意在维护期间复制所有数据/home,否则您将只能使用这种配置。(您可以只复制数据并创建一个更大的根分区来侵占其空间。)您可以使用磁盘开头的未分区空间来存储的当前内容。这并不难,但容易出错。如果没有物理访问权限,我不会尝试这样做(当您移动根分区时,特别容易搞砸引导加载程序)。您对这些工具的不熟悉使您更有可能犯一个小错误,而这个错误很容易修复,只需插入启动 CD 即可。//home/home

我的建议是移动大部分内容//home创建一个符号链接,直到有人可以亲自访问该服务器。

未来,我建议不要使用 md-RAID 的 RAID-0,而是使用 LVM 条带化。LVM 卷可以调整大小,甚至是条带化卷。LVM 是稍微慢一点这里,但更容易管理(正如您现在遇到的问题所示)。使用 RAID 进行镜像(RAID-1)和其他 RAID 模式。

此外,如果您决定坚持使用 RAID-0 来获得 5% 的性能提升,那么如果您有一个 RAID-0 阵列,那么一切就会变得更容易。

相关内容