DroboFS web interface

Current status is single redundancy, 3 x 2tb drives, 1 x 500gb drive. All green, 2.4tb used of 4.02tb

This is very interesting. I had no dual-redundancy XML files so far. I was not sure that the information about dual-redundancy was actually available, but it might just be the case that there is. Anyone else has dual-redundancy XML files to confirm my hypothesis?

This is probably because of the mime type used by the PHP file. It could be that your browser is not configured to open that particular mime type (text/xml).

I know this thread has been dead for a while, but I thought I wouldn’t create a new one until I actually get something ready for deployment.

So, over the weekend I managed to get some more work done on the web UI, and this is the current state: http://imgur.com/a/DPpWx

Notice that the drive slots behave exactly as the LEDs on the device, i.e., they blink just as the device does. The capacity chart color changes as the thresholds are passed: at 75% it goes yellow, and at 95% it goes to red.

The settings page is still pretty empty because it requires parsing other files for that info. I’m still not clear on how exactly the settings are pushed to the device, but I suspect it is over the port 5001. Reverse-engineering that will be a bit of a pain in the…

By the way, many thanks to all who submitted XML files. It would be almost impossible to gather enough data to reverse engineer what has been done so far without your help. If you can spare the time, more XML files are always welcome.

Hi ricardo,

Here’s a xml file from my Drobo. Please let me know if I can provide you with any other info.

Kind regards Anders

<?xml version="1.0" encoding="utf-8"?> ESAINFO 1 16131 xxxxxxx xxxxxxx DROBO 1.2.2 [4.35.46995] Feb 23 2012,09:14:51 ArmMarvell 34602495 3 0 1 32768 0 2962803916800 2397347606528 565456310272 0 2395389599744 8500 9500 0 0 0 1 0 DROBO 0 8 0 3 2000398934016 1 3 2000398934016 2 3 1000204886016 3 3 1000204886016 4 3 1000204886016 5 128 0 6 128 0 7 128 0 0 1000 17592186044416 2395389599744 2 2 3 64 0 1001 2395389599744 0 1 7 1 16 DROBO 0 0 0 6 18 1 95E69BCC95E6A344 7 1

Two things: 1) You should remove the mESAID and mSerial fields. Those are the serial number of your Drobo. 2) What was the status of the Drobo? Anything out of the ordinary? Are you using dual-redundancy? Any special settings?

  1. Ok, thanks

  2. I think the Drobo is quite healthy, I’m using dual-redundancy but nothing special besides from that…

Here are some screen-dumps from the Dashboard:


Hey ricardo,

New DroboFS user here, and love the idea of a web interface. Stumbled on this thread, and thought I’d contribute, in case you were still in need of an XML report from a device with just two drives (2TB). All is green, with files copying to it when the XML was generated, in case that is indicated somewhere. DroboApps enabled, three shares mounted.

<?xml version="1.0" encoding="utf-8"?>

    <mVersion>1.2.1 [4.31.45080]</mVersion>
    <mReleaseDate>Dec  2 2011,13:34:45</mReleaseDate>

No guarantees I’ll be back around to check for a response, so if I left anything out that you need, feel free to PM me.

was poking the forum for something else and found this, very impressive work!, here is a dump of my current XML file, i doubt it will be of much use but why the hell not.

i am running 5x 2tb drives with a single drive for redundancy.

