免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6740 | 回复: 12
打印 上一主题 下一主题

[FreeBSD] 【心得】FREEBSD下VINUM做软RAID过程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-08-17 21:46 |只看该作者 |倒序浏览
今天新装一个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进入单用户模式,输入命令:
  1. mount -u /
复制代码
      VINUM必须在启动时刻在内核中有效,所以编辑/boot/loader.conf文件,加入下面的语句
  1. vinum_load="YES"
  2. vinum.autostart="YES"
复制代码

       第二句话的含义是VINUM在启动时候自动从内核中收集需要的磁盘信息。
2:设置第一个硬盘
    现在我们需要在第一个硬盘上增加一个新的文件系统,文件系统的类型为VINUM,输入命令:
  1. bsdlabel /dev/da0s1
复制代码
    你将看到下面的信息:
  1. 8 partitions:
  2. #             size               offset         fstype       [fsize  bsize  bps/cpg]
  3.   a:    140158360     2097152      4.2BSD       2048   16384 28552
  4.   b:       2097152                  0         swap     
  5.   c:     142255512                0        unused      0            0         0
复制代码
      现在我们需要增加一个新的文件系统,需要从硬盘的16扇区开始覆盖整个硬盘,也就是说将把整个硬盘当作镜像MIRROR RAID1中的一个盘,首先将原始的信息保存为一个文件,输入命令:
  1. bsdlabel /dev/da0s1 >; /home/root/da0s1
复制代码
然后将原始信息备份:
  1. cp /home/root/da0s1 /home/root/da0s1.bak
复制代码
然后编辑文件/home/root/da0s1,形成如下的:
  1. 8 partitions:
  2. #             size               offset         fstype       [fsize  bsize  bps/cpg]
  3.   a:    140158360     2097152      4.2BSD       2048   16384 28552
  4.   b:       2096871                  281       swap     
  5.   c:     142255512                0        unused      0            0         0
  6.   e:     142255496              16      vinum
复制代码
和上面相比较,总共有三个地方发生了变化,第一是SWAP的offset,第二是swap的大小,第三是增加了一个新的文件系统,类型为vinum。
先说第一处变化是将原来扇区为0的SWAP变为了开始扇区281,第二是为了保持根文件系统的不变化,所以将SWAP的大小减少281个扇区(这个很重要,不然就会发生两个分区重叠的现象),第三个增加了新的开始扇区为16,大小为整个硬盘大小减去16个扇区的大小,实际上这个大小就是UNUSED类型的大小减去16。
然后将这个配置文件导入现在的系统,输入命令:
  1. bsdlabel -R /dev/da0s1 /home/root/da0s1
复制代码

如果没有提示,则说明成功的编辑了disklabel,如果提示分区重叠等提示,则说明OFFSET和SIZE计算错误,重新输入
  1. bsdlabel /dev/da0s1
复制代码
则可以看见新的变化
【注意】:原来的英文文档中是使用bsdlabel -e /dev/da0s1这样的方式来进行编辑的,强烈建议不要这样,因为这样的方式作出的更改,如果出现错误,例如分区重叠等错误没有任何的提示,同时文件系统也不会有任何的变化3:开始VINUM
     到现在为止我们已经成功的修改了文件系统信息,下面将配置VINUM的第一个硬盘,输入命令
  1. vinum
复制代码
将进入VINUM的命令行模式,退出输入CTRL+D
     编辑文件/etc/vinum.conf(这个文件名称随便取,没有关系的),内容如下:
  1. drive m1 device /dev/da0s1e
  2.    volume root
  3.       plex org concat
  4.         sd len 140158360s driveoffset 2097136s drive m1
  5.    volume swap
  6.       plex org concat
  7.          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。
输入命令:
  1. create -f /etc/vinum.conf
复制代码
可以看到成功的建立了DRIVE,PLEX以及SUBDISK和VOLUME,退出VINUM命令行模式,现在已经成功的建立了两个设备,分别为/dev/vinum/root以及/dev/vinum/swap,现在来测试root的大小以及开始位置是否正确,输入命令:
  1. fsck -n -t ufs /dev/vinum/root
复制代码
如果成功的话可以看到进行5个步骤的磁盘检查,如果错误的话将收到下面的提示信息:
  1. # fsck -n -t ufs /dev/vinum/root
  2. ** /dev/vinum/root (NO WRITE)
  3. Cannot find file system superblock
  4. /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:设置第二个硬盘
第二个硬盘的设置大同小异,完全可以使用命令
  1. bsdlabel -R /dev/da1s1 /home/root/da0s1
复制代码
来对第二个硬盘进行分区。
在原来的/etc/vinum.conf文件后面增加一段,内容如下:
  1. drive m2 device /dev/da1s1e
  2.    volume root
  3.       plex org concat
  4.         sd len 140158360s driveoffset 2097136s drive m2
  5.    volume swap
  6.       plex org concat
  7.          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。输入命令:
  1. start root.p1.s0
复制代码
可以将root.p0.s0的数据copy到root.p1.s0上面,至此RAID1系统完毕

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

论坛徽章:
0
2 [报告]
发表于 2004-08-18 00:14 |只看该作者

【心得】FREEBSD下VINUM做软RAID过程

HandBook,还没有翻译完成:
http://gavin.jingye.net:8080/cnproj/zh_CN.GB2312/books/handbook/vinum-vinum.html

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-04-01 06:20:00
3 [报告]
发表于 2004-08-18 19:20 |只看该作者

【心得】FREEBSD下VINUM做软RAID过程

好文章!
收藏!

论坛徽章:
0
4 [报告]
发表于 2004-08-18 19:58 |只看该作者

【心得】FREEBSD下VINUM做软RAID过程

不错,一直在找关于vinum方面的文章,都没找到。。
谢谢楼主。

论坛徽章:
0
5 [报告]
发表于 2004-08-18 20:35 |只看该作者

【心得】FREEBSD下VINUM做软RAID过程

软件raid有效果吗?

论坛徽章:
0
6 [报告]
发表于 2004-08-22 09:24 |只看该作者

【心得】FREEBSD下VINUM做软RAID过程

收一下

论坛徽章:
0
7 [报告]
发表于 2004-08-22 19:14 |只看该作者

【心得】FREEBSD下VINUM做软RAID过程

好文章,收藏。

论坛徽章:
0
8 [报告]
发表于 2004-08-24 13:02 |只看该作者

【心得】FREEBSD下VINUM做软RAID过程

我做的FreeBSD怎么非法关机便不能用了?

论坛徽章:
0
9 [报告]
发表于 2004-12-28 00:08 |只看该作者

【心得】FREEBSD下VINUM做软RAID过程

觉得不要让vinum开机的时候启动服务会稳当一点,个人认为.

论坛徽章:
5
荣誉会员
日期:2011-11-23 16:44:17CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-09-18 15:15:45未羊
日期:2014-02-25 14:37:19射手座
日期:2014-12-26 22:55:37
10 [报告]
发表于 2004-12-28 17:38 |只看该作者

【心得】FREEBSD下VINUM做软RAID过程

呵呵,如果用5.3,还是用gvinum吧,而且5.2.1也不是稳定版本。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP