我接管了一个相当简单的服务器设置,其具有以下 RAID 1 配置,运行 Ubuntu 11.10(内核 3.0.0-12-server x86_64):
=> ctrl all show config
Smart Array P410i in Slot 0 (Embedded) (sn: removed)
array A (SAS, Unused Space: 1335535 MB)
logicaldrive 1 (279.4 GB, RAID 1, OK)
physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 1 TB, OK)
physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 1 TB, OK)
最初有两个 300GB 的磁盘被 1TB 的磁盘取代,现在我必须扩展逻辑卷以使用额外的空间。
但是,当我尝试这样做时,我收到以下警告:
=> ctrl slot=0 ld 1 modify size=max
Warning: Extension may not be supported on certain operating systems.
Performing extension on these operating systems can cause data to
become inaccessible. See ACU documentation for details. Continue?
(y/n)
回答“是”安全吗?还是我面临损坏文件系统/丢失数据的风险?之后重新排列和扩展文件系统应该不是问题,因为我可以让服务器脱机并从 gparted 实时磁盘启动。
这是正在使用的 RAID 控制器的配置:
=> ctrl all show detail
Smart Array P410i in Slot 0 (Embedded)
Bus Interface: PCI
Slot: 0
Serial Number: removed
RAID 6 (ADG) Status: Disabled
Controller Status: OK
Hardware Revision: Rev C
Firmware Version: 5.12
Rebuild Priority: Medium
Expand Priority: Medium
Surface Scan Delay: 15 secs
Surface Scan Mode: Idle
Wait for Cache Room: Disabled
Surface Analysis Inconsistency Notification: Disabled
Post Prompt Timeout: 0 secs
Cache Board Present: False
Drive Write Cache: Disabled
SATA NCQ Supported: True
分区表如下:
Number Start End Size Type File system Flags
1 1049kB 274GB 274GB primary ext4 boot
2 274GB 300GB 25.8GB extended
5 274GB 300GB 25.8GB logical linux-swap(v1)
答案1
就 Linux 而言,RAID 阵列似乎是一个单一设备,因此它与从较小的单一驱动器迁移到较大的驱动器没有什么不同。不幸的是,您没有使用 LVM,这使得通过扩展使用额外空间的过程/
稍微复杂一些。
扩展过程应该非常安全。下次运行fdisk
或类似操作时,您将在磁盘末尾看到一大块未分配的空间。
使用此空间的简单方法是将其挂载为另一个文件系统:使用 fdisk 创建 /dev/sda6,在那里创建一个文件系统并挂载它。您将使用文件系统做什么(以及最好在哪里挂载它)取决于您的服务器的用途。对于共享网络托管服务器,您可能会使用它来做很多事情/home
,这只是其中一个例子。
如果您想扩展当前的根分区以使用更复杂的空间(如果您使用 LVM,这会更容易、更安全)。您需要删除交换分区,扩展根分区,然后重新创建交换分区。手动完成这项工作并不困难,但除非您有信心,否则我建议您使用 gparted 之类的工具(http://gparted.sourceforge.net/) 来代替。手动步骤如下:
- 使用以下方式关闭交换
swapoff
- 从分区列表中注释掉交换区域
/etc/fstab
- 删除
fdisk
交换分区及其所在的扩展分区 - 扩展根分区。使用标准 fdisk 时,您需要删除现有分区(首先仔细记下起始扇区),然后在上面重新创建一个更大的分区
- 此时你可能需要重新启动
- 运行
ext2resize /dev/sda -v
以将文件系统扩展到新的更大空间。它可能会要求您fsck
先运行 - 如果是这样,请按照此说明操作,然后重新运行。ext2resize /dev/sda -v
当您扩展 ext2/3/4 文件系统时,可以实时调整大小。 - 您现在拥有更大的根文件系统
- 使用 fdisk 重新创建交换区域
- 添加交换区域
/etc/fstab
并swapon
启用它
注意:我假设 earray 显示为 /dev/sda - 如果没有,请调整上面的命令。
尽管以上所有应该安全,我 强烈 建议在继续之前进行完整备份并验证该备份(即使使用 gparted 之类的工具而不是 DIY)。
答案2
第一件事:扩展数组是安全的。您可以接受警告消息,不会有任何后果。
接下来,您有几个选择......
HP Smart Array 控制器是硬件 LVM 的一种形式。它们允许在线扩展,但了解两者之间的关系很重要大批和一个逻辑驱动器。
- 阵列是磁盘的物理分组。
- 逻辑驱动器是阵列的一个细分,具有指定的 RAID 级别和大小。
同一阵列中的逻辑驱动器甚至可以具有不同的 RAID 级别!以下是更复杂的智能阵列控制器布局的示例:
Smart Array P400 in Slot 8 (sn: P61630G9SVN702)
array A (SAS, Unused Space: 385320 MB)
logicaldrive 1 (72.0 GB, RAID 1+0, OK)
logicaldrive 2 (120.0 GB, RAID 1+0, OK)
logicaldrive 3 (100.0 GB, RAID 6 (ADG), OK)
logicaldrive 4 (100.0 GB, RAID 1+0, OK)
physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 146 GB, OK)
physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 146 GB, OK)
physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 146 GB, OK)
physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 146 GB, OK)
physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 146 GB, OK)
physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 146 GB, OK)
physicaldrive 2I:1:7 (port 2I:box 1:bay 7, SAS, 146 GB, OK)
physicaldrive 2I:1:8 (port 2I:box 1:bay 8, SAS, 146 GB, OK)
例如,在您的设置中显示的“未使用空间”中,您可以创建另一个 RAID1 或 RAID0 逻辑驱动器,其大小最高可达 1335535MB(RAID0)或 1335535MB/2(RAID1),这将向操作系统显示另一个块设备;/dev/sdb
或者您可以扩展现有的块设备/dev/sda
以使用最高 1335535/2更多的兆字节。在上面列出的命令中,您指定将数组增加到其最大大小。
由于您已经通过插入新磁盘并重建它们完成了阵列转换步骤,因此此扩展操作将是立即完成的。
完成此操作后,您将有几个操作系统选项。我想问一下您希望最终的分区和文件系统布局是什么样的...
您可以/dev/sda
通过重新扫描 SCSI 块设备或重新启动来扩展您的系统。对于您的系统,重新扫描将类似于以下内容:
echo 1 > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan
将会增长/dev/sda
。用dmesg
和确认fdisk
。
从那里,您可以添加分区,或扩展现有分区。您的具体布局目标是什么?
答案3
您不会破坏文件系统,因为它们不会被改变。只有逻辑驱动器的大小会改变,之后您仍然需要扩大分区和文件系统。
通常情况下,驱动程序应确保您随后能够看到驱动器的新大小。如果没有,您将在重新启动后看到新大小。