服务器上的直通和RAID模式区别
一、HBA卡和RAID卡区别。
1、查看信息来判断服务器是有直通卡(HBA卡)还是RAID卡。
[root@rac1 test]# lsmod | grep -E "megaraid_sas|mpt3sas"
[root@localhost test]# lsmod | grep -E "megaraid_sas|mpt3sas"
查看到mpt3sas显示是直通模式。
查看到megaraid_sas显示是RAID模式。
2、通过查看lsblk查看存储映射上来的LUN是否存在在多块盘来确认。直通模式是N块盘,N个不同LUN,盘独立;而RAID模式是N块盘,少数LUN,盘不独立,还有重复。
RAID模式下,重复映射同一个LUN映射了多次到不同scsi设备:
直通模式下,各个磁盘独立,没有映射到同一个LUN:
知识补充:物理设备和虚拟设备区别。
打比方
sdb 8:16 0 10G 0 disk
└─mpdiska 253:3 0 10G 0 storagepath
sdb是物理设备(块设备),mpdiska是物理设备下的虚拟设备。
直通模式是物理设备和虚拟设备是一一对应的,物理设备是独立的,而RAID模式下物理设备下可以有多个虚拟设备,因为组成物理设备组成RAID0了
二、直通(HBA卡)和RAID(RAID卡)模式下的LUN
1、磁盘的RAID和服务器的RAID区别
(1)、存储层级的RAID:把存储设备内部的物理盘组合成RAID,之后在RAID上创建LUN。
(2)、服务器层级的RAID:把服务器认到的磁盘(也有可能是存储这边映射上来的LUN),再组成RAID,服务器层再做一层冗余。
2、直通(HBA卡)和RAID(RAID卡)模式下,存储LUN映射到服务器的流程。
直通模式:
服务器不做任何RAID组合,每个存储LUN独立成为服务器的一块盘。
LUN-A ──→ /dev/sdb (独立)
LUN-B ──→ /dev/sdc (独立)
LUN-C ──→ /dev/sdd (独立)
RAID模式:
服务器把多个LUN再组合成多块虚拟盘,多个存储LUN可以组合成一块逻辑盘。
存储端 服务器RAID卡
LUN-A (1TB) ──┐
LUN-B (1TB) ──┼── RAID 0 ──→ /dev/sda (2TB) 虚拟盘1
LUN-C (1TB) ──┘
LUN-D (1TB) ──┐
LUN-E (1TB) ──┼── RAID 5 ──→ /dev/sdb (2TB) 虚拟盘2
LUN-F (1TB) ──┘
由此得出:
(1)、直通模式:直接打 LUN(块设备)
(2)、RAID模式:打 RAID组(逻辑盘),RAID卡自动分布到各个LUN
三、解惑。
1、在测试存储设备关联上来的LUN时,RAID模式把前面存储关联的LUN整合到服务器RAID里面,实际上打流量在服务器整合到的RAID里面,服务器这边如果Vdbench测试到问题怎么方便定位到是哪个LUN呢?
回复:RAID模式把多个后端LUN"隐藏"到RAID逻辑盘里,无法直接看到每个LUN。所以需要安装多路径软件,多路径则是把前端多条路径"合并"显示,每个多路径逻辑设备(mpath-xxx)唯一对应一个后端存储LUN,通过UUID进行区分和识别,方便定位问题。
多路径逻辑设备 、UUID 、 存储LUN,三者一一对应。UUID是连接服务器和存储端的桥梁。
2、为什么Hadoop建议使用直通模式呢?
回复:Hadoop 建议使用直通模式,是因为它需要直接管理每一块磁盘 ,以实现数据本地化、高并发写入和快速故障恢复。RAID 模式会把这些磁盘"隐藏"起来,反而降低了 Hadoop 的性能和可靠性。
比如说上述的Block A 有三个副本,每个副本都是从盘1、盘2其中的一块盘取出,三台服务器坏了任何一台服务器数据均不会丢失。
3、直通(HBA卡)和服务器上的网卡HBA卡是不是同一种卡?
回复:直通HBA卡(SAS HBA)连接的是服务器内部的硬盘背板,传输的是存储数据(SCSI/SATA协议);网卡连接的是外部网络交换机,传输的是网络数据(TCP/IP协议)。两者完全不同。
