答: Miguel de Icaza < miguel@luthien.nuclecu.unam.mx> 写道我修改了 ext2fs 代码,使其能够识别多个设备,而不是每个文件系统一个设备的常规假设。因此,当您想要扩展文件系统时,您可以运行一个实用程序,该实用程序在新设备(您的额外分区)上进行适当的更改,然后您只需告诉系统使用指定的设备扩展文件系统。
您可以在系统运行时使用新设备扩展文件系统,无需关闭系统(并且当我有额外时间时,您将能够从 ext2 卷集中删除设备,同样甚至无需进入单用户模式或任何类似的 hack)。
您可以从我的网页获取 2.1.x 内核的补丁
http://www.nuclecu.unam.mx/~miguel/ext2-volume
答: 目前(1997 年 9 月)不行,除非擦除所有数据。允许这样做的转换实用程序尚不存在。问题在于 RAID-5 阵列的实际结构和布局取决于阵列中磁盘的数量。当然,可以通过将阵列备份到磁带,删除所有数据,创建新阵列并从磁带恢复来添加驱动器。
/dev/hdb 移动到 /dev/hdc,我的 RAID1/RAID0 集会发生什么?由于电缆/机箱尺寸/愚蠢问题,我不得不在同一个 IDE 控制器(/dev/hda 和 /dev/hdb)上创建我的 RAID 集。现在我已经修复了一些东西,我想将 /dev/hdb 移动到 /dev/hdc。如果我只是更改 /etc/mdtab 和 /etc/raid1.conf 文件以反映新位置,会发生什么?答: 对于 RAID-0/线性,必须小心地以完全相同的顺序指定驱动器。因此,在上面的示例中,如果原始配置是那么新配置*必须*是mdadd /dev/md0 /dev/hda /dev/hdb对于 RAID-1/4/5,驱动器的“RAID 编号”存储在其 RAID 超级块中,因此指定磁盘的顺序并不重要。 RAID-0/线性由于其较旧的设计以及保持与此较旧设计向后兼容性的愿望而没有超级块。mdadd /dev/md0 /dev/hda /dev/hdc
答: 是的。 BizSystems 的 Michael 已经想出了一种巧妙的、偷偷摸摸的方法来做到这一点。但是,就像几乎所有对 RAID 阵列进行数据操作一样,它很危险且容易出现人为错误。 在开始之前进行备份。
I will make the following assumptions:
---------------------------------------------
disks
original: hda - hdc
raid1 partitions hda3 - hdc3
array name /dev/md0
new hda - hdc - hdd
raid5 partitions hda3 - hdc3 - hdd3
array name: /dev/md1
You must substitute the appropriate disk and partition numbers for
you system configuration. This will hold true for all config file
examples.
--------------------------------------------
DO A BACKUP BEFORE YOU DO ANYTHING
1) recompile kernel to include both raid1 and raid5
2) install new kernel and verify that raid personalities are present
3) disable the redundant partition on the raid 1 array. If this is a
root mounted partition (mine was) you must be more careful.
Reboot the kernel without starting raid devices or boot from rescue
system ( raid tools must be available )
start non-redundant raid1
mdadd -r -p1 /dev/md0 /dev/hda3
4) configure raid5 but with 'funny' config file, note that there is
no hda3 entry and hdc3 is repeated. This is needed since the
raid tools don't want you to do this.
-------------------------------
# raid-5 configuration
raiddev /dev/md1
raid-level 5
nr-raid-disks 3
chunk-size 32
# Parity placement algorithm
parity-algorithm left-symmetric
# Spare disks for hot reconstruction
nr-spare-disks 0
device /dev/hdc3
raid-disk 0
device /dev/hdc3
raid-disk 1
device /dev/hdd3
raid-disk 2
---------------------------------------
mkraid /etc/raid5.conf
5) activate the raid5 array in non-redundant mode
mdadd -r -p5 -c32k /dev/md1 /dev/hdc3 /dev/hdd3
6) make a file system on the array
mke2fs -b {blocksize} /dev/md1
recommended blocksize by some is 4096 rather than the default 1024.
this improves the memory utilization for the kernel raid routines and
matches the blocksize to the page size. I compromised and used 2048
since I have a relatively high number of small files on my system.
7) mount the two raid devices somewhere
mount -t ext2 /dev/md0 mnt0
mount -t ext2 /dev/md1 mnt1
8) move the data
cp -a mnt0 mnt1
9) verify that the data sets are identical
10) stop both arrays
11) correct the information for the raid5.conf file
change /dev/md1 to /dev/md0
change the first disk to read /dev/hda3
12) upgrade the new array to full redundant status
(THIS DESTROYS REMAINING raid1 INFORMATION)
ckraid --fix /etc/raid5.conf