ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

DELL服务器RAID配置与SBUU系统部署实战指南

DELL服务器RAID配置与SBUU系统部署实战指南 简介面向DELL服务器运维、系统集成与机房管理人员这份技术文档聚焦磁盘RAID制作与操作系统安装两大核心环节。文档先系统介绍RAID技术的基本原理与分类再逐项对比RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6的存储方式、数据冗余能力、磁盘利用率与适用场景例如RAID0追求读写速度但不提供容错RAID1通过镜像实现高可靠性RAID5兼顾性能与空间利用率。同时以Dell R900机型为例详细梳理了从创建RAID数组、分区、格式化到安装操作系统的完整实操流程并针对不同RAID级别在容错、性能、磁盘成本上的取舍给出对照说明便于读者按业务需求选择合适方案。资源为单份docx文档大小约3.96MB内容组织清晰可直接对照查阅当前已有194人学习下载适合需要为DELL服务器完成磁盘阵列规划与系统部署的技术人员使用。1. RAID没配好系统装到一半才哭着找驱动很多第一次接触DELL服务器的同行最容易踩的坑不是系统装不进去而是装到一半才发现硬盘不认、驱动缺失、阵列卡状态一团糟。我给客户做R900、R620这些老平台时遇到过太多次类似情况——标准系统光盘引导进去发现磁盘列表空白阵列卡H710p的驱动不在镜像里那一刻才意识到RAID配置不只是“把几块盘插上”这么简单它决定了操作系统能不能看到存储、装完能不能稳定跑。这份文档的价值在于把从RAID等级选型、CtrlR配置VD、初始化到SBUU部署系统的完整链路串起来了适合机房实施、IT运维和要自己折腾老服务器的玩家收藏。2. RAID等级选型7种级别里为什么只有0/1/5/10值得认真学2.1 每一级RAID到底解决了什么问题RAID全称是Redundant Arrays of Independent Disks中文叫独立磁盘冗余阵列。一个很容易被忽略的点是操作系统本身看不到物理硬盘它只认识逻辑磁盘Logic Drive在DELL的PERC阵列卡环境里也叫虚拟磁盘Virtual Disk简称VD或容器Container。不同厂商叫法不同但本质是同一个东西——必须把物理盘先在阵列卡层面组合成VD系统才认。常见RAID级别里文档把0、1、2、3、4、5、6、7、10、50、53、JBOD全列了一遍但实际生产环境真正用得上的只有几个。我按自己的理解给它们做了个对比RAID级别最少盘数冗余能力容量利用率典型场景RAID01无100%临时计算、缓存、对数据不敏感的加速场景RAID12单盘故障50%系统盘、数据库日志盘RAID53单盘故障(N-1)/N文件存储、主流业务默认选项RAID64双盘故障(N-2)/N数据绝对不允许丢的场景RAID104每组镜像内单盘故障50%数据库数据盘、高随机读写场景RAID506每个RAID5组内单盘故障(N-组数)/N大容量读性能均衡需求RAID0的原理是把数据拆成块分到不同硬盘上并行读写所以理论速度接近单盘的X倍X为盘数。但它完全没有校验和冗余任何一块盘挂了整个阵列的数据都报废。RAID1则是把同一份数据同时写到两块盘相当于实时镜像坏一块盘另一块直接接管但代价是磁盘利用率只有50%。RAID5在RAID0的基础上加了分布式奇偶校验校验信息不放在独立盘上而是分散到所有成员盘里允许坏一块盘后通过校验重建数据。RAID6在RAID5基础上多了一套分布存储的奇偶校验码允许同时坏两块盘。2.2 RAID2、RAID3、RAID4为什么基本退出市场文档里对RAID2、RAID3、RAID4的描述很详细但结论也很明确在大多数场合RAID5包含了RAID2到RAID4的优点所以这些级别基本退出了市场。RAID2用海明码做错误检索和恢复理论上在数据出错时能把错误校正回来但代价是需要多个磁盘专门存放校验和恢复信息在商业环境里几乎见不到。RAID3是带奇偶校验码的并行传送数据按位或字节条块化分布在多个盘上校验信息独立存放在一块专门的奇偶盘上适合图形处理这类连续大吞吐量的场景但一旦遇到随机小数据写入奇偶盘就成了瓶颈。RAID4按块访问数据每次操作涉及单块盘校验信息也是独立盘存放控制器设计难度大并行性解决得也不好。用一句话概括RAID2到RAID4要么冗余代价太高要么控制器实现太复杂要么随机性能太差。RAID5把它们能解决的场景全部覆盖了而且实现成本低所以现在市面上主流服务器默认推荐的就是RAID5。这里我要多说一句很多教程告诉你RAID5好但没说清楚它的“写损失”问题——每一次写操作实际会产生四次读/写动作两次读旧数据和旧奇偶信息两次写新数据和新奇偶信息。这意味着RAID5的随机写性能并不好数据库这类高写入场景建议慎重。2.3 生产环境怎么选RAID5做默认RAID10做数据库实际部署中我给客户建议的选型逻辑很简单——系统盘和数据盘的策略分开。具体来说系统盘两块盘组RAID1或者直接用一块SSD RAID0。系统盘数据丢失造成的损失远小于数据盘重装系统成本比做RAID5低得多。数据盘三块盘及以上组RAID5这是性价比最高的选择单盘故障不丢数据容量利用率高。数据库服务器有条件的直接用RAID10。RAID10本质是一个带区结构加一个镜像结构两两镜像再条带化既能享受RAID0的速度又有RAID1的冗余。代价就是贵可用容量只有总容量的一半。数据极其重要的场合RAID6允许挂两块盘适合数据绝对不允许出错的场景但控制器计算奇偶校验值的开销大写入性能比RAID5差。还有一点值得注意RAID1要求所有硬盘容量尽量一致RAID0没有这个要求。不过我的习惯是无论如何都尽量选同型号同批次的盘容量不一样的时候阵列卡会按最小容量计算可用空间剩下的容量就是浪费。2.4 逻辑磁盘与物理磁盘的关系为什么系统看不到盘这里要专门说一下“逻辑磁盘”这个概念。当硬盘连接到阵列卡上时操作系统不能直接看到物理硬盘必须先在阵列卡的BIOS里创建一个或多个VD系统才能识别。这也是很多人第一次做RAID时最懵的地方——明明硬盘都插好了进系统安装界面却看不到任何磁盘然后以为是驱动问题实际上是VD压根没创建。阵列卡本身的配置工具就是它的BIOS在DELL服务器上开机自检时按CtrlR可以进入PERC配置界面。另外DELL还提供了一套引导工具SBUU也能配置RAID但它的配置功能比阵列卡原生工具弱我在生产环境上从来不推荐用SBUU配阵列都是在开机自检时直接用CtrlR搞定SBUU只用来做系统部署。3. DELL服务器的RAID制作全流程CtrlR下的虚拟磁盘创建实录3.1 开机进CtrlR先确认硬盘状态Ready再动手DELL服务器配置RAID的入口通常在开机自检阶段。屏幕出现“Press to Run Configuration Utility”提示时按CtrlR进入PERC阵列卡配置界面。进不去的情况我也碰到过——有的是因为显示输出在串口上有的是因为自检太快没来得及按键解决办法是重启服务器反复试或者进BIOS把开机自检的等待时间调长。进入界面后第一件事不是急着创建VD而是确认硬盘状态。高亮选中需要配置的PERC卡先看物理磁盘列表确认所有硬盘都处于Ready状态。如果有一块盘显示Foreign或其他异常状态先别继续往下走这块盘的处理方法放到后面的故障排查章节讲。当初学到这个习惯是因为连续两次踩坑第一次没看状态直接把盘建进VD结果那块盘实际上是上一台服务器拆下来的旧盘带着RAID残留信息第二次是盘是黄状态强行加入阵列后同步到一半就掉了。3.2 创建新VDF2菜单与Create New VD全步骤硬盘状态确认没问题后高亮选中PERC卡按F2在弹出的菜单里选择Create New VD。这里说一个细节不同DELL型号、不同PERC卡固件版本菜单叫法会略有差异但核心选项都包含Create New VD、Foreign Config、Clear Config这几个逻辑是一样的。进入创建界面后操作顺序如下在RAID Level选项按回车弹出支持的所有RAID级别。PERC卡能支持的级别通常有RAID0、RAID1、RAID5、RAID10、RAID50具体出现哪些选项取决于物理盘的数量。比如只有两块盘的时候RAID5可能根本不显示因为最少需要三块盘。选择需要的RAID级别这里以RAID5为例按回车确认。按向下方向键把光标移到Physical Disks列表上下选择需要加入阵列的硬盘按空格键选中被选中的盘会出现X标记。当选中的硬盘数量达到该RAID级别要求时Basic Settings里的VD Size会显示默认容量信息。按Tab键把光标移到VD Size栏可以手动调整虚拟磁盘大小。这里的逻辑是可以不把阵列里所有容量一次性分配到一个VD里剩余容量可以再创建第二个VD。但默认情况下VD Size等于RAID全部可用容量我一般保持默认。VD Name按需设置可以为空但我建议设置一个有意义的名称比如R5-System或DB-RAID10方便后续运维识别。确认配置后按Tab把光标移到OK按回车会弹出确认提示。如果是全新建阵列选择初始化如果是为了恢复之前的数据不要初始化。这里把各RAID级别最少需要的硬盘数量整理成一张表方便新手机房操作时对照RAID级别最少物理盘数量RAID01RAID12RAID53RAID104RAID5063.3 VD创建完成后查看信息与常见误操作配置完成后返回VD Mgmt主界面可以看到新创建的Virtual Disk 0。把光标移到Virtual Disk 0处按F2可以打开对该虚拟磁盘的操作菜单里面有Initialization初始化、Consistency Check一致性校验、Delete VD删除虚拟磁盘、Properties查看属性这几个关键选项。光标移到带“”标志的条目上按右方向键展开子菜单按左方向键收起。查看VD信息时在VD Mgmt主界面把光标移到Virtual Disk 0处按回车就能看到刚配置成功的虚拟磁盘详细信息包括RAID级别、容量、成员盘状态等。查完之后按Esc返回主界面。这里有一个常见的误操作很多人创建完VD直接按Esc退出重启没有做初始化就开始装系统。新部署服务器时如果VD是从全新硬盘或清空过的盘创建的不初始化直接装系统通常也没问题因为系统安装过程会重建分区表但如果是旧盘里面残留的数据格式或RAID元数据可能干扰后续使用。我的习惯是全新的盘Fast Init走一遍旧盘翻新Full Init走一遍确保数据彻底清干净再往下走。4. 初始化与常见故障排查RAID配置里最该小心的四个坑4.1 初始化三个选项Start Init、Stop Init、Fast Init的差别在VD Mgmt界面选中Virtual Disk 0按F2选择Initialization会出现三个选项Start Init、Stop Init、Fast Init。很多第一次接触的人不清楚Start Init和Fast Init有什么区别我展开说一下。Start Init是全量初始化会对虚拟磁盘做完整的写操作把整块VD空间清一遍。操作时会弹出确认窗口提示初始化将清除所有数据按回车确认后就能看到初始化进度左边红框是百分比右边红框是当前执行的操作。等待到100%后虚拟磁盘配置完成。这个过程耗时取决于阵列容量几个TB的盘全量初始化可能要跑很久。Fast Init是后台初始化启动后系统自动在后台执行对用户透明。选了Fast Init之后不需要等待可以立刻重启服务器开始装系统初始化进程在服务器开机状态下继续自动完成剩余步骤直到全部结束。后台初始化的意义在于省时间——新服务器部署时不用在BIOS界面干等几个小时。装系统期间初始化还在后台跑不会影响系统安装和使用只是底层还在写盘。Stop Init是停止初始化一般在误操作后用来中止但要注意初始化一旦被中止VD的数据完整性是未知状态不建议继续使用最好删除重建否则后患无穷。4.2 坑一直接使用顺来的旧硬盘阵列卡显示磁盘为Miss状态现象从别的服务器上拔下的硬盘直接插到另一台服务器上在PERC界面里能看到部分磁盘状态为Miss比如0号槽位显示01号磁盘为Miss状态正常盘无法参与配置。原因新插入的硬盘本身自带RAID配置信息。拔盘之前没有按正规流程解散或清除这块盘的RAID信息比如在源服务器阵列卡里先做Delete VD或Clear Config硬盘直接插过来后当前服务器的阵列卡识别到了硬盘上的外部配置但无法直接使用就把它标记为Foreign状态进而导致物理盘显示Miss。解决出现这种情况时界面会多出一个Foreign View菜单。可以选择此菜单下的Foreign Config或者直接高亮PERC卡按F2在弹出的菜单里选择Foreign Config然后根据需求选Import或Clear。Import会把新插入硬盘上的原有RAID配置信息导入到当前PERC卡适合做阵列迁移Clear则是清除硬盘上的RAID配置信息适合翻新旧盘。我们的场景是要把硬盘重新划分RAID所以选中Clear清除掉硬盘上的RAID配置信息再按前文的方法正常创建VD。从这次之后我要求所有团队成员在拆硬盘之前只要服务器还能开机必须先把阵列信息清干净再拔盘。4.3 坑二新部署服务器直接跳过初始化开箱即翻车现象创建VD之后不初始化直接插系统盘安装系统装到一半或第一次重启后系统报磁盘IO错误或者开机进系统后磁盘状态变成Rebuild。原因新阵列不初始化就使用VD的元数据没有写入阵列卡。系统安装过程中会写入引导数据但因为底层阵列还没有建立完整的逻辑结构某些PERC固件版本下就可能出现VD状态异常。虽然Fast Init会在后台补完这个过程有些时候甚至不初始化也能正常用但这属于玄学范围——碰上了就是麻烦。解决新部署的服务器创建完VD后直接选Fast Init确认后台初始化启动后再插入系统盘开始安装。Fast Init的好处是不用等后台自动跑和系统安装并行完全不冲突。4.4 坑三操作到一半误删VD数据直接蒸发现象做一致性校验或者查看VD属性时不小心在F2菜单里选了Delete VD按了回车整个虚拟磁盘的配置被清除所有成员盘回到Ready状态数据全部不可访问。原因PERC界面中Delete VD没有二次确认密码回车确认就执行。手滑选中菜单选项、按错方向键是误删操作最常见的原因。解决进入Delete VD选项后阵列卡通常会弹出确认条需要再次确认才会执行删除。所以操作时一定要看清楚弹窗文字不要习惯性按回车。万一真的删了立刻停止所有写操作把状态告诉数据恢复团队——但说实话RAID删了重建后能完整恢复的概率不高最好养成在操作之前记录原始配置的习惯。我自己的做法是把每一台服务器的RAID级别、硬盘顺序、VD容量、VD Name全部记录在案操作前拍照操作后核对。从一次帮客户恢复数据的血泪教训之后所有服务器操作我都强制留底。4.5 坑四掉盘后不介入Rebuild状态拖垮整机性能现象RAID5阵列中有一块盘掉了服务器带病运行访问文件明显变慢打开阵列卡界面看到VD状态变成Degraded成员盘里有一块显示Rebuild或者Failed。原因RAID5允许单盘故障后继续运行但掉盘后所有读操作都需要靠校验现场计算出来性能大幅下降。特别是原文档里提到的“写损失”——每一次写操作变成读旧数据和旧奇偶信息、写新数据和新奇偶信息两个循环系统响应慢是正常的。解决第一时间更换故障盘插入新盘后阵列卡会自动开始重建整个重建过程需要数小时甚至一两天期间尽量减少IO压力。如果阵列里没有热备盘重建速度会更慢。这里要提醒的是换上的新盘容量必须大于等于原盘建议使用同型号、同固件版本的盘减少重建失败概率。5. SBUU系统部署实战老服务器装Windows不认盘的正解5.1 为什么不能直接用标准光盘装系统驱动缺失的真实场景使用标准操作系统安装光盘直接装系统是很多人的第一直觉但在DELL PowerEdge服务器上经常翻车——安装程序进入磁盘分区界面后才发觉阵列卡驱动没有集成在系统镜像里系统根本看不到服务器上的硬盘。比如用Windows 2008 R2光盘在PowerEdge R620上部署时光盘里没有集成H710p阵列卡的驱动安装程序就一直停在“找不到磁盘驱动器”的界面。解决办法有几个一是用软驱或U盘加载驱动二是手动下载驱动在安装界面加载三就是用DELL官方的部署工具。对老式DELL服务器来说最省心的方案就是SBUU。5.2 SBUU是什么一张集合了驱动和部署工具的Live DVDSBUU全称Dell System Build and Update Utility是一个可引导的Live DVD它把所有服务器部署所需的驱动固化在光盘里。戴尔新服务器上普遍集成了生命周期控制器iDRAC中的一部分驱动固化在主板上但R900这类老式主机没有这个功能SBUU光盘就是替代方案。SBUU的核心功能有三个一是简化操作系统安装和驱动加载过程避免装到一半缺驱动二是配合SUU进行固件和BIOS更新三是做硬件配置包括BIOS、iDRAC和RAID。对运维来说最重要的是第一个功能它会预先加载好所需的阵列卡驱动程序进入系统安装界面时硬盘设备和磁盘分区都是可见的不用再额外折腾驱动。5.3 SBUU部署Windows Server全流程按这七步走不会错第一步插入SBUU光盘开机按F11进入启动菜单选择光盘启动。进入引导界面后不同服务器型号界面有差异但逻辑类似选择Dell System Build and Update Utility进入。第二步选择“服务器操作系统安装”并点击“配置”进入操作系统配置流程。第三步设置正确的时区确认时钟准确后点击继续。时区设置错会导致系统日志时间不对后续排查问题会被误导这个步骤千万别跳过。第四步选择要部署的操作系统比如Windows 2008 R2 SP1。SBUU会根据这个选择自动预加载相关驱动所以一定要选对系统和位版本选错了驱动加载不全后面安装还是白搭。第五步阵列卡配置。SBUU的阵列配置功能比PERC BIOS弱我前面就说过建议在CtrlR里把RAID配好再进入SBUU部署。如果已经配好了阵列在这个界面选择“系统上存在的存留”并点击继续然后默认选择点击“马上应用”。SBUU在驱动等加载好后服务器会自动弹出SBUU光盘。第六步SBUU进入自动配置阶段。这个阶段会创建临时的部署磁盘分区、配置硬盘启动、加载Windows安装驱动等支持文件。全部完成后光盘自动弹出此时插入Windows Server系统光盘等待系统重启。第七步服务器重启后进入Windows安装程序。由于SBUU预先加载好了所需的全部相关驱动安装界面里能看到配置好的阵列这时候再创建需要分区后续系统安装就和普通PC一样了。值得专门说明的是临时分区那个环节SBUU会创建一个临时部署分区用来引导安装程序后续步骤中这个临时分区需要删除。系统安装界面中会出现临时分区删除的确认提示点击OK确认后重新创建自己想要的分区然后正式进入Windows安装程序。5.4 SBUU的局限阵列配置功能偏弱不适合做精细RAID操作SBUU虽然里面带阵列配置功能但实际用起来会发现比PERC BIOS弱不少。具体表现在几个地方RAID级别的选择受限、硬盘选择不够直观、虚拟磁盘创建后的管理选项少。我在生产中从来不用SBUU配阵列原因很简单——阵列卡BIOS里的配置项更全可控性更强而且CtrlR的配置流程在文档里记录也完整。不过SBUU在驱动预加载这件事上是真的省心特别是H710p这种老阵列卡系统盘里没有驱动靠SBUU一步到位。6. 装完系统后的收尾动作验证VD健康状态与一致性校验系统装完不是结束阵列的验证和后续维护才刚开始。我自己固定的一套收尾流程是系统装完后第一时间进CtrlR查看VD状态确认RAID级别正确、所有成员盘Online、状态为Ready然后在系统内用磁盘管理确认分区和容量和创建VD时记录的参数比对防止出现容量不对、分区丢失等问题。另一个值得养成习惯的操作是定期的一致性校验。PERC的VD菜单里有一项Consistency Check用来检查阵列中数据的校验信息是否一致。RAID5和RAID6在数据长期运行后如果出现某些位翻转或者写入异常一致性校验能及早发现。我的做法是每季度跑一次选业务低峰期执行因为校验过程会占用磁盘IO。如果校验中发现不一致PERC会自动尝试修复如果修复不了就说明某个盘可能已经出问题了要尽快换盘。还有一个小技巧如果服务器上有热备盘Hot Spare重建的时候系统会自动把热备盘顶上不用等运维到场手动换盘。做RAID5或RAID6时有预算就加一块热备盘成本不多但能明显缩短故障恢复时间。从那以后我每装完一台DELL服务器都会强制走一遍整套流程确认硬盘Ready状态、CtrlR创建VD、Fast Init后台初始化、装完系统回看VD状态、季度性一致性校验。这套习惯帮我避开了好几次数据重建的麻烦。希望帮到你。本文还有配套的精品资源点击获取
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进