Indeed I would say you use either W or R. Never use M unless you know what you're doing. And do not to link in write mode unless you actually need to write. For instance if you link the 190 disk in write mode it will invalidate your CMS segment and you need to resave CMS to be able to use the segment. We used to have an exec to link disks the easy way (GETDISK <user> <vdev>) and theat used write mode by default. I have changed that to read mode and option (WRITE if I actually want a write link.

I prefer minidisks to have linkmode WR instead of MR to prevent multiple write link except when Multiple is actually required and supported by the OS (VSE for example, with MWV). This way you can never get a multiple link by accident. The same goes for the passwords, only specify the Multiple password if you actually expect to use Multiple.

Op 31-12-2024 om 09:29 schreef Rob van der Heij:
Your readers should emphasize your intentions by linking R rather than RR,
and write should be done with W rather than MR

On Mon, Dec 30, 2024, 23:49 Donald Russell <russell....@gmail.com> wrote:

Thanks Alan, great explanation.

In my case the cms files are pretty static.   I have some bash scripts that
run when the Linux system starts up.   All the Linux’s share a r/o 191 cms
disk. It’s purely a convenience for me.  Some of our Linux systems are
wiped out and copied over from a “golden image” regularly but have various
server-specific customizations.  I have a cms script in /usr/local/bin that
takes the cms file name as a parm and runs that bash script. For example we
have a script that registers the server with a satellite for updates and
that script changes from time to time. I found it easier to put it on the
191 disk as “REGISTER BASH”, and on Linux I run “cms register”.  Instead of
updating the script file on each individual server.

Where I noticed this “odd behavior” was when I was testing changes to one
of the cms files. Cause I’d make a change, run the Linux command and notice
“it didn’t use the updated code”.

It all makes sense when I know why. 🙂

Cheers,
Don



On Mon, Dec 30, 2024 at 07:40 Alan Altmark <alan_altm...@us.ibm.com>
wrote:

It doesn't matter what OS is accessing the disk.  The CMS minidisk file
system was not designed for concurrent access while there is an active
writer, as the reader has no way to know that the disk has become an
active
minefield.

In CMS, IIRC, the only thing persistent in cache is the directory, so
re-ACCESSing the disk gets you an updated directory, though not
necessarily
a valid one.  Any transient cached data blocks are discarded.  The more
often the disk changes, the less likely it is to be valid.   Or, put
another way, the more likely you are to see invalid control data or,
worse,
stale *valid* control data.  Imagine reading a file that is a mix of data
blocks from multiple files.  (This is why we created SFS - we needed this
all to just Go Away.)

Linux has not only the directory cache, but the disk block cache.  With
CMS on different systems, we would see this same effect caused by the
CP-managed minidisk cache.  You have to turn off MDC for a minidisk on
System B to see the changes made by System A.  (This is something that
SSI
manages for you.)

So, you not only have to unmount the file system to throw away any cached
file system control structures, you have to ensure that you discard the
cached data maintained by the block driver (control and data), AND you
have
to worry about MDC.  (Watch out for 2nd level MDC, too!)

As a matter of Computer Science, stale data is the Enemy.  Without SFS (a
database), you have window that cannot be closed unless you layer a
control
plane on top of (or within) the file system to manage concurrent access.

Don't get me wrong.  Getting data from a CMS disk is fine as long as you
understand what's happening at the file system level and take steps to
mitigate issues introduced by your usage.   If you have automation to
trigger an unmount and take the disk offline on all linked Linux servers
before you update the CMS file, and then tell them all to bring it online
and mount it again afterward, you're good to go.  You might place a hash
value in the first line of a file that will tell you if the rest of the
file is self-consistent.  It all depends on your level of paranoia and
the
impact of getting bad data.

And think about *why* you are sharing with CMS.  History?  Habit?
Inherent CMS coolness factor?  For example, I see people using CMS disks
to
hold Linux network config data that they read at Linux boot.  I suggest
that they use persistent DHCP instead, if they really think they're going
to change the IP address of a server.  Otherwise, simply feed that data
to
the installation parm file creation process and leave CMS out of boot
equation.

Or, if you must, boot CMS first and pull information out of SFS onto a
local CMS disk or put it in a TAG on the printer or ....  Then boot Linux
and have Linux use the local copy.  No worries about concurrent disk
updates.

The tricks we used in the Before Times were good enough.  There were more
plusses than minuses.  But today, the expectations are higher and the
cost
of failure is higher.

"Hey.  Let's be careful out there!"

Regards,
Alan

Alan Altmark
IBM Senior z/VM Engineer and Consultant
1 607 321 7556  (Mobile)
alan_altm...@us.ibm.com

-----Original Message-----
From: Linux on 390 Port <LINUX-390@VM.MARIST.EDU> On Behalf Of Donald
Russell
Sent: Friday, December 27, 2024 9:42 PM
To: LINUX-390@VM.MARIST.EDU
Subject: [EXTERNAL] Re: [LINUX-390] Accessing cms disks from Linux

Thanks Rick,
Yes, I know and expect cms access to work that way.  If I have an R/O
link to a dial and that disk
changes, I have to access it again. That’s because the access command
copies the disk directory to my
storage/memory.  If the disk contents change, my in-memory copy doesn’t
know about it.  That’s not
too bad, cms is a single user system.

On Linux if I have to take the device offline/online to ensure I don’t
see stale data, that can impact
other Linux users.

Good tip about flushing the cache… I’ll see if that’s an option.  Even
just unmounting the file system
could fail if it’s in use.  My bash script tries to unmount/mount. If
the unmount fails it issues a warning
saying the disk contents may be stale.

I suppose another approach is to keep the device offline and serialize
access so a process that needs
those files would get exclusive use of a semaphore, bring the disk
online, mount it, use whatever,
unmount it, take it offline and finally release the semaphore so
another
waiting process could access
it.  That would ensure freshness but sure seems ugly in a multiuser
environment.  🙁

----------------------------------------------------------------------
For LINUX-390 subscribe / signoff / archive access instructions,
send email to lists...@vm.marist.edu with the message: INFO LINUX-390 or
visit
http://www2.marist.edu/htbin/wlvindex?LINUX-390

----------------------------------------------------------------------
For LINUX-390 subscribe / signoff / archive access instructions,
send email to lists...@vm.marist.edu with the message: INFO LINUX-390 or
visit
http://www2.marist.edu/htbin/wlvindex?LINUX-390

----------------------------------------------------------------------
For LINUX-390 subscribe / signoff / archive access instructions,
send email to lists...@vm.marist.edu with the message: INFO LINUX-390 or visit
http://www2.marist.edu/htbin/wlvindex?LINUX-390

----------------------------------------------------------------------
For LINUX-390 subscribe / signoff / archive access instructions,
send email to lists...@vm.marist.edu with the message: INFO LINUX-390 or visit
http://www2.marist.edu/htbin/wlvindex?LINUX-390

Reply via email to