<?xml version="1.0" encoding="UTF-8"?> <ESATMUpdate> <mESAUpdateSignature>ESAINFO</mESAUpdateSignature> <mESAUpdateVersion>1</mESAUpdateVersion> <mESAUpdateSize>16131</mESAUpdateSize> <mESAID>SNIP</mESAID> <mSerial>SNIP</mSerial> <mName>Pandoras-Box</mName> <mVersion>1.2.2 [4.35.46995]</mVersion> <mReleaseDate>Feb 23 2012,09:14:51</mReleaseDate> <mArch>ArmMarvell</mArch> <mFirmwareFeatures>34602495</mFirmwareFeatures> <mFirmwareTestFeatures>3</mFirmwareTestFeatures> <mFirmwareTestState>0</mFirmwareTestState> <mFirmwareTestValue>1</mFirmwareTestValue> <mStatus>32768</mStatus> <mRelayoutCount>0</mRelayoutCount> <mTotalCapacityProtected>7928720916480</mTotalCapacityProtected> <mUsedCapacityProtected>5387784355840</mUsedCapacityProtected> <mFreeCapacityProtected>2540936560640</mFreeCapacityProtected> <mTotalCapacityUnprotected>0</mTotalCapacityUnprotected> <mUsedCapacityOS>5387481120768</mUsedCapacityOS> <mYellowThreshold>8500</mYellowThreshold> <mRedThreshold>9500</mRedThreshold> <mUseUnprotectedCapacity>0</mUseUnprotectedCapacity> <mRealTimeIntegrityChecking>0</mRealTimeIntegrityChecking> <mStoredFirmwareTestState>0</mStoredFirmwareTestState> <mStoredFirmwareTestValue>1</mStoredFirmwareTestValue> <mDiskPackID>0</mDiskPackID> <mDroboName>Pandoras-Box</mDroboName> <mConnectionType>0</mConnectionType> <mSlotCountExp>8</mSlotCountExp> <mSlotsExp> <n0> <mSlotNumber>0</mSlotNumber> <mStatus>3</mStatus> <mESAID/> <mMake/> <mModel/> <mPhysicalCapacity>2000398934016</mPhysicalCapacity> </n0> <n1> <mSlotNumber>1</mSlotNumber> <mStatus>3</mStatus> <mESAID/> <mMake/> <mModel/> <mPhysicalCapacity>2000398934016</mPhysicalCapacity> </n1> <n2> <mSlotNumber>2</mSlotNumber> <mStatus>3</mStatus> <mESAID/> <mMake/> <mModel/> <mPhysicalCapacity>2000398934016</mPhysicalCapacity> </n2> <n3> <mSlotNumber>3</mSlotNumber> <mStatus>3</mStatus> <mESAID/> <mMake/> <mModel/> <mPhysicalCapacity>2000398934016</mPhysicalCapacity> </n3> <n4> <mSlotNumber>4</mSlotNumber> <mStatus>3</mStatus> <mESAID/> <mMake/> <mModel/> <mPhysicalCapacity>2000398934016</mPhysicalCapacity> </n4> <n5> <mSlotNumber>5</mSlotNumber> <mStatus>128</mStatus> <mESAID/> <mMake/> <mModel/> <mPhysicalCapacity>0</mPhysicalCapacity> </n5> <n6> <mSlotNumber>6</mSlotNumber> <mStatus>128</mStatus> <mESAID/> <mMake/> <mModel/> <mPhysicalCapacity>0</mPhysicalCapacity> </n6> <n7> <mSlotNumber>7</mSlotNumber> <mStatus>128</mStatus> <mESAID/> <mMake/> <mModel/> <mPhysicalCapacity>0</mPhysicalCapacity> </n7> </mSlotsExp> <mLUNUpdates> <n0> <mLUN>0</mLUN> <mUniqueLUNID>1000</mUniqueLUNID> <mTargetName/> <mLUNName/> <mMaximumLUNSize>17592186044416</mMaximumLUNSize> <mUsedCapacityOS>5387481120768</mUsedCapacityOS> <mFlags>2</mFlags> <mPartitionCount>2</mPartitionCount> <mPartitionType>3</mPartitionType> <mPartitionFormat>64</mPartitionFormat> <mShareState>0</mShareState> <mNextAvailableID>1001</mNextAvailableID> <mUsedCapacityOS>5387481120768</mUsedCapacityOS> <mInitiatorCount>0</mInitiatorCount> <mLoggedIn>1</mLoggedIn> </n0> </mLUNUpdates> <mFirmwareFeatureStates>6</mFirmwareFeatureStates> <mLUNCount>1</mLUNCount> <mMaxLUNs>16</mMaxLUNs> <mSledName>Pandoras-Box</mSledName> <mSledVersion/> <mShareCount>0</mShareCount> <mShareInfo/> <mSledStatus>0</mSledStatus> <mSledSerial/> <mDiskPackStatus>0</mDiskPackStatus> <DNASStatus>6</DNASStatus> <DNASConfigVersion>26</DNASConfigVersion> <DNASDroboAppsShared>1</DNASDroboAppsShared> <DNASDiskPackId>3A4FD2541A6FF5E4</DNASDiskPackId> <DNASFeatureTable>7</DNASFeatureTable> <DNASEmailConfigEnabled>0</DNASEmailConfigEnabled> </ESATMUpdate>

