这是一台FreeBSD 9.1 amd64计算机。它安装了5个磁盘。ada0和ada1磁盘与hw一起使用来提供根文件系统:
root@gw:/home/gandalf # ls /dev | grep ada
ada0
ada1
ada2
ada3
ada4
root@gw:/home/gandalf # zpool status
pool: zroot
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
raid/r0s1a ONLINE 0 0 0
errors: No known data errors我想为剩余的磁盘创建一个raidz池:
root@gw:/home/gandalf # zpool create -f data raidz1 ada2 ada3 ada4
cannot create 'data': one or more devices is currently unavailable
root@gw:/home/gandalf # dmesg | grep ada2
ada2 at ata4 bus 0 scbus6 target 0 lun 0
ada2: <WDC WD20EARS-00MVWB0 51.0AB51> ATA-8 SATA 2.x device
ada2: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
ada2: 1907729MB (3907029168 512 byte sectors: 16H 63S/T 16383C)
ada2: Previously was known as ad16
root@gw:/home/gandalf # dmesg | grep ada3
ada3 at ata5 bus 0 scbus7 target 0 lun 0
ada3: <SAMSUNG HD103UJ 1AA01118> ATA-7 SATA 2.x device
ada3: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
ada3: 953868MB (1953523055 512 byte sectors: 16H 63S/T 16383C)
ada3: Previously was known as ad18
GEOM_RAID: Intel-fb8732fa: Disk ada3 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-fb8732fa: Subdisk Volume0:0-ada3 state changed from NONE to ACTIVE.
root@gw:/home/gandalf # dmesg | grep ada4
ada4 at ata6 bus 0 scbus8 target 0 lun 0
ada4: <TOSHIBA DT01ACA100 MS2OA750> ATA-8 SATA 3.x device
ada4: 300.000MB/s transfers (SATA 2.x, UDMA5, PIO 8192bytes)
ada4: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C)
ada4: Previously was known as ad20
root@gw:/home/gandalf # dmesg | grep GEOM_RAID那么ada3已经是另一个raid卷的一部分了?让我们看看:
root@gw:/home/gandalf # dmesg | grep GEOM_RAID
GEOM_RAID: SiI-130628113902: Array SiI-130628113902 created.
GEOM_RAID: SiI-130628113902: Disk ada0 state changed from NONE to ACTIVE.
GEOM_RAID: SiI-130628113902: Subdisk SiI Raid1 Set:1-ada0 state changed from NONE to STALE.
GEOM_RAID: SiI-130628113902: Disk ada1 state changed from NONE to ACTIVE.
GEOM_RAID: SiI-130628113902: Subdisk SiI Raid1 Set:0-ada1 state changed from NONE to STALE.
GEOM_RAID: SiI-130628113902: Array started.
GEOM_RAID: SiI-130628113902: Subdisk SiI Raid1 Set:0-ada1 state changed from STALE to ACTIVE.
GEOM_RAID: SiI-130628113902: Subdisk SiI Raid1 Set:1-ada0 state changed from STALE to RESYNC.
GEOM_RAID: SiI-130628113902: Subdisk SiI Raid1 Set:1-ada0 rebuild start at 0.
GEOM_RAID: SiI-130628113902: Volume SiI Raid1 Set state changed from STARTING to SUBOPTIMAL.
GEOM_RAID: SiI-130628113902: Provider raid/r0 for volume SiI Raid1 Set created.
GEOM_RAID: Intel-fb8732fa: Array Intel-fb8732fa created.
GEOM_RAID: Intel-fb8732fa: Force array start due to timeout.
GEOM_RAID: Intel-fb8732fa: Disk ada3 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-fb8732fa: Subdisk Volume0:0-ada3 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-fb8732fa: Array started.
GEOM_RAID: Intel-fb8732fa: Volume Volume0 state changed from STARTING to DEGRADED.
GEOM_RAID: Intel-fb8732fa: Provider raid/r1 for volume Volume0 created.
root@gw:/home/gandalf # 确实是这样。我想彻底摆脱raid/r1。但是,控制器在BIOS中已经设置为"IDE“模式。那么它为什么要创建一个raid卷呢?我也尝试过重写ada3的第一个16k数据并重新启动计算机,但是没有帮助。
如何删除/dev/raid/r1?
root@gw:/home/gandalf # graid status
Name Status Components
raid/r0 SUBOPTIMAL ada0 (ACTIVE (RESYNC 4%))
ada1 (ACTIVE (ACTIVE))
raid/r1 DEGRADED ada3 (ACTIVE (ACTIVE))
root@gw:/home/gandalf # graid delete raid/r1
graid: Array 'raid/r1' not found.
root@gw:/home/gandalf # graid delete /dev/raid/r1
graid: Array '/dev/raid/r1' not found.
root@gw:/home/gandalf #谢谢
发布于 2013-07-01 06:39:46
这不是一个完美的答案,但我就是这样做的。我返回了BIOS中控制器的RAID功能。然后我重新启动了计算机,进入了RAID卡的BIOS。它显示的磁盘是镜像的一部分,但没有功能。(我不知道这是怎么发生的,因为那个磁盘从来就不是镜子的一部分。)在那里,我删除了磁盘。然后重新启动计算机,将BIOS从RAID设置为AHCI。然后再重新开始。然后瞧!FreeBSD现在可以将它们作为简单的磁盘使用,并且zpool的创建工作进行得很顺利。
故事的寓意是:在BIOS中做什么并不重要。FreeBSD+graid仍然会识别和使用RAID数组,即使它们没有功能。真正的问题是:为什么我不能删除raid/r1卷与灰色-我不知道答案。但是我的解决方案有效(唯一的问题是您必须重新启动计算机服务器时间)。
发布于 2013-11-06 19:18:37
(我知道你已经解决了你的问题,但我在寻找我自己的答案时发现了这一点,我用另一种方法解决了这个问题)
当我用现有的ZFS池升级FreeBSD时,我遇到了一个类似的问题( GRAID正在干扰我的系统)。
池随后退化,我收到了关于GEOM_RAID正在构建的数组的相同类型的DMESG消息。
我的解决方案是使用“graid”,并使用作为子磁盘名的名称(在您的例子中,这个名称应该是“Volume0 0”)。
数组本身的名称(在您的例子中是Intel-fb8732fa)可能也会起作用。
但是,您还需要确保GRAID随后从您的内核(或作为一个模块)中卸载,这样它就不会在每次引导上运行,并执行相同的操作。
(该数组确实重新初始化了下一次引导,但由于未完全禁用graid,所以在重新启动后使用graid阻止了它)
https://serverfault.com/questions/519575
复制相似问题