1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

OCZ RevoDrive PCI-Exp

Discussion in 'System Hardware' started by volodymyr, Jul 20, 2010.

  1. volodymyr

    volodymyr New Member

    Messages:
    8
    Thanks Received:
    0
  2. mav@

    mav@ Member Developer

    Messages:
    629
    Thanks Received:
    169
    According to this review: http://www.anandtech.com/show/3788/oczs-revodrive-pcie-ssd-preview-an-affordable-pcie-ssd , this device combines two SSD drives, SiI3124 controller and PCI-x-to-PCIe bridge on the same board. I don't know anybody who have tested this device under FreeBSD, but set of components I see here look quite promising. I expect that system should detect it as usual SATA controller with two attached SATA disks. Declared RAID0 there is probably software.

    If you will be able to test it - report me please how it goes. I would definitely recommend you to update FreeBSD to 8.1 and use new siis(4) driver for this controller to reach maximum performance.
     
  3. sub_mesa

    sub_mesa New Member

    Messages:
    99
    Thanks Received:
    14
    @mav: does the siis pass BIO_DELETE into TRIM command to the Sandforce controller; or won't the Silicon Image RAID/HBA chip pass these commands to the SandForce controllers? If it does, it would be a unique feature on FreeBSD as virtually all other OS have no TRIM support on RAID arrays; while in FreeBSD that should work on all GEOM-providers; but ultimately i guess the device driver has to convert BIO_DELETE into TRIM; right?
     
  4. mav@

    mav@ Member Developer

    Messages:
    629
    Thanks Received:
    169
    ada(4) device driver converts BIO_DELETE into TRIM. siis(4) should be able to pass it to device. The main question is to find file system using BIO_DELETE. UFS doesn't at the moment.
     
  5. sub_mesa

    sub_mesa New Member

    Messages:
    99
    Thanks Received:
    14
    And ZFS won't support it anytime soon. But consider SSDs used as cache devices; a simple newfs -E would essentially be a secure erase as it TRIMs all surface area. So you could use the SSD as cache device for a few months, do a newfs -E and add it as cache device again, to reset the performance level.

    But I'm a little confused whether the above procedure would work on this device. Does it use both ada driver and siis? Or is it recognised as "da" instead? If I understand correctly, you would not have TRIM capability with "da" named disks; only "ada" as you told me. Is that correct?
     
  6. mav@

    mav@ Member Developer

    Messages:
    629
    Thanks Received:
    169
    "da" is a SCSI-protocol disc devices. If you are speaking about siis(4) controller, devices should be reported as "ada", unless it is some ATAPI device. SCSI also have alternative for TRIM, but I haven't seen such devices yet to implement it.
     
  7. sub_mesa

    sub_mesa New Member

    Messages:
    99
    Thanks Received:
    14
    So you are telling me that this OCZ Revodrive would be TRIM-capable under FreeBSD 8+ with ahci driver activated, right?

    It would detect one 'drive' (ada device) per Sandforce controller on the Revodrive; thus 2 SSDs of 60GB if you buy the 120GB model; right? You could then RAID0 those with geom_stripe and perform newfs -E /dev/stripe/str0 to TRIM the entire surface of both SSDs on the PCB each powered by a Sandforce controller. Is this correct?

    Would this make it a great L2ARC/SLOG device for ZFS? I assume it doesn't write safely, so SLOG might be dangerous; but random IOps should be very good making it ideal L2ARC i think; Sandforce is one of the best NAND controllers.
     
  8. mav@

    mav@ Member Developer

    Messages:
    629
    Thanks Received:
    169
    If that OCZ Revodrive based on SiI3124 chip, then instead "with ahci driver activated" there should be "with siis driver activated". The rest seems fine.
     
  9. danbi

    danbi New Member

    Messages:
    227
    Thanks Received:
    27
    You will not get better performance by stripping both SSDs for L2ARC. Instead, just add both as separate devices.

    Is there support for TRIM in anything other than newfs?
     
  10. sub_mesa

    sub_mesa New Member

    Messages:
    99
    Thanks Received:
    14
    I believe there are UFS-patches for -CURRENT; didn't hear about any development on that area.

    Could you explain "You will not get better performance by stripping both SSDs for L2ARC"? RAID0 should scale both multiqueue random read/write and sequential read/write - and for SSDs particularly the performance increase should be almost linearly. Only single threaded random reads (single queue) would not benefit anything from striping. The same counts for SSDs with multiple channels (Intel has 10; Micron/Sandforce i believe 8 and Indilinx only 4) - only one channel can be used for single queue random read (20MB/s).

    This can be particularly apparent with popular Windows benchmarks like AS SSD and CrystalDiskMark. On FreeBSD i believe raidtest is a nice raw random I/O benchmark utility. It can't work on ZFS filesystems, but it can work on GEOM providers.
     
  11. User23

    User23 Member

    Messages:
    352
    Thanks Received:
    30
    I use 2 SSDs as L2ARC devices in a zpool. The main workload is random read/write. I can see that the io ops and the throughput on both SSDs are nearly the same.

    Isnt ZFS already using a raid0 mode if more than one drive is connected as a L2ARC device?
     
  12. danbi

    danbi New Member

    Messages:
    227
    Thanks Received:
    27
    Yes, ZFS uses sort of RAID0 on two or more cache devices. I believe it is better to let ZFS manage the striping across these devices, because

    - if one device fails, ZFS can stop using it for cache; if one device of lower-level striped geom provider fails, ZFS will ignore the entire geom provider;
    - ZFS uses some wear leveling algorithm to spread writes to both devices. I believe this means it will issue relatively big writes to the device, where flash based devices are better. If you stripe across several devices, each of the devices will get only part of that write operation, thus wasting rewrite cycles and severely impacting cache fill rate.

    I may be wrong in these assumptions, of course :)
     
  13. astounding

    astounding New Member

    Messages:
    13
    Thanks Received:
    0
    How about the RevoDrive X2? Anyone using it?
     
  14. Tribal_STi

    Tribal_STi New Member

    Messages:
    2
    Thanks Received:
    0
    Hi

    I am build my first own server, with FreeBSD 8.2 :

    Intel Xeon E3-1275 3.4GHz
    ASUS P8B WS Motherboard
    16GB (4x4GB) Corsair Vengeance Memory
    OCZ RevoDrive X2 PCI-E 240GB
    WD RE04 1TB Drive

    The RevoDrive is, divided to 4 drives (ada4, ada6, ada8, ada10).

    I think, i can this not use, a singel drive, for install the FreeBSD.
    On the OCZ home page, found i no driver...

    Or is it possible, a Sil 3124 driver to use, for a RevoDrive?

    plea help my, that i use enjoy from RevoDrive :)

    thanks
    fabian
     
  15. mav@

    mav@ Member Developer

    Messages:
    629
    Thanks Received:
    169
    siis(4) driver should support this card effectively. The only question is a RAID between these disks, compatible with BIOS -- I have no idea what metadete format used there. You may try to use geom_raid module, added to 8-STABLE recently. It supports SiliconImage RAID metadata format.
     
  16. Tribal_STi

    Tribal_STi New Member

    Messages:
    2
    Thanks Received:
    0
    "The only question is a RAID between these disks"
    yes, this is a great question.

    I go to standard installation, and 4 singel drive get view.
    A install from a 1 drive is a litle bit bad...
    I can't unveil that is this the idee from OCZ.

    And a point, where can new driver too add, have i not found.

    I think, suport vom siis(4) driver is ok, so i can see the 4 drives.

    There a "how to", that i can look, to install with geom_raid modul?

    My experience with FreeBSD is zero.
     
  17. mav@

    mav@ Member Developer

    Messages:
    629
    Thanks Received:
    169
    geom_raid present in 8-STABLE for about a month, not present in 8.2-RELEASE. You should load the geom_raid module by adding to /boot/loader.conf
    Code:
    geom_raid_load="YES"


    If metadata will be properly handled, you will still have /dev/adaX devices, but you will also get /dev/raid/rX device(s).
     
  18. MasterCATZ

    MasterCATZ New Member

    Messages:
    29
    Thanks Received:
    0
    I just ordered an OCZ RevoDrive X2 PCI-Express SSD 220GB.

    From what I am reading here does this mean FreeBSD will pick it up as multiple drives that need to be raided together? I would be assuming this 220GB is going to be 4x drives showing.

    Does this mean I would still have to Root On ZFS Raidz them together?
     
  19. tingo

    tingo Member

    Messages:
    988
    Thanks Received:
    97
    It doesn't look like any of the earlier posters in this thread provided any examples. When you get your drive, please provide output about how FreeBSD sees the drive / drives (dmesg output, output from # pciconf -lv and other relevant output) so that we may learn more.
     
  20. MasterCATZ

    MasterCATZ New Member

    Messages:
    29
    Thanks Received:
    0
    RevoDrive arrived. I have just finished installing it into my Asus P5NT-WS. OCZ Bios lists RAID modes 0, 1, 10, 5. Currently trying it in RAID10 mode to see what FreeBSD 9 install will see it as (windows needed driver to be installed). Mainboard BIOS sees it just fine as a bootable device

    *edit*

    Sadly FreeBSD 9 install indeed does pick it up as 4 separate HDDs and I do not have a quick way to do a ZFS on root install, but at least it sees it just fine without drivers :p

    Used my ZFS Guru install disk. Seems to be having problems finding the drives to continue booting from. Trying concatenation mode provides a very slow boot.

    I have finally managed to get the OCZ RevoDrive to boot from ZFS on Root.
    I am unsure why it is now booting as I tried so many idea's on the last attempt.
    used OCZ BIOS in Raid 0 mode.
    used 4k boundary alignment.
    used TRIM erase when formatting.
    used ZFS Guru FreeBSD9 (after wiping all drives with zero's from ZFS guru FreeBSD8 attempts ).
     
  21. mav@

    mav@ Member Developer

    Messages:
    629
    Thanks Received:
    169
    You should try to load geom_raid kernel module. It should support SiliconImage RAID format, that is probably used by controller on that board. geom_mirror doesn't really support RAID5, but 0, 1 and 10 should work perfectly.
     
  22. MasterCATZ

    MasterCATZ New Member

    Messages:
    29
    Thanks Received:
    0
    # pciconf -lv
    Code:
    hostb0@pci0:0:0:0:      class=0x060000 card=0x00000000 chip=0x03a310de rev=0xa2 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Host Bridge'
        class      = bridge
        subclass   = HOST-PCI
    none0@pci0:0:0:1:       class=0x050000 card=0x00000000 chip=0x03ac10de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none1@pci0:0:0:2:       class=0x050000 card=0x00000000 chip=0x03aa10de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none2@pci0:0:0:3:       class=0x050000 card=0x00000000 chip=0x03a910de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none3@pci0:0:0:4:       class=0x050000 card=0x00000000 chip=0x03ab10de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none4@pci0:0:0:5:       class=0x050000 card=0x00000000 chip=0x03a810de rev=0xa2 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none5@pci0:0:0:6:       class=0x050000 card=0x00000000 chip=0x03b510de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none6@pci0:0:0:7:       class=0x050000 card=0x00000000 chip=0x03b410de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none7@pci0:0:1:0:       class=0x050000 card=0x00000000 chip=0x03ad10de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none8@pci0:0:1:1:       class=0x050000 card=0x00000000 chip=0x03ae10de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none9@pci0:0:1:2:       class=0x050000 card=0x00000000 chip=0x03af10de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none10@pci0:0:1:3:      class=0x050000 card=0x00000000 chip=0x03b010de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none11@pci0:0:1:4:      class=0x050000 card=0x00000000 chip=0x03b110de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none12@pci0:0:1:5:      class=0x050000 card=0x00000000 chip=0x03b210de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none13@pci0:0:1:6:      class=0x050000 card=0x00000000 chip=0x03b310de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none14@pci0:0:2:0:      class=0x050000 card=0x00000000 chip=0x03b610de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none15@pci0:0:2:1:      class=0x050000 card=0x00000000 chip=0x03bc10de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    none16@pci0:0:2:2:      class=0x050000 card=0x00000000 chip=0x03ba10de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'C55 Memory Controller'
        class      = memory
        subclass   = RAM
    pcib1@pci0:0:5:0:       class=0x060400 card=0x0c5510de chip=0x03b810de rev=0xa1 hdr=0x01
        vendor     = 'nVidia Corporation'
        device     = 'C55 PCI Express bridge'
        class      = bridge
        subclass   = PCI-PCI
    none17@pci0:0:9:0:      class=0x050000 card=0x81fb1043 chip=0x036910de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 Memory Controller'
        class      = memory
        subclass   = RAM
    isab0@pci0:0:10:0:      class=0x060100 card=0x81fb1043 chip=0x036010de rev=0xa2 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 LPC Bridge'
        class      = bridge
        subclass   = PCI-ISA
    none18@pci0:0:10:1:     class=0x0c0500 card=0x81fb1043 chip=0x036810de rev=0xa2 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 SMBus'
        class      = serial bus
        subclass   = SMBus
    ohci0@pci0:0:11:0:      class=0x0c0310 card=0x81fb1043 chip=0x036c10de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 USB Controller'
        class      = serial bus
        subclass   = USB
    ehci0@pci0:0:11:1:      class=0x0c0320 card=0x81fb1043 chip=0x036d10de rev=0xa2 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 USB Controller'
        class      = serial bus
        subclass   = USB
    atapci0@pci0:0:13:0:    class=0x01018a card=0x81fb1043 chip=0x036e10de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 IDE'
        class      = mass storage
        subclass   = ATA
    atapci1@pci0:0:14:0:    class=0x010485 card=0x81fb1043 chip=0x037f10de rev=0xa2 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 SATA Controller'
        class      = mass storage
        subclass   = RAID
    atapci2@pci0:0:14:1:    class=0x010185 card=0x81fb1043 chip=0x037f10de rev=0xa2 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 SATA Controller'
        class      = mass storage
        subclass   = ATA
    atapci3@pci0:0:14:2:    class=0x010185 card=0x81fb1043 chip=0x037f10de rev=0xa2 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 SATA Controller'
        class      = mass storage
        subclass   = ATA
    pcib3@pci0:0:15:0:      class=0x060401 card=0xcb8410de chip=0x037010de rev=0xa2 hdr=0x01
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 PCI bridge'
        class      = bridge
        subclass   = PCI-PCI
    hdac0@pci0:0:15:1:      class=0x040300 card=0x82601043 chip=0x037110de rev=0xa2 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 High Definition Audio'
        class      = multimedia
        subclass   = HDA
    nfe0@pci0:0:17:0:       class=0x068000 card=0x81fb1043 chip=0x037310de rev=0xa2 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 Ethernet'
        class      = bridge
    nfe1@pci0:0:18:0:       class=0x068000 card=0x81fb1043 chip=0x037310de rev=0xa2 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 Ethernet'
        class      = bridge
    pcib4@pci0:0:19:0:      class=0x060400 card=0x000010de chip=0x037610de rev=0xa2 hdr=0x01
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 PCI Express bridge'
        class      = bridge
        subclass   = PCI-PCI
    pcib7@pci0:0:23:0:      class=0x060400 card=0x000010de chip=0x037510de rev=0xa2 hdr=0x01
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 PCI Express bridge'
        class      = bridge
        subclass   = PCI-PCI
    pcib8@pci0:0:24:0:      class=0x060400 card=0x000010de chip=0x037710de rev=0xa2 hdr=0x01
        vendor     = 'nVidia Corporation'
        device     = 'MCP55 PCI Express bridge'
        class      = bridge
        subclass   = PCI-PCI
    pcib2@pci0:1:0:0:       class=0x060400 card=0x00000000 chip=0xe13012d8 rev=0x04 hdr=0x01
        vendor     = 'Pericom Semiconductor'
        device     = 'PCI Express to PCI-XPI7C9X130 PCI-X Bridge'
        class      = bridge
        subclass   = PCI-PCI
    siis0@pci0:2:0:0:       class=0x010400 card=0x71241095 chip=0x31241095 rev=0x02 hdr=0x00
        vendor     = 'Silicon Image, Inc.'
        device     = 'SiI 3124 PCI-X Serial ATA Controller'
        class      = mass storage
        subclass   = RAID
    vgapci0@pci0:3:6:0:     class=0x030000 card=0x00000000 chip=0x022110de rev=0xa1 hdr=0x00
        vendor     = 'nVidia Corporation'
        device     = 'NV44A [GeForce 6200]'
        class      = display
        subclass   = VGA
    fwohci0@pci0:3:7:0:     class=0x0c0010 card=0x81fe1043 chip=0x30441106 rev=0xc0 hdr=0x00
        vendor     = 'VIA Technologies, Inc.'
        device     = 'VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller'
        class      = serial bus
        subclass   = FireWire
    pcib5@pci0:4:0:0:       class=0x060400 card=0x00000000 chip=0x01251033 rev=0x06 hdr=0x01
        vendor     = 'NEC Corporation'
        device     = 'uPD720400 PCI Express - PCI/PCI-X Bridge'
        class      = bridge
        subclass   = PCI-PCI
    pcib6@pci0:4:0:1:       class=0x060400 card=0x00000000 chip=0x01251033 rev=0x06 hdr=0x01
        vendor     = 'NEC Corporation'
        device     = 'uPD720400 PCI Express - PCI/PCI-X Bridge'
        class      = bridge
        subclass   = PCI-PCI
    siis1@pci0:7:0:0:       class=0x018000 card=0x14981043 chip=0x35311095 rev=0x01 hdr=0x00
        vendor     = 'Silicon Image, Inc.'
        device     = 'SiI 3531 [SATALink/SATARaid] Serial ATA Controller'
        class      = mass storage
    aac0@pci0:8:0:0:        class=0x010400 card=0x02b69005 chip=0x02859005 rev=0x09 hdr=0x00
        vendor     = 'Adaptec'
        device     = 'AAC-RAID'
        class      = mass storage
        subclass   = RAID
    
     
  23. MasterCATZ

    MasterCATZ New Member

    Messages:
    29
    Thanks Received:
    0
    # camcontrol devlist
    Code:
    <OCZ-REVODRIVE X2 1.35>            at scbus0 target 0 lun 0 (ada0,pass0)
    <OCZ-REVODRIVE X2 1.35>            at scbus1 target 0 lun 0 (ada1,pass1)
    <OCZ-REVODRIVE X2 1.35>            at scbus2 target 0 lun 0 (ada2,pass2)
    <OCZ-REVODRIVE X2 1.35>            at scbus3 target 0 lun 0 (ada3,pass3)
    <PIONEER DVD-RW  DVR-111D 1.23>    at scbus4 target 0 lun 0 (cd0,pass4)
    <GIGABYTE i-RAM v1.00>             at scbus11 target 0 lun 0 (ada4,pass5)
    
     
  24. MasterCATZ

    MasterCATZ New Member

    Messages:
    29
    Thanks Received:
    0
    The OCZ Revodrive died (1x of the drives failed)

    Even with ZFS RAIDZ it would not boot.

    I am assuming this was due to the RAID0 mode the Firmware had and maybe the data was still being striped across all the drives instead of FreeBSD having access to the separate drives.

    How ever the replacement revodrive will not even let me partition the drives due to write protection if used in any of the firmware raid modes.

    If I have all drives as spare I can install but then I am unable to boot from the revodrive because the BIOS does not know about the drives.