team spirit all round :slight_smile:

Every XML file is very welcome, because it allows me to make sure that my assumptions about the encoding of data in the XML file is correct.

For example, the field mStatus seem to convey the overall state of the FS (all ok, replace a drive, upgrade a drive, and so on). It looks like a bitmask, but unfortunately I can’t figure it out unless I see enough reports.

This is what I learned so far:
[]32768 (0000 1000 0000 0000 0000) = Everything is OK
]32772 (0000 1000 0000 0000 0100) = Drobo is over 85% full
[]32774 (0000 1000 0000 0000 0110) = Drobo is over 95% full
]98310 (0001 1000 0000 0000 0110) = Same as 32774?
[]32784 (0000 1000 0000 0001 0000) = Drive failure (maybe the number indicates which slot, not sure yet)
]32838 (0000 1000 0000 0100 0110) = Drive upgrade needed (maybe indicates slot too)
[*]33344 (0000 1000 0010 0100 0000) = Data protection in progress
These are the codes I have seen so far. I believe there is a pattern there, but for now I hardcoded the web app to support those.

So, if you guys have access to abnormal states (drive failures, low-space, etc) please capture the XML and send it my way.

Once I’m more familiar with these special codes I plan to release a beta version of the app. The web app in general isn’t really dangerous. All that you see was done using Javascript on the client side. The only thing that is exposed is the XML file through the PHP script, but that is nothing that isn’t already easily available from your FS, and can be easily password protected by the HTTP server.


Im a new drobo user and will within 48 hours have low disk space so i can post my xml, budt can i get access to the code you are working on?

I might be abel to help you coding it.

The basic code is almost done. It is basically a matter of packaging it up in a nice DroboApp. Thanks for the offer. :slight_smile:

Hi all, very exciting reading this, has there been an advance since July ?


Unfortunately, almost none.

My plan is to make this available through github, so that anyone can help develop this.

The problem is that I got caught up in a lot of work and had almost no time to get this done, and I have yet to get a good how-to on setting up a new project on github. If you know of any, please let me know.

ricardo has a life outside of Drobo apps? shocked
Hehehe Work-that-pays-bills always comes first. :slight_smile:

Damn I wish I would have seen this sooner, I would have loved to help.
This looks awesome!

Damn Spam… reminds me that I would love to see such a dashboard :slight_smile:

Any news on this?

Is the code publicly available? I would like to give it a try to contribute to this project.

Here’s the status: I cobbled up a few HTML and javascript files together, but it is something that is honestly not maintainable (or even presentable, but that’s another matter). At best you would call a “proof of concept.”

At this point I will probably focus on documenting the info I have on the FS, such as the format of the XML file and the value ranges, and let someone else with more web development experience to take over the front-end. I probably would just embarrass myself otherwise. :slight_smile:

I have started to put the information I have on a Google Code project: https://code.google.com/p/droboports/w/list

If you have suggestions on how to integrate the FS backend with a nice web front-end, then please let us hear it.

I started hacking something…

1st problem I encountered: has anybody figured out how to identify the hardware model from the xml?