服务器是否做了RAID 01(也就是多数人口中的RAID 1+0),不能靠猜,最直接的办法是用RAID卡的管理工具或者系统命令,去看逻辑盘的RAID Level参数,同时结合磁盘数量和容量交叉验证。
怎么看服务器是否做了raid01?先分清RAID 01和RAID 10
很多人把“RAID 01”挂在嘴边,但行业里对这两个名字的用法其实有点乱,严谨地说,RAID 01指RAID 0+1,也就是先做条带化,再做镜像;RAID 10指RAID 1+0,先做镜像,再做条带化,真到了服务器现场,厂商管理软件里常常把RAID 1+0直接简写成“RAID 10”,而运维人员聊天时又喜欢说“做了RAID 01”,所以你要判断的,绝大多数情况下是服务器是否做了RAID 1+0这块逻辑盘。
看服务器是否做了这个配置,一共有三条路:
- 操作系统的磁盘层面,看是否出现镜像关系的物理盘分组;
- 硬件RAID卡命令,直接读取逻辑盘的RAID Level字段;
- 没有管理工具时,靠盘数、容量和故障容忍表现反推。
接下来按“最快能落地”的顺序说。
在Linux系统里查服务器RAID级别的具体方法
Linux下判断服务器RAID级别,第一件事不是敲命令,而是确认这台机器用的是硬RAID还是软RAID,软RAID的信息藏在系统里,硬RAID的信息存在RAID卡上,后者必须借助厂商工具才能看完整。
第一步:看内核检测到了哪些磁盘设备
执行lspci | grep -i raid,能看到有没有RAID控制器,有输出,就说明存在硬件RAID卡,比如常见的MegaRAID、SmartRAID、SAS Controller,没有输出,大概率是软RAID或者直通模式。
再执行ls /dev/sd,看看设备节点数量,如果物理盘有6块,系统里只看到/dev/sda和/dev/sdb两个设备,那很可能是硬件RAID把磁盘组合成了“逻辑盘”,这时候操作系统看不到原始物理盘。
第二步:软RAID用mdadm确认
如果/proc/mdstat里有md0之类的设备,说明用了Linux软RAID,执行:
cat /proc/mdstat
里面会出现md0 : active raid10 sdb1 sdc1 sdd1 sde1这行字样,看到raid10,就代表这块逻辑盘采用了RAID 1+0结构,这是最简单、最无歧义的判断方式。
第三步:硬RAID卡用厂商命令读取RAID Level
硬RAID卡没法直接读/proc/mdstat,需要根据卡的类型选择工具:
- LSI/Broadcom系列:
storcli或MegaCli64 - HP/HPE系列:
hpssacli或ssacli - Dell系列:
perccli或通过omreport查看 - Adaptec系列:
arcconf
以最常用的storcli为例,执行:
storcli /c0 /vall show all
输出里会有RAID Level字段,看到Primary-1, Secondary-0, RAID Level Qualifier-0,就代表当前逻辑盘是RAID 1+0,有些旧版本MegaCli64会用RAID Level : 1加上Span Depth和Group Size来组合表示,这时候就看“Span Depth=2”“每个Span有2块盘”,组合起来是RAID 1+0。
执行MegaCli64 -LDInfo -Lall -aALL也是同样思路,输出中如果明确出现RAID Level : Primary-1, Secondary-0,就是标准RAID 1+0,如果显示Primary-0, Secondary-1,那才是名副其实的RAID 0+1。
raid01和raid10的区别:判断容错逻辑,别只看名字
你判断服务器是不是做了RAID 01,绕不开一个核心问题:RAID 0+1和RAID 1+0到底差多少,两块结构在四块硬盘的典型场景下,容错能力完全不同。
| 对比项 | RAID 01(0+1) | RAID 10(1+0) |
|---|---|---|
| 构建顺序 | 先条带,再镜像 | 先镜像,再条带 |
| 四盘位最小配置 | 2个条带组互相镜像 | 2个镜像组再做条带 |
| 允许单组坏盘数量 | 其中一组全部故障才丢数据 | 每组各坏一块仍然可用 |
| 同坏两块盘 | 坏在两条带组各一块,数据丢失风险高 | 坏在两个镜像组各一块,数据安全 |
| 重建速度 | 需要整组重建,慢 | 只需重建故障盘所在的镜像组,快 |
业内专家指出,生产环境做四盘位阵列时,RAID 10在故障冗余和重建效率上都优于RAID 01,所以你在服务器管理界面看到“RAID 01”字样时,最好留个心眼:确认它到底是0+1还是1+0,很多所谓“RAID 01”其实是RAID 10,反而不容易出事。
Windows服务器下怎么看磁盘阵列类型和RAID状态
Windows服务器的判断路径更图形化,但同样要注意别被“逻辑磁盘”骗了。
用磁盘管理看物理布局
右键“此电脑”选“管理”,进入“磁盘管理”,如果看到两个相同容量的磁盘区域呈现镜像关系,并且写入数据时两块盘同时活动,那就有RAID 1或RAID 10的嫌疑,单独靠这里还分不清RAID 1和RAID 10,需要继续看磁盘数量,RAID 1只能有两块盘,RAID 10最少四块,并且多个镜像对之间做条带。
用RAID卡管理软件看逻辑盘
戴尔服务器通常装OpenManage Server Administrator,打开后找到“存储”菜单,展开虚拟磁盘,能看到RAID级别这一栏,写着“RAID-10”就是RAID 1+0。
惠普服务器用Smart Storage Administrator,进入“Logical Drive”页面,类型显示为“RAID 1+0”,联想/IBM服务器则用ServeRAID Manager或StorCLI,同样能看到RAID Level描述。
需要注意的是,Windows下不能看/proc/mdstat,所以如果服务器里装了Intel Rapid Storage这类主板软件阵列,要在该软件里查看虚拟磁盘属性,大多数机房托管的Windows服务器还是硬件RAID,所以优先看厂商管理工具。
没有RAID管理工具时,怎么从磁盘容量和盘数反推RAID拓扑
有时候你远程登录到一台服务器,既没有厂商管理工具,也没有管理员权限,怎么判断?行业共识认为,可以通过容量和盘数的比例关系做初步判断。
- RAID 10的可用容量是总物理盘容量的一半,比如四块600GB硬盘,系统里看到一块1.2TB的逻辑盘,基本可确定为RAID 10。
- RAID 01同样是一半容量,所以单凭容量无法区分0+1还是1+0。
- 看启动盘数量:如果系统里只存在一个逻辑盘,而物理盘数为偶数且大于等于4,优先怀疑RAID 10。
- 执行
smartctl -i /dev/sda看设备型号,如果能看到多块底层物理盘信息且容量相同,也能辅助判断。
更直观的一种场景:你执行df -h看到根分区容量是某块单盘的2倍,同时机器有4块同样大小的盘,那么多半是把两块盘一组镜像,再跨组条带,这正好是RAID 10的行为特征,这种情况下,即使看不到RAID管理界面,也可以向IDC服务商索取RAID卡配置截图来做最终确认。
查完以后要做什么?别急着判定
看到Level参数确认是RAID 10之后,还要做两个动作。
第一,检查该逻辑盘是否包含热备盘,热备盘不计入逻辑盘容量,也不属于RAID组,但它在RAID卡命令里会显示为“Hotspare”,有热备盘,说明这台服务器对数据安全性要求较高,后续维护要重点关注磁盘故障灯。
第二,确认RAID卡驱动和监控软件已经正确安装,否则系统日志里看不到磁盘掉线、重建失败这类事件,等真正坏盘时才发现就晚了,生产服务器建议部署厂商控件,让RAID事件触发报警。
常见问题
怎么看服务器是否做了raid01?
先分清楚你要找的是RAID 0+1还是RAID 1+0,最可靠的办法是进入RAID卡管理界面,查看逻辑盘的RAID Level字段,Linux下用storcli或MegaCli64读取Primary-1, Secondary-0就是RAID 1+0;Windows下直接在磁盘管理里看盘数,再结合厂商管理软件确认,没有工具时,用容量和盘数比例做初步判断。
Linux服务器没有storcli和MegaCli怎么办?
可以先用lspci | grep -i raid确认RAID卡型号,然后根据厂商官网下载对应命令行工具,比如HPE卡用ssacli,Dell卡用perccli,如果无法下载,就查看/proc/mdstat和dmesg | grep -i scsi,可以确认软RAID和直通盘的存在,但硬件RAID的底层信息仍然拿不到。
raid01和raid10哪个更安全?
在同样四块盘的配置下,RAID 10明显更安全,RAID 10允许两个不同镜像组各坏一块盘而不丢数据,RAID 01只要两个条带组各坏一块,数据基本保不住,这也是现在主流服务器阵列卡都主推RAID 10的原因所在。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/788021.html


