# Adaptec 2020ZCR Supermicro FreeBSD 9



## jamengual (Apr 20, 2012)

Hi guys.

First of all this is my setup:

Free*BSD* 9.0
Supermicro Server 
Motherboard: Supermicro X7DB8
6 x CheetahÂ® 15K.5 Ultra320 SCSI 146-GB Hard Drive
Adaptec 2020ZCR [7373 bios] (Supermicro branded)

I installed freebsd FreeBSD in a RAID1 setup created using the controller utility and I had no problems. But when I went to create my ZFS RAID I was not able to see the drives attached with the right driver I just saw this:


```
pass1 at aacp0 bus 0 scbus0 target 1 lun 0
pass1: <SEAGATE ST336754LC 0005> Fixed Uninstalled SCSI-3 device 
pass1: 0KB/s transfers
pass2 at aacp0 bus 0 scbus0 target 2 lun 0
pass2: <SEAGATE ST336754LC 0005> Fixed Uninstalled SCSI-3 device 
pass2: 0KB/s transfers
pass3 at aacp0 bus 0 scbus0 target 3 lun 0
pass3: <SEAGATE ST336754LC 0005> Fixed Uninstalled SCSI-3 device 
pass3: 0KB/s transfers
pass5 at aacp1 bus 0 scbus1 target 0 lun 0
pass5: <SEAGATE ST3146855LC 0003> Fixed Uninstalled SCSI-3 device 
pass5: 0KB/s transfers
pass6 at aacp1 bus 0 scbus1 target 1 lun 0
pass6: <SEAGATE ST3146855LC 0003> Fixed Uninstalled SCSI-3 device 
pass6: 0KB/s transfers
pass7 at aacp1 bus 0 scbus1 target 2 lun 0
pass7: <SEAGATE ST3146855LC 0003> Fixed Uninstalled SCSI-3 device 
pass7: 0KB/s transfers
pass8 at aacp1 bus 0 scbus1 target 3 lun 0
pass8: <SEAGATE ST3146855LC 0003> Fixed Uninstalled SCSI-3 device
```

And when I try to use the pass devices of course I got an error, so then I looked to cam control.


```
newdevserver# camcontrol devlist
<SEAGATE ST336754LC 0005>          at scbus0 target 0 lun 0 (pass0)
<SEAGATE ST336754LC 0005>          at scbus0 target 1 lun 0 (pass1)
<SEAGATE ST336754LC 0005>          at scbus0 target 2 lun 0 (pass2)
<SEAGATE ST336754LC 0005>          at scbus0 target 3 lun 0 (pass3)
<SUPER GEM318 0>                   at scbus0 target 6 lun 0 (ses0,pass4)
<SEAGATE ST3146855LC 0003>         at scbus1 target 0 lun 0 (pass5)
<SEAGATE ST3146855LC 0003>         at scbus1 target 1 lun 0 (pass6)
<SEAGATE ST3146855LC 0003>         at scbus1 target 2 lun 0 (pass7)
<SEAGATE ST3146855LC 0003>         at scbus1 target 3 lun 0 (pass8)
<SUPER GEM318 0>                   at scbus1 target 6 lun 0 (ses1,pass9)
<MATSHITA DVD-ROM SR-8178 PZ16>    at scbus2 target 1 lun 0 (cd0,pass10)
<PepperC Virtual Disc 1 0.01>      at scbus3 target 0 lun 0 (cd1,pass11)
```

So it looks like the drivers are recognized but for some reason they don't have the right driver attached to them? It could be possible that I'm missing some other configuration that I'm not aware of but based on my other server that I have working:


```
<ADAPTEC Virtual SGPIO  0 0001>    at scbus2 target 0 lun 0 (ses0,pass3)
<WDC WD1002FAEX-00Z3A0 0956>       at scbus5 target 0 lun 0 (ada0,pass4)
<WDC WD1002FAEX-00Z3A0 05.01D05>   at scbus5 target 1 lun 0 (ada1,pass5)
```

I can see the passthrough device per hard drive and the correct ada designation to each so I guess that is something to do with the driver but I'm not sure. The driver is the 2020ZCR, not configured in RAID/volume or anything like it. Anyone had the same problem?

*C*an someone give me some ideas so that I can use the individual drivers for ZFS?

*pciconf -vl* output of the RAID card:


```
aac0@pci0:4:1:0:        class=0x010400 card=0x028a9005 chip=0x02859005 rev=0x02 hdr=0x00
    vendor     = 'Adaptec'
    device     = 'AAC-RAID'
    class      = mass storage
    subclass   = RAID
```
Thanks.


----------



## jamengual (Apr 26, 2012)

Any idea guys? I just tried with Freebsd FreeBSD 8.2 and same thing, only passX devices.

Thanks.


----------



## phoenix (Apr 26, 2012)

Does that controller allow you to create "single disk" RAID arrays?  Or an option to use some disks as JBOD?

