VMware Communities
samstern
Contributor
Contributor

Can I use a linux software raid device as a raw disk?

Hi All,

I am using VMware workstation 6.0.4 on a Ubuntu 8.0.4.1 (Hardy Heron) Linux Host. I have a 1.5TB Software raid 5 array known as /dev/md0 that spans 4 disks. I have another 400GB PATA drive (/dev/sde) that is hosting the Windows 2003 R2 SP2 server image as a raw disk. I would like to dedicate /dev/md0 to the 2k3 server so the hosted 2k3 server sees a single 1.5 TB drive.When I try to add the raw disk /dev/md0 (or even as /dev/md/0) to the guest via the GUI I'm told that I have insufficient permissions to use the disk. When I tried to load the disk as a "Generic SCSI Device" I got an error message thatt said that /dev/md0 was not a generic scsi device (sg*).

The user is part of the "disk" group, the device /dev/md0 is rw to the disk group (just like the raw disk /dev/sde that is the main windows install).I can add each disk individually to 2k3 (/dev/sda-d) and use 2k3 software raid but that's pretty slow and resource intensive. Is there anyway to use /dev/md0 as a raw disk?

If I cannot use /dev/md0 at all, which is better for software raid5 under 2k3 guest - attach each disk as a scsi disk or as a generic scsi disk?

I would rather avoid VMware beta 6.5 as it would further slow the guest system down but let me know if using 6.5 would permit me to use /dev/md0.

TIA

Sam S.

0 Kudos
4 Replies
birdie
Expert
Expert

First of all, try

$ sudo chown your_user_name /dev/md0

Secondly, try using VMWare block-device wrapper.

samstern
Contributor
Contributor

Oh, good try! However neither idea worked. I chowned /dev/md0 to my user but still lacked permissions. Then I ran the bdwrapper which had this to say:

"

$ LD_PRELOAD=libvmware-bdwrapper.so.0 VMWARE_BDWRAPPER_DEVICES=/dev/md0:/dev/sdh vmware

vmware-bdwrapper: couldn't guess controller type for device file '/dev/md0'. not well formed? it must be /dev/hd* or /dev/sd.vmware-bdwrapper: couldn't guess controller type for device file '/dev/md0'. not well formed? it must be /dev/hd or /dev/sd.vmware-bdwrapper: couldn't guess controller type for device file '/dev/md0'. not well formed? it must be /dev/hd or /dev/sd.vmware-bdwrapper: couldn't guess controller type for device file '/dev/md0'. not well formed? it must be /dev/hd or /dev/sd.vmware-bdwrapper: couldn't guess controller type for device file '/dev/md0'. not well formed? it must be /dev/hd or /dev/sd.vmware-bdwrapper: couldn't guess controller type for device file '/dev/md0'. not well formed? it must be /dev/hd or /dev/sd.vmware-bdwrapper: couldn't guess controller type for device file '/dev/md0'. not well formed? it must be /dev/hd or /dev/sd*.s

"

I tried it both as :

LD_PRELOAD=libvmware-bdwrapper.so.0 VMWARE_BDWRAPPER_DEVICES=/dev/md0:/dev/sdh vmware

LD_PRELOAD=libvmware-bdwrapper.so.0 VMWARE_BDWRAPPER_DEVICES=/dev/sdh:/dev/md0 vmware

and got the same error message either way.

thanks though!

Sam S.

0 Kudos
birdie
Expert
Expert

Device name must be '/dev/hd' or '/dev/sd'. This limitation is

due to vmware's safety check. Symlink is one easiest solution.

Note that '*' part may contain '/', which means you can use more

descriptive name such as '/dev/sd/my-raid5-volume-for-data. See

EXAMPLE CONFIGURATION.

Please, read carefully how bd-wrapper works. Smiley Wink

As a quick workaround

$ sudo ln -s /dev/md0 /dev/sde

0 Kudos
samstern
Contributor
Contributor

Hiya,

Thanks that's a good tip. Unfortunately, I ran outta time on the project and had to move forward to the next steps. I've been fighting with Promise to get that controller working under 2k3 server for a better part of a week so I'm already behind schedule. So I set the disks to raw SCSI devices (using them as scsi disk was causing considerable slowness), and started to build the software RAID-5 Array. If the performance is not upto par, then I'll revisit this scenario. Otherwise I'll return to this idea in a few days, and make a a few loop back drives and use mdadm to make a phony raid to see if this idea works and report back at that point so we can conitnue to check for solutions on the core question and see your proposed solution is effective 😆

Thanks for your help ;>

Sam S.

0 Kudos