MVSDASD

Frequently Asked Questions

Q1: What is mvsdasd?
A1: mvsdasd is a Linux module, specific to z/Linux, which enables mounting MVS disks (disks used by IBM's z/OS system for the mainframe).

Q2: Can I use mvsdasd from a PC?
A2: No. This implementation relies on the fact that MVS disks can be directly (and very quickly) read from any zSeries (mainframe) hardware. For accessing MVS data sets from other platforms, check other options like FTP, NFS, etc. These options defer from mvsdasd in that they transmit files over the network, while mvsdasd accesses the disk directly without a need for z/OS to be run.

Q3: What is the difference between using mvsdasd and accessing the files through FTP, NFS?
A3: Please refer to the NFS comparison part in the technical details page.

Q4: Can I access PDS/PDSE members?
A4: Members of a PDS will appear as files under the partitioned data set which they are part of. For example, the member "MY.SAMPLE.PDS(MEMBER1)" will be visible as my/sample/pds/member1 when mounted with mvsdasd's own file system, mvsfs. PDSE datasets are not supported yet due to lack of formal documentation on it's internal format.

Q5: Can I access VSAM data sets?
A5: Currently no, but this is in the plan for a future release.

Q6: What about DB2 data sets?
A6: Currently, database files are not supported.

Q7: I have concerns regarding the security of this driver. what measurements can be taken to make the usage of mvsdasd secure?
A7: Please refer to the security page for discussion on mvsdasd's security model.

Q8: What Linux versions are needed in order to run the driver?
A8: The driver was written for kernel version 2.6, and was tested on several distributions. Please refer to the download page and check if your Linux version has a precompiled driver. If not you can build the driver for your own system by downloading the source and compiling it according to the instructions. Note, however, that due to the dependency of the driver on IBM's common I/O model, and the fact that some components are updated between releases, it might be that some adaptive work needs to be done for a particular kernel release. I will try to adapt the product to the popular distributions which I can obtain, and keep the product updated.

Q9: I have tried building your source, but the build process fails on error xyz (whatever error)
A9: First, make sure that you have followed the build instructions promptly, and in particular have obtained the kernel source tree. If you still encounter problems, please use the support page to open a problem ticket.

Q10: I have a distribution for which there is no binary in the download section, and I don't want to/unable to build the driver from source. Do you plan on providing a build for this release?
A10: I will try to build for the most common distributions, based on feedback I get. If you are interested in a particular distribution, just let me know using the support link.

Q11: I have loaded the driver but no MVS device exist under /dev.
A11: It can take a few seconds for the new device to appear in the device tree. If after some time you still do no see any mvsdasdxx device, use the following procedure to verify the cause:

  Issue "ls /proc". If the driver was loaded, there should be an "mvsdasd" directory under the proc file system which did not exist before. If you do not see such an entry, then the driver was not successfully loaded. Please review the log file for relevant error messages.

  Make sure that the device you believe to be MVS-formatted is visible to Linux. Under /dev/dasd/ there should be an entry for each Dasd which was visible during Linux's boot. MVS disks do not have a partition entry, but they should still exists and have a "disc" entry, according to their device number. If not then your system was probably configured with a device range that excludes the device number which this device was configured with. You can either statically pass a "dasd=" parameter to the kernel (probably by configuring zipl) or dynamically. To dynamically enable a device use the following command:

echo "1" > /sys/devices/css0/0.0.nnnn/0.0.cuuu/online
Where nnnn is the subchannel number of the device and cuuu is the device number. In any case using the following command:

cat /sys/devices/css0/0.0.0nnn/0.0.cuuu/online
should report "1" before attempting any operation with a disk (this is actually true for any device under linux 2.6).

  If the above path does not even exist the reason is that the devices was probably blacklisted. In order to free the device issue the following command:

echo "free 0.0.xxxx" > /proc/cio_ignore

  If the device IS visible, but is still not recognized by the driver, then either:

  The device IS a Linux device. Most linux kernels format disks as an MVS device with one large file. These devices are legitimate MVS devices (i.e., z/OS will not claim them to have invalid format), nevertheless, they are standard Linux Dasd, and therefore are not relevant to the mvsdasd driver. Mounting such devices like any linux disk should work in this case, or at least an error message will tell you more about the nature of the disk.

  It is an unsupported MVS Dasd device. Currently only 3390 device types are supported.

  There is a bug :-). Please use the support page to report a problem. Please include any message issued by the kernel both during loading mvsdasd and during the mount. These messages are usually accessible using the "dmesg" command.

Q12: Can I write a file to an MVS Dasd from z/Linux?
A12: At this stage, only read access was implemented.

Q13: I have installed the driver, but the mount command fails with an "unknown device" error message.
A13: This is probably because you are attempting to mount the REAL device. Instead, you should mount the SHADOW device. The command "ls /dev/mvsdasd*" will list all such devices shortly after the module has been installed.

Q14: Aftre mounting a device, it apears empty although I am sure it contains many files.
A14: This is probably because the disk is not configured for zLinux access. Please refer to the security tab for details on how to confiure which files will be visible to zLinux.