If not, then you may need to create multiple RAID0 arrays, using 1 drive per array.  Which will then make the drives (arrays) available to the OS as *da* devices.


----------



## jamengual (Apr 27, 2012)

phoenix said:
			
		

> Does that controller allow you to create "single disk" RAID arrays?  Or an option to use some disks as JBOD?
> 
> If not, then you may need to create multiple RAID0 arrays, using 1 drive per array.  Which will then make the drives (arrays) available to the OS as *da* devices.



I will check if I can do RAID0 with one drive, that is a good tip and thank you.

But it sounds like a hack to me, isn't it?

I have other servers with some LSI and sis3124 and I don't have this problem, in fact my storage system uses an Addonics sis3124 adapter with 10 disks connected to a port multiplier and works perfectly. *B*ut now I have 12 servers with the same controller and same problem and I really want to use ZFS so I can do snapshots and use zfs send to do backups to a remote server and all that.

I just want to get to the bottom of this.

Maybe a driver developer from the freebsd FreeBSD project can chime in if they have time?

Thanks.


----------



## phoenix (Apr 27, 2012)

All your other servers have plain SATA controllers.  This server has a hardware RAID controller.  They operate very differently.

Plain SATA controllers just present all the disks to the OS, and the OS manages them.

RAID controllers don't present disks to the OS, they present arrays as disk devices.  You have to create a RAID array in the RAID controller BIOS before the devices will appear in the OS.  Some RAID controllers (like LSI/3Ware) allow you to create "Single Disk" arrays.  Other RAID controllers (LSI, Intel, Areca, etc) don't support "Single Disk" arrays, so you have to create 1-disk RAID0 arrays in order to present individual disks to the OS.

Some RAID controllers also support JBOD (just a bunch of disks) mode, where all the RAID features of the card are disabled, and the controller works like a normal SATA controller, and all the disks are presented to the OS.

However, since you have created a hardware RAID1 array, you won't be able to use JBOD, as most controllers are either/or.


----------



## jamengual (Apr 27, 2012)

Phoenix then again thank you for answers.

I understand what you said and this is why my storage server can see the drives directly connected to the RAID controller because the controller does not have any RAID config on it.

When I installed this new server I didn't have any RAID config on it and I still couldn't see the drive but as you said it could be that is not an option with this controller and I will have to create RAID0 with one drive.

For some reason I thought that all the controller will present the drives to the OS if there was not RAID configuration present on the controller.

Thanks.


----------



## jamengual (Apr 30, 2012)

So I followed your suggestion and this is what dmesg showed:


```
aacd0: <RAID 1 (Mirror)> on aac0
aacd0: 34970MB (71619584 sectors)
aacd1: <Volume> on aac0
aacd1: 34970MB (71619584 sectors)
aacd2: <Volume> on aac0
aacd2: 34970MB (71619584 sectors)
aacd3: <Volume> on aac0
aacd3: 139981MB (286681728 sectors)
aacd4: <Volume> on aac0
aacd4: 139981MB (286681728 sectors)
aacd5: <Volume> on aac0
aacd5: 139981MB (286681728 sectors)
aacd6: <Volume> on aac0
aacd6: 139981MB (286681728 sectors)
```

And I was able to use aacd devicess for the ZFS pools. But the weird thing is the output of camcontrol:


```
[root@devserver ~]# camcontrol devlist
<SEAGATE ST336754LC 0005>          at scbus0 target 0 lun 0 (pass0)
<SEAGATE ST336754LC 0005>          at scbus0 target 1 lun 0 (pass1)
<SEAGATE ST336754LC 0005>          at scbus0 target 2 lun 0 (pass2)
<SEAGATE ST336754LC 0005>          at scbus0 target 3 lun 0 (pass3)
<SUPER GEM318 0>                   at scbus0 target 6 lun 0 (ses0,pass4)
<SEAGATE ST3146855LC 0003>         at scbus1 target 0 lun 0 (pass5)
<SEAGATE ST3146855LC 0003>         at scbus1 target 1 lun 0 (pass6)
<SEAGATE ST3146855LC 0003>         at scbus1 target 2 lun 0 (pass7)
<SEAGATE ST3146855LC 0003>         at scbus1 target 3 lun 0 (pass8)
<SUPER GEM318 0>                   at scbus1 target 6 lun 0 (ses1,pass9)
<MATSHITA DVD-ROM SR-8178 PZ16>    at scbus2 target 1 lun 0 (cd0,pass10)
<PepperC Virtual Disc 1 0.01>      at scbus3 target 0 lun 0 (cd1,pass11)
```

Still doesn't recognize the volumes but I don't know if this is because it doesn't really know which disk is attach to which volume. *I*s this how it*'s* supposed to be?

Thanks.


----------



## mav@ (Apr 30, 2012)

Yes, AFAIK it is. aac driver works in two ways: it provides access to the data via aacdX disk device and pass-through for the raw disks health monitoring separately through the CAM.


----------

