热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FREEBSD下VINUM做软RAID过程

今天新装一个FREEBSD服务器,结果机器上面没有阵列卡,两个72GSCSI硬盘做RAID1,找遍所有的论坛,新闻组也没有一篇好一点关于VINUM的文档,特别是中文的资料,简直是少之又少,从下

今天新装一个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 WR99vE)
Cannot find file system superblock
/dev/vinum/root: CANNOT FIGURE OUT FILE SYSTEM PART99vION 这样的错误表示在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官方网站的文档全部啃一遍...


本文作者:

推荐阅读
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
author-avatar
手机用户2502858065
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有