分享
 
 
 

FREEBSD下VINUM做软RAID过程

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

今天新装一个FREEBSD服务器,结果机器上面没有阵列卡,两个72G SCSI硬盘做RAID1,找遍所有的论坛,新闻组也没有一篇好一点关于VINUM的文档,特别是中文的资料,简直是少之又少,从下午3点装到现在,趁着硬盘正在同步,将自己的一点安装心得写出来

参考文档:http://devel.reinikainen.net/docs/how-to/Vinum/

一:安装环境

SERVER: HP COMPAQ DL140

SCSI卡:普通SCSI卡

硬盘:HP U320 72G HARD DISK

操作系统:FreeBSD 5.2.1

二:安装过程

1:系统安装

安装系统的过程和普通安装一样,需要注意的是安装的过程中不需要将第二个硬盘进行分区工作,后面直接导入DISKLABEL的方法会比较简单。尤其需要注意的是,在对主硬盘进行分区的时候建议最好先建立SWAP,然后建立根文件系统,最后才建立其他(我的安装中为了图方便,只建立了ROOT和SWAP),因为这样的话SWAP的地址偏移量就从0开始,方便后面对OFFSET的计算。

系统安装完毕后,启动选择画面选择4进入单用户模式,输入命令:

代码:

mount -u /

VINUM必须在启动时刻在内核中有效,所以编辑/boot/loader.conf文件,加入下面的语句

代码:

vinum_load="YES"

vinum.autostart="YES"

第二句话的含义是VINUM在启动时候自动从内核中收集需要的磁盘信息。

2:设置第一个硬盘

现在我们需要在第一个硬盘上增加一个新的文件系统,文件系统的类型为VINUM,输入命令:

代码:

bsdlabel /dev/da0s1

你将看到下面的信息:

代码:

8 partitions:

# size offset fstype [fsize bsize bps/cpg]

a: 140158360 2097152 4.2BSD 2048 16384 28552

b: 2097152 0 swap

c: 142255512 0 unused 0 0 0

现在我们需要增加一个新的文件系统,需要从硬盘的16扇区开始覆盖整个硬盘,也就是说将把整个硬盘当作镜像MIRROR RAID1中的一个盘,首先将原始的信息保存为一个文件,输入命令:

代码:

bsdlabel /dev/da0s1 > /home/root/da0s1

然后将原始信息备份:

代码:

cp /home/root/da0s1 /home/root/da0s1.bak

然后编辑文件/home/root/da0s1,形成如下的:

代码:

8 partitions:

# size offset fstype [fsize bsize bps/cpg]

a: 140158360 2097152 4.2BSD 2048 16384 28552

b: 2096871 281 swap

c: 142255512 0 unused 0 0 0

e: 142255496 16 vinum

和上面相比较,总共有三个地方发生了变化,第一是SWAP的offset,第二是swap的大小,第三是增加了一个新的文件系统,类型为vinum。

先说第一处变化是将原来扇区为0的SWAP变为了开始扇区281,第二是为了保持根文件系统的不变化,所以将SWAP的大小减少281个扇区(这个很重要,不然就会发生两个分区重叠的现象),第三个增加了新的开始扇区为16,大小为整个硬盘大小减去16个扇区的大小,实际上这个大小就是UNUSED类型的大小减去16。

然后将这个配置文件导入现在的系统,输入命令:

代码:

bsdlabel -R /dev/da0s1 /home/root/da0s1

如果没有提示,则说明成功的编辑了disklabel,如果提示分区重叠等提示,则说明OFFSET和SIZE计算错误,重新输入

代码:

bsdlabel /dev/da0s1

则可以看见新的变化

【注意】:原来的英文文档中是使用bsdlabel -e /dev/da0s1这样的方式来进行编辑的,强烈建议不要这样,因为这样的方式作出的更改,如果出现错误,例如分区重叠等错误没有任何的提示,同时文件系统也不会有任何的变化3:开始VINUM

到现在为止我们已经成功的修改了文件系统信息,下面将配置VINUM的第一个硬盘,输入命令

代码:

vinum

将进入VINUM的命令行模式,退出输入CTRL+D

编辑文件/etc/vinum.conf(这个文件名称随便取,没有关系的),内容如下:

代码:

drive m1 device /dev/da0s1e

volume root

plex org concat

sd len 140158360s driveoffset 2097136s drive m1

volume swap

plex org concat

sd len 2096871s driveoffset 265s drive m1

在这个文件中,其中第一行是声明有一个盘,名称为m1,在设备/dev/da0s1e上,其中da0s1e就是我们刚才编辑的新增加的partition e

,这里最值得注意的是driveoffset的值,因为len即size是不变的,但是driveoffset一定是原来的offset值减去16s,S即sector,因为这个偏移值是在/dev/da0s1e基础上的偏移扇区值,da0s1e已经是从第16扇区开始的,所以driveoffset一定是原来的offset值减去16s。

输入命令VINUM进入VINUM命令行模式,输入LIST命令可以看到现在还没有建立任何DRIVE,PLEX以及SUBDISK。

输入命令:

代码:

create -f /etc/vinum.conf

可以看到成功的建立了DRIVE,PLEX以及SUBDISK和VOLUME,退出VINUM命令行模式,现在已经成功的建立了两个设备,分别为/dev/vinum/root以及/dev/vinum/swap,现在来测试root的大小以及开始位置是否正确,输入命令:

代码:

fsck -n -t ufs /dev/vinum/root

如果成功的话可以看到进行5个步骤的磁盘检查,如果错误的话将收到下面的提示信息:

代码:

# fsck -n -t ufs /dev/vinum/root

** /dev/vinum/root (NO WRITE)

Cannot find file system superblock

/dev/vinum/root: CANNOT FIGURE OUT FILE SYSTEM PARTITION

这样的错误表示在vinum.conf文件中VOLUME的LEN或者DRIVEOFFSET计算错误,在 vinum命令行下输入resetconfig命令可以清除原来的配置,重新使用create命令导入修改后的配置文件,再次进行fsck检查,重复上面的步骤直到root文件系统正确为止。

4:修改fstab文件

修改/etc/fstab文件,将原来的/挂接点由/dev/da0s1a改为/dev/vinum/root,同时将原来的交换分区由/dev/da0s1b改为/dev/vinum/swap,现在可以重新启动系统来查看只有一个主盘的RAID1系统:-)

5:设置第二个硬盘

第二个硬盘的设置大同小异,完全可以使用命令

代码:

bsdlabel -R /dev/da1s1 /home/root/da0s1

来对第二个硬盘进行分区。

在原来的/etc/vinum.conf文件后面增加一段,内容如下:

代码:

drive m2 device /dev/da1s1e

volume root

plex org concat

sd len 140158360s driveoffset 2097136s drive m2

volume swap

plex org concat

sd len 2096871s driveoffset 265s drive m2

最后进入VINUM的命令行模式,首先resetconfig清除原来的配置,然后使用

create -f /etc/vinum.conf命令来导入配置,成功之后我们可以使用list命令查看现在已经有了2 drivers,2 volumes,4 plexes,4 subdisks

其中subdisk有两个的状态为empy,plex有两个的状态为faulty,这是正常的,因为现在只有m1上面有数据,m2上面没有数据,两个plex有差异,所以其状态为faulty。输入命令:

代码:

start root.p1.s0

可以将root.p0.s0的数据copy到root.p1.s0上面,至此RAID1系统完毕

写得好累,写这个的主要目的是将我安装过程中容易出错的一些地方罗列出来,方便大家以后配置VINUM少走弯路,要详细了解VINUM的原理才能举一反三的配置RAID 0+1 RAID 5等等,这里建议一定要将man vinum以及vinum官方网站的文档全部啃一遍...

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有