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

Lai*_*ice 5 server ssh command-line partitioning raid

简单地说,当我设置服务器时,它不打算用于现在的状态,并且 root (/) 已经用完了磁盘空间,而 /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
Run Code Online (Sandbox Code Playgroud)

学过的知识!(下次给/更多空间...)

这是 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
Run Code Online (Sandbox Code Playgroud)

我需要做的是将 /home 分区缩小 40GB,并将 / 分区增加 40GB。当我使用 resize 命令时,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."
Run Code Online (Sandbox Code Playgroud)

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

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

提前致谢

Gil*_*il' 6

ext2、ext3 和 ext4 是同一个文件系统的演变;实际上,没有激活任何新功能的 ext4 文件系统是 ext3 文件系统,没有激活任何新功能的 ext3 文件系统是 ext2 文件系统。这就是为什么没有用于 ext3 和 ext4 的单独程序集的原因:它是同一套工具 e2fsprogs,它已逐渐增强以处理 ext3 和 ext4。

resize2fs(“ext2/ext3/ext4 file system resizer”) 的一个限制是它只能在卸载时缩小文件系统。所以如果你想缩小/home,你需要先卸载它。您可以放大已安装的文件系统,这对于/.

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

据我所看到的,你坚持这样的配置,除非你愿意复制所有数据关闭/home/进行维护的时间。(您可以只复制数据/home并创建一个更大的根分区来占用其空间。)您可以使用磁盘开头的未分区空间来存储/home. 这不是很困难,但很容易出错。这不是我在没有物理访问的情况下尝试的事情(当你在周围移动根分区时,引导加载程序特别容易搞砸)。如果您不熟悉这些工具,就更有可能犯一个小错误,而这个错误很容易修复,但只需插入引导 CD。

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

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

此外,如果您决定坚持使用 RAID-0 以获得 5% 的性能提升,如果您拥有单个 RAID-0 阵列会更容易。