存储 频道

FreeBSD中磁盘的使用方法(6)

 
12.7 RAID 
 
12.7.1 软件RAID 
 
12.7.1.1 ccd (连接磁盘配置
 
今天几乎每个人都收集了很多的多媒体文件。从mp3 到视频文件。我也有很多转换过的mp3 音乐文件。我现在面临一个问题是如何存储这些文件。
 
选择一个比较好的解决方案,最重要的是产品的速度、性能和成本。通常这三者不可能都满足,要获得比较快,和大容量的存储设备,就比较昂贵。但如果将成本降下来,那它的速度或可靠性就会打折扣。我在设计系统时,希望在两者之间达到一个平衡。对我来说,速度不是非常重要的,因为绝大多数的使用是通过百兆以太网来完成的。
 
通过几个磁盘来传输文件要快得多。最后,还要考虑可靠性。存放在这个大容量的存储设备上的所有数据都被备份到了CD-R 盘上了。这个驱动器主要充当实时存储的功能,所以如果一个驱动器坏了,我就可以换掉它,重建文件系统,把数据从CD-R 上拷回来。
 
总的计算一下,我需要在有限的成本下得到最大的存储容量。大型的IDE 磁盘现在是一天比一天便宜。我发现Western Digital 30.7gb 5400 RPM 硬盘只需要150 美元。我买了三个,加起来足有90GB 的存储容量。
 
12.7.1.1.1 安装硬件
 
我在一个已安装有一个IDE 硬盘的系统上再安装一个磁盘。最好是每个IDE 磁盘都使用一个自己的IDE 控制器,但要求有两个IDE 控制器可能成本比较高。所以,我把两个磁盘一个设置成主盘,一个设置成从盘。一个放在第一个IDE 控制器上作为系统磁盘,其他两个放在第二个控制器上。
 
重启动后,系统BIOS 被配置成自动检测硬盘。FreeBSD 检测到了它们: 
ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33 
ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33 
ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33 
ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33 
 
如果FreeBSD 没有检测到它们,请确定它们的跳线是否正确。接下来要考虑的是,如何创建文件系统。我对vinum 和ccd 有一些研究。在一些特殊的配置中,ccd 是比较好的选择,因为它比较简单。Vinum 显得有点超出了我的需要。
 
12.7.1.1.2 安装CCD 
 
CCD 允许我将几个相同的磁盘通过一个逻辑文件系统连接起来。要使用CCD,我需要在内核中配置CCD 支持选项。我把这行加入到我的内核配置文件中,然后重建内核:
 
pseudo-device ccd 4 
FreeBSD 4.0 和以后版本中,CCD 可以作为一个内核模块来加载。这儿是我如何给磁
盘做标记的: 
disklabel -r -w ad1 auto 
disklabel -r -w ad2 auto 
disklabel -r -w ad3 auto 
这儿把整个硬盘创建成ad1c, ad2c 和ad3c。下一步是改变disklabel 的类型。
disklabel -e ad1 
disklabel -e ad2 
disklabel -e ad3 
 
这儿在每个已经设置了EDITOR 环境变量的磁盘上打开了disklabel,在我的例子中,是vi。你可以看到: 
 
8 partitions: 
# size offset fstype [fsize bsize bps/cpg] 
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) 
我需要添加一个“e“分区给ccd 用。这可以是“c”分区的一个拷贝,但fstype 必须
4.2BSD。做完之后,你会看到下面这些:
8 partitions: 
# size offset fstype [fsize bsize bps/cpg] 
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) 
e: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) 
 
12.7.1.1.3 建造文件系统
 
现在,我已给每个磁盘都加上了标签,我需要建构ccd。要这样做,我需要一个叫ccdconfig 的工具,在这儿是/dev/ccd0c。ccdoc 的设备节点可能不存在,所以你需要创建它,执行下面的命令:
 
cd /dev 
sh MAKEDEV ccd0 
Ccdconfig 的最后配置是设备的排列问题。执行下面的命令: 
ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e 
这样就配置好了ccd。我现在要创建文件系统了。
newfs /dev/ccd0c 
 
12.7.1.1.4 自动创建
 
最后,如果我要挂上ccd,我需要先配置它。我把当前的配置文件写入/etc/ccd.conf中:ccdconfig -g > /etc/ccd.conf当我重新启动系统时,脚本/etc/rc 就运行ccdconfig –C。这样就能自动配置ccd 了。
 
如果你启动进入了单用户模式,你在挂上ccd 之前,你需要执行下面的命令来配置队列:ccdconfig -C然后,我们需要为ccd 在/etc/fstab 中配置一个记录,以便在启动时能被挂上。
 
/dev/ccd0c /media ufs rw 2 2 
0
相关文章