I am running a 3ware 9650SE RAID in Fedora. I would like to be able to manually suspend & wake (power off & on) the RAID only. The system does not reside on the RAID. How can I do this? I assume that this has to be possible because suspend & wake work just fine when the complete system goes to suspend. PS: ACPI is enabled.

What I already tried:

The 3ware CLI tw_cli does not seem to provide a suspend command, according to: http://www.cyberciti.biz/files/tw_cli.8.html

echo -n "auto" > /sys/devices/.../power/control has no effect

echo -n 0 > /sys/devices/.../power/autosuspend_delay_ms returns an IO error, which means it is not supported, according to: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-devices-power

unbinding the driver from the device according to: How can I tell Windows or Linux to put a specific (PCI[e]) device into sleep/off (D3) state? with: echo -n "0000:02:00.0" > /sys/bus/pci/drivers/3w-9xxx/unbind "unplugs" the RAID, but does not suspend it

echo -n "1" > /sys/devices/.../remove does not have the desired effect

I have not yet tried to switch the PCI power state from D0 to D3 manually with setpci because I do not know how to do that.

lspci returns the following device information:

02:00.0 RAID bus controller: 3ware Inc 9650SE SATA-II RAID PCIe (rev 01)
Subsystem: 3ware Inc 9650SE SATA-II RAID PCIe
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 16
Region 0: Memory at e4000000 (64-bit, prefetchable) [size=32M]
Region 2: Memory at e7000000 (64-bit, non-prefetchable) [size=4K]
Region 4: I/O ports at a000 [size=256]
[virtual] Expansion ROM at e6000000 [disabled] [size=128K]
Capabilities: [40] Power Management version 2
    Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] MSI: Enable- Count=1/32 Maskable- 64bit+
    Address: 0000000000000000  Data: 0000
Capabilities: [70] Express (v1) Legacy Endpoint, MSI 00
    DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <128ns, L1 <2us
        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
    DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
        MaxPayload 128 bytes, MaxReadReq 512 bytes
    DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
    LnkCap: Port #0, Speed 2.5GT/s, Width x8, ASPM L0s L1, Exit Latency L0s <512ns, L1 <64us
        ClockPM- Surprise- LLActRep+ BwNot-
    LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- CommClk-
        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
    LnkSta: Speed 2.5GT/s, Width x4, TrErr- Train- SlotClk- DLActive+ BWMgmt- ABWMgmt-
Capabilities: [100 v1] Advanced Error Reporting
    UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
    UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
    UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
    CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
    CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
    AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
Kernel driver in use: 3w-9xxx

I would appeciate your help.


I just found a solution myself: for all drives...

sudo smartctl -d 3ware,0 -s standby,now /dev/twa0

The only important thing is to make sure the RAID is not accessed. Otherwise the drives will come back online automatically.

Reference: http://smartmontools.sourceforge.net/man/smartctl.8.html

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.